@orbe-agro/client-core 5.3.9 → 5.3.10
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/@ecme/assets/styles/app.css +1 -1
- package/dist/@ecme/assets/styles/components/_input.css +1 -1
- package/dist/@ecme/assets/styles/components/_select.css +1 -1
- package/dist/@ecme/assets/styles/components/_tabs.css +1 -1
- package/dist/@ecme/assets/styles/components/index.css +1 -1
- package/dist/@ecme/assets/styles/tailwind/index.css +1 -1
- package/dist/@ecme/auth/AuthContext.js.map +1 -1
- package/dist/@ecme/auth/AuthProvider.js.map +1 -1
- package/dist/@ecme/components/docs/DemoCard/CardFooter.js.map +1 -1
- package/dist/@ecme/components/docs/DemoCard/DemoCard.js.map +1 -1
- package/dist/@ecme/components/docs/DocumentationNav.js.map +1 -1
- package/dist/@ecme/components/layouts/AuthLayout/AuthLayout.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.js.map +1 -1
- package/dist/@ecme/components/route/AppRoute.js.map +1 -1
- package/dist/@ecme/components/shared/AbbreviateNumber.js.map +1 -1
- package/dist/@ecme/components/shared/Affix.js.map +1 -1
- package/dist/@ecme/components/shared/AutoComplete.js.map +1 -1
- package/dist/@ecme/components/shared/CalendarView.js.map +1 -1
- package/dist/@ecme/components/shared/Chart.js.map +1 -1
- package/dist/@ecme/components/shared/ConfirmDialog.js.map +1 -1
- package/dist/@ecme/components/shared/DataTable.js.map +1 -1
- package/dist/@ecme/components/shared/DebounceInput.js.map +1 -1
- package/dist/@ecme/components/shared/GanttChart/TaskListTable.js.map +1 -1
- package/dist/@ecme/components/shared/GanttChart/getStartEndDateForProject.js.map +1 -1
- package/dist/@ecme/components/shared/GanttChart/tasksPreProcess.js.map +1 -1
- package/dist/@ecme/components/shared/Masonry/breakpoints.js.map +1 -1
- package/dist/@ecme/components/shared/Masonry/useCoulmnsCount.js.map +1 -1
- package/dist/@ecme/components/shared/Masonry/useMasonry.js.map +1 -1
- package/dist/@ecme/components/shared/Masonry/useWindowWidth.js.map +1 -1
- package/dist/@ecme/components/shared/OtpInput.js.map +1 -1
- package/dist/@ecme/components/shared/PasswordInput.js.map +1 -1
- package/dist/@ecme/components/shared/RegionMap.js.map +1 -1
- package/dist/@ecme/components/shared/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/@ecme/components/shared/StickyFooter.js.map +1 -1
- package/dist/@ecme/components/shared/StrictModeDroppable.js.map +1 -1
- package/dist/@ecme/components/shared/ToggleDrawer.js.map +1 -1
- package/dist/@ecme/components/shared/UsersAvatarGroup.js.map +1 -1
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdown.js.map +1 -1
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.js.map +1 -1
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.js.map +1 -1
- package/dist/@ecme/components/template/LanguageSelector.js.map +1 -1
- package/dist/@ecme/components/template/MobileNav.js.map +1 -1
- package/dist/@ecme/components/template/Notification/Notification.js.map +1 -1
- package/dist/@ecme/components/template/Search.js.map +1 -1
- package/dist/@ecme/components/template/SideNavToggle.js.map +1 -1
- package/dist/@ecme/components/template/SidePanel/SidePanel.js.map +1 -1
- package/dist/@ecme/components/template/StackedSideNav/StackedSideNav.js.map +1 -1
- package/dist/@ecme/components/template/StackedSideNav/StackedSideNavMini.js.map +1 -1
- package/dist/@ecme/components/template/StackedSideNav/StackedSideNavSecondary.js.map +1 -1
- package/dist/@ecme/components/template/ThemeConfigurator/CopyButton.js.map +1 -1
- package/dist/@ecme/components/template/ThemeConfigurator/DirectionSwitcher.js.map +1 -1
- package/dist/@ecme/components/template/ThemeConfigurator/LayoutSwitcher.js.map +1 -1
- package/dist/@ecme/components/template/ThemeConfigurator/ModeSwitcher.js.map +1 -1
- package/dist/@ecme/components/template/UserProfileDropdown.js.map +1 -1
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.js.map +1 -1
- package/dist/@ecme/components/ui/Alert/Alert.js.map +1 -1
- package/dist/@ecme/components/ui/Avatar/Avatar.js.map +1 -1
- package/dist/@ecme/components/ui/Avatar/AvatarGroup.js.map +1 -1
- package/dist/@ecme/components/ui/Button/Button.js.map +1 -1
- package/dist/@ecme/components/ui/Card/Card.js.map +1 -1
- package/dist/@ecme/components/ui/Checkbox/Checkbox.js.map +1 -1
- package/dist/@ecme/components/ui/Checkbox/Group.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/BasePicker.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/Calendar.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/CalendarBase.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/DatePicker.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/DatePickerRange.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/DateTimepicker.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/RangeCalendar.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/tables/DateTable.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/tables/MonthTable.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/tables/YearTable.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/tables/components/Month.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/utils/getDecadeRange.js.map +1 -1
- package/dist/@ecme/components/ui/DatePicker/utils/getMonthDays.js.map +1 -1
- package/dist/@ecme/components/ui/Dialog/Dialog.js.map +1 -1
- package/dist/@ecme/components/ui/Drawer/Drawer.js.map +1 -1
- package/dist/@ecme/components/ui/Dropdown/DropdownItem.js.map +1 -1
- package/dist/@ecme/components/ui/Dropdown/DropdownMenu.js.map +1 -1
- package/dist/@ecme/components/ui/Dropdown/context/menuContext.js.map +1 -1
- package/dist/@ecme/components/ui/Form/FormItem.js.map +1 -1
- package/dist/@ecme/components/ui/Input/Input.js.map +1 -1
- package/dist/@ecme/components/ui/Menu/MenuCollapse.js.map +1 -1
- package/dist/@ecme/components/ui/MenuItem/index.js.map +1 -1
- package/dist/@ecme/components/ui/Notification/Notification.js.map +1 -1
- package/dist/@ecme/components/ui/Pagination/Next.js.map +1 -1
- package/dist/@ecme/components/ui/Pagination/Pagers.js.map +1 -1
- package/dist/@ecme/components/ui/Pagination/Pagination.js.map +1 -1
- package/dist/@ecme/components/ui/Pagination/Prev.js.map +1 -1
- package/dist/@ecme/components/ui/Progress/Circle.js.map +1 -1
- package/dist/@ecme/components/ui/Progress/Progress.js.map +1 -1
- package/dist/@ecme/components/ui/Radio/Group.js.map +1 -1
- package/dist/@ecme/components/ui/Radio/Radio.js.map +1 -1
- package/dist/@ecme/components/ui/Segment/Segment.js.map +1 -1
- package/dist/@ecme/components/ui/Segment/SegmentItem.js.map +1 -1
- package/dist/@ecme/components/ui/Select/Select.js.map +1 -1
- package/dist/@ecme/components/ui/Steps/StepItem.js.map +1 -1
- package/dist/@ecme/components/ui/Steps/Steps.js.map +1 -1
- package/dist/@ecme/components/ui/Switcher/Switcher.js.map +1 -1
- package/dist/@ecme/components/ui/Tabs/TabNav.js.map +1 -1
- package/dist/@ecme/components/ui/TimeInput/AmPmInput.js.map +1 -1
- package/dist/@ecme/components/ui/TimeInput/TimeInput.js.map +1 -1
- package/dist/@ecme/components/ui/TimeInput/TimeInputField.js.map +1 -1
- package/dist/@ecme/components/ui/TimeInput/TimeInputRange.js.map +1 -1
- package/dist/@ecme/components/ui/TimeInput/utils/createAmPmHandler.js.map +1 -1
- package/dist/@ecme/components/ui/TimeInput/utils/createTimeHandler.js.map +1 -1
- package/dist/@ecme/components/ui/Tooltip/Arrow.js.map +1 -1
- package/dist/@ecme/components/ui/Tooltip/Tooltip.js.map +1 -1
- package/dist/@ecme/components/ui/Upload/Upload.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useCallbackRef.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useControllableState.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useDidUpdate.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useMergeRef.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useRootClose.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useTimeout.js.map +1 -1
- package/dist/@ecme/components/ui/hooks/useWindowSize.js.map +1 -1
- package/dist/@ecme/components/ui/toast/ToastWrapper.js.map +1 -1
- package/dist/@ecme/components/ui/toast/toast.js.map +1 -1
- package/dist/@ecme/components/ui/utils/chainedFunction.js.map +1 -1
- package/dist/@ecme/components/ui/utils/mapCloneElement.js.map +1 -1
- package/dist/@ecme/components/view/Activity/ActivityAvatar.js.map +1 -1
- package/dist/@ecme/components/view/Activity/ActivityEvent.js.map +1 -1
- package/dist/@ecme/components/view/ChatBox/components/Attachment.js.map +1 -1
- package/dist/@ecme/components/view/ChatBox/components/ChatInput.js.map +1 -1
- package/dist/@ecme/components/view/CreditCardDialog/CreditCardDialog.js.map +1 -1
- package/dist/@ecme/configs/chart.config.js.map +1 -1
- package/dist/@ecme/constants/theme.constant.js +23 -23
- package/dist/@ecme/constants/theme.constant.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/accountsFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/aiFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/authFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/commonFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/customersFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/fileFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/helpCenterFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/ordersFakeApi.js.map +1 -1
- package/dist/@ecme/mock/fakeApi/productsFakeApi.js.map +1 -1
- package/dist/@ecme/services/ApiService.js.map +1 -1
- package/dist/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.js.map +1 -1
- package/dist/@ecme/store/authStore.js.map +1 -1
- package/dist/@ecme/store/localeStore.js.map +1 -1
- package/dist/@ecme/utils/cookiesStorage.js.map +1 -1
- package/dist/@ecme/utils/hoc/withHeaderItem.js.map +1 -1
- package/dist/@ecme/utils/hooks/useDarkMode.js.map +1 -1
- package/dist/@ecme/utils/hooks/useDirection.js.map +1 -1
- package/dist/@ecme/utils/hooks/useInfiniteScroll.js.map +1 -1
- package/dist/@ecme/utils/hooks/useInterval .js.map +1 -1
- package/dist/@ecme/utils/hooks/useLayoutGap.js.map +1 -1
- package/dist/@ecme/utils/hooks/useLocale.js.map +1 -1
- package/dist/@ecme/utils/hooks/useMenuActive.js.map +1 -1
- package/dist/@ecme/utils/hooks/useRandomBgColor.js.map +1 -1
- package/dist/@ecme/utils/hooks/useResponsive.js.map +1 -1
- package/dist/@ecme/utils/hooks/useScrollTop.js.map +1 -1
- package/dist/@ecme/utils/hooks/useThemeSchema.js.map +1 -1
- package/dist/@ecme/utils/hooks/useTimeOutMessage.js.map +1 -1
- package/dist/@ecme/utils/reorderDragable.js.map +1 -1
- package/dist/@ecme/utils/sortBy.js.map +1 -1
- package/dist/@ecme/utils/wildCardSearch.js.map +1 -1
- package/dist/@ecme/views/auth/ForgotPassword/ForgotPassword.js.map +1 -1
- package/dist/@ecme/views/auth/ForgotPassword/components/ForgotPasswordForm.js.map +1 -1
- package/dist/@ecme/views/auth/OtpVerification/OtpVerification.js.map +1 -1
- package/dist/@ecme/views/auth/OtpVerification/components/OtpVerificationForm.js.map +1 -1
- package/dist/@ecme/views/auth/ResetPassword/ResetPassword.js.map +1 -1
- package/dist/@ecme/views/auth/ResetPassword/components/ResetPasswordForm.js.map +1 -1
- package/dist/@ecme/views/auth/SignIn/components/OauthSignIn.js.map +1 -1
- package/dist/@ecme/views/auth/SignIn/components/SignInForm.js.map +1 -1
- package/dist/@ecme/views/auth/SignUp/components/SignUpForm.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/ActivityLog/ActivityLog.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Pricing/components/PaymentDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Pricing/components/Plans.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsAccessDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsGroups.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserAction.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserSelected.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserTable.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/RolesPermissions/store/rolePermissionsStore.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/BillingHistory.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingIntegration.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingMobileMenu.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsBilling.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsMenu.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsNotification.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsProfile.js.map +1 -1
- package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsSecurity.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatCustomAction.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatCustomContent.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistory.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatSideNav.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatView.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatSend.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/store/generativeChatStore.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Image/components/Gallery.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Image/components/GeneratorPrompt.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Image/components/ImageDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Image/store/imageGeneratorStore.js.map +1 -1
- package/dist/@ecme/views/concepts/calendar/Calendar/Calendar.js.map +1 -1
- package/dist/@ecme/views/concepts/calendar/Calendar/components/EventDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/components/ChatAction.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/components/ChatBody.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/components/ChatList.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/components/ContactInfoDrawer.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/components/NewChat.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/hooks/useChat.js.map +1 -1
- package/dist/@ecme/views/concepts/chat/Chat/store/chatStore.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerCreate/CustomerCreate.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerDetails/ActivitySection.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerDetails/BillingSection.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerDetails/ProfileSection.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerEdit/CustomerEdit.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerForm/AccountSection.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerForm/CustomerForm.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerForm/OverviewSection.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerForm/ProfileImageSection.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListSelected.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListTable.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListTableFilter.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomersListTableTools.js.map +1 -1
- package/dist/@ecme/views/concepts/customers/CustomerList/store/customerListStore.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/FileManager.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/FileDetails.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/FileItemDropdown.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerDeleteDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerHeader.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerInviteDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerRenameDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/components/UploadFile.js.map +1 -1
- package/dist/@ecme/views/concepts/files/FileManager/store/useFileManagerStore.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/Article/components/ArticleAction.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/EditArticle/components/EditArticleFooter.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/EditArticle/components/EditArticleHeader.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleListSearch.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleListSelected.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleListTable.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleTableFilter.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/ManageArticle/store/manageArticleStore.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/SupportHub/components/Article.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/SupportHub/components/ArticleList.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/SupportHub/components/Categories.js.map +1 -1
- package/dist/@ecme/views/concepts/help-center/SupportHub/components/TopSection.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailBody.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailBodyTop.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailDetailAction.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailDetailTitle.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailEditor.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailList.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/components/MailSidebar.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/hooks/useMail.js.map +1 -1
- package/dist/@ecme/views/concepts/mail/Mail/hooks/useMailAction.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderCreate/OrderCreate.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderDetails/components/OrderDetailHeaderExtra.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderEdit/OrderEdit.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderForm/OrderForm.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderForm/components/CustomerDetailSection.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderForm/components/PaymentMethodSection.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderForm/components/ProductSelectSection.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderList/components/OrderListTable.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderList/components/OrderListTableFilter.js.map +1 -1
- package/dist/@ecme/views/concepts/orders/OrderList/components/OrderListTableTools.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductCreate/ProductCreate.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductEdit/ProducEdit.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductForm/ProductForm.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductForm/components/GeneralSection.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductForm/components/ImageSection.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductForm/components/PricingSection.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductList/components/ProducListTableTools.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductList/components/ProductListSearch.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductList/components/ProductListSelected.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductList/components/ProductListTable.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductList/components/ProductTableFilter.js.map +1 -1
- package/dist/@ecme/views/concepts/products/ProductList/store/productListStore.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Issue/Issue.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Issue/components/IssueBody.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Issue/components/IssueFooter.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Issue/components/IssueHeader.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectDetails/ProjectDetails.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsActivity.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsHeader.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsNavigation.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsSetting.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsTask.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectList/components/NewProjectForm.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectList/components/NewTaskField.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectList/components/ProjectListContent.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectList/components/ProjectListHeader.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectList/hooks/useProjectList.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ProjectList/store/projectListStore.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/AddNewColumnContent.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/AddNewMemberContent.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/AddNewTicketContent.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/Board.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/BoardCard.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/BoardTitle.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/ScrumBoardHeader.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/ScrumBoard/components/TicketContent.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Tasks/Tasks.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Tasks/components/AddTask.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Tasks/components/TaskList.js.map +1 -1
- package/dist/@ecme/views/concepts/projects/Tasks/components/TasksHeader.js.map +1 -1
- package/dist/@ecme/views/dashboards/AnalyticDashboard/components/AnalyticChart.js.map +1 -1
- package/dist/@ecme/views/dashboards/AnalyticDashboard/components/AnalyticHeader.js.map +1 -1
- package/dist/@ecme/views/dashboards/AnalyticDashboard/components/DeviceSession.js.map +1 -1
- package/dist/@ecme/views/dashboards/AnalyticDashboard/components/Traffic.js.map +1 -1
- package/dist/@ecme/views/dashboards/EcommerceDashboard/components/Overview.js.map +1 -1
- package/dist/@ecme/views/dashboards/EcommerceDashboard/components/RecentOrder.js.map +1 -1
- package/dist/@ecme/views/dashboards/EcommerceDashboard/components/RevenueByChannel.js.map +1 -1
- package/dist/@ecme/views/dashboards/EcommerceDashboard/components/SalesTarget.js.map +1 -1
- package/dist/@ecme/views/dashboards/EcommerceDashboard/components/TopProduct.js.map +1 -1
- package/dist/@ecme/views/dashboards/MarketingDashboard/components/AdsPerformance.js.map +1 -1
- package/dist/@ecme/views/dashboards/MarketingDashboard/components/CreateCampaign.js.map +1 -1
- package/dist/@ecme/views/dashboards/MarketingDashboard/components/LeadPerformance.js.map +1 -1
- package/dist/@ecme/views/dashboards/MarketingDashboard/components/RecentCampaign.js.map +1 -1
- package/dist/@ecme/views/dashboards/ProjectDashboard/components/CreateEventDialog.js.map +1 -1
- package/dist/@ecme/views/dashboards/ProjectDashboard/components/CurrentTasks.js.map +1 -1
- package/dist/@ecme/views/dashboards/ProjectDashboard/components/Schedule.js.map +1 -1
- package/dist/@ecme/views/dashboards/ProjectDashboard/components/UpcomingSchedule.js.map +1 -1
- package/dist/@ecme/views/guide/Documentations/components/Layouts.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/CalendarViewDoc/Example.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/ConfirmDialogDoc/Example.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/CustomFormatInputDoc/Simple.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/CustomFormatInputDoc/WithForm.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/DataTableDoc/Basic.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/DataTableDoc/Checkable.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/DataTableDoc/Query.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/DebounceInputDoc/Example.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/GanttChartDoc/Example.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/MasonryDoc/Basic.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/MasonryDoc/Responsive.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/NumericInputDoc/Basic.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/NumericInputDoc/WithForm.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/OtpInputDoc/Basic.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/OtpInputDoc/Length.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/PasswordInputDoc/Example.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/PatternInputDoc/Basic.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/PatternInputDoc/WithForm.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/PresetSegmentItemOptionDoc/Example.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/RichTextEditorDoc/CustomConfig.js.map +1 -1
- package/dist/@ecme/views/guide/SharedComponentsDoc/components/RichTextEditorDoc/WithForm.js.map +1 -1
- package/dist/@ecme/views/ui-components/common/Button/ButtonWithIcon.js.map +1 -1
- package/dist/@ecme/views/ui-components/common/Button/Loading.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Calendar/CustomRender.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/DragAndDrop.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/Editable.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/Expanding.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/Filtering.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/Group.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/PaginationTable.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/Resizable.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/RowSelection.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/Sorting.js.map +1 -1
- package/dist/@ecme/views/ui-components/data-display/Table/SubComponent.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Alert/Closable.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/Basic.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/Closable.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/CloseWithEscBackdrop.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/CustomStyle.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/InternalScroll.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/Size.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Dialog/StaticBackdrop.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Drawer/Basic.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Drawer/Closable.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Drawer/CustomStyle.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Drawer/Footer.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Drawer/Placement.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Drawer/WidthHeight.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Progress/Dynamic.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/AlertToast.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/Closable.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/CustomClose.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/CustomIcon.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/Duration.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/Notification.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/NotificationType.js.map +1 -1
- package/dist/@ecme/views/ui-components/feedback/Toast/Placement.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Checkbox/Default.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Checkbox/Group.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/DatePicker/Controlled.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/DatePicker/CustomRender.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/DatePicker/DisabledCertainDate.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/AsyncValidation.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/Basic.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/DependentValidation.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/DynamicForm.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/FieldValidation.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/Layout.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/MixedFormControl.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/SchemaValidation.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/FormControl/Sizes.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Input/PasswordVisible.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Radio/Group.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Radio/Vertical.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Segment/Controlled.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Segment/Size.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Select/AsyncOnSearch.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Select/Creatable.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Select/LoadOptionOnExpand.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Switcher/Basic.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Switcher/Controlled.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Switcher/Loading.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Upload/AvatarImage.js.map +1 -1
- package/dist/@ecme/views/ui-components/forms/Upload/BeforeUpload.js.map +1 -1
- package/dist/@ecme/views/ui-components/graph/Charts/DashedLine.js.map +1 -1
- package/dist/@ecme/views/ui-components/graph/Maps/ChoroplethQuantile.js.map +1 -1
- package/dist/@ecme/views/ui-components/graph/Maps/ChoroplethQuantize.js.map +1 -1
- package/dist/@ecme/views/ui-components/graph/Maps/MapChartWithTooltip.js.map +1 -1
- package/dist/@ecme/views/ui-components/graph/Maps/UsaStatesMapWithLabels.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Dropdown/Default.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Menu/CollapsableMenuItem.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Menu/Simple.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Pagination/Basic.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Pagination/Controlled.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Pagination/PageSize.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Steps/Clickable.js.map +1 -1
- package/dist/@ecme/views/ui-components/navigation/Steps/Controlled.js.map +1 -1
- package/dist/@types/@ecme/configs/chart.config.d.ts +2 -0
- package/dist/@types/@ecme/configs/chart.config.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +18 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.d.ts +20 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +18 -0
- package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.d.ts.map +1 -1
- package/dist/@types/base/services/modules/centralNfe/index.d.ts +2 -0
- package/dist/@types/base/services/modules/centralNfe/index.d.ts.map +1 -1
- package/dist/@types/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.d.ts +5 -0
- package/dist/@types/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.d.ts.map +1 -0
- package/dist/base/assets/styles/init.css +1 -1
- package/dist/base/components/forms/GenericForms/GenericUploadFormSection.js.map +1 -1
- package/dist/base/components/forms/NumberFormVariant/GenericNumberFormSectionPercentage.js.map +1 -1
- package/dist/base/components/shared/AceitarProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/AdicionarHistoricoDialog.js.map +1 -1
- package/dist/base/components/shared/CancelarProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/ConcluirProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/ReabrirProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/RetornarFluxAtendimentoDialog.js.map +1 -1
- package/dist/base/components/shared/TransferirParaAtendenteDialog.js.map +1 -1
- package/dist/base/components/shared/TransferirParaSolicitanteDialog.js.map +1 -1
- package/dist/base/components/shared/TransferirProcessoDialog.js.map +1 -1
- package/dist/base/components/table/ListColumn.js.map +1 -1
- package/dist/base/components/tools/NavFilter.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js +5 -3
- package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.js +10 -0
- package/dist/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.js.map +1 -0
- package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js +10 -0
- package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js.map +1 -1
- package/dist/base/hooks/flux/useAceitarProcesso.js.map +1 -1
- package/dist/base/hooks/flux/useAdicionarHistorico.js.map +1 -1
- package/dist/base/hooks/flux/useCancelarProcesso.js.map +1 -1
- package/dist/base/hooks/flux/useConcluirProcesso.js.map +1 -1
- package/dist/base/hooks/flux/useReabrirProcesso.js.map +1 -1
- package/dist/base/hooks/flux/useRetornarFluxoAtendimento.js.map +1 -1
- package/dist/base/hooks/flux/useTransferirParaAtendente.js.map +1 -1
- package/dist/base/hooks/flux/useTransferirParaSolicitante.js.map +1 -1
- package/dist/base/hooks/flux/useTransferirProcesso.js.map +1 -1
- package/dist/base/services/modules/centralNfe/index.js +13 -3
- package/dist/base/services/modules/centralNfe/index.js.map +1 -1
- package/dist/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.js +37 -0
- package/dist/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.js.map +1 -0
- package/dist/base/services/query.js.map +1 -1
- package/dist/base/utils/functions/formUtils.js.map +1 -1
- package/dist/base/utils/functions/handleInputChangeUtils.js.map +1 -1
- package/dist/base/utils/functions/stringUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesPermissionsAccessDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsAccessDialog.tsx"],"sourcesContent":["import { useMemo, useState, useRef } from 'react'\nimport Button from '@/components/ui/Button'\nimport Avatar from '@/components/ui/Avatar'\nimport Segment from '@/components/ui/Segment'\nimport Dialog from '@/components/ui/Dialog'\nimport Input from '@/components/ui/Input'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport { FormItem } from '@/components/ui/Form'\nimport hooks from '@/components/ui/hooks'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport { accessModules } from '../constants'\nimport classNames from '@/utils/classNames'\nimport isLastChild from '@/utils/isLastChild'\nimport sleep from '@/utils/sleep'\nimport {\n TbUserCog,\n TbBox,\n TbSettings,\n TbFiles,\n TbFileChart,\n TbCheck,\n} from 'react-icons/tb'\nimport type { MutateRolesPermissionsRolesResponse, Roles } from '../types'\nimport type { ReactNode } from 'react'\n\ntype RolesPermissionsAccessDialog = {\n roleList: Roles\n mutate: MutateRolesPermissionsRolesResponse\n}\n\nconst moduleIcon: Record<string, ReactNode> = {\n users: <TbUserCog />,\n products: <TbBox />,\n configurations: <TbSettings />,\n files: <TbFiles />,\n reports: <TbFileChart />,\n}\n\nconst { useUniqueId } = hooks\n\nconst RolesPermissionsAccessDialog = ({\n roleList,\n mutate,\n}: RolesPermissionsAccessDialog) => {\n const { selectedRole, setSelectedRole, setRoleDialog, roleDialog } =\n useRolePermissionsStore()\n\n const [accessRight, setAccessRight] = useState<Record<string, string[]>>({})\n\n const roleNameRef = useRef<HTMLInputElement>(null)\n const descriptionRef = useRef<HTMLTextAreaElement>(null)\n\n const newId = useUniqueId('role-')\n\n const handleClose = () => {\n setRoleDialog({\n type: '',\n open: false,\n })\n }\n\n const handleUpdate = async () => {\n handleClose()\n await sleep(300)\n setSelectedRole('')\n }\n\n const handleSubmit = async () => {\n const newRoleList = structuredClone(roleList)\n newRoleList.push({\n id: newId,\n name: roleNameRef.current?.value || `Untitle-${newId}`,\n description: descriptionRef.current?.value || '',\n users: [],\n accessRight,\n })\n mutate(newRoleList, false)\n handleClose()\n }\n\n const modules = useMemo(() => {\n return roleList.find((role) => role.id === selectedRole)\n }, [selectedRole, roleList])\n\n const handleChange = (accessRight: string[], key: string) => {\n if (roleDialog.type === 'new') {\n setAccessRight((value) => {\n value[key] = accessRight\n return value\n })\n }\n\n if (roleDialog.type === 'edit') {\n const newRoleList = structuredClone(roleList).map((role) => {\n if (role.id === selectedRole) {\n role.accessRight[key] = accessRight\n }\n\n return role\n })\n\n mutate(newRoleList, false)\n }\n }\n\n return (\n <Dialog\n isOpen={roleDialog.open}\n width={900}\n onClose={handleClose}\n onRequestClose={handleClose}\n >\n <h4>{roleDialog.type === 'new' ? 'Create role' : modules?.name}</h4>\n <ScrollBar className=\"mt-6 max-h-[600px] overflow-y-auto\">\n <div className=\"px-4\">\n {roleDialog.type === 'new' && (\n <>\n <FormItem label=\"Role name\">\n <Input ref={roleNameRef} />\n </FormItem>\n <FormItem label=\"Description\">\n <Input ref={descriptionRef} textArea />\n </FormItem>\n <span className=\"font-semibold mb-2\">\n Permission\n </span>\n </>\n )}\n {accessModules.map((module, index) => (\n <div\n key={module.id}\n className={classNames(\n 'flex flex-col md:flex-row md:items-center justify-between gap-4 py-6 border-gray-200 dark:border-gray-600',\n !isLastChild(accessModules, index) &&\n 'border-b',\n )}\n >\n <div className=\"flex items-center gap-4\">\n <Avatar\n className=\"bg-transparent dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600 text-primary\"\n size={50}\n icon={moduleIcon[module.id]}\n shape=\"round\"\n />\n <div>\n <h6 className=\"font-bold\">{module.name}</h6>\n <span>{module.description}</span>\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <Segment\n className=\"bg-transparent dark:bg-transparent\"\n selectionType=\"multiple\"\n value={modules?.accessRight[module.id]}\n onChange={(val) =>\n handleChange(val as string[], module.id)\n }\n >\n {module.accessor.map((access) => (\n <Segment.Item\n key={module.id + access.value}\n value={access.value}\n >\n {({\n active,\n onSegmentItemClick,\n }) => {\n return (\n <Button\n variant=\"default\"\n icon={\n active ? (\n <TbCheck className=\"text-primary text-xl\" />\n ) : (\n <></>\n )\n }\n active={active}\n type=\"button\"\n className=\"md:min-w-[100px]\"\n size=\"sm\"\n customColorClass={({\n active,\n }) =>\n classNames(\n active &&\n 'bg-transparent dark:bg-transparent text-primary border-primary ring-1 ring-primary',\n )\n }\n onClick={\n onSegmentItemClick\n }\n >\n {access.label}\n </Button>\n )\n }}\n </Segment.Item>\n ))}\n </Segment>\n </div>\n </div>\n ))}\n <div className=\"flex justify-end mt-6\">\n <Button\n className=\"ltr:mr-2 rtl:ml-2\"\n variant=\"plain\"\n onClick={handleClose}\n >\n Cancel\n </Button>\n <Button\n variant=\"solid\"\n onClick={\n roleDialog.type === 'edit'\n ? handleUpdate\n : handleSubmit\n }\n >\n {roleDialog.type === 'edit' ? 'Update' : 'Create'}\n </Button>\n </div>\n </div>\n </ScrollBar>\n </Dialog>\n )\n}\n\nexport default RolesPermissionsAccessDialog\n"],"names":["moduleIcon","TbUserCog","TbBox","TbSettings","TbFiles","TbFileChart","useUniqueId","hooks","RolesPermissionsAccessDialog","roleList","mutate","selectedRole","setSelectedRole","setRoleDialog","roleDialog","useRolePermissionsStore","accessRight","setAccessRight","useState","roleNameRef","useRef","descriptionRef","newId","handleClose","handleUpdate","sleep","handleSubmit","newRoleList","_a","_b","modules","useMemo","role","handleChange","key","value","jsxs","Dialog","jsx","ScrollBar","Fragment","FormItem","Input","accessModules","module","index","classNames","isLastChild","Avatar","Segment","val","access","active","onSegmentItemClick","Button","TbCheck"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,IAAwC;AAAA,EAC1C,yBAAQC,GAAA,EAAU;AAAA,EAClB,4BAAWC,GAAA,EAAM;AAAA,EACjB,kCAAiBC,GAAA,EAAW;AAAA,EAC5B,yBAAQC,GAAA,EAAQ;AAAA,EAChB,2BAAUC,GAAA,CAAA,CAAY;AAC1B,GAEM,EAAE,aAAAC,MAAgBC,GAElBC,KAA+B,CAAC;AAAA,EAClC,UAAAC;AAAA,EACA,QAAAC;AACJ,MAAoC;AAChC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,GAAiB,eAAAC,GAAe,YAAAC,EAAA,IAClDC,EAAA,GAEE,CAACC,GAAaC,CAAc,IAAIC,EAAmC,CAAA,CAAE,GAErEC,IAAcC,EAAyB,IAAI,GAC3CC,IAAiBD,EAA4B,IAAI,GAEjDE,IAAQhB,EAAY,OAAO,GAE3BiB,IAAc,MAAM;AACtB,IAAAV,EAAc;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IAAA,CACT;AAAA,EAAA,GAGCW,IAAe,YAAY;AAC7B,IAAAD,EAAA,GACA,MAAME,EAAM,GAAG,GACfb,EAAgB,EAAE;AAAA,EAAA,GAGhBc,IAAe,YAAY;;AAC7B,UAAMC,IAAc,gBAAgBlB,CAAQ;AAC5C,IAAAkB,EAAY,KAAK;AAAA,MACb,IAAIL;AAAA,MACJ,QAAMM,IAAAT,EAAY,YAAZ,gBAAAS,EAAqB,UAAS,WAAWN,CAAK;AAAA,MACpD,eAAaO,IAAAR,EAAe,YAAf,gBAAAQ,EAAwB,UAAS;AAAA,MAC9C,OAAO,CAAA;AAAA,MACP,aAAAb;AAAA,IAAA,CACH,GACDN,EAAOiB,GAAa,EAAK,GACzBJ,EAAA;AAAA,EAAY,GAGVO,IAAUC,EAAQ,MACbtB,EAAS,KAAK,CAACuB,MAASA,EAAK,OAAOrB,CAAY,GACxD,CAACA,GAAcF,CAAQ,CAAC,GAErBwB,IAAe,CAACjB,GAAuBkB,MAAgB;AAQzD,QAPIpB,EAAW,SAAS,SACpBG,EAAe,CAACkB,OACZA,EAAMD,CAAG,IAAIlB,GACNmB,EACV,GAGDrB,EAAW,SAAS,QAAQ;AAC5B,YAAMa,IAAc,gBAAgBlB,CAAQ,EAAE,IAAI,CAACuB,OAC3CA,EAAK,OAAOrB,MACZqB,EAAK,YAAYE,CAAG,IAAIlB,IAGrBgB,EACV;AAED,MAAAtB,EAAOiB,GAAa,EAAK;AAAA,IAAA;AAAA,EAC7B;AAGJ,SACI,gBAAAS;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,QAAQvB,EAAW;AAAA,MACnB,OAAO;AAAA,MACP,SAASS;AAAA,MACT,gBAAgBA;AAAA,MAEhB,UAAA;AAAA,QAAA,gBAAAe,EAAC,QAAI,UAAAxB,EAAW,SAAS,QAAQ,gBAAgBgB,KAAA,gBAAAA,EAAS,MAAK;AAAA,0BAC9DS,GAAA,EAAU,WAAU,sCACjB,UAAA,gBAAAH,EAAC,OAAA,EAAI,WAAU,QACV,UAAA;AAAA,UAAAtB,EAAW,SAAS,SACjB,gBAAAsB,EAAAI,GAAA,EACI,UAAA;AAAA,YAAA,gBAAAF,EAACG,KAAS,OAAM,aACZ,4BAACC,GAAA,EAAM,KAAKvB,GAAa,EAAA,CAC7B;AAAA,YACA,gBAAAmB,EAACG,GAAA,EAAS,OAAM,eACZ,UAAA,gBAAAH,EAACI,KAAM,KAAKrB,GAAgB,UAAQ,GAAA,CAAC,EAAA,CACzC;AAAA,YACA,gBAAAiB,EAAC,QAAA,EAAK,WAAU,sBAAqB,UAAA,aAAA,CAErC;AAAA,UAAA,GACJ;AAAA,UAEHK,EAAc,IAAI,CAACC,GAAQC,MACxB,gBAAAT;AAAA,YAAC;AAAA,YAAA;AAAA,cAEG,WAAWU;AAAA,gBACP;AAAA,gBACA,CAACC,EAAYJ,GAAeE,CAAK,KAC7B;AAAA,cAAA;AAAA,cAGR,UAAA;AAAA,gBAAA,gBAAAT,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,kBAAA,gBAAAE;AAAA,oBAACU;AAAA,oBAAA;AAAA,sBACG,WAAU;AAAA,sBACV,MAAM;AAAA,sBACN,MAAMhD,EAAW4C,EAAO,EAAE;AAAA,sBAC1B,OAAM;AAAA,oBAAA;AAAA,kBAAA;AAAA,oCAET,OAAA,EACG,UAAA;AAAA,oBAAA,gBAAAN,EAAC,MAAA,EAAG,WAAU,aAAa,UAAAM,EAAO,MAAK;AAAA,oBACvC,gBAAAN,EAAC,QAAA,EAAM,UAAAM,EAAO,YAAA,CAAY;AAAA,kBAAA,EAAA,CAC9B;AAAA,gBAAA,GACJ;AAAA,gBACA,gBAAAN,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA,gBAAAA;AAAA,kBAACW;AAAA,kBAAA;AAAA,oBACG,WAAU;AAAA,oBACV,eAAc;AAAA,oBACd,OAAOnB,KAAA,gBAAAA,EAAS,YAAYc,EAAO;AAAA,oBACnC,UAAU,CAACM,MACPjB,EAAaiB,GAAiBN,EAAO,EAAE;AAAA,oBAG1C,UAAAA,EAAO,SAAS,IAAI,CAACO,MAClB,gBAAAb;AAAA,sBAACW,EAAQ;AAAA,sBAAR;AAAA,wBAEG,OAAOE,EAAO;AAAA,wBAEb,UAAA,CAAC;AAAA,0BACE,QAAAC;AAAA,0BACA,oBAAAC;AAAA,wBAAA,MAGI,gBAAAf;AAAA,0BAACgB;AAAA,0BAAA;AAAA,4BACG,SAAQ;AAAA,4BACR,MACIF,IACI,gBAAAd,EAACiB,KAAQ,WAAU,uBAAA,CAAuB,IAE1C,gBAAAjB,EAAAE,GAAA,EAAE;AAAA,4BAGV,QAAAY;AAAA,4BACA,MAAK;AAAA,4BACL,WAAU;AAAA,4BACV,MAAK;AAAA,4BACL,kBAAkB,CAAC;AAAA,8BACf,QAAAA;AAAAA,4BAAA,MAEAN;AAAA,8BACIM,KACI;AAAA,4BAAA;AAAA,4BAGZ,SACIC;AAAA,4BAGH,UAAAF,EAAO;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAGpB;AAAA,sBApCKP,EAAO,KAAKO,EAAO;AAAA,oBAAA,CAsC/B;AAAA,kBAAA;AAAA,gBAAA,EACL,CACJ;AAAA,cAAA;AAAA,YAAA;AAAA,YAtEKP,EAAO;AAAA,UAAA,CAwEnB;AAAA,UACD,gBAAAR,EAAC,OAAA,EAAI,WAAU,yBACX,UAAA;AAAA,YAAA,gBAAAE;AAAA,cAACgB;AAAA,cAAA;AAAA,gBACG,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,SAAS/B;AAAA,gBACZ,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGD,gBAAAe;AAAA,cAACgB;AAAA,cAAA;AAAA,gBACG,SAAQ;AAAA,gBACR,SACIxC,EAAW,SAAS,SACdU,IACAE;AAAA,gBAGT,UAAAZ,EAAW,SAAS,SAAS,WAAW;AAAA,cAAA;AAAA,YAAA;AAAA,UAC7C,EAAA,CACJ;AAAA,QAAA,EAAA,CACJ,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|
|
1
|
+
{"version":3,"file":"RolesPermissionsAccessDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsAccessDialog.tsx"],"sourcesContent":["import { useMemo, useState, useRef } from 'react'\nimport Button from '@/components/ui/Button'\nimport Avatar from '@/components/ui/Avatar'\nimport Segment from '@/components/ui/Segment'\nimport Dialog from '@/components/ui/Dialog'\nimport Input from '@/components/ui/Input'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport { FormItem } from '@/components/ui/Form'\nimport hooks from '@/components/ui/hooks'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport { accessModules } from '../constants'\nimport classNames from '@/utils/classNames'\nimport isLastChild from '@/utils/isLastChild'\nimport sleep from '@/utils/sleep'\nimport {\n TbUserCog,\n TbBox,\n TbSettings,\n TbFiles,\n TbFileChart,\n TbCheck,\n} from 'react-icons/tb'\nimport type { MutateRolesPermissionsRolesResponse, Roles } from '../types'\nimport type { ReactNode } from 'react'\n\ntype RolesPermissionsAccessDialog = {\n roleList: Roles\n mutate: MutateRolesPermissionsRolesResponse\n}\n\nconst moduleIcon: Record<string, ReactNode> = {\n users: <TbUserCog />,\n products: <TbBox />,\n configurations: <TbSettings />,\n files: <TbFiles />,\n reports: <TbFileChart />,\n}\n\nconst { useUniqueId } = hooks\n\nconst RolesPermissionsAccessDialog = ({\n roleList,\n mutate,\n}: RolesPermissionsAccessDialog) => {\n const { selectedRole, setSelectedRole, setRoleDialog, roleDialog } =\n useRolePermissionsStore()\n\n const [accessRight, setAccessRight] = useState<Record<string, string[]>>({})\n\n const roleNameRef = useRef<HTMLInputElement>(null)\n const descriptionRef = useRef<HTMLTextAreaElement>(null)\n\n const newId = useUniqueId('role-')\n\n const handleClose = () => {\n setRoleDialog({\n type: '',\n open: false,\n })\n }\n\n const handleUpdate = async () => {\n handleClose()\n await sleep(300)\n setSelectedRole('')\n }\n\n const handleSubmit = async () => {\n const newRoleList = structuredClone(roleList)\n newRoleList.push({\n id: newId,\n name: roleNameRef.current?.value || `Untitle-${newId}`,\n description: descriptionRef.current?.value || '',\n users: [],\n accessRight,\n })\n mutate(newRoleList, false)\n handleClose()\n }\n\n const modules = useMemo(() => {\n return roleList.find((role) => role.id === selectedRole)\n }, [selectedRole, roleList])\n\n const handleChange = (accessRight: string[], key: string) => {\n if (roleDialog.type === 'new') {\n setAccessRight((value) => {\n value[key] = accessRight\n return value\n })\n }\n\n if (roleDialog.type === 'edit') {\n const newRoleList = structuredClone(roleList).map((role) => {\n if (role.id === selectedRole) {\n role.accessRight[key] = accessRight\n }\n\n return role\n })\n\n mutate(newRoleList, false)\n }\n }\n\n return (\n <Dialog\n isOpen={roleDialog.open}\n width={900}\n onClose={handleClose}\n onRequestClose={handleClose}\n >\n <h4>{roleDialog.type === 'new' ? 'Create role' : modules?.name}</h4>\n <ScrollBar className=\"mt-6 max-h-[600px] overflow-y-auto\">\n <div className=\"px-4\">\n {roleDialog.type === 'new' && (\n <>\n <FormItem label=\"Role name\">\n <Input ref={roleNameRef} />\n </FormItem>\n <FormItem label=\"Description\">\n <Input ref={descriptionRef} textArea />\n </FormItem>\n <span className=\"font-semibold mb-2\">\n Permission\n </span>\n </>\n )}\n {accessModules.map((module, index) => (\n <div\n key={module.id}\n className={classNames(\n 'flex flex-col md:flex-row md:items-center justify-between gap-4 py-6 border-gray-200 dark:border-gray-600',\n !isLastChild(accessModules, index) &&\n 'border-b',\n )}\n >\n <div className=\"flex items-center gap-4\">\n <Avatar\n className=\"bg-transparent dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600 text-primary\"\n size={50}\n icon={moduleIcon[module.id]}\n shape=\"round\"\n />\n <div>\n <h6 className=\"font-bold\">{module.name}</h6>\n <span>{module.description}</span>\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <Segment\n className=\"bg-transparent dark:bg-transparent\"\n selectionType=\"multiple\"\n value={modules?.accessRight[module.id]}\n onChange={(val) =>\n handleChange(val as string[], module.id)\n }\n >\n {module.accessor.map((access) => (\n <Segment.Item\n key={module.id + access.value}\n value={access.value}\n >\n {({\n active,\n onSegmentItemClick,\n }) => {\n return (\n <Button\n variant=\"default\"\n icon={\n active ? (\n <TbCheck className=\"text-primary text-xl\" />\n ) : (\n <></>\n )\n }\n active={active}\n type=\"button\"\n className=\"md:min-w-[100px]\"\n size=\"sm\"\n customColorClass={({\n active,\n }) =>\n classNames(\n active &&\n 'bg-transparent dark:bg-transparent text-primary border-primary ring-1 ring-primary',\n )\n }\n onClick={\n onSegmentItemClick\n }\n >\n {access.label}\n </Button>\n )\n }}\n </Segment.Item>\n ))}\n </Segment>\n </div>\n </div>\n ))}\n <div className=\"flex justify-end mt-6\">\n <Button\n className=\"ltr:mr-2 rtl:ml-2\"\n variant=\"plain\"\n onClick={handleClose}\n >\n Cancel\n </Button>\n <Button\n variant=\"solid\"\n onClick={\n roleDialog.type === 'edit'\n ? handleUpdate\n : handleSubmit\n }\n >\n {roleDialog.type === 'edit' ? 'Update' : 'Create'}\n </Button>\n </div>\n </div>\n </ScrollBar>\n </Dialog>\n )\n}\n\nexport default RolesPermissionsAccessDialog\n"],"names":["moduleIcon","TbUserCog","TbBox","TbSettings","TbFiles","TbFileChart","useUniqueId","hooks","RolesPermissionsAccessDialog","roleList","mutate","selectedRole","setSelectedRole","setRoleDialog","roleDialog","useRolePermissionsStore","accessRight","setAccessRight","useState","roleNameRef","useRef","descriptionRef","newId","handleClose","handleUpdate","sleep","handleSubmit","newRoleList","_a","_b","modules","useMemo","role","handleChange","key","value","jsxs","Dialog","jsx","ScrollBar","Fragment","FormItem","Input","accessModules","module","index","classNames","isLastChild","Avatar","Segment","val","access","active","onSegmentItemClick","Button","TbCheck"],"mappings":"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"}
|
package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsGroups.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesPermissionsGroups.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsGroups.tsx"],"sourcesContent":["import Button from '@/components/ui/Button'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport UsersAvatarGroup from '@/components/shared/UsersAvatarGroup'\nimport { TbArrowRight } from 'react-icons/tb'\nimport type { Roles } from '../types'\n\ntype RolesPermissionsGroupsProps = {\n roleList: Roles\n}\n\nconst RolesPermissionsGroups = ({ roleList }: RolesPermissionsGroupsProps) => {\n const { setSelectedRole, setRoleDialog } = useRolePermissionsStore()\n\n const handleEditRoleClick = (id: string) => {\n setSelectedRole(id)\n setRoleDialog({\n type: 'edit',\n open: true,\n })\n }\n\n return (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4\">\n {roleList.map((role) => (\n <div\n key={role.id}\n className=\"flex flex-col justify-between rounded-2xl p-5 bg-gray-100 dark:bg-gray-700 min-h-[140px]\"\n >\n <div className=\"flex items-center justify-between\">\n <h6 className=\"font-bold\">{role.name}</h6>\n </div>\n <p className=\"mt-2\">{role.description}</p>\n <div className=\"flex items-center justify-between mt-4\">\n <div className=\"flex flex-col\">\n <div className=\"-ml-2\">\n <UsersAvatarGroup\n avatarProps={{\n className:\n 'cursor-pointer -mr-2 border-2 border-white dark:border-500',\n size: 28,\n }}\n avatarGroupProps={{ maxCount: 3 }}\n chained={false}\n users={role.users}\n />\n </div>\n </div>\n <Button\n variant=\"plain\"\n size=\"sm\"\n className=\"py-0 h-auto\"\n icon={<TbArrowRight />}\n iconAlignment=\"end\"\n onClick={() => handleEditRoleClick(role.id)}\n >\n Edit role\n </Button>\n </div>\n </div>\n ))}\n </div>\n )\n}\n\nexport default RolesPermissionsGroups\n"],"names":["RolesPermissionsGroups","roleList","setSelectedRole","setRoleDialog","useRolePermissionsStore","handleEditRoleClick","id","role","jsxs","jsx","UsersAvatarGroup","Button","TbArrowRight"],"mappings":";;;;;;AAUA,MAAMA,IAAyB,CAAC,EAAE,UAAAC,QAA4C;AAC1E,QAAM,EAAE,iBAAAC,GAAiB,eAAAC,EAAA,IAAkBC,EAAA,GAErCC,IAAsB,CAACC,MAAe;AACxC,IAAAJ,EAAgBI,CAAE,GAClBH,EAAc;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IAAA,CACT;AAAA,
|
|
1
|
+
{"version":3,"file":"RolesPermissionsGroups.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsGroups.tsx"],"sourcesContent":["import Button from '@/components/ui/Button'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport UsersAvatarGroup from '@/components/shared/UsersAvatarGroup'\nimport { TbArrowRight } from 'react-icons/tb'\nimport type { Roles } from '../types'\n\ntype RolesPermissionsGroupsProps = {\n roleList: Roles\n}\n\nconst RolesPermissionsGroups = ({ roleList }: RolesPermissionsGroupsProps) => {\n const { setSelectedRole, setRoleDialog } = useRolePermissionsStore()\n\n const handleEditRoleClick = (id: string) => {\n setSelectedRole(id)\n setRoleDialog({\n type: 'edit',\n open: true,\n })\n }\n\n return (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4\">\n {roleList.map((role) => (\n <div\n key={role.id}\n className=\"flex flex-col justify-between rounded-2xl p-5 bg-gray-100 dark:bg-gray-700 min-h-[140px]\"\n >\n <div className=\"flex items-center justify-between\">\n <h6 className=\"font-bold\">{role.name}</h6>\n </div>\n <p className=\"mt-2\">{role.description}</p>\n <div className=\"flex items-center justify-between mt-4\">\n <div className=\"flex flex-col\">\n <div className=\"-ml-2\">\n <UsersAvatarGroup\n avatarProps={{\n className:\n 'cursor-pointer -mr-2 border-2 border-white dark:border-500',\n size: 28,\n }}\n avatarGroupProps={{ maxCount: 3 }}\n chained={false}\n users={role.users}\n />\n </div>\n </div>\n <Button\n variant=\"plain\"\n size=\"sm\"\n className=\"py-0 h-auto\"\n icon={<TbArrowRight />}\n iconAlignment=\"end\"\n onClick={() => handleEditRoleClick(role.id)}\n >\n Edit role\n </Button>\n </div>\n </div>\n ))}\n </div>\n )\n}\n\nexport default RolesPermissionsGroups\n"],"names":["RolesPermissionsGroups","roleList","setSelectedRole","setRoleDialog","useRolePermissionsStore","handleEditRoleClick","id","role","jsxs","jsx","UsersAvatarGroup","Button","TbArrowRight"],"mappings":";;;;;;AAUA,MAAMA,IAAyB,CAAC,EAAE,UAAAC,QAA4C;AAC1E,QAAM,EAAE,iBAAAC,GAAiB,eAAAC,EAAA,IAAkBC,EAAA,GAErCC,IAAsB,CAACC,MAAe;AACxC,IAAAJ,EAAgBI,CAAE,GAClBH,EAAc;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IAAA,CACT;AAAA,EACL;AAEA,2BACK,OAAA,EAAI,WAAU,uEACV,UAAAF,EAAS,IAAI,CAACM,MACX,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MAEG,WAAU;AAAA,MAEV,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,qCACX,UAAA,gBAAAA,EAAC,QAAG,WAAU,aAAa,UAAAF,EAAK,KAAA,CAAK,EAAA,CACzC;AAAA,QACA,gBAAAE,EAAC,KAAA,EAAE,WAAU,QAAQ,YAAK,aAAY;AAAA,QACtC,gBAAAD,EAAC,OAAA,EAAI,WAAU,0CACX,UAAA;AAAA,UAAA,gBAAAC,EAAC,SAAI,WAAU,iBACX,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,SACX,UAAA,gBAAAA;AAAA,YAACC;AAAA,YAAA;AAAA,cACG,aAAa;AAAA,gBACT,WACI;AAAA,gBACJ,MAAM;AAAA,cAAA;AAAA,cAEV,kBAAkB,EAAE,UAAU,EAAA;AAAA,cAC9B,SAAS;AAAA,cACT,OAAOH,EAAK;AAAA,YAAA;AAAA,UAAA,GAEpB,EAAA,CACJ;AAAA,UACA,gBAAAE;AAAA,YAACE;AAAA,YAAA;AAAA,cACG,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAU;AAAA,cACV,wBAAOC,GAAA,EAAa;AAAA,cACpB,eAAc;AAAA,cACd,SAAS,MAAMP,EAAoBE,EAAK,EAAE;AAAA,cAC7C,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAhCKA,EAAK;AAAA,EAAA,CAkCjB,GACL;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesPermissionsUserAction.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserAction.tsx"],"sourcesContent":["import Badge from '@/components/ui/Badge'\nimport Select, { Option as DefaultOption } from '@/components/ui/Select'\nimport DebounceInput from '@/components/shared/DebounceInput'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport { TbSearch } from 'react-icons/tb'\nimport { components } from 'react-select'\nimport type { ControlProps, OptionProps } from 'react-select'\n\nconst { Control } = components\n\ntype StatusOption = {\n label: string\n value: string\n dotBackground: string\n}\n\ntype RoleOption = {\n label: string\n value: string\n}\n\nconst statusOptions = [\n { label: 'All', value: '', dotBackground: 'bg-gray-200' },\n { label: 'Active', value: 'active', dotBackground: 'bg-success' },\n { label: 'Blocked', value: 'blocked', dotBackground: 'bg-error' },\n]\n\nconst roleOptions = [\n { label: 'All', value: '' },\n { label: 'Admin', value: 'admin' },\n { label: 'Supervisor', value: 'supervisor' },\n { label: 'Support', value: 'support' },\n { label: 'User', value: 'user' },\n { label: 'Auditor', value: 'auditor' },\n { label: 'Guest', value: 'guest' },\n]\n\nconst StatusSelectOption = (props: OptionProps<StatusOption>) => {\n return (\n <DefaultOption<StatusOption>\n {...props}\n customLabel={(data, label) => (\n <span className=\"flex items-center gap-2\">\n <Badge className={data.dotBackground} />\n <span>{label}</span>\n </span>\n )}\n />\n )\n}\n\nconst RoleSelectOption = (props: OptionProps<RoleOption>) => {\n return (\n <DefaultOption<RoleOption>\n {...props}\n customLabel={(_, label) => <span>{label}</span>}\n />\n )\n}\n\nconst CustomControl = ({ children, ...props }: ControlProps<StatusOption>) => {\n const selected = props.getValue()[0]\n return (\n <Control {...props}>\n {selected && (\n <div className=\"flex ml-3\">\n <Badge className={selected.dotBackground} />\n </div>\n )}\n {children}\n </Control>\n )\n}\n\nconst RolesPermissionsUserAction = () => {\n const { tableData, filterData, setFilterData, setTableData } =\n useRolePermissionsStore()\n\n const handleStatusChange = (status: string) => {\n setFilterData({ ...filterData, status })\n }\n\n const handleRoleChange = (role: string) => {\n setFilterData({ ...filterData, role })\n }\n\n const handleInputChange = (query: string) => {\n setTableData({ ...tableData, query })\n }\n\n return (\n <div className=\"flex items-center justify-between\">\n <DebounceInput\n className=\"max-w-[300px]\"\n placeholder=\"Search...\"\n type=\"text\"\n size=\"sm\"\n prefix={<TbSearch className=\"text-lg\" />}\n onChange={(e) => handleInputChange(e.target.value)}\n />\n <div className=\"flex items-center gap-2\">\n <Select<StatusOption, false>\n className=\"min-w-[150px] w-full\"\n components={{\n Control: CustomControl,\n Option: StatusSelectOption,\n }}\n options={statusOptions}\n size=\"sm\"\n placeholder=\"Status\"\n defaultValue={{\n label: 'All',\n value: '',\n dotBackground: 'bg-gray-200',\n }}\n onChange={(option) =>\n handleStatusChange(option?.value || '')\n }\n />\n <Select<RoleOption>\n className=\"min-w-[150px] w-full\"\n components={{\n Option: RoleSelectOption,\n }}\n options={roleOptions}\n size=\"sm\"\n placeholder=\"Role\"\n defaultValue={{ label: 'All', value: '' }}\n onChange={(option) => handleRoleChange(option?.value || '')}\n />\n </div>\n </div>\n )\n}\n\nexport default RolesPermissionsUserAction\n"],"names":["Control","components","statusOptions","roleOptions","StatusSelectOption","props","jsx","DefaultOption","data","label","jsxs","Badge","RoleSelectOption","_","CustomControl","children","selected","RolesPermissionsUserAction","tableData","filterData","setFilterData","setTableData","useRolePermissionsStore","handleStatusChange","status","handleRoleChange","role","handleInputChange","query","DebounceInput","TbSearch","Select","option"],"mappings":";;;;;;;;;;AAQA,MAAM,EAAE,SAAAA,MAAYC,GAadC,IAAgB;AAAA,EAClB,EAAE,OAAO,OAAO,OAAO,IAAI,eAAe,cAAA;AAAA,EAC1C,EAAE,OAAO,UAAU,OAAO,UAAU,eAAe,aAAA;AAAA,EACnD,EAAE,OAAO,WAAW,OAAO,WAAW,eAAe,WAAA;AACzD,GAEMC,IAAc;AAAA,EAChB,EAAE,OAAO,OAAO,OAAO,GAAA;AAAA,EACvB,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,EACzB,EAAE,OAAO,cAAc,OAAO,aAAA;AAAA,EAC9B,EAAE,OAAO,WAAW,OAAO,UAAA;AAAA,EAC3B,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,EACxB,EAAE,OAAO,WAAW,OAAO,UAAA;AAAA,EAC3B,EAAE,OAAO,SAAS,OAAO,QAAA;AAC7B,GAEMC,IAAqB,CAACC,MAEpB,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACI,GAAGF;AAAA,IACJ,aAAa,CAACG,GAAMC,MAChB,gBAAAC,EAAC,QAAA,EAAK,WAAU,2BACZ,UAAA;AAAA,MAAA,gBAAAJ,EAACK,GAAA,EAAM,WAAWH,EAAK,cAAA,CAAe;AAAA,MACtC,gBAAAF,EAAC,UAAM,UAAAG,EAAA,CAAM;AAAA,IAAA,EAAA,CACjB;AAAA,EAAA;AAAA,GAMVG,IAAmB,CAACP,MAElB,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACI,GAAGF;AAAA,IACJ,aAAa,CAACQ,GAAGJ,MAAU,gBAAAH,EAAC,UAAM,UAAAG,EAAA,CAAM;AAAA,EAAA;AAAA,GAK9CK,IAAgB,CAAC,EAAE,UAAAC,GAAU,GAAGV,QAAwC;AAC1E,QAAMW,IAAWX,EAAM,SAAA,EAAW,CAAC;AACnC,SACI,gBAAAK,EAACV,GAAA,EAAS,GAAGK,GACR,UAAA;AAAA,IAAAW,KACG,gBAAAV,EAAC,SAAI,WAAU,aACX,4BAACK,GAAA,EAAM,WAAWK,EAAS,cAAA,CAAe,EAAA,CAC9C;AAAA,IAEHD;AAAA,EAAA,GACL;AAER,GAEME,IAA6B,MAAM;AACrC,QAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,eAAAC,GAAe,cAAAC,EAAA,IAC1CC,EAAA,GAEEC,IAAqB,CAACC,MAAmB;AAC3C,IAAAJ,EAAc,EAAE,GAAGD,GAAY,QAAAK,GAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"RolesPermissionsUserAction.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserAction.tsx"],"sourcesContent":["import Badge from '@/components/ui/Badge'\nimport Select, { Option as DefaultOption } from '@/components/ui/Select'\nimport DebounceInput from '@/components/shared/DebounceInput'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport { TbSearch } from 'react-icons/tb'\nimport { components } from 'react-select'\nimport type { ControlProps, OptionProps } from 'react-select'\n\nconst { Control } = components\n\ntype StatusOption = {\n label: string\n value: string\n dotBackground: string\n}\n\ntype RoleOption = {\n label: string\n value: string\n}\n\nconst statusOptions = [\n { label: 'All', value: '', dotBackground: 'bg-gray-200' },\n { label: 'Active', value: 'active', dotBackground: 'bg-success' },\n { label: 'Blocked', value: 'blocked', dotBackground: 'bg-error' },\n]\n\nconst roleOptions = [\n { label: 'All', value: '' },\n { label: 'Admin', value: 'admin' },\n { label: 'Supervisor', value: 'supervisor' },\n { label: 'Support', value: 'support' },\n { label: 'User', value: 'user' },\n { label: 'Auditor', value: 'auditor' },\n { label: 'Guest', value: 'guest' },\n]\n\nconst StatusSelectOption = (props: OptionProps<StatusOption>) => {\n return (\n <DefaultOption<StatusOption>\n {...props}\n customLabel={(data, label) => (\n <span className=\"flex items-center gap-2\">\n <Badge className={data.dotBackground} />\n <span>{label}</span>\n </span>\n )}\n />\n )\n}\n\nconst RoleSelectOption = (props: OptionProps<RoleOption>) => {\n return (\n <DefaultOption<RoleOption>\n {...props}\n customLabel={(_, label) => <span>{label}</span>}\n />\n )\n}\n\nconst CustomControl = ({ children, ...props }: ControlProps<StatusOption>) => {\n const selected = props.getValue()[0]\n return (\n <Control {...props}>\n {selected && (\n <div className=\"flex ml-3\">\n <Badge className={selected.dotBackground} />\n </div>\n )}\n {children}\n </Control>\n )\n}\n\nconst RolesPermissionsUserAction = () => {\n const { tableData, filterData, setFilterData, setTableData } =\n useRolePermissionsStore()\n\n const handleStatusChange = (status: string) => {\n setFilterData({ ...filterData, status })\n }\n\n const handleRoleChange = (role: string) => {\n setFilterData({ ...filterData, role })\n }\n\n const handleInputChange = (query: string) => {\n setTableData({ ...tableData, query })\n }\n\n return (\n <div className=\"flex items-center justify-between\">\n <DebounceInput\n className=\"max-w-[300px]\"\n placeholder=\"Search...\"\n type=\"text\"\n size=\"sm\"\n prefix={<TbSearch className=\"text-lg\" />}\n onChange={(e) => handleInputChange(e.target.value)}\n />\n <div className=\"flex items-center gap-2\">\n <Select<StatusOption, false>\n className=\"min-w-[150px] w-full\"\n components={{\n Control: CustomControl,\n Option: StatusSelectOption,\n }}\n options={statusOptions}\n size=\"sm\"\n placeholder=\"Status\"\n defaultValue={{\n label: 'All',\n value: '',\n dotBackground: 'bg-gray-200',\n }}\n onChange={(option) =>\n handleStatusChange(option?.value || '')\n }\n />\n <Select<RoleOption>\n className=\"min-w-[150px] w-full\"\n components={{\n Option: RoleSelectOption,\n }}\n options={roleOptions}\n size=\"sm\"\n placeholder=\"Role\"\n defaultValue={{ label: 'All', value: '' }}\n onChange={(option) => handleRoleChange(option?.value || '')}\n />\n </div>\n </div>\n )\n}\n\nexport default RolesPermissionsUserAction\n"],"names":["Control","components","statusOptions","roleOptions","StatusSelectOption","props","jsx","DefaultOption","data","label","jsxs","Badge","RoleSelectOption","_","CustomControl","children","selected","RolesPermissionsUserAction","tableData","filterData","setFilterData","setTableData","useRolePermissionsStore","handleStatusChange","status","handleRoleChange","role","handleInputChange","query","DebounceInput","TbSearch","Select","option"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesPermissionsUserSelected.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserSelected.tsx"],"sourcesContent":["import { useState } from 'react'\nimport StickyFooter from '@/components/shared/StickyFooter'\nimport Button from '@/components/ui/Button'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport { TbChecks } from 'react-icons/tb'\nimport type { MutateRolesPermissionsUsersResponse, Users } from '../types'\n\ntype RolesPermissionsUserSelectedProps = {\n mutate: MutateRolesPermissionsUsersResponse\n userList: Users\n userListTotal: number\n}\n\nconst RolesPermissionsUserSelected = ({\n mutate,\n userList,\n userListTotal,\n}: RolesPermissionsUserSelectedProps) => {\n const { selectedUser, setSelectAllUser } = useRolePermissionsStore()\n\n const [deleteConfirmationOpen, setDeleteConfirmationOpen] = useState(false)\n\n const handleDelete = () => {\n setDeleteConfirmationOpen(true)\n }\n\n const handleCancel = () => {\n setDeleteConfirmationOpen(false)\n }\n\n const handleConfirmDelete = () => {\n const newUserList = userList.filter((user) => {\n return !selectedUser.some((selected) => selected.id === user.id)\n })\n setSelectAllUser([])\n mutate(\n { list: newUserList, total: userListTotal - selectedUser.length },\n false,\n )\n setDeleteConfirmationOpen(false)\n }\n\n return (\n <>\n {selectedUser.length > 0 && (\n <StickyFooter\n className=\"-mx-8 flex items-center justify-between py-4 bg-white dark:bg-gray-800\"\n stickyClass=\"border-t border-gray-200 dark:border-gray-700 px-8\"\n defaultClass=\"container mx-auto px-8 rounded-xl border border-gray-200 dark:border-gray-600 mt-4\"\n >\n <div className=\"container mx-auto\">\n <div className=\"flex items-center justify-between\">\n <span>\n {selectedUser.length > 0 && (\n <span className=\"flex items-center gap-2\">\n <span className=\"text-lg text-primary\">\n <TbChecks />\n </span>\n <span className=\"font-semibold flex items-center gap-1\">\n <span className=\"heading-text\">\n {selectedUser.length} Users\n </span>\n <span>selected</span>\n </span>\n </span>\n )}\n </span>\n\n <div className=\"flex items-center\">\n <Button\n size=\"sm\"\n className=\"ltr:mr-3 rtl:ml-3\"\n type=\"button\"\n customColorClass={() =>\n 'border-error ring-1 ring-error text-error hover:border-error hover:ring-error hover:text-error'\n }\n onClick={handleDelete}\n >\n Delete\n </Button>\n </div>\n </div>\n </div>\n </StickyFooter>\n )}\n <ConfirmDialog\n isOpen={deleteConfirmationOpen}\n type=\"danger\"\n title=\"Remove users\"\n onClose={handleCancel}\n onRequestClose={handleCancel}\n onCancel={handleCancel}\n onConfirm={handleConfirmDelete}\n >\n <p>\n {' '}\n Are you sure you want to remove these users? This action\n can't be undo.{' '}\n </p>\n </ConfirmDialog>\n </>\n )\n}\n\nexport default RolesPermissionsUserSelected\n"],"names":["RolesPermissionsUserSelected","mutate","userList","userListTotal","selectedUser","setSelectAllUser","useRolePermissionsStore","deleteConfirmationOpen","setDeleteConfirmationOpen","useState","handleDelete","handleCancel","handleConfirmDelete","newUserList","user","selected","jsxs","Fragment","jsx","StickyFooter","TbChecks","Button","ConfirmDialog"],"mappings":";;;;;;;;AAcA,MAAMA,IAA+B,CAAC;AAAA,EAClC,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AACJ,MAAyC;AACrC,QAAM,EAAE,cAAAC,GAAc,kBAAAC,EAAA,IAAqBC,EAAA,GAErC,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IAAe,MAAM;AACvB,IAAAF,EAA0B,EAAI;AAAA,
|
|
1
|
+
{"version":3,"file":"RolesPermissionsUserSelected.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserSelected.tsx"],"sourcesContent":["import { useState } from 'react'\nimport StickyFooter from '@/components/shared/StickyFooter'\nimport Button from '@/components/ui/Button'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport { TbChecks } from 'react-icons/tb'\nimport type { MutateRolesPermissionsUsersResponse, Users } from '../types'\n\ntype RolesPermissionsUserSelectedProps = {\n mutate: MutateRolesPermissionsUsersResponse\n userList: Users\n userListTotal: number\n}\n\nconst RolesPermissionsUserSelected = ({\n mutate,\n userList,\n userListTotal,\n}: RolesPermissionsUserSelectedProps) => {\n const { selectedUser, setSelectAllUser } = useRolePermissionsStore()\n\n const [deleteConfirmationOpen, setDeleteConfirmationOpen] = useState(false)\n\n const handleDelete = () => {\n setDeleteConfirmationOpen(true)\n }\n\n const handleCancel = () => {\n setDeleteConfirmationOpen(false)\n }\n\n const handleConfirmDelete = () => {\n const newUserList = userList.filter((user) => {\n return !selectedUser.some((selected) => selected.id === user.id)\n })\n setSelectAllUser([])\n mutate(\n { list: newUserList, total: userListTotal - selectedUser.length },\n false,\n )\n setDeleteConfirmationOpen(false)\n }\n\n return (\n <>\n {selectedUser.length > 0 && (\n <StickyFooter\n className=\"-mx-8 flex items-center justify-between py-4 bg-white dark:bg-gray-800\"\n stickyClass=\"border-t border-gray-200 dark:border-gray-700 px-8\"\n defaultClass=\"container mx-auto px-8 rounded-xl border border-gray-200 dark:border-gray-600 mt-4\"\n >\n <div className=\"container mx-auto\">\n <div className=\"flex items-center justify-between\">\n <span>\n {selectedUser.length > 0 && (\n <span className=\"flex items-center gap-2\">\n <span className=\"text-lg text-primary\">\n <TbChecks />\n </span>\n <span className=\"font-semibold flex items-center gap-1\">\n <span className=\"heading-text\">\n {selectedUser.length} Users\n </span>\n <span>selected</span>\n </span>\n </span>\n )}\n </span>\n\n <div className=\"flex items-center\">\n <Button\n size=\"sm\"\n className=\"ltr:mr-3 rtl:ml-3\"\n type=\"button\"\n customColorClass={() =>\n 'border-error ring-1 ring-error text-error hover:border-error hover:ring-error hover:text-error'\n }\n onClick={handleDelete}\n >\n Delete\n </Button>\n </div>\n </div>\n </div>\n </StickyFooter>\n )}\n <ConfirmDialog\n isOpen={deleteConfirmationOpen}\n type=\"danger\"\n title=\"Remove users\"\n onClose={handleCancel}\n onRequestClose={handleCancel}\n onCancel={handleCancel}\n onConfirm={handleConfirmDelete}\n >\n <p>\n {' '}\n Are you sure you want to remove these users? This action\n can't be undo.{' '}\n </p>\n </ConfirmDialog>\n </>\n )\n}\n\nexport default RolesPermissionsUserSelected\n"],"names":["RolesPermissionsUserSelected","mutate","userList","userListTotal","selectedUser","setSelectAllUser","useRolePermissionsStore","deleteConfirmationOpen","setDeleteConfirmationOpen","useState","handleDelete","handleCancel","handleConfirmDelete","newUserList","user","selected","jsxs","Fragment","jsx","StickyFooter","TbChecks","Button","ConfirmDialog"],"mappings":";;;;;;;;AAcA,MAAMA,IAA+B,CAAC;AAAA,EAClC,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AACJ,MAAyC;AACrC,QAAM,EAAE,cAAAC,GAAc,kBAAAC,EAAA,IAAqBC,EAAA,GAErC,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IAAe,MAAM;AACvB,IAAAF,EAA0B,EAAI;AAAA,EAClC,GAEMG,IAAe,MAAM;AACvB,IAAAH,EAA0B,EAAK;AAAA,EACnC,GAEMI,IAAsB,MAAM;AAC9B,UAAMC,IAAcX,EAAS,OAAO,CAACY,MAC1B,CAACV,EAAa,KAAK,CAACW,MAAaA,EAAS,OAAOD,EAAK,EAAE,CAClE;AACD,IAAAT,EAAiB,CAAA,CAAE,GACnBJ;AAAA,MACI,EAAE,MAAMY,GAAa,OAAOV,IAAgBC,EAAa,OAAA;AAAA,MACzD;AAAA,IAAA,GAEJI,EAA0B,EAAK;AAAA,EACnC;AAEA,SACI,gBAAAQ,EAAAC,GAAA,EACK,UAAA;AAAA,IAAAb,EAAa,SAAS,KACnB,gBAAAc;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,aAAY;AAAA,QACZ,cAAa;AAAA,QAEb,4BAAC,OAAA,EAAI,WAAU,qBACX,UAAA,gBAAAH,EAAC,OAAA,EAAI,WAAU,qCACX,UAAA;AAAA,UAAA,gBAAAE,EAAC,UACI,UAAAd,EAAa,SAAS,KACnB,gBAAAY,EAAC,QAAA,EAAK,WAAU,2BACZ,UAAA;AAAA,YAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,wBACZ,UAAA,gBAAAA,EAACE,KAAS,GACd;AAAA,YACA,gBAAAJ,EAAC,QAAA,EAAK,WAAU,yCACZ,UAAA;AAAA,cAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,gBACX,UAAA;AAAA,gBAAAZ,EAAa;AAAA,gBAAO;AAAA,cAAA,GACzB;AAAA,cACA,gBAAAc,EAAC,UAAK,UAAA,WAAA,CAAQ;AAAA,YAAA,EAAA,CAClB;AAAA,UAAA,EAAA,CACJ,EAAA,CAER;AAAA,UAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qBACX,UAAA,gBAAAA;AAAA,YAACG;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,WAAU;AAAA,cACV,MAAK;AAAA,cACL,kBAAkB,MACd;AAAA,cAEJ,SAASX;AAAA,cACZ,UAAA;AAAA,YAAA;AAAA,UAAA,EAED,CACJ;AAAA,QAAA,EAAA,CACJ,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAGR,gBAAAQ;AAAA,MAACI;AAAA,MAAA;AAAA,QACG,QAAQf;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASI;AAAA,QACT,gBAAgBA;AAAA,QAChB,UAAUA;AAAA,QACV,WAAWC;AAAA,QAEX,4BAAC,KAAA,EACI,UAAA;AAAA,UAAA;AAAA,UAAI;AAAA,UAEe;AAAA,QAAA,EAAA,CACxB;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesPermissionsUserTable.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserTable.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Tag from '@/components/ui/Tag'\nimport Dropdown from '@/components/ui/Dropdown'\nimport DataTable from '@/components/shared/DataTable'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport dayjs from 'dayjs'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { TbChevronDown } from 'react-icons/tb'\nimport type {\n User,\n Users,\n MutateRolesPermissionsUsersResponse,\n Roles,\n} from '../types'\nimport type { OnSortParam, ColumnDef, Row } from '@/components/shared/DataTable'\nimport type { TableQueries } from '@/@types/common'\n\ntype RolesPermissionsUserTableProps = {\n isLoading: boolean\n userList: Users\n roleList: Roles\n userListTotal: number\n mutate: MutateRolesPermissionsUsersResponse\n}\n\nconst statusColor: Record<string, string> = {\n active: 'bg-emerald-200 dark:bg-emerald-200 text-gray-900 dark:text-gray-900',\n blocked: 'bg-red-200 dark:bg-red-200 text-gray-900 dark:text-gray-900',\n}\n\nconst RolesPermissionsUserTable = (props: RolesPermissionsUserTableProps) => {\n const { userList, userListTotal, isLoading, roleList, mutate } = props\n\n const {\n tableData,\n selectedUser,\n setTableData,\n setSelectedUser,\n setSelectAllUser,\n } = useRolePermissionsStore()\n\n const handleSetTableData = (data: TableQueries) => {\n setTableData(data)\n if (selectedUser.length > 0) {\n setSelectAllUser([])\n }\n }\n\n const handlePaginationChange = (page: number) => {\n const newTableData = cloneDeep(tableData)\n newTableData.pageIndex = page\n handleSetTableData(newTableData)\n }\n\n const handleSelectChange = (value: number) => {\n const newTableData = cloneDeep(tableData)\n newTableData.pageSize = Number(value)\n newTableData.pageIndex = 1\n handleSetTableData(newTableData)\n }\n\n const handleSort = (sort: OnSortParam) => {\n const newTableData = cloneDeep(tableData)\n newTableData.sort = sort\n handleSetTableData(newTableData)\n }\n\n const handleRowSelect = (checked: boolean, row: User) => {\n setSelectedUser(checked, row)\n }\n\n const handleAllRowSelect = (checked: boolean, rows: Row<User>[]) => {\n if (checked) {\n const originalRows = rows.map((row) => row.original)\n setSelectAllUser(originalRows)\n } else {\n setSelectAllUser([])\n }\n }\n\n const handleRoleChange = (role: string, id: string) => {\n const newUserList = structuredClone(userList).map((user) => {\n if (user.id === id) {\n user.role = role\n }\n\n return user\n })\n\n mutate(\n { list: newUserList, total: userListTotal - selectedUser.length },\n false,\n )\n }\n\n const columns: ColumnDef<User>[] = useMemo(\n () => [\n {\n header: 'Name',\n accessorKey: 'name',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center gap-2\">\n <Avatar size={40} shape=\"circle\" src={row.img} />\n <div>\n <div className=\"font-bold heading-text\">\n {row.name}\n </div>\n <div>{row.email}</div>\n </div>\n </div>\n )\n },\n },\n {\n header: 'Status',\n accessorKey: 'status',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center\">\n <Tag className={statusColor[row.status]}>\n <span className=\"capitalize\">{row.status}</span>\n </Tag>\n </div>\n )\n },\n },\n {\n header: 'Last online',\n accessorKey: 'lastOnline',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex flex-col\">\n <span className=\"font-semibold\">\n {dayjs\n .unix(row.lastOnline)\n .format('MMMM, D YYYY')}\n </span>\n <small>\n {dayjs.unix(row.lastOnline).format('hh:mm A')}\n </small>\n </div>\n )\n },\n },\n {\n header: 'Role',\n accessorKey: 'role',\n size: 70,\n cell: (props) => {\n const row = props.row.original\n return (\n <Dropdown\n renderTitle={\n <div\n className=\"inline-flex items-center gap-2 py-2 px-4 rounded-lg hover:bg-gray-100 hover:dark:bg-gray-700 cursor-pointer\"\n role=\"button\"\n >\n <span className=\"font-bold heading-text\">\n {\n roleList.find(\n (role) => role.id === row.role,\n )?.name\n }\n </span>\n <TbChevronDown />\n </div>\n }\n >\n {roleList\n .filter((role) => role.id !== row.role)\n .map((role) => (\n <Dropdown.Item\n key={role.id}\n eventKey={role.id}\n onClick={() =>\n handleRoleChange(role.id, row.id)\n }\n >\n {role.name}\n </Dropdown.Item>\n ))}\n </Dropdown>\n )\n },\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [roleList, userList],\n )\n\n return (\n <DataTable\n selectable\n columns={columns}\n data={userList}\n noData={!isLoading && userList.length === 0}\n skeletonAvatarColumns={[0]}\n skeletonAvatarProps={{ width: 28, height: 28 }}\n loading={isLoading}\n pagingData={{\n total: userListTotal,\n pageIndex: tableData.pageIndex as number,\n pageSize: tableData.pageSize as number,\n }}\n checkboxChecked={(row) =>\n selectedUser.some((selected) => selected.id === row.id)\n }\n hoverable={false}\n onPaginationChange={handlePaginationChange}\n onSelectChange={handleSelectChange}\n onSort={handleSort}\n onCheckBoxChange={handleRowSelect}\n onIndeterminateCheckBoxChange={handleAllRowSelect}\n />\n )\n}\n\nexport default RolesPermissionsUserTable\n"],"names":["statusColor","RolesPermissionsUserTable","props","userList","userListTotal","isLoading","roleList","mutate","tableData","selectedUser","setTableData","setSelectedUser","setSelectAllUser","useRolePermissionsStore","handleSetTableData","data","handlePaginationChange","page","newTableData","cloneDeep","handleSelectChange","value","handleSort","sort","handleRowSelect","checked","row","handleAllRowSelect","rows","originalRows","handleRoleChange","role","id","newUserList","user","columns","useMemo","jsxs","jsx","Avatar","Tag","dayjs","Dropdown","_a","TbChevronDown","DataTable","selected"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RolesPermissionsUserTable.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserTable.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Tag from '@/components/ui/Tag'\nimport Dropdown from '@/components/ui/Dropdown'\nimport DataTable from '@/components/shared/DataTable'\nimport { useRolePermissionsStore } from '../store/rolePermissionsStore'\nimport dayjs from 'dayjs'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { TbChevronDown } from 'react-icons/tb'\nimport type {\n User,\n Users,\n MutateRolesPermissionsUsersResponse,\n Roles,\n} from '../types'\nimport type { OnSortParam, ColumnDef, Row } from '@/components/shared/DataTable'\nimport type { TableQueries } from '@/@types/common'\n\ntype RolesPermissionsUserTableProps = {\n isLoading: boolean\n userList: Users\n roleList: Roles\n userListTotal: number\n mutate: MutateRolesPermissionsUsersResponse\n}\n\nconst statusColor: Record<string, string> = {\n active: 'bg-emerald-200 dark:bg-emerald-200 text-gray-900 dark:text-gray-900',\n blocked: 'bg-red-200 dark:bg-red-200 text-gray-900 dark:text-gray-900',\n}\n\nconst RolesPermissionsUserTable = (props: RolesPermissionsUserTableProps) => {\n const { userList, userListTotal, isLoading, roleList, mutate } = props\n\n const {\n tableData,\n selectedUser,\n setTableData,\n setSelectedUser,\n setSelectAllUser,\n } = useRolePermissionsStore()\n\n const handleSetTableData = (data: TableQueries) => {\n setTableData(data)\n if (selectedUser.length > 0) {\n setSelectAllUser([])\n }\n }\n\n const handlePaginationChange = (page: number) => {\n const newTableData = cloneDeep(tableData)\n newTableData.pageIndex = page\n handleSetTableData(newTableData)\n }\n\n const handleSelectChange = (value: number) => {\n const newTableData = cloneDeep(tableData)\n newTableData.pageSize = Number(value)\n newTableData.pageIndex = 1\n handleSetTableData(newTableData)\n }\n\n const handleSort = (sort: OnSortParam) => {\n const newTableData = cloneDeep(tableData)\n newTableData.sort = sort\n handleSetTableData(newTableData)\n }\n\n const handleRowSelect = (checked: boolean, row: User) => {\n setSelectedUser(checked, row)\n }\n\n const handleAllRowSelect = (checked: boolean, rows: Row<User>[]) => {\n if (checked) {\n const originalRows = rows.map((row) => row.original)\n setSelectAllUser(originalRows)\n } else {\n setSelectAllUser([])\n }\n }\n\n const handleRoleChange = (role: string, id: string) => {\n const newUserList = structuredClone(userList).map((user) => {\n if (user.id === id) {\n user.role = role\n }\n\n return user\n })\n\n mutate(\n { list: newUserList, total: userListTotal - selectedUser.length },\n false,\n )\n }\n\n const columns: ColumnDef<User>[] = useMemo(\n () => [\n {\n header: 'Name',\n accessorKey: 'name',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center gap-2\">\n <Avatar size={40} shape=\"circle\" src={row.img} />\n <div>\n <div className=\"font-bold heading-text\">\n {row.name}\n </div>\n <div>{row.email}</div>\n </div>\n </div>\n )\n },\n },\n {\n header: 'Status',\n accessorKey: 'status',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center\">\n <Tag className={statusColor[row.status]}>\n <span className=\"capitalize\">{row.status}</span>\n </Tag>\n </div>\n )\n },\n },\n {\n header: 'Last online',\n accessorKey: 'lastOnline',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex flex-col\">\n <span className=\"font-semibold\">\n {dayjs\n .unix(row.lastOnline)\n .format('MMMM, D YYYY')}\n </span>\n <small>\n {dayjs.unix(row.lastOnline).format('hh:mm A')}\n </small>\n </div>\n )\n },\n },\n {\n header: 'Role',\n accessorKey: 'role',\n size: 70,\n cell: (props) => {\n const row = props.row.original\n return (\n <Dropdown\n renderTitle={\n <div\n className=\"inline-flex items-center gap-2 py-2 px-4 rounded-lg hover:bg-gray-100 hover:dark:bg-gray-700 cursor-pointer\"\n role=\"button\"\n >\n <span className=\"font-bold heading-text\">\n {\n roleList.find(\n (role) => role.id === row.role,\n )?.name\n }\n </span>\n <TbChevronDown />\n </div>\n }\n >\n {roleList\n .filter((role) => role.id !== row.role)\n .map((role) => (\n <Dropdown.Item\n key={role.id}\n eventKey={role.id}\n onClick={() =>\n handleRoleChange(role.id, row.id)\n }\n >\n {role.name}\n </Dropdown.Item>\n ))}\n </Dropdown>\n )\n },\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [roleList, userList],\n )\n\n return (\n <DataTable\n selectable\n columns={columns}\n data={userList}\n noData={!isLoading && userList.length === 0}\n skeletonAvatarColumns={[0]}\n skeletonAvatarProps={{ width: 28, height: 28 }}\n loading={isLoading}\n pagingData={{\n total: userListTotal,\n pageIndex: tableData.pageIndex as number,\n pageSize: tableData.pageSize as number,\n }}\n checkboxChecked={(row) =>\n selectedUser.some((selected) => selected.id === row.id)\n }\n hoverable={false}\n onPaginationChange={handlePaginationChange}\n onSelectChange={handleSelectChange}\n onSort={handleSort}\n onCheckBoxChange={handleRowSelect}\n onIndeterminateCheckBoxChange={handleAllRowSelect}\n />\n )\n}\n\nexport default RolesPermissionsUserTable\n"],"names":["statusColor","RolesPermissionsUserTable","props","userList","userListTotal","isLoading","roleList","mutate","tableData","selectedUser","setTableData","setSelectedUser","setSelectAllUser","useRolePermissionsStore","handleSetTableData","data","handlePaginationChange","page","newTableData","cloneDeep","handleSelectChange","value","handleSort","sort","handleRowSelect","checked","row","handleAllRowSelect","rows","originalRows","handleRoleChange","role","id","newUserList","user","columns","useMemo","jsxs","jsx","Avatar","Tag","dayjs","Dropdown","_a","TbChevronDown","DataTable","selected"],"mappings":"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"}
|
package/dist/@ecme/views/concepts/accounts/RolesPermissions/store/rolePermissionsStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolePermissionsStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/store/rolePermissionsStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { TableQueries } from '@/@types/common'\nimport type { User, Users, Filter } from '../types'\n\ntype Dialog = {\n type: '' | 'edit' | 'new'\n open: boolean\n}\n\nexport const initialTableData: TableQueries = {\n pageIndex: 1,\n pageSize: 10,\n query: '',\n sort: {\n order: '',\n key: '',\n },\n}\n\nexport const initialFilterData: Filter = {\n status: '',\n role: '',\n}\n\nexport type RolePermissionsState = {\n tableData: TableQueries\n filterData: Filter\n selectedUser: Users\n selectedRole: string\n roleDialog: Dialog\n}\n\ntype RolePermissionsAction = {\n setFilterData: (payload: Filter) => void\n setTableData: (payload: TableQueries) => void\n setSelectedUser: (checked: boolean, customer: User) => void\n setSelectAllUser: (payload: Users) => void\n setSelectedRole: (payload: string) => void\n setRoleDialog: (payload: Dialog) => void\n}\n\nconst initialState: RolePermissionsState = {\n tableData: initialTableData,\n filterData: initialFilterData,\n selectedUser: [],\n selectedRole: '',\n roleDialog: {\n type: '',\n open: false,\n },\n}\n\nexport const useRolePermissionsStore = create<\n RolePermissionsState & RolePermissionsAction\n>((set) => ({\n ...initialState,\n setTableData: (payload) => set(() => ({ tableData: payload })),\n setFilterData: (payload) => set(() => ({ filterData: payload })),\n setSelectedUser: (checked, row) =>\n set((state) => {\n const prevData = state.selectedUser\n if (checked) {\n return { selectedUser: [...prevData, ...[row]] }\n } else {\n if (prevData.some((prevUser) => row.id === prevUser.id)) {\n return {\n selectedUser: prevData.filter(\n (prevUser) => prevUser.id !== row.id,\n ),\n }\n }\n return { selectedUser: prevData }\n }\n }),\n setSelectAllUser: (payload) => set(() => ({ selectedUser: payload })),\n setSelectedRole: (payload) => set(() => ({ selectedRole: payload })),\n setRoleDialog: (payload) => set(() => ({ roleDialog: payload })),\n}))\n"],"names":["initialTableData","initialFilterData","initialState","useRolePermissionsStore","create","set","payload","checked","row","state","prevData","prevUser"],"mappings":";AASO,MAAMA,IAAiC;AAAA,EAC1C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,IACF,OAAO;AAAA,IACP,KAAK;AAAA,EAAA;AAEb,GAEaC,IAA4B;AAAA,EACrC,QAAQ;AAAA,EACR,MAAM;AACV,GAmBMC,IAAqC;AAAA,EACvC,WAAWF;AAAA,EACX,YAAYC;AAAA,EACZ,cAAc,CAAA;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAEd,GAEaE,IAA0BC,EAErC,CAACC,OAAS;AAAA,EACR,GAAGH;AAAA,EACH,cAAc,CAACI,MAAYD,EAAI,OAAO,EAAE,WAAWC,IAAU;AAAA,EAC7D,eAAe,CAACA,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AAAA,EAC/D,iBAAiB,CAACC,GAASC,MACvBH,EAAI,CAACI,MAAU;AACX,UAAMC,IAAWD,EAAM;AACvB,WAAIF,IACO,EAAE,cAAc,CAAC,GAAGG,GAAcF,CAAI,EAAA,IAEzCE,EAAS,KAAK,CAACC,MAAaH,EAAI,OAAOG,EAAS,EAAE,IAC3C;AAAA,MACH,cAAcD,EAAS;AAAA,QACnB,CAACC,MAAaA,EAAS,OAAOH,EAAI;AAAA,MAAA;AAAA,IACtC,IAGD,EAAE,cAAcE,EAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"rolePermissionsStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/RolesPermissions/store/rolePermissionsStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { TableQueries } from '@/@types/common'\nimport type { User, Users, Filter } from '../types'\n\ntype Dialog = {\n type: '' | 'edit' | 'new'\n open: boolean\n}\n\nexport const initialTableData: TableQueries = {\n pageIndex: 1,\n pageSize: 10,\n query: '',\n sort: {\n order: '',\n key: '',\n },\n}\n\nexport const initialFilterData: Filter = {\n status: '',\n role: '',\n}\n\nexport type RolePermissionsState = {\n tableData: TableQueries\n filterData: Filter\n selectedUser: Users\n selectedRole: string\n roleDialog: Dialog\n}\n\ntype RolePermissionsAction = {\n setFilterData: (payload: Filter) => void\n setTableData: (payload: TableQueries) => void\n setSelectedUser: (checked: boolean, customer: User) => void\n setSelectAllUser: (payload: Users) => void\n setSelectedRole: (payload: string) => void\n setRoleDialog: (payload: Dialog) => void\n}\n\nconst initialState: RolePermissionsState = {\n tableData: initialTableData,\n filterData: initialFilterData,\n selectedUser: [],\n selectedRole: '',\n roleDialog: {\n type: '',\n open: false,\n },\n}\n\nexport const useRolePermissionsStore = create<\n RolePermissionsState & RolePermissionsAction\n>((set) => ({\n ...initialState,\n setTableData: (payload) => set(() => ({ tableData: payload })),\n setFilterData: (payload) => set(() => ({ filterData: payload })),\n setSelectedUser: (checked, row) =>\n set((state) => {\n const prevData = state.selectedUser\n if (checked) {\n return { selectedUser: [...prevData, ...[row]] }\n } else {\n if (prevData.some((prevUser) => row.id === prevUser.id)) {\n return {\n selectedUser: prevData.filter(\n (prevUser) => prevUser.id !== row.id,\n ),\n }\n }\n return { selectedUser: prevData }\n }\n }),\n setSelectAllUser: (payload) => set(() => ({ selectedUser: payload })),\n setSelectedRole: (payload) => set(() => ({ selectedRole: payload })),\n setRoleDialog: (payload) => set(() => ({ roleDialog: payload })),\n}))\n"],"names":["initialTableData","initialFilterData","initialState","useRolePermissionsStore","create","set","payload","checked","row","state","prevData","prevUser"],"mappings":";AASO,MAAMA,IAAiC;AAAA,EAC1C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,IACF,OAAO;AAAA,IACP,KAAK;AAAA,EAAA;AAEb,GAEaC,IAA4B;AAAA,EACrC,QAAQ;AAAA,EACR,MAAM;AACV,GAmBMC,IAAqC;AAAA,EACvC,WAAWF;AAAA,EACX,YAAYC;AAAA,EACZ,cAAc,CAAA;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAEd,GAEaE,IAA0BC,EAErC,CAACC,OAAS;AAAA,EACR,GAAGH;AAAA,EACH,cAAc,CAACI,MAAYD,EAAI,OAAO,EAAE,WAAWC,IAAU;AAAA,EAC7D,eAAe,CAACA,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AAAA,EAC/D,iBAAiB,CAACC,GAASC,MACvBH,EAAI,CAACI,MAAU;AACX,UAAMC,IAAWD,EAAM;AACvB,WAAIF,IACO,EAAE,cAAc,CAAC,GAAGG,GAAcF,CAAI,EAAA,IAEzCE,EAAS,KAAK,CAACC,MAAaH,EAAI,OAAOG,EAAS,EAAE,IAC3C;AAAA,MACH,cAAcD,EAAS;AAAA,QACnB,CAACC,MAAaA,EAAS,OAAOH,EAAI;AAAA,MAAA;AAAA,IACtC,IAGD,EAAE,cAAcE,EAAA;AAAA,EAE/B,CAAC;AAAA,EACL,kBAAkB,CAACJ,MAAYD,EAAI,OAAO,EAAE,cAAcC,IAAU;AAAA,EACpE,iBAAiB,CAACA,MAAYD,EAAI,OAAO,EAAE,cAAcC,IAAU;AAAA,EACnE,eAAe,CAACA,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AACnE,EAAE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BillingHistory.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/BillingHistory.tsx"],"sourcesContent":["import Table from '@/components/ui/Table'\nimport Badge from '@/components/ui/Badge'\nimport {\n useReactTable,\n getCoreRowModel,\n flexRender,\n createColumnHelper,\n} from '@tanstack/react-table'\nimport { NumericFormat } from 'react-number-format'\nimport dayjs from 'dayjs'\n\ntype Bill = {\n id: string\n item: string\n status: string\n amount: number\n date: number\n}\n\ntype BillingHistoryProps = {\n data: Bill[]\n className?: string\n}\n\nconst { Tr, Th, Td, THead, TBody } = Table\n\nconst statusColor: Record<string, string> = {\n paid: 'bg-emerald-500',\n pending: 'bg-amber-400',\n}\n\nconst columnHelper = createColumnHelper<Bill>()\n\nconst columns = [\n columnHelper.accessor('id', {\n header: 'Reference',\n cell: (props) => {\n const row = props.row.original\n return (\n <span className=\"heading-text font-bold cursor-pointer\">\n {row.id}\n </span>\n )\n },\n }),\n columnHelper.accessor('item', {\n header: 'Product',\n cell: (props) => {\n const row = props.row.original\n return <span className=\"font-semibold\">{row.item}</span>\n },\n }),\n columnHelper.accessor('status', {\n header: 'Status',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center gap-2\">\n <Badge className={statusColor[row.status]} />\n <span className=\"heading-text font-bold capitalize\">\n {row.status}\n </span>\n </div>\n )\n },\n }),\n columnHelper.accessor('date', {\n header: 'Date',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center\">\n {dayjs.unix(row.date).format('MM/DD/YYYY')}\n </div>\n )\n },\n }),\n columnHelper.accessor('amount', {\n header: 'Amount',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center\">\n <NumericFormat\n displayType=\"text\"\n value={(Math.round(row.amount * 100) / 100).toFixed(2)}\n prefix={'$'}\n thousandSeparator={true}\n />\n </div>\n )\n },\n }),\n]\n\nconst BillingHistory = ({ data = [], ...rest }: BillingHistoryProps) => {\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n })\n\n return (\n <div {...rest}>\n <Table>\n <THead className=\"!bg-transparent\">\n {table.getHeaderGroups().map((headerGroup) => (\n <Tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <Th\n key={header.id}\n colSpan={header.colSpan}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </Th>\n )\n })}\n </Tr>\n ))}\n </THead>\n <TBody>\n {table.getRowModel().rows.map((row) => {\n return (\n <Tr key={row.id}>\n {row.getVisibleCells().map((cell) => {\n return (\n <Td key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </Td>\n )\n })}\n </Tr>\n )\n })}\n </TBody>\n </Table>\n </div>\n )\n}\n\nexport default BillingHistory\n"],"names":["Tr","Th","Td","THead","TBody","Table","statusColor","columnHelper","createColumnHelper","columns","props","row","jsx","jsxs","Badge","dayjs","NumericFormat","BillingHistory","data","rest","table","useReactTable","getCoreRowModel","headerGroup","header","flexRender","cell"],"mappings":";;;;;;;AAwBA,MAAM,EAAE,IAAAA,GAAI,IAAAC,GAAI,IAAAC,GAAI,OAAAC,GAAO,OAAAC,MAAUC,GAE/BC,IAAsC;AAAA,EACxC,MAAM;AAAA,EACN,SAAS;AACb,GAEMC,IAAeC,EAAA,GAEfC,IAAU;AAAA,EACZF,EAAa,SAAS,MAAM;AAAA,IACxB,QAAQ;AAAA,IACR,MAAM,CAACG,MAAU;AACb,YAAMC,IAAMD,EAAM,IAAI;AACtB,aACI,gBAAAE,EAAC,QAAA,EAAK,WAAU,yCACX,YAAI,IACT;AAAA,
|
|
1
|
+
{"version":3,"file":"BillingHistory.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/BillingHistory.tsx"],"sourcesContent":["import Table from '@/components/ui/Table'\nimport Badge from '@/components/ui/Badge'\nimport {\n useReactTable,\n getCoreRowModel,\n flexRender,\n createColumnHelper,\n} from '@tanstack/react-table'\nimport { NumericFormat } from 'react-number-format'\nimport dayjs from 'dayjs'\n\ntype Bill = {\n id: string\n item: string\n status: string\n amount: number\n date: number\n}\n\ntype BillingHistoryProps = {\n data: Bill[]\n className?: string\n}\n\nconst { Tr, Th, Td, THead, TBody } = Table\n\nconst statusColor: Record<string, string> = {\n paid: 'bg-emerald-500',\n pending: 'bg-amber-400',\n}\n\nconst columnHelper = createColumnHelper<Bill>()\n\nconst columns = [\n columnHelper.accessor('id', {\n header: 'Reference',\n cell: (props) => {\n const row = props.row.original\n return (\n <span className=\"heading-text font-bold cursor-pointer\">\n {row.id}\n </span>\n )\n },\n }),\n columnHelper.accessor('item', {\n header: 'Product',\n cell: (props) => {\n const row = props.row.original\n return <span className=\"font-semibold\">{row.item}</span>\n },\n }),\n columnHelper.accessor('status', {\n header: 'Status',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center gap-2\">\n <Badge className={statusColor[row.status]} />\n <span className=\"heading-text font-bold capitalize\">\n {row.status}\n </span>\n </div>\n )\n },\n }),\n columnHelper.accessor('date', {\n header: 'Date',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center\">\n {dayjs.unix(row.date).format('MM/DD/YYYY')}\n </div>\n )\n },\n }),\n columnHelper.accessor('amount', {\n header: 'Amount',\n cell: (props) => {\n const row = props.row.original\n return (\n <div className=\"flex items-center\">\n <NumericFormat\n displayType=\"text\"\n value={(Math.round(row.amount * 100) / 100).toFixed(2)}\n prefix={'$'}\n thousandSeparator={true}\n />\n </div>\n )\n },\n }),\n]\n\nconst BillingHistory = ({ data = [], ...rest }: BillingHistoryProps) => {\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n })\n\n return (\n <div {...rest}>\n <Table>\n <THead className=\"!bg-transparent\">\n {table.getHeaderGroups().map((headerGroup) => (\n <Tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <Th\n key={header.id}\n colSpan={header.colSpan}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </Th>\n )\n })}\n </Tr>\n ))}\n </THead>\n <TBody>\n {table.getRowModel().rows.map((row) => {\n return (\n <Tr key={row.id}>\n {row.getVisibleCells().map((cell) => {\n return (\n <Td key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </Td>\n )\n })}\n </Tr>\n )\n })}\n </TBody>\n </Table>\n </div>\n )\n}\n\nexport default BillingHistory\n"],"names":["Tr","Th","Td","THead","TBody","Table","statusColor","columnHelper","createColumnHelper","columns","props","row","jsx","jsxs","Badge","dayjs","NumericFormat","BillingHistory","data","rest","table","useReactTable","getCoreRowModel","headerGroup","header","flexRender","cell"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingIntegration.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingIntegration.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Button from '@/components/ui/Button'\nimport Switcher from '@/components/ui/Switcher'\nimport Dialog from '@/components/ui/Dialog'\nimport classNames from '@/utils/classNames'\nimport isLastChild from '@/utils/isLastChild'\nimport useSWR from 'swr'\nimport {\n TbCircleCheckFilled,\n TbRosetteDiscountCheckFilled,\n} from 'react-icons/tb'\nimport { apiGetSettingsIntergration } from '@/services/AccontsService'\nimport type { GetSettingsIntegrationResponse, Integration } from '../types'\n\nconst SettingIntegration = () => {\n const [selectedIntegration, setSelectedIntegration] = useState<{\n integration: Partial<Integration>\n dialogOpen: boolean\n }>({\n integration: {},\n dialogOpen: false,\n })\n\n const { data = [], mutate } = useSWR(\n '/api/settings/integration/',\n () => apiGetSettingsIntergration<GetSettingsIntegrationResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n },\n )\n\n const handleToggle = (bool: boolean, id: string) => {\n const newData = structuredClone(data)\n mutate(\n newData.map((app) => {\n if (app.id === id) {\n app.active = bool\n }\n return app\n }),\n false,\n )\n }\n\n const handleDialogClose = () => {\n setSelectedIntegration({\n integration: {},\n dialogOpen: false,\n })\n }\n\n return (\n <div>\n <h4>Integration</h4>\n <p>Supercharge your workflow using these integration</p>\n <div className=\"mt-4\">\n {data.map((app, index) => (\n <div\n key={app.id}\n className={classNames(\n 'flex items-center justify-between py-6 border-gray-200 dark:border-gray-700',\n !isLastChild(data, index) && 'border-b',\n )}\n >\n <div className=\"flex items-center gap-4\">\n <Avatar\n className=\"bg-transparent dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-700\"\n size={50}\n src={app.img}\n shape=\"round\"\n />\n <div>\n <h6 className=\"font-bold\">{app.name}</h6>\n <span>{app.desc}</span>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"plain\"\n onClick={() =>\n setSelectedIntegration({\n dialogOpen: true,\n integration: app,\n })\n }\n >\n Learn more\n </Button>\n <Switcher\n checked={app.active}\n onChange={(val) => handleToggle(val, app.id)}\n />\n </div>\n </div>\n ))}\n </div>\n <Dialog\n isOpen={selectedIntegration.dialogOpen}\n onClose={handleDialogClose}\n onRequestClose={handleDialogClose}\n >\n <div className=\"flex items-center gap-3\">\n <Avatar\n className=\"bg-transparent dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\"\n size={55}\n src={selectedIntegration.integration.img}\n shape=\"round\"\n />\n <div>\n <div className=\"flex items-center gap-1\">\n <h6 className=\"font-bold\">\n {selectedIntegration.integration.name}\n </h6>\n <TbRosetteDiscountCheckFilled className=\"text-primary text-lg\" />\n </div>\n <span className=\"flex gap-2\">\n <span>{selectedIntegration.integration.type}</span>\n </span>\n </div>\n </div>\n <div className=\"mt-6\">\n <span className=\"font-bold heading-text\">Overview</span>\n <p className=\"mt-2\">\n Wings medium plunger pot, redeye doppio siphon froth\n iced. Latte, and, barista cultivar fair trade grinder\n caramelization spoon. Whipped, grinder to go brewed est\n single shot half and half. Plunger pot blue mountain et\n blue mountain grinder carajillo, saucer half and half\n milk instant strong.\n </p>\n <div className=\"mt-6\">\n <span className=\"font-bold heading-text\">\n Key Features:\n </span>\n <ul className=\"list-disc mt-4 flex flex-col gap-3\">\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n Fair trade, cortado con panna, crema foam\n cinnamon aged.\n </span>\n </li>\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n Mug saucer acerbic, caffeine organic\n kopi-luwak galão siphon.\n </span>\n </li>\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n To go half and half cultivar single origin\n ut, french press.\n </span>\n </li>\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n Mocha latte flavour cortado cup kopi-luwak.\n </span>\n </li>\n </ul>\n </div>\n </div>\n <div className=\" mt-6\">\n <Button block onClick={handleDialogClose}>\n Acknowledge\n </Button>\n </div>\n </Dialog>\n </div>\n )\n}\n\nexport default SettingIntegration\n"],"names":["SettingIntegration","selectedIntegration","setSelectedIntegration","useState","data","mutate","useSWR","apiGetSettingsIntergration","handleToggle","bool","id","newData","app","handleDialogClose","jsx","index","jsxs","classNames","isLastChild","Avatar","Button","Switcher","val","Dialog","TbRosetteDiscountCheckFilled","TbCircleCheckFilled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingIntegration.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingIntegration.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Button from '@/components/ui/Button'\nimport Switcher from '@/components/ui/Switcher'\nimport Dialog from '@/components/ui/Dialog'\nimport classNames from '@/utils/classNames'\nimport isLastChild from '@/utils/isLastChild'\nimport useSWR from 'swr'\nimport {\n TbCircleCheckFilled,\n TbRosetteDiscountCheckFilled,\n} from 'react-icons/tb'\nimport { apiGetSettingsIntergration } from '@/services/AccontsService'\nimport type { GetSettingsIntegrationResponse, Integration } from '../types'\n\nconst SettingIntegration = () => {\n const [selectedIntegration, setSelectedIntegration] = useState<{\n integration: Partial<Integration>\n dialogOpen: boolean\n }>({\n integration: {},\n dialogOpen: false,\n })\n\n const { data = [], mutate } = useSWR(\n '/api/settings/integration/',\n () => apiGetSettingsIntergration<GetSettingsIntegrationResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n },\n )\n\n const handleToggle = (bool: boolean, id: string) => {\n const newData = structuredClone(data)\n mutate(\n newData.map((app) => {\n if (app.id === id) {\n app.active = bool\n }\n return app\n }),\n false,\n )\n }\n\n const handleDialogClose = () => {\n setSelectedIntegration({\n integration: {},\n dialogOpen: false,\n })\n }\n\n return (\n <div>\n <h4>Integration</h4>\n <p>Supercharge your workflow using these integration</p>\n <div className=\"mt-4\">\n {data.map((app, index) => (\n <div\n key={app.id}\n className={classNames(\n 'flex items-center justify-between py-6 border-gray-200 dark:border-gray-700',\n !isLastChild(data, index) && 'border-b',\n )}\n >\n <div className=\"flex items-center gap-4\">\n <Avatar\n className=\"bg-transparent dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-700\"\n size={50}\n src={app.img}\n shape=\"round\"\n />\n <div>\n <h6 className=\"font-bold\">{app.name}</h6>\n <span>{app.desc}</span>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"plain\"\n onClick={() =>\n setSelectedIntegration({\n dialogOpen: true,\n integration: app,\n })\n }\n >\n Learn more\n </Button>\n <Switcher\n checked={app.active}\n onChange={(val) => handleToggle(val, app.id)}\n />\n </div>\n </div>\n ))}\n </div>\n <Dialog\n isOpen={selectedIntegration.dialogOpen}\n onClose={handleDialogClose}\n onRequestClose={handleDialogClose}\n >\n <div className=\"flex items-center gap-3\">\n <Avatar\n className=\"bg-transparent dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\"\n size={55}\n src={selectedIntegration.integration.img}\n shape=\"round\"\n />\n <div>\n <div className=\"flex items-center gap-1\">\n <h6 className=\"font-bold\">\n {selectedIntegration.integration.name}\n </h6>\n <TbRosetteDiscountCheckFilled className=\"text-primary text-lg\" />\n </div>\n <span className=\"flex gap-2\">\n <span>{selectedIntegration.integration.type}</span>\n </span>\n </div>\n </div>\n <div className=\"mt-6\">\n <span className=\"font-bold heading-text\">Overview</span>\n <p className=\"mt-2\">\n Wings medium plunger pot, redeye doppio siphon froth\n iced. Latte, and, barista cultivar fair trade grinder\n caramelization spoon. Whipped, grinder to go brewed est\n single shot half and half. Plunger pot blue mountain et\n blue mountain grinder carajillo, saucer half and half\n milk instant strong.\n </p>\n <div className=\"mt-6\">\n <span className=\"font-bold heading-text\">\n Key Features:\n </span>\n <ul className=\"list-disc mt-4 flex flex-col gap-3\">\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n Fair trade, cortado con panna, crema foam\n cinnamon aged.\n </span>\n </li>\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n Mug saucer acerbic, caffeine organic\n kopi-luwak galão siphon.\n </span>\n </li>\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n To go half and half cultivar single origin\n ut, french press.\n </span>\n </li>\n <li className=\"flex gap-2\">\n <TbCircleCheckFilled className=\"text-xl text-emerald-500\" />\n <span>\n Mocha latte flavour cortado cup kopi-luwak.\n </span>\n </li>\n </ul>\n </div>\n </div>\n <div className=\" mt-6\">\n <Button block onClick={handleDialogClose}>\n Acknowledge\n </Button>\n </div>\n </Dialog>\n </div>\n )\n}\n\nexport default SettingIntegration\n"],"names":["SettingIntegration","selectedIntegration","setSelectedIntegration","useState","data","mutate","useSWR","apiGetSettingsIntergration","handleToggle","bool","id","newData","app","handleDialogClose","jsx","index","jsxs","classNames","isLastChild","Avatar","Button","Switcher","val","Dialog","TbRosetteDiscountCheckFilled","TbCircleCheckFilled"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingMobileMenu.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingMobileMenu.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport ToggleDrawer from '@/components/shared/ToggleDrawer'\nimport SettingsMenu from './SettingsMenu'\nimport type { ToggleDrawerRef } from '@/components/shared/ToggleDrawer'\n\nconst SettingMobileMenu = () => {\n const drawerRef = useRef<ToggleDrawerRef>(null)\n\n return (\n <>\n <div>\n <ToggleDrawer ref={drawerRef} title=\"Navigation\">\n <SettingsMenu\n onChange={() => {\n drawerRef.current?.handleCloseDrawer()\n }}\n />\n </ToggleDrawer>\n </div>\n </>\n )\n}\n\nexport default SettingMobileMenu\n"],"names":["SettingMobileMenu","drawerRef","useRef","jsx","Fragment","ToggleDrawer","SettingsMenu","_a"],"mappings":";;;;AAKA,MAAMA,IAAoB,MAAM;AAC5B,QAAMC,IAAYC,EAAwB,IAAI;AAE9C,SACI,gBAAAC,EAAAC,GAAA,EACI,4BAAC,OAAA,EACG,UAAA,gBAAAD,EAACE,KAAa,KAAKJ,GAAW,OAAM,cAChC,UAAA,gBAAAE;AAAA,IAACG;AAAA,IAAA;AAAA,MACG,UAAU,MAAM;;AACZ,SAAAC,IAAAN,EAAU,YAAV,QAAAM,EAAmB;AAAA,
|
|
1
|
+
{"version":3,"file":"SettingMobileMenu.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingMobileMenu.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport ToggleDrawer from '@/components/shared/ToggleDrawer'\nimport SettingsMenu from './SettingsMenu'\nimport type { ToggleDrawerRef } from '@/components/shared/ToggleDrawer'\n\nconst SettingMobileMenu = () => {\n const drawerRef = useRef<ToggleDrawerRef>(null)\n\n return (\n <>\n <div>\n <ToggleDrawer ref={drawerRef} title=\"Navigation\">\n <SettingsMenu\n onChange={() => {\n drawerRef.current?.handleCloseDrawer()\n }}\n />\n </ToggleDrawer>\n </div>\n </>\n )\n}\n\nexport default SettingMobileMenu\n"],"names":["SettingMobileMenu","drawerRef","useRef","jsx","Fragment","ToggleDrawer","SettingsMenu","_a"],"mappings":";;;;AAKA,MAAMA,IAAoB,MAAM;AAC5B,QAAMC,IAAYC,EAAwB,IAAI;AAE9C,SACI,gBAAAC,EAAAC,GAAA,EACI,4BAAC,OAAA,EACG,UAAA,gBAAAD,EAACE,KAAa,KAAKJ,GAAW,OAAM,cAChC,UAAA,gBAAAE;AAAA,IAACG;AAAA,IAAA;AAAA,MACG,UAAU,MAAM;;AACZ,SAAAC,IAAAN,EAAU,YAAV,QAAAM,EAAmB;AAAA,MACvB;AAAA,IAAA;AAAA,EAAA,EACJ,CACJ,GACJ,GACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsBilling.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingsBilling.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Tag from '@/components/ui/Tag'\nimport Avatar from '@/components/ui/Avatar'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport CreditCardDialog from '@/components/view/CreditCardDialog'\nimport BillingHistory from './BillingHistory'\nimport { apiGetSettingsBilling } from '@/services/AccontsService'\nimport classNames from '@/utils/classNames'\nimport isLastChild from '@/utils/isLastChild'\nimport sleep from '@/utils/sleep'\nimport { TbPlus } from 'react-icons/tb'\nimport useSWR from 'swr'\nimport dayjs from 'dayjs'\nimport { useNavigate } from 'react-router-dom'\nimport { PiLightningFill } from 'react-icons/pi'\nimport { NumericFormat } from 'react-number-format'\n\nimport type {\n GetSettingsBillingResponse,\n CreditCard,\n CreditCardInfo,\n} from '../types'\n\nconst months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n]\n\nconst SettingsBilling = () => {\n const navigate = useNavigate()\n\n const [selectedCard, setSelectedCard] = useState<{\n type: 'NEW' | 'EDIT' | ''\n dialogOpen: boolean\n cardInfo: Partial<CreditCardInfo>\n }>({\n type: '',\n dialogOpen: false,\n cardInfo: {},\n })\n\n const {\n data = {\n currentPlan: {\n plan: '',\n status: '',\n billingCycle: '',\n nextPaymentDate: null,\n amount: null,\n },\n paymentMethods: [],\n transactionHistory: [],\n },\n } = useSWR(\n '/api/settings/billing/',\n () => apiGetSettingsBilling<GetSettingsBillingResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n },\n )\n\n const handleEditCreditCard = (card: Partial<CreditCard>) => {\n setSelectedCard({\n type: 'EDIT',\n dialogOpen: true,\n cardInfo: card,\n })\n }\n\n const handleCreditCardDialogClose = () => {\n setSelectedCard({\n type: '',\n dialogOpen: false,\n cardInfo: {},\n })\n }\n\n const handleEditCreditCardSubmit = async () => {\n await sleep(500)\n handleCreditCardDialogClose()\n toast.push(\n <Notification type=\"success\">Credit card updated!</Notification>,\n { placement: 'top-center' },\n )\n }\n\n const handleAddCreditCardSubmit = async (values: CreditCard) => {\n console.log('Submitted values', values)\n await sleep(500)\n handleCreditCardDialogClose()\n toast.push(\n <Notification type=\"success\">Credit card added!</Notification>,\n { placement: 'top-center' },\n )\n }\n\n const handleChangePlan = () => {\n navigate('/concepts/account/pricing?subcription=basic&cycle=monthly')\n }\n\n return (\n <div>\n <h4 className=\"mb-4\">Billing</h4>\n <div className=\"bg-gray-100 dark:bg-gray-700 rounded-xl p-6\">\n <div className=\"flex flex-col lg:flex-row lg:items-center justify-between gap-4\">\n <div className=\"flex items-center gap-3\">\n <div>\n <Avatar\n className=\"bg-emerald-500\"\n shape=\"circle\"\n icon={<PiLightningFill />}\n />\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <h6 className=\"font-bold\">\n {data.currentPlan.plan}\n </h6>\n <Tag className=\"bg-success-subtle text-success rounded-md border-0\">\n <span className=\"capitalize\">\n {data.currentPlan.status}\n </span>\n </Tag>\n </div>\n <div className=\"font-semibold\">\n <span>\n Billing {data.currentPlan.billingCycle}\n </span>\n <span> | </span>\n <span>\n Next payment on{' '}\n {dayjs\n .unix(\n (data.currentPlan\n .nextPaymentDate as number) ||\n 0,\n )\n .format('MM/DD/YYYY')}\n </span>\n <span>\n <span className=\"mx-1\">for</span>\n <NumericFormat\n className=\"font-bold heading-text\"\n displayType=\"text\"\n value={(\n Math.round(\n (data.currentPlan.amount || 0) *\n 100,\n ) / 100\n ).toFixed(2)}\n prefix={'$'}\n thousandSeparator={true}\n />\n </span>\n </div>\n </div>\n </div>\n <div className=\"flex\">\n <Button\n size=\"sm\"\n variant=\"solid\"\n onClick={handleChangePlan}\n >\n Change plan\n </Button>\n </div>\n </div>\n </div>\n <div className=\"mt-8\">\n <h5>Payment method</h5>\n <div>\n {data.paymentMethods?.map((card, index) => (\n <div\n key={card.cardId}\n className={classNames(\n 'flex items-center justify-between p-4',\n !isLastChild(data.paymentMethods, index) &&\n 'border-b border-gray-200 dark:border-gray-600',\n )}\n >\n <div className=\"flex items-center\">\n {card.cardType === 'VISA' && (\n <img\n src=\"/img/others/img-8.png\"\n alt=\"visa\"\n />\n )}\n {card.cardType === 'MASTER' && (\n <img\n src=\"/img/others/img-9.png\"\n alt=\"master\"\n />\n )}\n <div className=\"ml-3 rtl:mr-3\">\n <div className=\"flex items-center\">\n <div className=\"text-gray-900 dark:text-gray-100 font-semibold\">\n {card.cardHolderName} ••••{' '}\n {card.last4Number}\n </div>\n {card.primary && (\n <Tag className=\"bg-primary-subtle text-primary rounded-md border-0 mx-2\">\n <span className=\"capitalize\">\n {' '}\n Primary{' '}\n </span>\n </Tag>\n )}\n </div>\n <span>\n Expired{' '}\n {months[parseInt(card.expMonth) - 1]} 20\n {card.expYear}\n </span>\n </div>\n </div>\n <div className=\"flex\">\n <Button\n size=\"sm\"\n type=\"button\"\n onClick={() => handleEditCreditCard(card)}\n >\n Edit\n </Button>\n </div>\n </div>\n ))}\n <Button\n variant=\"plain\"\n icon={<TbPlus />}\n onClick={() => {\n setSelectedCard({\n type: 'NEW',\n dialogOpen: true,\n cardInfo: {},\n })\n }}\n >\n Add payment method\n </Button>\n </div>\n </div>\n <div className=\"mt-8\">\n <h5>Transaction history</h5>\n <BillingHistory\n className=\"mt-4\"\n data={data.transactionHistory}\n />\n </div>\n <CreditCardDialog\n title={\n selectedCard.type === 'NEW'\n ? 'Add credit card'\n : 'Edit credit card'\n }\n defaultValues={selectedCard.cardInfo as CreditCard}\n dialogOpen={selectedCard.dialogOpen}\n onDialogClose={handleCreditCardDialogClose}\n onSubmit={\n selectedCard.type === 'NEW'\n ? (values) =>\n handleAddCreditCardSubmit(values as CreditCard)\n : handleEditCreditCardSubmit\n }\n />\n </div>\n )\n}\n\nexport default SettingsBilling\n"],"names":["months","SettingsBilling","navigate","useNavigate","selectedCard","setSelectedCard","useState","data","useSWR","apiGetSettingsBilling","handleEditCreditCard","card","handleCreditCardDialogClose","handleEditCreditCardSubmit","sleep","toast","jsx","Notification","handleAddCreditCardSubmit","values","handleChangePlan","jsxs","Avatar","PiLightningFill","Tag","dayjs","NumericFormat","Button","_a","index","classNames","isLastChild","TbPlus","BillingHistory","CreditCardDialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsBilling.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingsBilling.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Tag from '@/components/ui/Tag'\nimport Avatar from '@/components/ui/Avatar'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport CreditCardDialog from '@/components/view/CreditCardDialog'\nimport BillingHistory from './BillingHistory'\nimport { apiGetSettingsBilling } from '@/services/AccontsService'\nimport classNames from '@/utils/classNames'\nimport isLastChild from '@/utils/isLastChild'\nimport sleep from '@/utils/sleep'\nimport { TbPlus } from 'react-icons/tb'\nimport useSWR from 'swr'\nimport dayjs from 'dayjs'\nimport { useNavigate } from 'react-router-dom'\nimport { PiLightningFill } from 'react-icons/pi'\nimport { NumericFormat } from 'react-number-format'\n\nimport type {\n GetSettingsBillingResponse,\n CreditCard,\n CreditCardInfo,\n} from '../types'\n\nconst months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n]\n\nconst SettingsBilling = () => {\n const navigate = useNavigate()\n\n const [selectedCard, setSelectedCard] = useState<{\n type: 'NEW' | 'EDIT' | ''\n dialogOpen: boolean\n cardInfo: Partial<CreditCardInfo>\n }>({\n type: '',\n dialogOpen: false,\n cardInfo: {},\n })\n\n const {\n data = {\n currentPlan: {\n plan: '',\n status: '',\n billingCycle: '',\n nextPaymentDate: null,\n amount: null,\n },\n paymentMethods: [],\n transactionHistory: [],\n },\n } = useSWR(\n '/api/settings/billing/',\n () => apiGetSettingsBilling<GetSettingsBillingResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n },\n )\n\n const handleEditCreditCard = (card: Partial<CreditCard>) => {\n setSelectedCard({\n type: 'EDIT',\n dialogOpen: true,\n cardInfo: card,\n })\n }\n\n const handleCreditCardDialogClose = () => {\n setSelectedCard({\n type: '',\n dialogOpen: false,\n cardInfo: {},\n })\n }\n\n const handleEditCreditCardSubmit = async () => {\n await sleep(500)\n handleCreditCardDialogClose()\n toast.push(\n <Notification type=\"success\">Credit card updated!</Notification>,\n { placement: 'top-center' },\n )\n }\n\n const handleAddCreditCardSubmit = async (values: CreditCard) => {\n console.log('Submitted values', values)\n await sleep(500)\n handleCreditCardDialogClose()\n toast.push(\n <Notification type=\"success\">Credit card added!</Notification>,\n { placement: 'top-center' },\n )\n }\n\n const handleChangePlan = () => {\n navigate('/concepts/account/pricing?subcription=basic&cycle=monthly')\n }\n\n return (\n <div>\n <h4 className=\"mb-4\">Billing</h4>\n <div className=\"bg-gray-100 dark:bg-gray-700 rounded-xl p-6\">\n <div className=\"flex flex-col lg:flex-row lg:items-center justify-between gap-4\">\n <div className=\"flex items-center gap-3\">\n <div>\n <Avatar\n className=\"bg-emerald-500\"\n shape=\"circle\"\n icon={<PiLightningFill />}\n />\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <h6 className=\"font-bold\">\n {data.currentPlan.plan}\n </h6>\n <Tag className=\"bg-success-subtle text-success rounded-md border-0\">\n <span className=\"capitalize\">\n {data.currentPlan.status}\n </span>\n </Tag>\n </div>\n <div className=\"font-semibold\">\n <span>\n Billing {data.currentPlan.billingCycle}\n </span>\n <span> | </span>\n <span>\n Next payment on{' '}\n {dayjs\n .unix(\n (data.currentPlan\n .nextPaymentDate as number) ||\n 0,\n )\n .format('MM/DD/YYYY')}\n </span>\n <span>\n <span className=\"mx-1\">for</span>\n <NumericFormat\n className=\"font-bold heading-text\"\n displayType=\"text\"\n value={(\n Math.round(\n (data.currentPlan.amount || 0) *\n 100,\n ) / 100\n ).toFixed(2)}\n prefix={'$'}\n thousandSeparator={true}\n />\n </span>\n </div>\n </div>\n </div>\n <div className=\"flex\">\n <Button\n size=\"sm\"\n variant=\"solid\"\n onClick={handleChangePlan}\n >\n Change plan\n </Button>\n </div>\n </div>\n </div>\n <div className=\"mt-8\">\n <h5>Payment method</h5>\n <div>\n {data.paymentMethods?.map((card, index) => (\n <div\n key={card.cardId}\n className={classNames(\n 'flex items-center justify-between p-4',\n !isLastChild(data.paymentMethods, index) &&\n 'border-b border-gray-200 dark:border-gray-600',\n )}\n >\n <div className=\"flex items-center\">\n {card.cardType === 'VISA' && (\n <img\n src=\"/img/others/img-8.png\"\n alt=\"visa\"\n />\n )}\n {card.cardType === 'MASTER' && (\n <img\n src=\"/img/others/img-9.png\"\n alt=\"master\"\n />\n )}\n <div className=\"ml-3 rtl:mr-3\">\n <div className=\"flex items-center\">\n <div className=\"text-gray-900 dark:text-gray-100 font-semibold\">\n {card.cardHolderName} ••••{' '}\n {card.last4Number}\n </div>\n {card.primary && (\n <Tag className=\"bg-primary-subtle text-primary rounded-md border-0 mx-2\">\n <span className=\"capitalize\">\n {' '}\n Primary{' '}\n </span>\n </Tag>\n )}\n </div>\n <span>\n Expired{' '}\n {months[parseInt(card.expMonth) - 1]} 20\n {card.expYear}\n </span>\n </div>\n </div>\n <div className=\"flex\">\n <Button\n size=\"sm\"\n type=\"button\"\n onClick={() => handleEditCreditCard(card)}\n >\n Edit\n </Button>\n </div>\n </div>\n ))}\n <Button\n variant=\"plain\"\n icon={<TbPlus />}\n onClick={() => {\n setSelectedCard({\n type: 'NEW',\n dialogOpen: true,\n cardInfo: {},\n })\n }}\n >\n Add payment method\n </Button>\n </div>\n </div>\n <div className=\"mt-8\">\n <h5>Transaction history</h5>\n <BillingHistory\n className=\"mt-4\"\n data={data.transactionHistory}\n />\n </div>\n <CreditCardDialog\n title={\n selectedCard.type === 'NEW'\n ? 'Add credit card'\n : 'Edit credit card'\n }\n defaultValues={selectedCard.cardInfo as CreditCard}\n dialogOpen={selectedCard.dialogOpen}\n onDialogClose={handleCreditCardDialogClose}\n onSubmit={\n selectedCard.type === 'NEW'\n ? (values) =>\n handleAddCreditCardSubmit(values as CreditCard)\n : handleEditCreditCardSubmit\n }\n />\n </div>\n )\n}\n\nexport default SettingsBilling\n"],"names":["months","SettingsBilling","navigate","useNavigate","selectedCard","setSelectedCard","useState","data","useSWR","apiGetSettingsBilling","handleEditCreditCard","card","handleCreditCardDialogClose","handleEditCreditCardSubmit","sleep","toast","jsx","Notification","handleAddCreditCardSubmit","values","handleChangePlan","jsxs","Avatar","PiLightningFill","Tag","dayjs","NumericFormat","Button","_a","index","classNames","isLastChild","TbPlus","BillingHistory","CreditCardDialog"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsMenu.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingsMenu.tsx"],"sourcesContent":["import Menu from '@/components/ui/Menu'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport { useSettingsStore } from '../store/settingsStore'\nimport useQuery from '@/utils/hooks/useQuery'\nimport {\n TbUserSquare,\n TbLock,\n TbBell,\n TbFileDollar,\n TbRefreshDot,\n} from 'react-icons/tb'\nimport type { View } from '../types'\nimport type { ReactNode } from 'react'\n\nconst { MenuItem } = Menu\n\nconst menuList: { label: string; value: View; icon: ReactNode }[] = [\n { label: 'Profile', value: 'profile', icon: <TbUserSquare /> },\n { label: 'Security', value: 'security', icon: <TbLock /> },\n { label: 'Notification', value: 'notification', icon: <TbBell /> },\n { label: 'Billing', value: 'billing', icon: <TbFileDollar /> },\n { label: 'Integration', value: 'integration', icon: <TbRefreshDot /> },\n]\n\nexport const SettingsMenu = ({ onChange }: { onChange?: () => void }) => {\n const query = useQuery()\n\n const { currentView, setCurrentView } = useSettingsStore()\n\n const currentPath = query.get('category') || query.get('label') || 'inbox'\n\n const handleSelect = (value: View) => {\n setCurrentView(value)\n onChange?.()\n }\n\n return (\n <div className=\"flex h-full flex-col justify-between\">\n <ScrollBar className=\"h-full overflow-y-auto\">\n <Menu className=\"mx-2 mb-10\">\n {menuList.map((menu) => (\n <MenuItem\n key={menu.value}\n eventKey={menu.value}\n className={`mb-2 ${\n currentView === menu.value\n ? 'bg-gray-100 dark:bg-gray-700'\n : ''\n }`}\n isActive={currentPath === menu.value}\n onSelect={() => handleSelect(menu.value)}\n >\n <span className=\"text-2xl ltr:mr-2 rtl:ml-2\">\n {menu.icon}\n </span>\n <span>{menu.label}</span>\n </MenuItem>\n ))}\n </Menu>\n </ScrollBar>\n </div>\n )\n}\n\nexport default SettingsMenu\n"],"names":["MenuItem","Menu","menuList","jsx","TbUserSquare","TbLock","TbBell","TbFileDollar","TbRefreshDot","SettingsMenu","onChange","query","useQuery","currentView","setCurrentView","useSettingsStore","currentPath","handleSelect","value","ScrollBar","menu","jsxs"],"mappings":";;;;;;;AAcA,MAAM,EAAE,UAAAA,MAAaC,GAEfC,IAA8D;AAAA,EAChE,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,gBAAAC,EAACC,KAAa,EAAA;AAAA,EAC1D,EAAE,OAAO,YAAY,OAAO,YAAY,MAAM,gBAAAD,EAACE,KAAO,EAAA;AAAA,EACtD,EAAE,OAAO,gBAAgB,OAAO,gBAAgB,MAAM,gBAAAF,EAACG,KAAO,EAAA;AAAA,EAC9D,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,gBAAAH,EAACI,KAAa,EAAA;AAAA,EAC1D,EAAE,OAAO,eAAe,OAAO,eAAe,MAAM,gBAAAJ,EAACK,KAAa,EAAA;AACtE,GAEaC,IAAe,CAAC,EAAE,UAAAC,QAA0C;AACrE,QAAMC,IAAQC,EAAA,GAER,EAAE,aAAAC,GAAa,gBAAAC,EAAA,IAAmBC,EAAA,GAElCC,IAAcL,EAAM,IAAI,UAAU,KAAKA,EAAM,IAAI,OAAO,KAAK,SAE7DM,IAAe,CAACC,MAAgB;AAClC,IAAAJ,EAAeI,CAAK,GACpBR,KAAA,QAAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"SettingsMenu.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingsMenu.tsx"],"sourcesContent":["import Menu from '@/components/ui/Menu'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport { useSettingsStore } from '../store/settingsStore'\nimport useQuery from '@/utils/hooks/useQuery'\nimport {\n TbUserSquare,\n TbLock,\n TbBell,\n TbFileDollar,\n TbRefreshDot,\n} from 'react-icons/tb'\nimport type { View } from '../types'\nimport type { ReactNode } from 'react'\n\nconst { MenuItem } = Menu\n\nconst menuList: { label: string; value: View; icon: ReactNode }[] = [\n { label: 'Profile', value: 'profile', icon: <TbUserSquare /> },\n { label: 'Security', value: 'security', icon: <TbLock /> },\n { label: 'Notification', value: 'notification', icon: <TbBell /> },\n { label: 'Billing', value: 'billing', icon: <TbFileDollar /> },\n { label: 'Integration', value: 'integration', icon: <TbRefreshDot /> },\n]\n\nexport const SettingsMenu = ({ onChange }: { onChange?: () => void }) => {\n const query = useQuery()\n\n const { currentView, setCurrentView } = useSettingsStore()\n\n const currentPath = query.get('category') || query.get('label') || 'inbox'\n\n const handleSelect = (value: View) => {\n setCurrentView(value)\n onChange?.()\n }\n\n return (\n <div className=\"flex h-full flex-col justify-between\">\n <ScrollBar className=\"h-full overflow-y-auto\">\n <Menu className=\"mx-2 mb-10\">\n {menuList.map((menu) => (\n <MenuItem\n key={menu.value}\n eventKey={menu.value}\n className={`mb-2 ${\n currentView === menu.value\n ? 'bg-gray-100 dark:bg-gray-700'\n : ''\n }`}\n isActive={currentPath === menu.value}\n onSelect={() => handleSelect(menu.value)}\n >\n <span className=\"text-2xl ltr:mr-2 rtl:ml-2\">\n {menu.icon}\n </span>\n <span>{menu.label}</span>\n </MenuItem>\n ))}\n </Menu>\n </ScrollBar>\n </div>\n )\n}\n\nexport default SettingsMenu\n"],"names":["MenuItem","Menu","menuList","jsx","TbUserSquare","TbLock","TbBell","TbFileDollar","TbRefreshDot","SettingsMenu","onChange","query","useQuery","currentView","setCurrentView","useSettingsStore","currentPath","handleSelect","value","ScrollBar","menu","jsxs"],"mappings":";;;;;;;AAcA,MAAM,EAAE,UAAAA,MAAaC,GAEfC,IAA8D;AAAA,EAChE,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,gBAAAC,EAACC,KAAa,EAAA;AAAA,EAC1D,EAAE,OAAO,YAAY,OAAO,YAAY,MAAM,gBAAAD,EAACE,KAAO,EAAA;AAAA,EACtD,EAAE,OAAO,gBAAgB,OAAO,gBAAgB,MAAM,gBAAAF,EAACG,KAAO,EAAA;AAAA,EAC9D,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,gBAAAH,EAACI,KAAa,EAAA;AAAA,EAC1D,EAAE,OAAO,eAAe,OAAO,eAAe,MAAM,gBAAAJ,EAACK,KAAa,EAAA;AACtE,GAEaC,IAAe,CAAC,EAAE,UAAAC,QAA0C;AACrE,QAAMC,IAAQC,EAAA,GAER,EAAE,aAAAC,GAAa,gBAAAC,EAAA,IAAmBC,EAAA,GAElCC,IAAcL,EAAM,IAAI,UAAU,KAAKA,EAAM,IAAI,OAAO,KAAK,SAE7DM,IAAe,CAACC,MAAgB;AAClC,IAAAJ,EAAeI,CAAK,GACpBR,KAAA,QAAAA;AAAA,EACJ;AAEA,SACI,gBAAAP,EAAC,OAAA,EAAI,WAAU,wCACX,4BAACgB,GAAA,EAAU,WAAU,0BACjB,UAAA,gBAAAhB,EAACF,KAAK,WAAU,cACX,UAAAC,EAAS,IAAI,CAACkB,MACX,gBAAAC;AAAA,IAACrB;AAAA,IAAA;AAAA,MAEG,UAAUoB,EAAK;AAAA,MACf,WAAW,QACPP,MAAgBO,EAAK,QACf,iCACA,EACV;AAAA,MACA,UAAUJ,MAAgBI,EAAK;AAAA,MAC/B,UAAU,MAAMH,EAAaG,EAAK,KAAK;AAAA,MAEvC,UAAA;AAAA,QAAA,gBAAAjB,EAAC,QAAA,EAAK,WAAU,8BACX,UAAAiB,EAAK,MACV;AAAA,QACA,gBAAAjB,EAAC,QAAA,EAAM,UAAAiB,EAAK,MAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAbbA,EAAK;AAAA,EAAA,CAejB,EAAA,CACL,EAAA,CACJ,GACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsNotification.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingsNotification.tsx"],"sourcesContent":["import Checkbox from '@/components/ui/Checkbox'\nimport Radio from '@/components/ui/Radio'\nimport Switcher from '@/components/ui/Switcher'\nimport { apiGetSettingsNotification } from '@/services/AccontsService'\nimport useSWR from 'swr'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { TbMessageCircleCheck } from 'react-icons/tb'\nimport type { GetSettingsNotificationResponse } from '../types'\n\ntype EmailNotificationFields =\n | 'newsAndUpdate'\n | 'tipsAndTutorial'\n | 'offerAndPromotion'\n | 'followUpReminder'\n\nconst emailNotificationOption: {\n label: string\n value: EmailNotificationFields\n desc: string\n}[] = [\n {\n label: 'News & updates',\n value: 'newsAndUpdate',\n desc: 'New about product and features update',\n },\n {\n label: 'Tips & tutorials',\n value: 'tipsAndTutorial',\n desc: 'Tips & trick in order to increase your performance efficiency',\n },\n {\n label: 'Offer & promotions',\n value: 'offerAndPromotion',\n desc: 'Promotion about product price & lastest discount',\n },\n {\n label: 'Follow up remider',\n value: 'followUpReminder',\n desc: 'Receive notification all the reminder that have been made',\n },\n]\n\nconst notifyMeOption: {\n label: string\n value: string\n desc: string\n}[] = [\n {\n label: 'All new messages',\n value: 'allNewMessage',\n desc: 'Broadcast notifications to the channel for each new message',\n },\n {\n label: 'Mentions only',\n value: 'mentionsOnly',\n desc: 'Only alert me in the channel if someone mentions me in a message',\n },\n {\n label: 'Nothing',\n value: 'nothing',\n desc: `Don't notify me anything`,\n },\n]\n\nconst SettingsNotification = () => {\n const {\n data = {\n email: [],\n desktop: false,\n unreadMessageBadge: false,\n notifymeAbout: '',\n },\n mutate,\n } = useSWR(\n '/api/settings/notification/',\n () => apiGetSettingsNotification<GetSettingsNotificationResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n },\n )\n\n const handleEmailNotificationOptionChange = (values: string[]) => {\n const newData = cloneDeep(data)\n newData.email = values\n mutate(newData, false)\n }\n\n const handleEmailNotificationOptionCheckAll = (value: boolean) => {\n const newData = cloneDeep(data)\n if (value) {\n newData.email = [\n 'newsAndUpdate',\n 'tipsAndTutorial',\n 'offerAndPromotion',\n 'followUpReminder',\n ]\n } else {\n newData.email = []\n }\n\n mutate(newData, false)\n }\n\n const handleDesktopNotificationCheck = (value: boolean) => {\n const newData = cloneDeep(data)\n newData.desktop = value\n mutate(newData, false)\n }\n\n const handleUnreadMessagebadgeCheck = (value: boolean) => {\n const newData = cloneDeep(data)\n newData.unreadMessageBadge = value\n mutate(newData, false)\n }\n\n const handleNotifyMeChange = (value: string) => {\n const newData = cloneDeep(data)\n newData.notifymeAbout = value\n mutate(newData, false)\n }\n\n return (\n <div>\n <h4>Notification</h4>\n <div className=\"mt-2\">\n <div className=\"flex items-center justify-between py-6 border-b border-gray-200 dark:border-gray-600\">\n <div>\n <h5>Enable desktop notification</h5>\n <p>\n Decide whether you want to be notified of new\n message & updates\n </p>\n </div>\n <div>\n <Switcher\n checked={data.desktop}\n onChange={handleDesktopNotificationCheck}\n />\n </div>\n </div>\n <div className=\"flex items-center justify-between py-6 border-b border-gray-200 dark:border-gray-600\">\n <div>\n <h5>Enable unread notification badge</h5>\n <p>\n Display a red indicator on of the notification icon\n when you have unread message\n </p>\n </div>\n <div>\n <Switcher\n checked={data.unreadMessageBadge}\n onChange={handleUnreadMessagebadgeCheck}\n />\n </div>\n </div>\n <div className=\"py-6 border-b border-gray-200 dark:border-gray-600\">\n <h5>Enable unread notification badge</h5>\n <div className=\"mt-4\">\n <Radio.Group\n vertical\n className=\"flex flex-col gap-6\"\n value={data.notifymeAbout}\n onChange={handleNotifyMeChange}\n >\n {notifyMeOption.map((option) => (\n <div key={option.value} className=\"flex gap-4\">\n <div className=\"mt-1.5\">\n <Radio value={option.value} />\n </div>\n <div className=\"flex gap-2\">\n <div className=\"mt-1\">\n <TbMessageCircleCheck className=\"text-lg\" />\n </div>\n <div>\n <h6>{option.label}</h6>\n <p>{option.desc}</p>\n </div>\n </div>\n </div>\n ))}\n </Radio.Group>\n </div>\n </div>\n <div className=\"flex items-center justify-between py-6\">\n <div>\n <h5>Email notification</h5>\n <p>\n Substance can send you email notification for any\n new direct message\n </p>\n </div>\n <div>\n <Switcher\n checked={data.email.length > 0}\n onChange={handleEmailNotificationOptionCheckAll}\n />\n </div>\n </div>\n <Checkbox.Group\n vertical\n className=\"flex flex-col gap-6\"\n value={data.email}\n onChange={handleEmailNotificationOptionChange}\n >\n {emailNotificationOption.map((option) => (\n <div key={option.value} className=\"flex gap-4\">\n <div className=\"mt-1.5\">\n <Checkbox value={option.value} />\n </div>\n <div>\n <h6>{option.label}</h6>\n <p>{option.desc}</p>\n </div>\n </div>\n ))}\n </Checkbox.Group>\n </div>\n </div>\n )\n}\n\nexport default SettingsNotification\n"],"names":["emailNotificationOption","notifyMeOption","SettingsNotification","data","mutate","useSWR","apiGetSettingsNotification","handleEmailNotificationOptionChange","values","newData","cloneDeep","handleEmailNotificationOptionCheckAll","value","handleDesktopNotificationCheck","handleUnreadMessagebadgeCheck","handleNotifyMeChange","jsx","jsxs","Switcher","Radio","option","TbMessageCircleCheck","Checkbox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsNotification.js","sources":["../../../../../../../lib/@ecme/views/concepts/accounts/Settings/components/SettingsNotification.tsx"],"sourcesContent":["import Checkbox from '@/components/ui/Checkbox'\nimport Radio from '@/components/ui/Radio'\nimport Switcher from '@/components/ui/Switcher'\nimport { apiGetSettingsNotification } from '@/services/AccontsService'\nimport useSWR from 'swr'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { TbMessageCircleCheck } from 'react-icons/tb'\nimport type { GetSettingsNotificationResponse } from '../types'\n\ntype EmailNotificationFields =\n | 'newsAndUpdate'\n | 'tipsAndTutorial'\n | 'offerAndPromotion'\n | 'followUpReminder'\n\nconst emailNotificationOption: {\n label: string\n value: EmailNotificationFields\n desc: string\n}[] = [\n {\n label: 'News & updates',\n value: 'newsAndUpdate',\n desc: 'New about product and features update',\n },\n {\n label: 'Tips & tutorials',\n value: 'tipsAndTutorial',\n desc: 'Tips & trick in order to increase your performance efficiency',\n },\n {\n label: 'Offer & promotions',\n value: 'offerAndPromotion',\n desc: 'Promotion about product price & lastest discount',\n },\n {\n label: 'Follow up remider',\n value: 'followUpReminder',\n desc: 'Receive notification all the reminder that have been made',\n },\n]\n\nconst notifyMeOption: {\n label: string\n value: string\n desc: string\n}[] = [\n {\n label: 'All new messages',\n value: 'allNewMessage',\n desc: 'Broadcast notifications to the channel for each new message',\n },\n {\n label: 'Mentions only',\n value: 'mentionsOnly',\n desc: 'Only alert me in the channel if someone mentions me in a message',\n },\n {\n label: 'Nothing',\n value: 'nothing',\n desc: `Don't notify me anything`,\n },\n]\n\nconst SettingsNotification = () => {\n const {\n data = {\n email: [],\n desktop: false,\n unreadMessageBadge: false,\n notifymeAbout: '',\n },\n mutate,\n } = useSWR(\n '/api/settings/notification/',\n () => apiGetSettingsNotification<GetSettingsNotificationResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n },\n )\n\n const handleEmailNotificationOptionChange = (values: string[]) => {\n const newData = cloneDeep(data)\n newData.email = values\n mutate(newData, false)\n }\n\n const handleEmailNotificationOptionCheckAll = (value: boolean) => {\n const newData = cloneDeep(data)\n if (value) {\n newData.email = [\n 'newsAndUpdate',\n 'tipsAndTutorial',\n 'offerAndPromotion',\n 'followUpReminder',\n ]\n } else {\n newData.email = []\n }\n\n mutate(newData, false)\n }\n\n const handleDesktopNotificationCheck = (value: boolean) => {\n const newData = cloneDeep(data)\n newData.desktop = value\n mutate(newData, false)\n }\n\n const handleUnreadMessagebadgeCheck = (value: boolean) => {\n const newData = cloneDeep(data)\n newData.unreadMessageBadge = value\n mutate(newData, false)\n }\n\n const handleNotifyMeChange = (value: string) => {\n const newData = cloneDeep(data)\n newData.notifymeAbout = value\n mutate(newData, false)\n }\n\n return (\n <div>\n <h4>Notification</h4>\n <div className=\"mt-2\">\n <div className=\"flex items-center justify-between py-6 border-b border-gray-200 dark:border-gray-600\">\n <div>\n <h5>Enable desktop notification</h5>\n <p>\n Decide whether you want to be notified of new\n message & updates\n </p>\n </div>\n <div>\n <Switcher\n checked={data.desktop}\n onChange={handleDesktopNotificationCheck}\n />\n </div>\n </div>\n <div className=\"flex items-center justify-between py-6 border-b border-gray-200 dark:border-gray-600\">\n <div>\n <h5>Enable unread notification badge</h5>\n <p>\n Display a red indicator on of the notification icon\n when you have unread message\n </p>\n </div>\n <div>\n <Switcher\n checked={data.unreadMessageBadge}\n onChange={handleUnreadMessagebadgeCheck}\n />\n </div>\n </div>\n <div className=\"py-6 border-b border-gray-200 dark:border-gray-600\">\n <h5>Enable unread notification badge</h5>\n <div className=\"mt-4\">\n <Radio.Group\n vertical\n className=\"flex flex-col gap-6\"\n value={data.notifymeAbout}\n onChange={handleNotifyMeChange}\n >\n {notifyMeOption.map((option) => (\n <div key={option.value} className=\"flex gap-4\">\n <div className=\"mt-1.5\">\n <Radio value={option.value} />\n </div>\n <div className=\"flex gap-2\">\n <div className=\"mt-1\">\n <TbMessageCircleCheck className=\"text-lg\" />\n </div>\n <div>\n <h6>{option.label}</h6>\n <p>{option.desc}</p>\n </div>\n </div>\n </div>\n ))}\n </Radio.Group>\n </div>\n </div>\n <div className=\"flex items-center justify-between py-6\">\n <div>\n <h5>Email notification</h5>\n <p>\n Substance can send you email notification for any\n new direct message\n </p>\n </div>\n <div>\n <Switcher\n checked={data.email.length > 0}\n onChange={handleEmailNotificationOptionCheckAll}\n />\n </div>\n </div>\n <Checkbox.Group\n vertical\n className=\"flex flex-col gap-6\"\n value={data.email}\n onChange={handleEmailNotificationOptionChange}\n >\n {emailNotificationOption.map((option) => (\n <div key={option.value} className=\"flex gap-4\">\n <div className=\"mt-1.5\">\n <Checkbox value={option.value} />\n </div>\n <div>\n <h6>{option.label}</h6>\n <p>{option.desc}</p>\n </div>\n </div>\n ))}\n </Checkbox.Group>\n </div>\n </div>\n )\n}\n\nexport default SettingsNotification\n"],"names":["emailNotificationOption","notifyMeOption","SettingsNotification","data","mutate","useSWR","apiGetSettingsNotification","handleEmailNotificationOptionChange","values","newData","cloneDeep","handleEmailNotificationOptionCheckAll","value","handleDesktopNotificationCheck","handleUnreadMessagebadgeCheck","handleNotifyMeChange","jsx","jsxs","Switcher","Radio","option","TbMessageCircleCheck","Checkbox"],"mappings":"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"}
|