@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
package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListSelected.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomerListSelected.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomerListSelected.tsx"],"sourcesContent":["import { useState } from 'react'\nimport StickyFooter from '@/components/shared/StickyFooter'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport Avatar from '@/components/ui/Avatar'\nimport Tooltip from '@/components/ui/Tooltip'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport RichTextEditor from '@/components/shared/RichTextEditor'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\nimport useCustomerList from '../hooks/useCustomerList'\nimport { TbChecks } from 'react-icons/tb'\n\nconst CustomerListSelected = () => {\n const {\n selectedCustomer,\n customerList,\n mutate,\n customerListTotal,\n setSelectAllCustomer,\n } = useCustomerList()\n\n const [deleteConfirmationOpen, setDeleteConfirmationOpen] = useState(false)\n const [sendMessageDialogOpen, setSendMessageDialogOpen] = useState(false)\n const [sendMessageLoading, setSendMessageLoading] = useState(false)\n\n const handleDelete = () => {\n setDeleteConfirmationOpen(true)\n }\n\n const handleCancel = () => {\n setDeleteConfirmationOpen(false)\n }\n\n const handleConfirmDelete = () => {\n const newCustomerList = customerList.filter((customer) => {\n return !selectedCustomer.some(\n (selected) => selected.id === customer.id,\n )\n })\n setSelectAllCustomer([])\n mutate(\n {\n list: newCustomerList,\n total: customerListTotal - selectedCustomer.length,\n },\n false,\n )\n setDeleteConfirmationOpen(false)\n }\n\n const handleSend = () => {\n setSendMessageLoading(true)\n setTimeout(() => {\n toast.push(\n <Notification type=\"success\">Message sent!</Notification>,\n { placement: 'top-center' },\n )\n setSendMessageLoading(false)\n setSendMessageDialogOpen(false)\n setSelectAllCustomer([])\n }, 500)\n }\n\n return (\n <>\n {selectedCustomer.length > 0 && (\n <StickyFooter\n className=\" flex items-center justify-between py-4 bg-white dark:bg-gray-800\"\n stickyClass=\"-mx-4 sm:-mx-8 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 {selectedCustomer.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 {selectedCustomer.length}{' '}\n Customers\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 <Button\n size=\"sm\"\n variant=\"solid\"\n onClick={() =>\n setSendMessageDialogOpen(true)\n }\n >\n Message\n </Button>\n </div>\n </div>\n </div>\n </StickyFooter>\n )}\n <ConfirmDialog\n isOpen={deleteConfirmationOpen}\n type=\"danger\"\n title=\"Remove customers\"\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 customers? This action\n can't be undo.{' '}\n </p>\n </ConfirmDialog>\n <Dialog\n isOpen={sendMessageDialogOpen}\n onRequestClose={() => setSendMessageDialogOpen(false)}\n onClose={() => setSendMessageDialogOpen(false)}\n >\n <h5 className=\"mb-2\">Send Message</h5>\n <p>Send message to the following customers</p>\n <Avatar.Group\n chained\n omittedAvatarTooltip\n className=\"mt-4\"\n maxCount={4}\n omittedAvatarProps={{ size: 30 }}\n >\n {selectedCustomer.map((customer) => (\n <Tooltip key={customer.id} title={customer.name}>\n <Avatar size={30} src={customer.img} alt=\"\" />\n </Tooltip>\n ))}\n </Avatar.Group>\n <div className=\"my-4\">\n <RichTextEditor content={''} />\n </div>\n <div className=\"ltr:justify-end flex items-center gap-2\">\n <Button\n size=\"sm\"\n onClick={() => setSendMessageDialogOpen(false)}\n >\n Cancel\n </Button>\n <Button\n size=\"sm\"\n variant=\"solid\"\n loading={sendMessageLoading}\n onClick={handleSend}\n >\n Send\n </Button>\n </div>\n </Dialog>\n </>\n )\n}\n\nexport default CustomerListSelected\n"],"names":["CustomerListSelected","selectedCustomer","customerList","mutate","customerListTotal","setSelectAllCustomer","useCustomerList","deleteConfirmationOpen","setDeleteConfirmationOpen","useState","sendMessageDialogOpen","setSendMessageDialogOpen","sendMessageLoading","setSendMessageLoading","handleDelete","handleCancel","handleConfirmDelete","newCustomerList","customer","selected","handleSend","toast","jsx","Notification","jsxs","Fragment","StickyFooter","TbChecks","Button","ConfirmDialog","Dialog","Avatar","Tooltip","RichTextEditor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CustomerListSelected.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomerListSelected.tsx"],"sourcesContent":["import { useState } from 'react'\nimport StickyFooter from '@/components/shared/StickyFooter'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport Avatar from '@/components/ui/Avatar'\nimport Tooltip from '@/components/ui/Tooltip'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport RichTextEditor from '@/components/shared/RichTextEditor'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\nimport useCustomerList from '../hooks/useCustomerList'\nimport { TbChecks } from 'react-icons/tb'\n\nconst CustomerListSelected = () => {\n const {\n selectedCustomer,\n customerList,\n mutate,\n customerListTotal,\n setSelectAllCustomer,\n } = useCustomerList()\n\n const [deleteConfirmationOpen, setDeleteConfirmationOpen] = useState(false)\n const [sendMessageDialogOpen, setSendMessageDialogOpen] = useState(false)\n const [sendMessageLoading, setSendMessageLoading] = useState(false)\n\n const handleDelete = () => {\n setDeleteConfirmationOpen(true)\n }\n\n const handleCancel = () => {\n setDeleteConfirmationOpen(false)\n }\n\n const handleConfirmDelete = () => {\n const newCustomerList = customerList.filter((customer) => {\n return !selectedCustomer.some(\n (selected) => selected.id === customer.id,\n )\n })\n setSelectAllCustomer([])\n mutate(\n {\n list: newCustomerList,\n total: customerListTotal - selectedCustomer.length,\n },\n false,\n )\n setDeleteConfirmationOpen(false)\n }\n\n const handleSend = () => {\n setSendMessageLoading(true)\n setTimeout(() => {\n toast.push(\n <Notification type=\"success\">Message sent!</Notification>,\n { placement: 'top-center' },\n )\n setSendMessageLoading(false)\n setSendMessageDialogOpen(false)\n setSelectAllCustomer([])\n }, 500)\n }\n\n return (\n <>\n {selectedCustomer.length > 0 && (\n <StickyFooter\n className=\" flex items-center justify-between py-4 bg-white dark:bg-gray-800\"\n stickyClass=\"-mx-4 sm:-mx-8 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 {selectedCustomer.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 {selectedCustomer.length}{' '}\n Customers\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 <Button\n size=\"sm\"\n variant=\"solid\"\n onClick={() =>\n setSendMessageDialogOpen(true)\n }\n >\n Message\n </Button>\n </div>\n </div>\n </div>\n </StickyFooter>\n )}\n <ConfirmDialog\n isOpen={deleteConfirmationOpen}\n type=\"danger\"\n title=\"Remove customers\"\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 customers? This action\n can't be undo.{' '}\n </p>\n </ConfirmDialog>\n <Dialog\n isOpen={sendMessageDialogOpen}\n onRequestClose={() => setSendMessageDialogOpen(false)}\n onClose={() => setSendMessageDialogOpen(false)}\n >\n <h5 className=\"mb-2\">Send Message</h5>\n <p>Send message to the following customers</p>\n <Avatar.Group\n chained\n omittedAvatarTooltip\n className=\"mt-4\"\n maxCount={4}\n omittedAvatarProps={{ size: 30 }}\n >\n {selectedCustomer.map((customer) => (\n <Tooltip key={customer.id} title={customer.name}>\n <Avatar size={30} src={customer.img} alt=\"\" />\n </Tooltip>\n ))}\n </Avatar.Group>\n <div className=\"my-4\">\n <RichTextEditor content={''} />\n </div>\n <div className=\"ltr:justify-end flex items-center gap-2\">\n <Button\n size=\"sm\"\n onClick={() => setSendMessageDialogOpen(false)}\n >\n Cancel\n </Button>\n <Button\n size=\"sm\"\n variant=\"solid\"\n loading={sendMessageLoading}\n onClick={handleSend}\n >\n Send\n </Button>\n </div>\n </Dialog>\n </>\n )\n}\n\nexport default CustomerListSelected\n"],"names":["CustomerListSelected","selectedCustomer","customerList","mutate","customerListTotal","setSelectAllCustomer","useCustomerList","deleteConfirmationOpen","setDeleteConfirmationOpen","useState","sendMessageDialogOpen","setSendMessageDialogOpen","sendMessageLoading","setSendMessageLoading","handleDelete","handleCancel","handleConfirmDelete","newCustomerList","customer","selected","handleSend","toast","jsx","Notification","jsxs","Fragment","StickyFooter","TbChecks","Button","ConfirmDialog","Dialog","Avatar","Tooltip","RichTextEditor"],"mappings":"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"}
|
package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomerListTable.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomerListTable.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Tag from '@/components/ui/Tag'\nimport Tooltip from '@/components/ui/Tooltip'\nimport DataTable from '@/components/shared/DataTable'\nimport useCustomerList from '../hooks/useCustomerList'\nimport { Link, useNavigate } from 'react-router-dom'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { TbPencil, TbEye } from 'react-icons/tb'\nimport type { OnSortParam, ColumnDef, Row } from '@/components/shared/DataTable'\nimport type { Customer } from '../types'\nimport type { TableQueries } from '@/@types/common'\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 NameColumn = ({ row }: { row: Customer }) => {\n return (\n <div className=\"flex items-center\">\n <Avatar size={40} shape=\"circle\" src={row.img} />\n <Link\n className={`hover:text-primary ml-2 rtl:mr-2 font-semibold text-gray-900 dark:text-gray-100`}\n to={`/concepts/customers/customer-details/${row.id}`}\n >\n {row.name}\n </Link>\n </div>\n )\n}\n\nconst ActionColumn = ({\n onEdit,\n onViewDetail,\n}: {\n onEdit: () => void\n onViewDetail: () => void\n}) => {\n return (\n <div className=\"flex items-center gap-3\">\n <Tooltip title=\"Edit\">\n <div\n className={`text-xl cursor-pointer select-none font-semibold`}\n role=\"button\"\n onClick={onEdit}\n >\n <TbPencil />\n </div>\n </Tooltip>\n <Tooltip title=\"View\">\n <div\n className={`text-xl cursor-pointer select-none font-semibold`}\n role=\"button\"\n onClick={onViewDetail}\n >\n <TbEye />\n </div>\n </Tooltip>\n </div>\n )\n}\n\nconst CustomerListTable = () => {\n const navigate = useNavigate()\n\n const {\n customerList,\n customerListTotal,\n tableData,\n isLoading,\n setTableData,\n setSelectAllCustomer,\n setSelectedCustomer,\n selectedCustomer,\n } = useCustomerList()\n\n const handleEdit = (customer: Customer) => {\n navigate(`/concepts/customers/customer-edit/${customer.id}`)\n }\n\n const handleViewDetails = (customer: Customer) => {\n navigate(`/concepts/customers/customer-details/${customer.id}`)\n }\n\n const columns: ColumnDef<Customer>[] = useMemo(\n () => [\n {\n header: 'Name',\n accessorKey: 'name',\n cell: (props) => {\n const row = props.row.original\n return <NameColumn row={row} />\n },\n },\n {\n header: 'Email',\n accessorKey: 'email',\n },\n {\n header: 'location',\n accessorKey: 'personalInfo.location',\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: 'Spent',\n accessorKey: 'totalSpending',\n cell: (props) => {\n return <span>${props.row.original.totalSpending}</span>\n },\n },\n {\n header: '',\n id: 'action',\n cell: (props) => (\n <ActionColumn\n onEdit={() => handleEdit(props.row.original)}\n onViewDetail={() =>\n handleViewDetails(props.row.original)\n }\n />\n ),\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n )\n\n const handleSetTableData = (data: TableQueries) => {\n setTableData(data)\n if (selectedCustomer.length > 0) {\n setSelectAllCustomer([])\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: Customer) => {\n setSelectedCustomer(checked, row)\n }\n\n const handleAllRowSelect = (checked: boolean, rows: Row<Customer>[]) => {\n if (checked) {\n const originalRows = rows.map((row) => row.original)\n setSelectAllCustomer(originalRows)\n } else {\n setSelectAllCustomer([])\n }\n }\n\n return (\n <DataTable\n selectable\n columns={columns}\n data={customerList}\n noData={!isLoading && customerList.length === 0}\n skeletonAvatarColumns={[0]}\n skeletonAvatarProps={{ width: 28, height: 28 }}\n loading={isLoading}\n pagingData={{\n total: customerListTotal,\n pageIndex: tableData.pageIndex as number,\n pageSize: tableData.pageSize as number,\n }}\n checkboxChecked={(row) =>\n selectedCustomer.some((selected) => selected.id === row.id)\n }\n onPaginationChange={handlePaginationChange}\n onSelectChange={handleSelectChange}\n onSort={handleSort}\n onCheckBoxChange={handleRowSelect}\n onIndeterminateCheckBoxChange={handleAllRowSelect}\n />\n )\n}\n\nexport default CustomerListTable\n"],"names":["statusColor","NameColumn","row","jsxs","jsx","Avatar","Link","ActionColumn","onEdit","onViewDetail","Tooltip","TbPencil","TbEye","CustomerListTable","navigate","useNavigate","customerList","customerListTotal","tableData","isLoading","setTableData","setSelectAllCustomer","setSelectedCustomer","selectedCustomer","useCustomerList","handleEdit","customer","handleViewDetails","columns","useMemo","props","Tag","handleSetTableData","data","handlePaginationChange","page","newTableData","cloneDeep","handleSelectChange","value","handleSort","sort","handleRowSelect","checked","handleAllRowSelect","rows","originalRows","DataTable","selected"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CustomerListTable.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomerListTable.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Tag from '@/components/ui/Tag'\nimport Tooltip from '@/components/ui/Tooltip'\nimport DataTable from '@/components/shared/DataTable'\nimport useCustomerList from '../hooks/useCustomerList'\nimport { Link, useNavigate } from 'react-router-dom'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { TbPencil, TbEye } from 'react-icons/tb'\nimport type { OnSortParam, ColumnDef, Row } from '@/components/shared/DataTable'\nimport type { Customer } from '../types'\nimport type { TableQueries } from '@/@types/common'\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 NameColumn = ({ row }: { row: Customer }) => {\n return (\n <div className=\"flex items-center\">\n <Avatar size={40} shape=\"circle\" src={row.img} />\n <Link\n className={`hover:text-primary ml-2 rtl:mr-2 font-semibold text-gray-900 dark:text-gray-100`}\n to={`/concepts/customers/customer-details/${row.id}`}\n >\n {row.name}\n </Link>\n </div>\n )\n}\n\nconst ActionColumn = ({\n onEdit,\n onViewDetail,\n}: {\n onEdit: () => void\n onViewDetail: () => void\n}) => {\n return (\n <div className=\"flex items-center gap-3\">\n <Tooltip title=\"Edit\">\n <div\n className={`text-xl cursor-pointer select-none font-semibold`}\n role=\"button\"\n onClick={onEdit}\n >\n <TbPencil />\n </div>\n </Tooltip>\n <Tooltip title=\"View\">\n <div\n className={`text-xl cursor-pointer select-none font-semibold`}\n role=\"button\"\n onClick={onViewDetail}\n >\n <TbEye />\n </div>\n </Tooltip>\n </div>\n )\n}\n\nconst CustomerListTable = () => {\n const navigate = useNavigate()\n\n const {\n customerList,\n customerListTotal,\n tableData,\n isLoading,\n setTableData,\n setSelectAllCustomer,\n setSelectedCustomer,\n selectedCustomer,\n } = useCustomerList()\n\n const handleEdit = (customer: Customer) => {\n navigate(`/concepts/customers/customer-edit/${customer.id}`)\n }\n\n const handleViewDetails = (customer: Customer) => {\n navigate(`/concepts/customers/customer-details/${customer.id}`)\n }\n\n const columns: ColumnDef<Customer>[] = useMemo(\n () => [\n {\n header: 'Name',\n accessorKey: 'name',\n cell: (props) => {\n const row = props.row.original\n return <NameColumn row={row} />\n },\n },\n {\n header: 'Email',\n accessorKey: 'email',\n },\n {\n header: 'location',\n accessorKey: 'personalInfo.location',\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: 'Spent',\n accessorKey: 'totalSpending',\n cell: (props) => {\n return <span>${props.row.original.totalSpending}</span>\n },\n },\n {\n header: '',\n id: 'action',\n cell: (props) => (\n <ActionColumn\n onEdit={() => handleEdit(props.row.original)}\n onViewDetail={() =>\n handleViewDetails(props.row.original)\n }\n />\n ),\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n )\n\n const handleSetTableData = (data: TableQueries) => {\n setTableData(data)\n if (selectedCustomer.length > 0) {\n setSelectAllCustomer([])\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: Customer) => {\n setSelectedCustomer(checked, row)\n }\n\n const handleAllRowSelect = (checked: boolean, rows: Row<Customer>[]) => {\n if (checked) {\n const originalRows = rows.map((row) => row.original)\n setSelectAllCustomer(originalRows)\n } else {\n setSelectAllCustomer([])\n }\n }\n\n return (\n <DataTable\n selectable\n columns={columns}\n data={customerList}\n noData={!isLoading && customerList.length === 0}\n skeletonAvatarColumns={[0]}\n skeletonAvatarProps={{ width: 28, height: 28 }}\n loading={isLoading}\n pagingData={{\n total: customerListTotal,\n pageIndex: tableData.pageIndex as number,\n pageSize: tableData.pageSize as number,\n }}\n checkboxChecked={(row) =>\n selectedCustomer.some((selected) => selected.id === row.id)\n }\n onPaginationChange={handlePaginationChange}\n onSelectChange={handleSelectChange}\n onSort={handleSort}\n onCheckBoxChange={handleRowSelect}\n onIndeterminateCheckBoxChange={handleAllRowSelect}\n />\n )\n}\n\nexport default CustomerListTable\n"],"names":["statusColor","NameColumn","row","jsxs","jsx","Avatar","Link","ActionColumn","onEdit","onViewDetail","Tooltip","TbPencil","TbEye","CustomerListTable","navigate","useNavigate","customerList","customerListTotal","tableData","isLoading","setTableData","setSelectAllCustomer","setSelectedCustomer","selectedCustomer","useCustomerList","handleEdit","customer","handleViewDetails","columns","useMemo","props","Tag","handleSetTableData","data","handlePaginationChange","page","newTableData","cloneDeep","handleSelectChange","value","handleSort","sort","handleRowSelect","checked","handleAllRowSelect","rows","originalRows","DataTable","selected"],"mappings":";;;;;;;;;;;;AAaA,MAAMA,IAAsC;AAAA,EACxC,QAAQ;AAAA,EACR,SAAS;AACb,GAEMC,IAAa,CAAC,EAAE,KAAAC,QAEd,gBAAAC,EAAC,OAAA,EAAI,WAAU,qBACX,UAAA;AAAA,EAAA,gBAAAC,EAACC,KAAO,MAAM,IAAI,OAAM,UAAS,KAAKH,EAAI,KAAK;AAAA,EAC/C,gBAAAE;AAAA,IAACE;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,MACX,IAAI,wCAAwCJ,EAAI,EAAE;AAAA,MAEjD,UAAAA,EAAI;AAAA,IAAA;AAAA,EAAA;AACT,GACJ,GAIFK,IAAe,CAAC;AAAA,EAClB,QAAAC;AAAA,EACA,cAAAC;AACJ,MAKQ,gBAAAN,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,EAAA,gBAAAC,EAACM,GAAA,EAAQ,OAAM,QACX,UAAA,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,MACX,MAAK;AAAA,MACL,SAASI;AAAA,MAET,4BAACG,GAAA,CAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAElB;AAAA,EACA,gBAAAP,EAACM,GAAA,EAAQ,OAAM,QACX,UAAA,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,MACX,MAAK;AAAA,MACL,SAASK;AAAA,MAET,4BAACG,GAAA,CAAA,CAAM;AAAA,IAAA;AAAA,EAAA,EACX,CACJ;AAAA,GACJ,GAIFC,IAAoB,MAAM;AAC5B,QAAMC,IAAWC,EAAA,GAEX;AAAA,IACF,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACAC,EAAA,GAEEC,IAAa,CAACC,MAAuB;AACvC,IAAAZ,EAAS,qCAAqCY,EAAS,EAAE,EAAE;AAAA,EAC/D,GAEMC,IAAoB,CAACD,MAAuB;AAC9C,IAAAZ,EAAS,wCAAwCY,EAAS,EAAE,EAAE;AAAA,EAClE,GAEME,IAAiCC;AAAA,IACnC,MAAM;AAAA,MACF;AAAA,QACI,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,MAAM,CAACC,MAAU;AACb,gBAAM5B,IAAM4B,EAAM,IAAI;AACtB,iBAAO,gBAAA1B,EAACH,KAAW,KAAAC,GAAU;AAAA,QACjC;AAAA,MAAA;AAAA,MAEJ;AAAA,QACI,QAAQ;AAAA,QACR,aAAa;AAAA,MAAA;AAAA,MAEjB;AAAA,QACI,QAAQ;AAAA,QACR,aAAa;AAAA,MAAA;AAAA,MAEjB;AAAA,QACI,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,MAAM,CAAC4B,MAAU;AACb,gBAAM5B,IAAM4B,EAAM,IAAI;AACtB,mCACK,OAAA,EAAI,WAAU,qBACX,UAAA,gBAAA1B,EAAC2B,GAAA,EAAI,WAAW/B,EAAYE,EAAI,MAAM,GAClC,4BAAC,QAAA,EAAK,WAAU,cAAc,UAAAA,EAAI,QAAO,GAC7C,EAAA,CACJ;AAAA,QAER;AAAA,MAAA;AAAA,MAEJ;AAAA,QACI,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,MAAM,CAAC4B,wBACK,QAAA,EAAK,UAAA;AAAA,UAAA;AAAA,UAAEA,EAAM,IAAI,SAAS;AAAA,QAAA,GAAc;AAAA,MACpD;AAAA,MAEJ;AAAA,QACI,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,MAAM,CAACA,MACH,gBAAA1B;AAAA,UAACG;AAAA,UAAA;AAAA,YACG,QAAQ,MAAMkB,EAAWK,EAAM,IAAI,QAAQ;AAAA,YAC3C,cAAc,MACVH,EAAkBG,EAAM,IAAI,QAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MAE5C;AAAA,IAER;AAAA;AAAA,IAGJ,CAAA;AAAA,EAAC,GAGCE,IAAqB,CAACC,MAAuB;AAC/C,IAAAb,EAAaa,CAAI,GACbV,EAAiB,SAAS,KAC1BF,EAAqB,CAAA,CAAE;AAAA,EAE/B,GAEMa,IAAyB,CAACC,MAAiB;AAC7C,UAAMC,IAAeC,EAAUnB,CAAS;AACxC,IAAAkB,EAAa,YAAYD,GACzBH,EAAmBI,CAAY;AAAA,EACnC,GAEME,IAAqB,CAACC,MAAkB;AAC1C,UAAMH,IAAeC,EAAUnB,CAAS;AACxC,IAAAkB,EAAa,WAAW,OAAOG,CAAK,GACpCH,EAAa,YAAY,GACzBJ,EAAmBI,CAAY;AAAA,EACnC,GAEMI,IAAa,CAACC,MAAsB;AACtC,UAAML,IAAeC,EAAUnB,CAAS;AACxC,IAAAkB,EAAa,OAAOK,GACpBT,EAAmBI,CAAY;AAAA,EACnC,GAEMM,IAAkB,CAACC,GAAkBzC,MAAkB;AACzD,IAAAoB,EAAoBqB,GAASzC,CAAG;AAAA,EACpC,GAEM0C,IAAqB,CAACD,GAAkBE,MAA0B;AACpE,QAAIF,GAAS;AACT,YAAMG,IAAeD,EAAK,IAAI,CAAC3C,MAAQA,EAAI,QAAQ;AACnD,MAAAmB,EAAqByB,CAAY;AAAA,IACrC;AACI,MAAAzB,EAAqB,CAAA,CAAE;AAAA,EAE/B;AAEA,SACI,gBAAAjB;AAAA,IAAC2C;AAAA,IAAA;AAAA,MACG,YAAU;AAAA,MACV,SAAAnB;AAAA,MACA,MAAMZ;AAAA,MACN,QAAQ,CAACG,KAAaH,EAAa,WAAW;AAAA,MAC9C,uBAAuB,CAAC,CAAC;AAAA,MACzB,qBAAqB,EAAE,OAAO,IAAI,QAAQ,GAAA;AAAA,MAC1C,SAASG;AAAA,MACT,YAAY;AAAA,QACR,OAAOF;AAAA,QACP,WAAWC,EAAU;AAAA,QACrB,UAAUA,EAAU;AAAA,MAAA;AAAA,MAExB,iBAAiB,CAAChB,MACdqB,EAAiB,KAAK,CAACyB,MAAaA,EAAS,OAAO9C,EAAI,EAAE;AAAA,MAE9D,oBAAoBgC;AAAA,MACpB,gBAAgBI;AAAA,MAChB,QAAQE;AAAA,MACR,kBAAkBE;AAAA,MAClB,+BAA+BE;AAAA,IAAA;AAAA,EAAA;AAG3C;"}
|
package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListTableFilter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomerListTableFilter.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomerListTableFilter.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport Checkbox from '@/components/ui/Checkbox'\nimport Input from '@/components/ui/Input'\nimport { Form, FormItem } from '@/components/ui/Form'\nimport useCustomerList from '../hooks/useCustomerList'\nimport { TbFilter } from 'react-icons/tb'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport type { ZodType } from 'zod'\n\ntype FormSchema = {\n purchasedProducts: string\n purchaseChannel: Array<string>\n}\n\nconst channelList = [\n 'Retail Stores',\n 'Online Retailers',\n 'Resellers',\n 'Mobile Apps',\n 'Direct Sales',\n]\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n purchasedProducts: z.string(),\n purchaseChannel: z.array(z.string()),\n})\n\nconst CustomerListTableFilter = () => {\n const [dialogIsOpen, setIsOpen] = useState(false)\n\n const { filterData, setFilterData } = useCustomerList()\n\n const openDialog = () => {\n setIsOpen(true)\n }\n\n const onDialogClose = () => {\n setIsOpen(false)\n }\n\n const { handleSubmit, reset, control } = useForm<FormSchema>({\n defaultValues: filterData,\n resolver: zodResolver(validationSchema),\n })\n\n const onSubmit = (values: FormSchema) => {\n setFilterData(values)\n setIsOpen(false)\n }\n\n return (\n <>\n <Button icon={<TbFilter />} onClick={() => openDialog()}>\n Filter\n </Button>\n <Dialog\n isOpen={dialogIsOpen}\n onClose={onDialogClose}\n onRequestClose={onDialogClose}\n >\n <h4 className=\"mb-4\">Filter</h4>\n <Form onSubmit={handleSubmit(onSubmit)}>\n <FormItem label=\"Products\">\n <Controller\n name=\"purchasedProducts\"\n control={control}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n placeholder=\"Search by purchased product\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem label=\"Purchase Channel\">\n <Controller\n name=\"purchaseChannel\"\n control={control}\n render={({ field }) => (\n <Checkbox.Group\n vertical\n className=\"flex mt-4\"\n {...field}\n >\n {channelList.map((source, index) => (\n <Checkbox\n key={source + index}\n name={field.name}\n value={source}\n className=\"justify-between flex-row-reverse heading-text\"\n >\n {source}\n </Checkbox>\n ))}\n </Checkbox.Group>\n )}\n />\n </FormItem>\n <div className=\"flex justify-end items-center gap-2 mt-4\">\n <Button type=\"button\" onClick={() => reset()}>\n Reset\n </Button>\n <Button type=\"submit\" variant=\"solid\">\n Apply\n </Button>\n </div>\n </Form>\n </Dialog>\n </>\n )\n}\n\nexport default CustomerListTableFilter\n"],"names":["channelList","validationSchema","z","CustomerListTableFilter","dialogIsOpen","setIsOpen","useState","filterData","setFilterData","useCustomerList","openDialog","onDialogClose","handleSubmit","reset","control","useForm","zodResolver","jsxs","Fragment","jsx","Button","TbFilter","Dialog","Form","values","FormItem","Controller","field","Input","Checkbox","source","index"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAMA,IAAc;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAEMC,IAAwCC,EAAE,OAAO;AAAA,EACnD,mBAAmBA,EAAE,OAAA;AAAA,EACrB,iBAAiBA,EAAE,MAAMA,EAAE,QAAQ;AACvC,CAAC,GAEKC,IAA0B,MAAM;AAClC,QAAM,CAACC,GAAcC,CAAS,IAAIC,EAAS,EAAK,GAE1C,EAAE,YAAAC,GAAY,eAAAC,EAAA,IAAkBC,EAAA,GAEhCC,IAAa,MAAM;AACrB,IAAAL,EAAU,EAAI;AAAA,
|
|
1
|
+
{"version":3,"file":"CustomerListTableFilter.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomerListTableFilter.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport Checkbox from '@/components/ui/Checkbox'\nimport Input from '@/components/ui/Input'\nimport { Form, FormItem } from '@/components/ui/Form'\nimport useCustomerList from '../hooks/useCustomerList'\nimport { TbFilter } from 'react-icons/tb'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport type { ZodType } from 'zod'\n\ntype FormSchema = {\n purchasedProducts: string\n purchaseChannel: Array<string>\n}\n\nconst channelList = [\n 'Retail Stores',\n 'Online Retailers',\n 'Resellers',\n 'Mobile Apps',\n 'Direct Sales',\n]\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n purchasedProducts: z.string(),\n purchaseChannel: z.array(z.string()),\n})\n\nconst CustomerListTableFilter = () => {\n const [dialogIsOpen, setIsOpen] = useState(false)\n\n const { filterData, setFilterData } = useCustomerList()\n\n const openDialog = () => {\n setIsOpen(true)\n }\n\n const onDialogClose = () => {\n setIsOpen(false)\n }\n\n const { handleSubmit, reset, control } = useForm<FormSchema>({\n defaultValues: filterData,\n resolver: zodResolver(validationSchema),\n })\n\n const onSubmit = (values: FormSchema) => {\n setFilterData(values)\n setIsOpen(false)\n }\n\n return (\n <>\n <Button icon={<TbFilter />} onClick={() => openDialog()}>\n Filter\n </Button>\n <Dialog\n isOpen={dialogIsOpen}\n onClose={onDialogClose}\n onRequestClose={onDialogClose}\n >\n <h4 className=\"mb-4\">Filter</h4>\n <Form onSubmit={handleSubmit(onSubmit)}>\n <FormItem label=\"Products\">\n <Controller\n name=\"purchasedProducts\"\n control={control}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n placeholder=\"Search by purchased product\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem label=\"Purchase Channel\">\n <Controller\n name=\"purchaseChannel\"\n control={control}\n render={({ field }) => (\n <Checkbox.Group\n vertical\n className=\"flex mt-4\"\n {...field}\n >\n {channelList.map((source, index) => (\n <Checkbox\n key={source + index}\n name={field.name}\n value={source}\n className=\"justify-between flex-row-reverse heading-text\"\n >\n {source}\n </Checkbox>\n ))}\n </Checkbox.Group>\n )}\n />\n </FormItem>\n <div className=\"flex justify-end items-center gap-2 mt-4\">\n <Button type=\"button\" onClick={() => reset()}>\n Reset\n </Button>\n <Button type=\"submit\" variant=\"solid\">\n Apply\n </Button>\n </div>\n </Form>\n </Dialog>\n </>\n )\n}\n\nexport default CustomerListTableFilter\n"],"names":["channelList","validationSchema","z","CustomerListTableFilter","dialogIsOpen","setIsOpen","useState","filterData","setFilterData","useCustomerList","openDialog","onDialogClose","handleSubmit","reset","control","useForm","zodResolver","jsxs","Fragment","jsx","Button","TbFilter","Dialog","Form","values","FormItem","Controller","field","Input","Checkbox","source","index"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAMA,IAAc;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAEMC,IAAwCC,EAAE,OAAO;AAAA,EACnD,mBAAmBA,EAAE,OAAA;AAAA,EACrB,iBAAiBA,EAAE,MAAMA,EAAE,QAAQ;AACvC,CAAC,GAEKC,IAA0B,MAAM;AAClC,QAAM,CAACC,GAAcC,CAAS,IAAIC,EAAS,EAAK,GAE1C,EAAE,YAAAC,GAAY,eAAAC,EAAA,IAAkBC,EAAA,GAEhCC,IAAa,MAAM;AACrB,IAAAL,EAAU,EAAI;AAAA,EAClB,GAEMM,IAAgB,MAAM;AACxB,IAAAN,EAAU,EAAK;AAAA,EACnB,GAEM,EAAE,cAAAO,GAAc,OAAAC,GAAO,SAAAC,EAAA,IAAYC,EAAoB;AAAA,IACzD,eAAeR;AAAA,IACf,UAAUS,EAAYf,CAAgB;AAAA,EAAA,CACzC;AAOD,SACI,gBAAAgB,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAO,MAAM,gBAAAD,EAACE,GAAA,CAAA,CAAS,GAAI,SAAS,MAAMX,EAAA,GAAc,UAAA,SAAA,CAEzD;AAAA,IACA,gBAAAO;AAAA,MAACK;AAAA,MAAA;AAAA,QACG,QAAQlB;AAAA,QACR,SAASO;AAAA,QACT,gBAAgBA;AAAA,QAEhB,UAAA;AAAA,UAAA,gBAAAQ,EAAC,MAAA,EAAG,WAAU,QAAO,UAAA,UAAM;AAAA,UAC3B,gBAAAF,EAACM,GAAA,EAAK,UAAUX,EAhBX,CAACY,MAAuB;AACrC,YAAAhB,EAAcgB,CAAM,GACpBnB,EAAU,EAAK;AAAA,UACnB,CAaiD,GACjC,UAAA;AAAA,YAAA,gBAAAc,EAACM,GAAA,EAAS,OAAM,YACZ,UAAA,gBAAAN;AAAA,cAACO;AAAA,cAAA;AAAA,gBACG,MAAK;AAAA,gBACL,SAAAZ;AAAA,gBACA,QAAQ,CAAC,EAAE,OAAAa,EAAA,MACP,gBAAAR;AAAA,kBAACS;AAAA,kBAAA;AAAA,oBACG,MAAK;AAAA,oBACL,cAAa;AAAA,oBACb,aAAY;AAAA,oBACX,GAAGD;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACR;AAAA,YAAA,GAGZ;AAAA,YACA,gBAAAR,EAACM,GAAA,EAAS,OAAM,oBACZ,UAAA,gBAAAN;AAAA,cAACO;AAAA,cAAA;AAAA,gBACG,MAAK;AAAA,gBACL,SAAAZ;AAAA,gBACA,QAAQ,CAAC,EAAE,OAAAa,EAAA,MACP,gBAAAR;AAAA,kBAACU,EAAS;AAAA,kBAAT;AAAA,oBACG,UAAQ;AAAA,oBACR,WAAU;AAAA,oBACT,GAAGF;AAAA,oBAEH,UAAA3B,EAAY,IAAI,CAAC8B,GAAQC,MACtB,gBAAAZ;AAAA,sBAACU;AAAA,sBAAA;AAAA,wBAEG,MAAMF,EAAM;AAAA,wBACZ,OAAOG;AAAA,wBACP,WAAU;AAAA,wBAET,UAAAA;AAAA,sBAAA;AAAA,sBALIA,IAASC;AAAA,oBAAA,CAOrB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACL;AAAA,YAAA,GAGZ;AAAA,YACA,gBAAAd,EAAC,OAAA,EAAI,WAAU,4CACX,UAAA;AAAA,cAAA,gBAAAE,EAACC,KAAO,MAAK,UAAS,SAAS,MAAMP,EAAA,GAAS,UAAA,SAE9C;AAAA,gCACCO,GAAA,EAAO,MAAK,UAAS,SAAQ,SAAQ,UAAA,QAAA,CAEtC;AAAA,YAAA,EAAA,CACJ;AAAA,UAAA,EAAA,CACJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACJ;AAER;"}
|
package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomersListTableTools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomersListTableTools.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomersListTableTools.tsx"],"sourcesContent":["import useCustomerList from '../hooks/useCustomerList'\nimport CustomerListSearch from './CustomerListSearch'\nimport CustomerTableFilter from './CustomerListTableFilter'\nimport cloneDeep from 'lodash/cloneDeep'\n\nconst CustomersListTableTools = () => {\n const { tableData, setTableData } = useCustomerList()\n\n const handleInputChange = (val: string) => {\n const newTableData = cloneDeep(tableData)\n newTableData.query = val\n newTableData.pageIndex = 1\n if (typeof val === 'string' && val.length > 1) {\n setTableData(newTableData)\n }\n\n if (typeof val === 'string' && val.length === 0) {\n setTableData(newTableData)\n }\n }\n\n return (\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-2\">\n <CustomerListSearch onInputChange={handleInputChange} />\n <CustomerTableFilter />\n </div>\n )\n}\n\nexport default CustomersListTableTools\n"],"names":["CustomersListTableTools","tableData","setTableData","useCustomerList","jsxs","jsx","CustomerListSearch","val","newTableData","cloneDeep","CustomerTableFilter"],"mappings":";;;;;AAKA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,WAAAC,GAAW,cAAAC,EAAA,IAAiBC,EAAA;AAepC,SACI,gBAAAC,EAAC,OAAA,EAAI,WAAU,sEACX,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAmB,eAfF,CAACC,MAAgB;AACvC,YAAMC,IAAeC,EAAUR,CAAS;AACxC,MAAAO,EAAa,QAAQD,GACrBC,EAAa,YAAY,GACrB,OAAOD,KAAQ,YAAYA,EAAI,SAAS,KACxCL,EAAaM,CAAY,GAGzB,OAAOD,KAAQ,YAAYA,EAAI,WAAW,KAC1CL,EAAaM,CAAY;AAAA,
|
|
1
|
+
{"version":3,"file":"CustomersListTableTools.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/components/CustomersListTableTools.tsx"],"sourcesContent":["import useCustomerList from '../hooks/useCustomerList'\nimport CustomerListSearch from './CustomerListSearch'\nimport CustomerTableFilter from './CustomerListTableFilter'\nimport cloneDeep from 'lodash/cloneDeep'\n\nconst CustomersListTableTools = () => {\n const { tableData, setTableData } = useCustomerList()\n\n const handleInputChange = (val: string) => {\n const newTableData = cloneDeep(tableData)\n newTableData.query = val\n newTableData.pageIndex = 1\n if (typeof val === 'string' && val.length > 1) {\n setTableData(newTableData)\n }\n\n if (typeof val === 'string' && val.length === 0) {\n setTableData(newTableData)\n }\n }\n\n return (\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-2\">\n <CustomerListSearch onInputChange={handleInputChange} />\n <CustomerTableFilter />\n </div>\n )\n}\n\nexport default CustomersListTableTools\n"],"names":["CustomersListTableTools","tableData","setTableData","useCustomerList","jsxs","jsx","CustomerListSearch","val","newTableData","cloneDeep","CustomerTableFilter"],"mappings":";;;;;AAKA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,WAAAC,GAAW,cAAAC,EAAA,IAAiBC,EAAA;AAepC,SACI,gBAAAC,EAAC,OAAA,EAAI,WAAU,sEACX,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAmB,eAfF,CAACC,MAAgB;AACvC,YAAMC,IAAeC,EAAUR,CAAS;AACxC,MAAAO,EAAa,QAAQD,GACrBC,EAAa,YAAY,GACrB,OAAOD,KAAQ,YAAYA,EAAI,SAAS,KACxCL,EAAaM,CAAY,GAGzB,OAAOD,KAAQ,YAAYA,EAAI,WAAW,KAC1CL,EAAaM,CAAY;AAAA,IAEjC,EAI2C,CAAmB;AAAA,sBACrDE,GAAA,CAAA,CAAoB;AAAA,EAAA,GACzB;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customerListStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/store/customerListStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { TableQueries } from '@/@types/common'\nimport type { Customer, Filter } from '../types'\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 = {\n purchasedProducts: '',\n purchaseChannel: [\n 'Retail Stores',\n 'Online Retailers',\n 'Resellers',\n 'Mobile Apps',\n 'Direct Sales',\n ],\n}\n\nexport type CustomersListState = {\n tableData: TableQueries\n filterData: Filter\n selectedCustomer: Partial<Customer>[]\n}\n\ntype CustomersListAction = {\n setFilterData: (payload: Filter) => void\n setTableData: (payload: TableQueries) => void\n setSelectedCustomer: (checked: boolean, customer: Customer) => void\n setSelectAllCustomer: (customer: Customer[]) => void\n}\n\nconst initialState: CustomersListState = {\n tableData: initialTableData,\n filterData: initialFilterData,\n selectedCustomer: [],\n}\n\nexport const useCustomerListStore = create<\n CustomersListState & CustomersListAction\n>((set) => ({\n ...initialState,\n setFilterData: (payload) => set(() => ({ filterData: payload })),\n setTableData: (payload) => set(() => ({ tableData: payload })),\n setSelectedCustomer: (checked, row) =>\n set((state) => {\n const prevData = state.selectedCustomer\n if (checked) {\n return { selectedCustomer: [...prevData, ...[row]] }\n } else {\n if (\n prevData.some((prevCustomer) => row.id === prevCustomer.id)\n ) {\n return {\n selectedCustomer: prevData.filter(\n (prevCustomer) => prevCustomer.id !== row.id,\n ),\n }\n }\n return { selectedCustomer: prevData }\n }\n }),\n setSelectAllCustomer: (row) => set(() => ({ selectedCustomer: row })),\n}))\n"],"names":["initialTableData","initialFilterData","initialState","useCustomerListStore","create","set","payload","checked","row","state","prevData","prevCustomer"],"mappings":";AAIO,MAAMA,IAAiC;AAAA,EAC1C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,IACF,OAAO;AAAA,IACP,KAAK;AAAA,EAAA;AAEb,GAEaC,IAAoB;AAAA,EAC7B,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER,GAeMC,IAAmC;AAAA,EACrC,WAAWF;AAAA,EACX,YAAYC;AAAA,EACZ,kBAAkB,CAAA;AACtB,GAEaE,IAAuBC,EAElC,CAACC,OAAS;AAAA,EACR,GAAGH;AAAA,EACH,eAAe,CAACI,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AAAA,EAC/D,cAAc,CAACA,MAAYD,EAAI,OAAO,EAAE,WAAWC,IAAU;AAAA,EAC7D,qBAAqB,CAACC,GAASC,MAC3BH,EAAI,CAACI,MAAU;AACX,UAAMC,IAAWD,EAAM;AACvB,WAAIF,IACO,EAAE,kBAAkB,CAAC,GAAGG,GAAcF,CAAI,EAAA,IAG7CE,EAAS,KAAK,CAACC,MAAiBH,EAAI,OAAOG,EAAa,EAAE,IAEnD;AAAA,MACH,kBAAkBD,EAAS;AAAA,QACvB,CAACC,MAAiBA,EAAa,OAAOH,EAAI;AAAA,MAAA;AAAA,IAC9C,IAGD,EAAE,kBAAkBE,EAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"customerListStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/customers/CustomerList/store/customerListStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { TableQueries } from '@/@types/common'\nimport type { Customer, Filter } from '../types'\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 = {\n purchasedProducts: '',\n purchaseChannel: [\n 'Retail Stores',\n 'Online Retailers',\n 'Resellers',\n 'Mobile Apps',\n 'Direct Sales',\n ],\n}\n\nexport type CustomersListState = {\n tableData: TableQueries\n filterData: Filter\n selectedCustomer: Partial<Customer>[]\n}\n\ntype CustomersListAction = {\n setFilterData: (payload: Filter) => void\n setTableData: (payload: TableQueries) => void\n setSelectedCustomer: (checked: boolean, customer: Customer) => void\n setSelectAllCustomer: (customer: Customer[]) => void\n}\n\nconst initialState: CustomersListState = {\n tableData: initialTableData,\n filterData: initialFilterData,\n selectedCustomer: [],\n}\n\nexport const useCustomerListStore = create<\n CustomersListState & CustomersListAction\n>((set) => ({\n ...initialState,\n setFilterData: (payload) => set(() => ({ filterData: payload })),\n setTableData: (payload) => set(() => ({ tableData: payload })),\n setSelectedCustomer: (checked, row) =>\n set((state) => {\n const prevData = state.selectedCustomer\n if (checked) {\n return { selectedCustomer: [...prevData, ...[row]] }\n } else {\n if (\n prevData.some((prevCustomer) => row.id === prevCustomer.id)\n ) {\n return {\n selectedCustomer: prevData.filter(\n (prevCustomer) => prevCustomer.id !== row.id,\n ),\n }\n }\n return { selectedCustomer: prevData }\n }\n }),\n setSelectAllCustomer: (row) => set(() => ({ selectedCustomer: row })),\n}))\n"],"names":["initialTableData","initialFilterData","initialState","useCustomerListStore","create","set","payload","checked","row","state","prevData","prevCustomer"],"mappings":";AAIO,MAAMA,IAAiC;AAAA,EAC1C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,IACF,OAAO;AAAA,IACP,KAAK;AAAA,EAAA;AAEb,GAEaC,IAAoB;AAAA,EAC7B,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER,GAeMC,IAAmC;AAAA,EACrC,WAAWF;AAAA,EACX,YAAYC;AAAA,EACZ,kBAAkB,CAAA;AACtB,GAEaE,IAAuBC,EAElC,CAACC,OAAS;AAAA,EACR,GAAGH;AAAA,EACH,eAAe,CAACI,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AAAA,EAC/D,cAAc,CAACA,MAAYD,EAAI,OAAO,EAAE,WAAWC,IAAU;AAAA,EAC7D,qBAAqB,CAACC,GAASC,MAC3BH,EAAI,CAACI,MAAU;AACX,UAAMC,IAAWD,EAAM;AACvB,WAAIF,IACO,EAAE,kBAAkB,CAAC,GAAGG,GAAcF,CAAI,EAAA,IAG7CE,EAAS,KAAK,CAACC,MAAiBH,EAAI,OAAOG,EAAa,EAAE,IAEnD;AAAA,MACH,kBAAkBD,EAAS;AAAA,QACvB,CAACC,MAAiBA,EAAa,OAAOH,EAAI;AAAA,MAAA;AAAA,IAC9C,IAGD,EAAE,kBAAkBE,EAAA;AAAA,EAEnC,CAAC;AAAA,EACL,sBAAsB,CAACF,MAAQH,EAAI,OAAO,EAAE,kBAAkBG,IAAM;AACxE,EAAE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManager.js","sources":["../../../../../../lib/@ecme/views/concepts/files/FileManager/FileManager.tsx"],"sourcesContent":["import { useEffect } from 'react'\nimport Table from '@/components/ui/Table'\nimport TableRowSkeleton from '@/components/shared/loaders/TableRowSkeleton'\nimport FileManagerHeader from './components/FileManagerHeader'\nimport FileSegment from './components/FileSegment'\nimport FileList from './components/FileList'\nimport FileDetails from './components/FileDetails'\nimport FileManagerDeleteDialog from './components/FileManagerDeleteDialog'\nimport FileManagerInviteDialog from './components/FileManagerInviteDialog'\nimport FileManagerRenameDialog from './components/FileManagerRenameDialog'\nimport { useFileManagerStore } from './store/useFileManagerStore'\nimport { apiGetFiles } from '@/services/FileService'\nimport useSWRMutation from 'swr/mutation'\nimport { GetFileListResponse } from './types'\n\nconst { THead, Th, Tr } = Table\n\nasync function getFile(_: string, { arg }: { arg: string }) {\n const data = await apiGetFiles<GetFileListResponse, { id: string }>({\n id: arg,\n })\n return data\n}\n\nconst FileManager = () => {\n const {\n layout,\n fileList,\n setFileList,\n setDeleteDialog,\n setInviteDialog,\n setRenameDialog,\n openedDirectoryId,\n setOpenedDirectoryId,\n setDirectories,\n setSelectedFile,\n } = useFileManagerStore()\n\n const { trigger, isMutating } = useSWRMutation(\n `/api/files/${openedDirectoryId}`,\n getFile,\n {\n onSuccess: (resp) => {\n setDirectories(resp.directory)\n setFileList(resp.list)\n },\n },\n )\n\n useEffect(() => {\n if (fileList.length === 0) {\n trigger(openedDirectoryId)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleShare = (id: string) => {\n setInviteDialog({ id, open: true })\n }\n\n const handleDelete = (id: string) => {\n setDeleteDialog({ id, open: true })\n }\n\n const handleDownload = () => {\n const blob = new Blob(\n [\n 'This text file is created to demonstrate how file downloading works in our template demo.',\n ],\n { type: 'text/plain;charset=utf-8' },\n )\n\n const link = document.createElement('a')\n link.href = window.URL.createObjectURL(blob)\n link.download = 'sample-dowoad-file'\n document.body.appendChild(link)\n\n link.click()\n\n document.body.removeChild(link)\n window.URL.revokeObjectURL(link.href)\n }\n\n const handleRename = (id: string) => {\n setRenameDialog({ id, open: true })\n }\n\n const handleOpen = (id: string) => {\n setOpenedDirectoryId(id)\n trigger(id)\n }\n\n const handleEntryClick = () => {\n setOpenedDirectoryId('')\n trigger('')\n }\n\n const handleDirectoryClick = (id: string) => {\n setOpenedDirectoryId(id)\n trigger(id)\n }\n\n const handleClick = (fileId: string) => {\n setSelectedFile(fileId)\n }\n\n return (\n <>\n <div>\n <FileManagerHeader\n onEntryClick={handleEntryClick}\n onDirectoryClick={handleDirectoryClick}\n />\n <div className=\"mt-6\">\n {isMutating ? (\n layout === 'grid' ? (\n <div className=\"grid grid-cols-1 xs:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 mt-4 gap-4 lg:gap-6\">\n {[...Array(4).keys()].map((item) => (\n <FileSegment\n key={item}\n loading={isMutating}\n />\n ))}\n </div>\n ) : (\n <Table>\n <THead>\n <Tr>\n <Th>File</Th>\n <Th>Size</Th>\n <Th>Type</Th>\n <Th></Th>\n </Tr>\n </THead>\n <TableRowSkeleton\n avatarInColumns={[0]}\n columns={4}\n rows={5}\n avatarProps={{\n width: 30,\n height: 30,\n }}\n />\n </Table>\n )\n ) : (\n <FileList\n fileList={fileList}\n layout={layout}\n onDownload={handleDownload}\n onShare={handleShare}\n onDelete={handleDelete}\n onRename={handleRename}\n onOpen={handleOpen}\n onClick={handleClick}\n />\n )}\n </div>\n </div>\n <FileDetails onShare={handleShare} />\n <FileManagerDeleteDialog />\n <FileManagerInviteDialog />\n <FileManagerRenameDialog />\n </>\n )\n}\n\nexport default FileManager\n"],"names":["THead","Th","Tr","Table","getFile","_","arg","apiGetFiles","FileManager","layout","fileList","setFileList","setDeleteDialog","setInviteDialog","setRenameDialog","openedDirectoryId","setOpenedDirectoryId","setDirectories","setSelectedFile","useFileManagerStore","trigger","isMutating","useSWRMutation","resp","useEffect","handleShare","id","jsxs","Fragment","jsx","FileManagerHeader","item","FileSegment","TableRowSkeleton","FileList","blob","link","fileId","FileDetails","FileManagerDeleteDialog","FileManagerInviteDialog","FileManagerRenameDialog"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,EAAE,OAAAA,GAAO,IAAAC,GAAI,IAAAC,EAAA,IAAOC;AAE1B,eAAeC,EAAQC,GAAW,EAAE,KAAAC,KAAwB;AAIxD,SAHa,MAAMC,EAAiD;AAAA,IAChE,IAAID;AAAA,EAAA,CACP;AAEL;AAEA,MAAME,KAAc,MAAM;AACtB,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,IACAC,EAAA,GAEE,EAAE,SAAAC,GAAS,YAAAC,EAAA,IAAeC;AAAA,IAC5B,cAAcP,CAAiB;AAAA,IAC/BX;AAAA,IACA;AAAA,MACI,WAAW,CAACmB,MAAS;AACjB,QAAAN,EAAeM,EAAK,SAAS,GAC7BZ,EAAYY,EAAK,IAAI;AAAA,
|
|
1
|
+
{"version":3,"file":"FileManager.js","sources":["../../../../../../lib/@ecme/views/concepts/files/FileManager/FileManager.tsx"],"sourcesContent":["import { useEffect } from 'react'\nimport Table from '@/components/ui/Table'\nimport TableRowSkeleton from '@/components/shared/loaders/TableRowSkeleton'\nimport FileManagerHeader from './components/FileManagerHeader'\nimport FileSegment from './components/FileSegment'\nimport FileList from './components/FileList'\nimport FileDetails from './components/FileDetails'\nimport FileManagerDeleteDialog from './components/FileManagerDeleteDialog'\nimport FileManagerInviteDialog from './components/FileManagerInviteDialog'\nimport FileManagerRenameDialog from './components/FileManagerRenameDialog'\nimport { useFileManagerStore } from './store/useFileManagerStore'\nimport { apiGetFiles } from '@/services/FileService'\nimport useSWRMutation from 'swr/mutation'\nimport { GetFileListResponse } from './types'\n\nconst { THead, Th, Tr } = Table\n\nasync function getFile(_: string, { arg }: { arg: string }) {\n const data = await apiGetFiles<GetFileListResponse, { id: string }>({\n id: arg,\n })\n return data\n}\n\nconst FileManager = () => {\n const {\n layout,\n fileList,\n setFileList,\n setDeleteDialog,\n setInviteDialog,\n setRenameDialog,\n openedDirectoryId,\n setOpenedDirectoryId,\n setDirectories,\n setSelectedFile,\n } = useFileManagerStore()\n\n const { trigger, isMutating } = useSWRMutation(\n `/api/files/${openedDirectoryId}`,\n getFile,\n {\n onSuccess: (resp) => {\n setDirectories(resp.directory)\n setFileList(resp.list)\n },\n },\n )\n\n useEffect(() => {\n if (fileList.length === 0) {\n trigger(openedDirectoryId)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleShare = (id: string) => {\n setInviteDialog({ id, open: true })\n }\n\n const handleDelete = (id: string) => {\n setDeleteDialog({ id, open: true })\n }\n\n const handleDownload = () => {\n const blob = new Blob(\n [\n 'This text file is created to demonstrate how file downloading works in our template demo.',\n ],\n { type: 'text/plain;charset=utf-8' },\n )\n\n const link = document.createElement('a')\n link.href = window.URL.createObjectURL(blob)\n link.download = 'sample-dowoad-file'\n document.body.appendChild(link)\n\n link.click()\n\n document.body.removeChild(link)\n window.URL.revokeObjectURL(link.href)\n }\n\n const handleRename = (id: string) => {\n setRenameDialog({ id, open: true })\n }\n\n const handleOpen = (id: string) => {\n setOpenedDirectoryId(id)\n trigger(id)\n }\n\n const handleEntryClick = () => {\n setOpenedDirectoryId('')\n trigger('')\n }\n\n const handleDirectoryClick = (id: string) => {\n setOpenedDirectoryId(id)\n trigger(id)\n }\n\n const handleClick = (fileId: string) => {\n setSelectedFile(fileId)\n }\n\n return (\n <>\n <div>\n <FileManagerHeader\n onEntryClick={handleEntryClick}\n onDirectoryClick={handleDirectoryClick}\n />\n <div className=\"mt-6\">\n {isMutating ? (\n layout === 'grid' ? (\n <div className=\"grid grid-cols-1 xs:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 mt-4 gap-4 lg:gap-6\">\n {[...Array(4).keys()].map((item) => (\n <FileSegment\n key={item}\n loading={isMutating}\n />\n ))}\n </div>\n ) : (\n <Table>\n <THead>\n <Tr>\n <Th>File</Th>\n <Th>Size</Th>\n <Th>Type</Th>\n <Th></Th>\n </Tr>\n </THead>\n <TableRowSkeleton\n avatarInColumns={[0]}\n columns={4}\n rows={5}\n avatarProps={{\n width: 30,\n height: 30,\n }}\n />\n </Table>\n )\n ) : (\n <FileList\n fileList={fileList}\n layout={layout}\n onDownload={handleDownload}\n onShare={handleShare}\n onDelete={handleDelete}\n onRename={handleRename}\n onOpen={handleOpen}\n onClick={handleClick}\n />\n )}\n </div>\n </div>\n <FileDetails onShare={handleShare} />\n <FileManagerDeleteDialog />\n <FileManagerInviteDialog />\n <FileManagerRenameDialog />\n </>\n )\n}\n\nexport default FileManager\n"],"names":["THead","Th","Tr","Table","getFile","_","arg","apiGetFiles","FileManager","layout","fileList","setFileList","setDeleteDialog","setInviteDialog","setRenameDialog","openedDirectoryId","setOpenedDirectoryId","setDirectories","setSelectedFile","useFileManagerStore","trigger","isMutating","useSWRMutation","resp","useEffect","handleShare","id","jsxs","Fragment","jsx","FileManagerHeader","item","FileSegment","TableRowSkeleton","FileList","blob","link","fileId","FileDetails","FileManagerDeleteDialog","FileManagerInviteDialog","FileManagerRenameDialog"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDetails.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileDetails.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Drawer from '@/components/ui/Drawer'\nimport Avatar from '@/components/ui/Avatar'\nimport Button from '@/components/ui/Button'\nimport CloseButton from '@/components/ui/CloseButton'\nimport FileIcon from '@/components/view/FileIcon'\nimport FileType from './FileType'\nimport fileSizeUnit from '@/utils/fileSizeUnit'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\nimport dayjs from 'dayjs'\nimport { TbPlus } from 'react-icons/tb'\nimport type { ReactNode } from 'react'\n\ntype FileDetailsProps = {\n onShare: (id: string) => void\n}\n\nconst InfoRow = ({\n label,\n value,\n}: {\n label: string\n value: string | ReactNode\n}) => {\n return (\n <div className=\"flex items-center justify-between\">\n <span>{label}</span>\n <span className=\"heading-text font-bold\">{value}</span>\n </div>\n )\n}\n\nconst FileDetails = ({ onShare }: FileDetailsProps) => {\n const { selectedFile, setSelectedFile, fileList } = useFileManagerStore()\n\n const file = useMemo(() => {\n return fileList.find((file) => selectedFile === file.id)\n }, [fileList, selectedFile])\n\n const handleDrawerClose = () => {\n setSelectedFile('')\n }\n\n return (\n <Drawer\n title={null}\n closable={false}\n isOpen={Boolean(selectedFile)}\n showBackdrop={false}\n width={350}\n onClose={handleDrawerClose}\n onRequestClose={handleDrawerClose}\n >\n {file && (\n <div>\n <div className=\"flex justify-end\">\n <CloseButton onClick={handleDrawerClose} />\n </div>\n <div className=\"mt-10 flex justify-center\">\n {file.fileType.startsWith('jpeg') ||\n file.fileType.startsWith('png') ? (\n <img\n src={file.srcUrl}\n className=\"max-h-[170px] rounded-xl\"\n alt={file.name}\n />\n ) : (\n <FileIcon type={file.fileType} size={120} />\n )}\n </div>\n <div className=\"mt-10 text-center\">\n <h4>{file.name}</h4>\n </div>\n <div className=\"mt-8\">\n <h6>Info</h6>\n <div className=\"mt-4 flex flex-col gap-4\">\n <InfoRow\n label=\"Size\"\n value={fileSizeUnit(file.size)}\n />\n <InfoRow\n label=\"Type\"\n value={<FileType type={file.fileType} />}\n />\n <InfoRow\n label=\"Created\"\n value={dayjs\n .unix(file.uploadDate)\n .format('MMM DD, YYYY')}\n />\n <InfoRow\n label=\"Last modified\"\n value={dayjs\n .unix(file.activities[0].timestamp)\n .format('MMM DD, YYYY')}\n />\n </div>\n </div>\n <div className=\"mt-10\">\n <div className=\"flex justify-between items-center\">\n <h6>Shared with</h6>\n <Button\n type=\"button\"\n shape=\"circle\"\n icon={<TbPlus />}\n size=\"xs\"\n onClick={() => onShare(file.id)}\n />\n </div>\n <div className=\"mt-6 flex flex-col gap-4\">\n {file.permissions.map((user) => (\n <div\n key={user.userName}\n className=\"flex items-center gap-2\"\n >\n <Avatar src={user.userImg} alt=\"\" />\n <div>\n <div className=\"heading-text font-semibold\">\n {user.userName}\n </div>\n <div>{user.role}</div>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </Drawer>\n )\n}\n\nexport default FileDetails\n"],"names":["InfoRow","label","value","jsxs","jsx","FileDetails","onShare","selectedFile","setSelectedFile","fileList","useFileManagerStore","file","useMemo","handleDrawerClose","Drawer","CloseButton","FileIcon","fileSizeUnit","FileType","dayjs","Button","TbPlus","user","Avatar"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAMA,IAAU,CAAC;AAAA,EACb,OAAAC;AAAA,EACA,OAAAC;AACJ,MAKQ,gBAAAC,EAAC,OAAA,EAAI,WAAU,qCACX,UAAA;AAAA,EAAA,gBAAAC,EAAC,UAAM,UAAAH,EAAA,CAAM;AAAA,EACb,gBAAAG,EAAC,QAAA,EAAK,WAAU,0BAA0B,UAAAF,EAAA,CAAM;AAAA,GACpD,GAIFG,IAAc,CAAC,EAAE,SAAAC,QAAgC;AACnD,QAAM,EAAE,cAAAC,GAAc,iBAAAC,GAAiB,UAAAC,EAAA,IAAaC,EAAA,GAE9CC,IAAOC,EAAQ,MACVH,EAAS,KAAK,CAACE,MAASJ,MAAiBI,EAAK,EAAE,GACxD,CAACF,GAAUF,CAAY,CAAC,GAErBM,IAAoB,MAAM;AAC5B,IAAAL,EAAgB,EAAE;AAAA,
|
|
1
|
+
{"version":3,"file":"FileDetails.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileDetails.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Drawer from '@/components/ui/Drawer'\nimport Avatar from '@/components/ui/Avatar'\nimport Button from '@/components/ui/Button'\nimport CloseButton from '@/components/ui/CloseButton'\nimport FileIcon from '@/components/view/FileIcon'\nimport FileType from './FileType'\nimport fileSizeUnit from '@/utils/fileSizeUnit'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\nimport dayjs from 'dayjs'\nimport { TbPlus } from 'react-icons/tb'\nimport type { ReactNode } from 'react'\n\ntype FileDetailsProps = {\n onShare: (id: string) => void\n}\n\nconst InfoRow = ({\n label,\n value,\n}: {\n label: string\n value: string | ReactNode\n}) => {\n return (\n <div className=\"flex items-center justify-between\">\n <span>{label}</span>\n <span className=\"heading-text font-bold\">{value}</span>\n </div>\n )\n}\n\nconst FileDetails = ({ onShare }: FileDetailsProps) => {\n const { selectedFile, setSelectedFile, fileList } = useFileManagerStore()\n\n const file = useMemo(() => {\n return fileList.find((file) => selectedFile === file.id)\n }, [fileList, selectedFile])\n\n const handleDrawerClose = () => {\n setSelectedFile('')\n }\n\n return (\n <Drawer\n title={null}\n closable={false}\n isOpen={Boolean(selectedFile)}\n showBackdrop={false}\n width={350}\n onClose={handleDrawerClose}\n onRequestClose={handleDrawerClose}\n >\n {file && (\n <div>\n <div className=\"flex justify-end\">\n <CloseButton onClick={handleDrawerClose} />\n </div>\n <div className=\"mt-10 flex justify-center\">\n {file.fileType.startsWith('jpeg') ||\n file.fileType.startsWith('png') ? (\n <img\n src={file.srcUrl}\n className=\"max-h-[170px] rounded-xl\"\n alt={file.name}\n />\n ) : (\n <FileIcon type={file.fileType} size={120} />\n )}\n </div>\n <div className=\"mt-10 text-center\">\n <h4>{file.name}</h4>\n </div>\n <div className=\"mt-8\">\n <h6>Info</h6>\n <div className=\"mt-4 flex flex-col gap-4\">\n <InfoRow\n label=\"Size\"\n value={fileSizeUnit(file.size)}\n />\n <InfoRow\n label=\"Type\"\n value={<FileType type={file.fileType} />}\n />\n <InfoRow\n label=\"Created\"\n value={dayjs\n .unix(file.uploadDate)\n .format('MMM DD, YYYY')}\n />\n <InfoRow\n label=\"Last modified\"\n value={dayjs\n .unix(file.activities[0].timestamp)\n .format('MMM DD, YYYY')}\n />\n </div>\n </div>\n <div className=\"mt-10\">\n <div className=\"flex justify-between items-center\">\n <h6>Shared with</h6>\n <Button\n type=\"button\"\n shape=\"circle\"\n icon={<TbPlus />}\n size=\"xs\"\n onClick={() => onShare(file.id)}\n />\n </div>\n <div className=\"mt-6 flex flex-col gap-4\">\n {file.permissions.map((user) => (\n <div\n key={user.userName}\n className=\"flex items-center gap-2\"\n >\n <Avatar src={user.userImg} alt=\"\" />\n <div>\n <div className=\"heading-text font-semibold\">\n {user.userName}\n </div>\n <div>{user.role}</div>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </Drawer>\n )\n}\n\nexport default FileDetails\n"],"names":["InfoRow","label","value","jsxs","jsx","FileDetails","onShare","selectedFile","setSelectedFile","fileList","useFileManagerStore","file","useMemo","handleDrawerClose","Drawer","CloseButton","FileIcon","fileSizeUnit","FileType","dayjs","Button","TbPlus","user","Avatar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileItemDropdown.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileItemDropdown.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport {\n TbCloudDownload,\n TbPencil,\n TbUserPlus,\n TbTrash,\n TbFolderSymlink,\n} from \"react-icons/tb\";\nimport type { DropdownItemCallbackProps } from \"../types\";\nimport type { MouseEvent, SyntheticEvent } from \"react\";\nimport { Dropdown, DropdownRef } from \"@/components\";\nimport EllipsisButton from \"@/components/shared/EllipsisButton\";\n\ntype FileItemDropdownProps = DropdownItemCallbackProps;\n\nconst FileItemDropdown = (props: FileItemDropdownProps) => {\n const { onDelete, onShare, onRename, onDownload, onOpen } = props;\n\n const dropdownRef = useRef<DropdownRef>(null);\n\n const handleDropdownClick = (e: MouseEvent) => {\n e.stopPropagation();\n dropdownRef.current?.handleDropdownOpen();\n };\n\n const handleDropdownItemClick = (\n e: SyntheticEvent,\n callback?: () => void\n ) => {\n e.stopPropagation();\n callback?.();\n };\n\n return (\n <Dropdown\n ref={dropdownRef}\n renderTitle={<EllipsisButton onClick={handleDropdownClick} />}\n placement=\"bottom-end\"\n >\n {onOpen && (\n <Dropdown.Item\n eventKey=\"Open\"\n onClick={(e) => handleDropdownItemClick(e, onOpen)}\n >\n <TbFolderSymlink className=\"text-xl\" />\n <span>Open</span>\n </Dropdown.Item>\n )}\n {onDownload && (\n <Dropdown.Item\n eventKey=\"download\"\n onClick={(e) => handleDropdownItemClick(e, onDownload)}\n >\n <TbCloudDownload className=\"text-xl\" />\n <span>Download</span>\n </Dropdown.Item>\n )}\n {onRename && (\n <Dropdown.Item\n eventKey=\"rename\"\n onClick={(e) => handleDropdownItemClick(e, onRename)}\n >\n <TbPencil className=\"text-xl\" />\n <span>Rename</span>\n </Dropdown.Item>\n )}\n {onShare && (\n <Dropdown.Item\n eventKey=\"share\"\n onClick={(e) => handleDropdownItemClick(e, onShare)}\n >\n <TbUserPlus className=\"text-xl\" />\n <span>Share</span>\n </Dropdown.Item>\n )}\n {onDelete && (\n <Dropdown.Item\n eventKey=\"share\"\n onClick={(e) => handleDropdownItemClick(e, onDelete)}\n >\n <span className=\"flex items-center gap-2 text-error\">\n <TbTrash className=\"text-xl\" />\n <span>Delete</span>\n </span>\n </Dropdown.Item>\n )}\n </Dropdown>\n );\n};\n\nexport default FileItemDropdown;\n"],"names":["FileItemDropdown","props","onDelete","onShare","onRename","onDownload","onOpen","dropdownRef","useRef","handleDropdownClick","_a","handleDropdownItemClick","callback","jsxs","Dropdown","jsx","EllipsisButton","TbFolderSymlink","TbCloudDownload","TbPencil","TbUserPlus","TbTrash"],"mappings":";;;;;;AAeA,MAAMA,IAAmB,CAACC,MAAiC;AACzD,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,UAAAC,GAAU,YAAAC,GAAY,QAAAC,MAAWL,GAEtDM,IAAcC,EAAoB,IAAI,GAEtCC,IAAsB,CAAC,MAAkB;;AAC7C,MAAE,gBAAA,IACFC,IAAAH,EAAY,YAAZ,QAAAG,EAAqB;AAAA,
|
|
1
|
+
{"version":3,"file":"FileItemDropdown.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileItemDropdown.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport {\n TbCloudDownload,\n TbPencil,\n TbUserPlus,\n TbTrash,\n TbFolderSymlink,\n} from \"react-icons/tb\";\nimport type { DropdownItemCallbackProps } from \"../types\";\nimport type { MouseEvent, SyntheticEvent } from \"react\";\nimport { Dropdown, DropdownRef } from \"@/components\";\nimport EllipsisButton from \"@/components/shared/EllipsisButton\";\n\ntype FileItemDropdownProps = DropdownItemCallbackProps;\n\nconst FileItemDropdown = (props: FileItemDropdownProps) => {\n const { onDelete, onShare, onRename, onDownload, onOpen } = props;\n\n const dropdownRef = useRef<DropdownRef>(null);\n\n const handleDropdownClick = (e: MouseEvent) => {\n e.stopPropagation();\n dropdownRef.current?.handleDropdownOpen();\n };\n\n const handleDropdownItemClick = (\n e: SyntheticEvent,\n callback?: () => void\n ) => {\n e.stopPropagation();\n callback?.();\n };\n\n return (\n <Dropdown\n ref={dropdownRef}\n renderTitle={<EllipsisButton onClick={handleDropdownClick} />}\n placement=\"bottom-end\"\n >\n {onOpen && (\n <Dropdown.Item\n eventKey=\"Open\"\n onClick={(e) => handleDropdownItemClick(e, onOpen)}\n >\n <TbFolderSymlink className=\"text-xl\" />\n <span>Open</span>\n </Dropdown.Item>\n )}\n {onDownload && (\n <Dropdown.Item\n eventKey=\"download\"\n onClick={(e) => handleDropdownItemClick(e, onDownload)}\n >\n <TbCloudDownload className=\"text-xl\" />\n <span>Download</span>\n </Dropdown.Item>\n )}\n {onRename && (\n <Dropdown.Item\n eventKey=\"rename\"\n onClick={(e) => handleDropdownItemClick(e, onRename)}\n >\n <TbPencil className=\"text-xl\" />\n <span>Rename</span>\n </Dropdown.Item>\n )}\n {onShare && (\n <Dropdown.Item\n eventKey=\"share\"\n onClick={(e) => handleDropdownItemClick(e, onShare)}\n >\n <TbUserPlus className=\"text-xl\" />\n <span>Share</span>\n </Dropdown.Item>\n )}\n {onDelete && (\n <Dropdown.Item\n eventKey=\"share\"\n onClick={(e) => handleDropdownItemClick(e, onDelete)}\n >\n <span className=\"flex items-center gap-2 text-error\">\n <TbTrash className=\"text-xl\" />\n <span>Delete</span>\n </span>\n </Dropdown.Item>\n )}\n </Dropdown>\n );\n};\n\nexport default FileItemDropdown;\n"],"names":["FileItemDropdown","props","onDelete","onShare","onRename","onDownload","onOpen","dropdownRef","useRef","handleDropdownClick","_a","handleDropdownItemClick","callback","jsxs","Dropdown","jsx","EllipsisButton","TbFolderSymlink","TbCloudDownload","TbPencil","TbUserPlus","TbTrash"],"mappings":";;;;;;AAeA,MAAMA,IAAmB,CAACC,MAAiC;AACzD,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,UAAAC,GAAU,YAAAC,GAAY,QAAAC,MAAWL,GAEtDM,IAAcC,EAAoB,IAAI,GAEtCC,IAAsB,CAAC,MAAkB;;AAC7C,MAAE,gBAAA,IACFC,IAAAH,EAAY,YAAZ,QAAAG,EAAqB;AAAA,EACvB,GAEMC,IAA0B,CAC9B,GACAC,MACG;AACH,MAAE,gBAAA,GACFA,KAAA,QAAAA;AAAA,EACF;AAEA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAKP;AAAA,MACL,aAAa,gBAAAQ,EAACC,GAAA,EAAe,SAASP,EAAA,CAAqB;AAAA,MAC3D,WAAU;AAAA,MAET,UAAA;AAAA,QAAAH,KACC,gBAAAO;AAAA,UAACC,EAAS;AAAA,UAAT;AAAA,YACC,UAAS;AAAA,YACT,SAAS,CAAC,MAAMH,EAAwB,GAAGL,CAAM;AAAA,YAEjD,UAAA;AAAA,cAAA,gBAAAS,EAACE,GAAA,EAAgB,WAAU,UAAA,CAAU;AAAA,cACrC,gBAAAF,EAAC,UAAK,UAAA,OAAA,CAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGbV,KACC,gBAAAQ;AAAA,UAACC,EAAS;AAAA,UAAT;AAAA,YACC,UAAS;AAAA,YACT,SAAS,CAAC,MAAMH,EAAwB,GAAGN,CAAU;AAAA,YAErD,UAAA;AAAA,cAAA,gBAAAU,EAACG,GAAA,EAAgB,WAAU,UAAA,CAAU;AAAA,cACrC,gBAAAH,EAAC,UAAK,UAAA,WAAA,CAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGjBX,KACC,gBAAAS;AAAA,UAACC,EAAS;AAAA,UAAT;AAAA,YACC,UAAS;AAAA,YACT,SAAS,CAAC,MAAMH,EAAwB,GAAGP,CAAQ;AAAA,YAEnD,UAAA;AAAA,cAAA,gBAAAW,EAACI,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,cAC9B,gBAAAJ,EAAC,UAAK,UAAA,SAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGfZ,KACC,gBAAAU;AAAA,UAACC,EAAS;AAAA,UAAT;AAAA,YACC,UAAS;AAAA,YACT,SAAS,CAAC,MAAMH,EAAwB,GAAGR,CAAO;AAAA,YAElD,UAAA;AAAA,cAAA,gBAAAY,EAACK,GAAA,EAAW,WAAU,UAAA,CAAU;AAAA,cAChC,gBAAAL,EAAC,UAAK,UAAA,QAAA,CAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGdb,KACC,gBAAAa;AAAA,UAACD,EAAS;AAAA,UAAT;AAAA,YACC,UAAS;AAAA,YACT,SAAS,CAAC,MAAMH,EAAwB,GAAGT,CAAQ;AAAA,YAEnD,UAAA,gBAAAW,EAAC,QAAA,EAAK,WAAU,sCACd,UAAA;AAAA,cAAA,gBAAAE,EAACM,GAAA,EAAQ,WAAU,UAAA,CAAU;AAAA,cAC7B,gBAAAN,EAAC,UAAK,UAAA,SAAA,CAAM;AAAA,YAAA,EAAA,CACd;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerDeleteDialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManagerDeleteDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerDeleteDialog.tsx"],"sourcesContent":["import { useFileManagerStore } from '../store/useFileManagerStore'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\n\nconst FileManagerDeleteDialog = () => {\n const { deleteDialog, setDeleteDialog, deleteFile } = useFileManagerStore()\n\n const handleDeleteDialogClose = () => {\n setDeleteDialog({ id: '', open: false })\n }\n\n const handleDeleteConfirm = () => {\n deleteFile(deleteDialog.id)\n setDeleteDialog({ id: '', open: false })\n }\n\n return (\n <ConfirmDialog\n isOpen={deleteDialog.open}\n type=\"danger\"\n title=\"Delete file\"\n onClose={handleDeleteDialogClose}\n onRequestClose={handleDeleteDialogClose}\n onCancel={handleDeleteDialogClose}\n onConfirm={handleDeleteConfirm}\n >\n <p>\n Are you sure you want to delete file? This action can't be\n undo.{' '}\n </p>\n </ConfirmDialog>\n )\n}\n\nexport default FileManagerDeleteDialog\n"],"names":["FileManagerDeleteDialog","deleteDialog","setDeleteDialog","deleteFile","useFileManagerStore","handleDeleteDialogClose","handleDeleteConfirm","jsx","ConfirmDialog"],"mappings":";;;AAGA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,GAAiB,YAAAC,EAAA,IAAeC,EAAA,GAEhDC,IAA0B,MAAM;AAClC,IAAAH,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"FileManagerDeleteDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerDeleteDialog.tsx"],"sourcesContent":["import { useFileManagerStore } from '../store/useFileManagerStore'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\n\nconst FileManagerDeleteDialog = () => {\n const { deleteDialog, setDeleteDialog, deleteFile } = useFileManagerStore()\n\n const handleDeleteDialogClose = () => {\n setDeleteDialog({ id: '', open: false })\n }\n\n const handleDeleteConfirm = () => {\n deleteFile(deleteDialog.id)\n setDeleteDialog({ id: '', open: false })\n }\n\n return (\n <ConfirmDialog\n isOpen={deleteDialog.open}\n type=\"danger\"\n title=\"Delete file\"\n onClose={handleDeleteDialogClose}\n onRequestClose={handleDeleteDialogClose}\n onCancel={handleDeleteDialogClose}\n onConfirm={handleDeleteConfirm}\n >\n <p>\n Are you sure you want to delete file? This action can't be\n undo.{' '}\n </p>\n </ConfirmDialog>\n )\n}\n\nexport default FileManagerDeleteDialog\n"],"names":["FileManagerDeleteDialog","deleteDialog","setDeleteDialog","deleteFile","useFileManagerStore","handleDeleteDialogClose","handleDeleteConfirm","jsx","ConfirmDialog"],"mappings":";;;AAGA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,GAAiB,YAAAC,EAAA,IAAeC,EAAA,GAEhDC,IAA0B,MAAM;AAClC,IAAAH,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,EAC3C,GAEMI,IAAsB,MAAM;AAC9B,IAAAH,EAAWF,EAAa,EAAE,GAC1BC,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,EAC3C;AAEA,SACI,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,QAAQP,EAAa;AAAA,MACrB,MAAK;AAAA,MACL,OAAM;AAAA,MACN,SAASI;AAAA,MACT,gBAAgBA;AAAA,MAChB,UAAUA;AAAA,MACV,WAAWC;AAAA,MAEX,4BAAC,KAAA,EAAE,UAAA;AAAA,QAAA;AAAA,QAEO;AAAA,MAAA,EAAA,CACV;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManagerHeader.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerHeader.tsx"],"sourcesContent":["import { Fragment } from 'react'\nimport Segment from '@/components/ui/Segment'\nimport UploadFile from './UploadFile'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\nimport { TbChevronRight, TbLayoutGrid, TbList } from 'react-icons/tb'\nimport type { Layout } from '../types'\n\ntype FileManagerHeaderProps = {\n onEntryClick: () => void\n onDirectoryClick: (id: string) => void\n}\n\nconst FileManagerHeader = ({\n onEntryClick,\n onDirectoryClick,\n}: FileManagerHeaderProps) => {\n const { directories, layout, setLayout } = useFileManagerStore()\n\n const handleEntryClick = () => {\n onEntryClick()\n }\n\n const handleDirectoryClick = (id: string) => {\n onDirectoryClick(id)\n }\n\n return (\n <div className=\"flex flex-col md:flex-row md:items-center justify-between gap-4\">\n <div>\n {directories.length > 0 ? (\n <div className=\"flex items-center gap-2\">\n <h3 className=\"flex items-center gap-2 text-base sm:text-2xl\">\n <span\n className=\"hover:text-primary cursor-pointer\"\n role=\"button\"\n onClick={handleEntryClick}\n >\n File Manager\n </span>\n {directories.map((dir, index) => (\n <Fragment key={dir.id}>\n <TbChevronRight className=\"text-lg\" />\n {directories.length - 1 === index ? (\n <span>{dir.label}</span>\n ) : (\n <span\n className=\"hover:text-primary cursor-pointer\"\n role=\"button\"\n onClick={() =>\n handleDirectoryClick(dir.id)\n }\n >\n {dir.label}\n </span>\n )}\n </Fragment>\n ))}\n </h3>\n </div>\n ) : (\n <h3>File Manager</h3>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n <Segment\n value={layout}\n onChange={(val) => setLayout(val as Layout)}\n >\n <Segment.Item value=\"grid\" className=\"text-xl px-3\">\n <TbLayoutGrid />\n </Segment.Item>\n <Segment.Item value=\"list\" className=\"text-xl px-3\">\n <TbList />\n </Segment.Item>\n </Segment>\n <UploadFile />\n </div>\n </div>\n )\n}\n\nexport default FileManagerHeader\n"],"names":["FileManagerHeader","onEntryClick","onDirectoryClick","directories","layout","setLayout","useFileManagerStore","handleEntryClick","handleDirectoryClick","id","jsxs","jsx","dir","index","Fragment","TbChevronRight","Segment","val","TbLayoutGrid","TbList","UploadFile"],"mappings":";;;;;;AAYA,MAAMA,IAAoB,CAAC;AAAA,EACvB,cAAAC;AAAA,EACA,kBAAAC;AACJ,MAA8B;AAC1B,QAAM,EAAE,aAAAC,GAAa,QAAAC,GAAQ,WAAAC,EAAA,IAAcC,EAAA,GAErCC,IAAmB,MAAM;AAC3B,IAAAN,EAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FileManagerHeader.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerHeader.tsx"],"sourcesContent":["import { Fragment } from 'react'\nimport Segment from '@/components/ui/Segment'\nimport UploadFile from './UploadFile'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\nimport { TbChevronRight, TbLayoutGrid, TbList } from 'react-icons/tb'\nimport type { Layout } from '../types'\n\ntype FileManagerHeaderProps = {\n onEntryClick: () => void\n onDirectoryClick: (id: string) => void\n}\n\nconst FileManagerHeader = ({\n onEntryClick,\n onDirectoryClick,\n}: FileManagerHeaderProps) => {\n const { directories, layout, setLayout } = useFileManagerStore()\n\n const handleEntryClick = () => {\n onEntryClick()\n }\n\n const handleDirectoryClick = (id: string) => {\n onDirectoryClick(id)\n }\n\n return (\n <div className=\"flex flex-col md:flex-row md:items-center justify-between gap-4\">\n <div>\n {directories.length > 0 ? (\n <div className=\"flex items-center gap-2\">\n <h3 className=\"flex items-center gap-2 text-base sm:text-2xl\">\n <span\n className=\"hover:text-primary cursor-pointer\"\n role=\"button\"\n onClick={handleEntryClick}\n >\n File Manager\n </span>\n {directories.map((dir, index) => (\n <Fragment key={dir.id}>\n <TbChevronRight className=\"text-lg\" />\n {directories.length - 1 === index ? (\n <span>{dir.label}</span>\n ) : (\n <span\n className=\"hover:text-primary cursor-pointer\"\n role=\"button\"\n onClick={() =>\n handleDirectoryClick(dir.id)\n }\n >\n {dir.label}\n </span>\n )}\n </Fragment>\n ))}\n </h3>\n </div>\n ) : (\n <h3>File Manager</h3>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n <Segment\n value={layout}\n onChange={(val) => setLayout(val as Layout)}\n >\n <Segment.Item value=\"grid\" className=\"text-xl px-3\">\n <TbLayoutGrid />\n </Segment.Item>\n <Segment.Item value=\"list\" className=\"text-xl px-3\">\n <TbList />\n </Segment.Item>\n </Segment>\n <UploadFile />\n </div>\n </div>\n )\n}\n\nexport default FileManagerHeader\n"],"names":["FileManagerHeader","onEntryClick","onDirectoryClick","directories","layout","setLayout","useFileManagerStore","handleEntryClick","handleDirectoryClick","id","jsxs","jsx","dir","index","Fragment","TbChevronRight","Segment","val","TbLayoutGrid","TbList","UploadFile"],"mappings":";;;;;;AAYA,MAAMA,IAAoB,CAAC;AAAA,EACvB,cAAAC;AAAA,EACA,kBAAAC;AACJ,MAA8B;AAC1B,QAAM,EAAE,aAAAC,GAAa,QAAAC,GAAQ,WAAAC,EAAA,IAAcC,EAAA,GAErCC,IAAmB,MAAM;AAC3B,IAAAN,EAAA;AAAA,EACJ,GAEMO,IAAuB,CAACC,MAAe;AACzC,IAAAP,EAAiBO,CAAE;AAAA,EACvB;AAEA,SACI,gBAAAC,EAAC,OAAA,EAAI,WAAU,mEACX,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EACI,UAAAR,EAAY,SAAS,IAClB,gBAAAQ,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,iDACV,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,MAAK;AAAA,UACL,SAASJ;AAAA,UACZ,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGAJ,EAAY,IAAI,CAACS,GAAKC,wBAClBC,GAAA,EACG,UAAA;AAAA,QAAA,gBAAAH,EAACI,GAAA,EAAe,WAAU,UAAA,CAAU;AAAA,QACnCZ,EAAY,SAAS,MAAMU,sBACvB,QAAA,EAAM,UAAAD,EAAI,OAAM,IAEjB,gBAAAD;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAU;AAAA,YACV,MAAK;AAAA,YACL,SAAS,MACLH,EAAqBI,EAAI,EAAE;AAAA,YAG9B,UAAAA,EAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,EAAA,GAbOA,EAAI,EAenB,CACH;AAAA,IAAA,GACL,EAAA,CACJ,IAEA,gBAAAD,EAAC,MAAA,EAAG,0BAAY,GAExB;AAAA,IACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,MAAA,gBAAAA;AAAA,QAACM;AAAA,QAAA;AAAA,UACG,OAAOZ;AAAA,UACP,UAAU,CAACa,MAAQZ,EAAUY,CAAa;AAAA,UAE1C,UAAA;AAAA,YAAA,gBAAAN,EAACK,EAAQ,MAAR,EAAa,OAAM,QAAO,WAAU,gBACjC,UAAA,gBAAAL,EAACO,GAAA,CAAA,CAAa,EAAA,CAClB;AAAA,YACA,gBAAAP,EAACK,EAAQ,MAAR,EAAa,OAAM,QAAO,WAAU,gBACjC,UAAA,gBAAAL,EAACQ,GAAA,CAAA,CAAO,EAAA,CACZ;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEHC,GAAA,CAAA,CAAW;AAAA,IAAA,EAAA,CAChB;AAAA,EAAA,GACJ;AAER;"}
|
package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerInviteDialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManagerInviteDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerInviteDialog.tsx"],"sourcesContent":["import { useState, useRef } from 'react'\nimport Dialog from '@/components/ui/Dialog'\nimport Button from '@/components/ui/Button'\nimport Input from '@/components/ui/Input'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\nimport sleep from '@/utils/sleep'\nimport classNames from '@/utils/classNames'\nimport { TbLink } from 'react-icons/tb'\n\nconst FileManagerInviteDialog = () => {\n const { inviteDialog, setInviteDialog } = useFileManagerStore()\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const [inviting, setInviting] = useState(false)\n\n const handleDialogClose = () => {\n setInviteDialog({ id: '', open: false })\n }\n\n const handleInvite = async () => {\n setInviting(true)\n await sleep(500)\n toast.push(\n <Notification\n type=\"success\"\n title=\"Invitation send!\"\n ></Notification>,\n { placement: 'top-end' },\n )\n setInviting(false)\n }\n\n const handleCopy = async () => {\n toast.push(\n <Notification type=\"success\" title=\"Copied!\"></Notification>,\n { placement: 'top-end' },\n )\n navigator.clipboard.writeText(window.location.href)\n }\n\n return (\n <Dialog\n isOpen={inviteDialog.open}\n contentClassName=\"mt-[50%]\"\n onClose={handleDialogClose}\n onRequestClose={handleDialogClose}\n >\n <h4>Share this file</h4>\n <div className=\"mt-6\">\n <Input\n ref={inputRef}\n placeholder=\"Email\"\n type=\"email\"\n suffix={\n <Button\n type=\"button\"\n variant=\"solid\"\n size=\"sm\"\n customColorClass={({ unclickable }) =>\n classNames(\n 'bg-gray-900 dark:bg-gray-100 dark:hover:bg-gray-200',\n !unclickable\n ? 'hover:bg-gray-800'\n : 'hover:bg-gray-900',\n )\n }\n loading={inviting}\n onClick={handleInvite}\n >\n Invite\n </Button>\n }\n />\n </div>\n <div className=\"mt-6 flex justify-between items-center\">\n <Button\n variant=\"plain\"\n size=\"sm\"\n icon={<TbLink />}\n onClick={handleCopy}\n >\n Copy link\n </Button>\n <Button variant=\"solid\" size=\"sm\" onClick={handleDialogClose}>\n Done\n </Button>\n </div>\n </Dialog>\n )\n}\n\nexport default FileManagerInviteDialog\n"],"names":["FileManagerInviteDialog","inviteDialog","setInviteDialog","useFileManagerStore","inputRef","useRef","inviting","setInviting","useState","handleDialogClose","handleInvite","sleep","toast","jsx","Notification","handleCopy","jsxs","Dialog","Input","Button","unclickable","classNames","TbLink"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,EAAA,IAAoBC,EAAA,GAEpCC,IAAWC,EAAyB,IAAI,GAExC,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GAExCC,IAAoB,MAAM;AAC5B,IAAAP,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"FileManagerInviteDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerInviteDialog.tsx"],"sourcesContent":["import { useState, useRef } from 'react'\nimport Dialog from '@/components/ui/Dialog'\nimport Button from '@/components/ui/Button'\nimport Input from '@/components/ui/Input'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\nimport sleep from '@/utils/sleep'\nimport classNames from '@/utils/classNames'\nimport { TbLink } from 'react-icons/tb'\n\nconst FileManagerInviteDialog = () => {\n const { inviteDialog, setInviteDialog } = useFileManagerStore()\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const [inviting, setInviting] = useState(false)\n\n const handleDialogClose = () => {\n setInviteDialog({ id: '', open: false })\n }\n\n const handleInvite = async () => {\n setInviting(true)\n await sleep(500)\n toast.push(\n <Notification\n type=\"success\"\n title=\"Invitation send!\"\n ></Notification>,\n { placement: 'top-end' },\n )\n setInviting(false)\n }\n\n const handleCopy = async () => {\n toast.push(\n <Notification type=\"success\" title=\"Copied!\"></Notification>,\n { placement: 'top-end' },\n )\n navigator.clipboard.writeText(window.location.href)\n }\n\n return (\n <Dialog\n isOpen={inviteDialog.open}\n contentClassName=\"mt-[50%]\"\n onClose={handleDialogClose}\n onRequestClose={handleDialogClose}\n >\n <h4>Share this file</h4>\n <div className=\"mt-6\">\n <Input\n ref={inputRef}\n placeholder=\"Email\"\n type=\"email\"\n suffix={\n <Button\n type=\"button\"\n variant=\"solid\"\n size=\"sm\"\n customColorClass={({ unclickable }) =>\n classNames(\n 'bg-gray-900 dark:bg-gray-100 dark:hover:bg-gray-200',\n !unclickable\n ? 'hover:bg-gray-800'\n : 'hover:bg-gray-900',\n )\n }\n loading={inviting}\n onClick={handleInvite}\n >\n Invite\n </Button>\n }\n />\n </div>\n <div className=\"mt-6 flex justify-between items-center\">\n <Button\n variant=\"plain\"\n size=\"sm\"\n icon={<TbLink />}\n onClick={handleCopy}\n >\n Copy link\n </Button>\n <Button variant=\"solid\" size=\"sm\" onClick={handleDialogClose}>\n Done\n </Button>\n </div>\n </Dialog>\n )\n}\n\nexport default FileManagerInviteDialog\n"],"names":["FileManagerInviteDialog","inviteDialog","setInviteDialog","useFileManagerStore","inputRef","useRef","inviting","setInviting","useState","handleDialogClose","handleInvite","sleep","toast","jsx","Notification","handleCopy","jsxs","Dialog","Input","Button","unclickable","classNames","TbLink"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,EAAA,IAAoBC,EAAA,GAEpCC,IAAWC,EAAyB,IAAI,GAExC,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GAExCC,IAAoB,MAAM;AAC5B,IAAAP,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,EAC3C,GAEMQ,IAAe,YAAY;AAC7B,IAAAH,EAAY,EAAI,GAChB,MAAMI,EAAM,GAAG,GACfC,EAAM;AAAA,MACF,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACG,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAEV,EAAE,WAAW,UAAA;AAAA,IAAU,GAE3BP,EAAY,EAAK;AAAA,EACrB,GAEMQ,IAAa,YAAY;AAC3B,IAAAH,EAAM;AAAA,MACF,gBAAAC,EAACC,GAAA,EAAa,MAAK,WAAU,OAAM,WAAU;AAAA,MAC7C,EAAE,WAAW,UAAA;AAAA,IAAU,GAE3B,UAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAAA,EACtD;AAEA,SACI,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,QAAQhB,EAAa;AAAA,MACrB,kBAAiB;AAAA,MACjB,SAASQ;AAAA,MACT,gBAAgBA;AAAA,MAEhB,UAAA;AAAA,QAAA,gBAAAI,EAAC,QAAG,UAAA,kBAAA,CAAe;AAAA,QACnB,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAA;AAAA,UAACK;AAAA,UAAA;AAAA,YACG,KAAKd;AAAA,YACL,aAAY;AAAA,YACZ,MAAK;AAAA,YACL,QACI,gBAAAS;AAAA,cAACM;AAAA,cAAA;AAAA,gBACG,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,kBAAkB,CAAC,EAAE,aAAAC,EAAA,MACjBC;AAAA,kBACI;AAAA,kBACCD,IAEK,sBADA;AAAA,gBACA;AAAA,gBAGd,SAASd;AAAA,gBACT,SAASI;AAAA,gBACZ,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED;AAAA,QAAA,GAGZ;AAAA,QACA,gBAAAM,EAAC,OAAA,EAAI,WAAU,0CACX,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAACM;AAAA,YAAA;AAAA,cACG,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,wBAAOG,GAAA,EAAO;AAAA,cACd,SAASP;AAAA,cACZ,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGD,gBAAAF,EAACM,KAAO,SAAQ,SAAQ,MAAK,MAAK,SAASV,GAAmB,UAAA,OAAA,CAE9D;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|
package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerRenameDialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManagerRenameDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerRenameDialog.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Dialog from '@/components/ui/Dialog'\nimport Button from '@/components/ui/Button'\nimport DebounceInput from '@/components/shared/DebounceInput'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\n\nconst FileManagerRenameDialog = () => {\n const { renameDialog, setRenameDialog, renameFile } = useFileManagerStore()\n\n const [newName, setNewName] = useState('')\n\n const handleDialogClose = () => {\n setRenameDialog({ id: '', open: false })\n }\n\n const handleSubmit = () => {\n renameFile({ id: renameDialog.id, fileName: newName })\n setRenameDialog({ id: '', open: false })\n }\n\n return (\n <Dialog\n isOpen={renameDialog.open}\n contentClassName=\"mt-[50%]\"\n onClose={handleDialogClose}\n onRequestClose={handleDialogClose}\n >\n <h4>Rename</h4>\n <div className=\"mt-6\">\n <DebounceInput\n placeholder=\"New name\"\n type=\"text\"\n onChange={(e) => setNewName(e.target.value)}\n />\n </div>\n <div className=\"mt-6 flex justify-end items-center gap-2\">\n <Button size=\"sm\" onClick={handleDialogClose}>\n Close\n </Button>\n <Button\n variant=\"solid\"\n size=\"sm\"\n disabled={newName.length === 0}\n onClick={handleSubmit}\n >\n <span className=\"flex justify-center min-w-10\">Ok</span>\n </Button>\n </div>\n </Dialog>\n )\n}\n\nexport default FileManagerRenameDialog\n"],"names":["FileManagerRenameDialog","renameDialog","setRenameDialog","renameFile","useFileManagerStore","newName","setNewName","useState","handleDialogClose","handleSubmit","jsxs","Dialog","jsx","DebounceInput","e","Button"],"mappings":";;;;;;;;AAMA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,GAAiB,YAAAC,EAAA,IAAeC,EAAA,GAEhD,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAE,GAEnCC,IAAoB,MAAM;AAC5B,IAAAN,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"FileManagerRenameDialog.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/FileManagerRenameDialog.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Dialog from '@/components/ui/Dialog'\nimport Button from '@/components/ui/Button'\nimport DebounceInput from '@/components/shared/DebounceInput'\nimport { useFileManagerStore } from '../store/useFileManagerStore'\n\nconst FileManagerRenameDialog = () => {\n const { renameDialog, setRenameDialog, renameFile } = useFileManagerStore()\n\n const [newName, setNewName] = useState('')\n\n const handleDialogClose = () => {\n setRenameDialog({ id: '', open: false })\n }\n\n const handleSubmit = () => {\n renameFile({ id: renameDialog.id, fileName: newName })\n setRenameDialog({ id: '', open: false })\n }\n\n return (\n <Dialog\n isOpen={renameDialog.open}\n contentClassName=\"mt-[50%]\"\n onClose={handleDialogClose}\n onRequestClose={handleDialogClose}\n >\n <h4>Rename</h4>\n <div className=\"mt-6\">\n <DebounceInput\n placeholder=\"New name\"\n type=\"text\"\n onChange={(e) => setNewName(e.target.value)}\n />\n </div>\n <div className=\"mt-6 flex justify-end items-center gap-2\">\n <Button size=\"sm\" onClick={handleDialogClose}>\n Close\n </Button>\n <Button\n variant=\"solid\"\n size=\"sm\"\n disabled={newName.length === 0}\n onClick={handleSubmit}\n >\n <span className=\"flex justify-center min-w-10\">Ok</span>\n </Button>\n </div>\n </Dialog>\n )\n}\n\nexport default FileManagerRenameDialog\n"],"names":["FileManagerRenameDialog","renameDialog","setRenameDialog","renameFile","useFileManagerStore","newName","setNewName","useState","handleDialogClose","handleSubmit","jsxs","Dialog","jsx","DebounceInput","e","Button"],"mappings":";;;;;;;;AAMA,MAAMA,IAA0B,MAAM;AAClC,QAAM,EAAE,cAAAC,GAAc,iBAAAC,GAAiB,YAAAC,EAAA,IAAeC,EAAA,GAEhD,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAE,GAEnCC,IAAoB,MAAM;AAC5B,IAAAN,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,EAC3C,GAEMO,IAAe,MAAM;AACvB,IAAAN,EAAW,EAAE,IAAIF,EAAa,IAAI,UAAUI,GAAS,GACrDH,EAAgB,EAAE,IAAI,IAAI,MAAM,IAAO;AAAA,EAC3C;AAEA,SACI,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,QAAQV,EAAa;AAAA,MACrB,kBAAiB;AAAA,MACjB,SAASO;AAAA,MACT,gBAAgBA;AAAA,MAEhB,UAAA;AAAA,QAAA,gBAAAI,EAAC,QAAG,UAAA,SAAA,CAAM;AAAA,QACV,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACG,aAAY;AAAA,YACZ,MAAK;AAAA,YACL,UAAU,CAACC,MAAMR,EAAWQ,EAAE,OAAO,KAAK;AAAA,UAAA;AAAA,QAAA,GAElD;AAAA,QACA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,4CACX,UAAA;AAAA,UAAA,gBAAAE,EAACG,GAAA,EAAO,MAAK,MAAK,SAASP,GAAmB,UAAA,SAE9C;AAAA,UACA,gBAAAI;AAAA,YAACG;AAAA,YAAA;AAAA,cACG,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,UAAUV,EAAQ,WAAW;AAAA,cAC7B,SAASI;AAAA,cAET,UAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,gCAA+B,UAAA,KAAA,CAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACrD,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadFile.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/UploadFile.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport Upload from '@/components/ui/Upload'\nimport toast from '@/components/ui/toast'\nimport Notification from '@/components/ui/Notification'\nimport UploadMedia from '@/assets/svg/UploadMedia'\nimport sleep from '@/utils/sleep'\n\nconst UploadFile = () => {\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false)\n const [isUploading, setIsUploading] = useState(false)\n const [uploadedFiles, setUploadedFiles] = useState<File[]>([])\n\n const handleUploadDialogClose = () => {\n setUploadDialogOpen(false)\n }\n\n const handleUpload = async () => {\n setIsUploading(true)\n await sleep(500)\n handleUploadDialogClose()\n setIsUploading(false)\n toast.push(\n <Notification title={'Successfully uploaded'} type=\"success\" />,\n { placement: 'top-center' },\n )\n }\n\n return (\n <>\n <Button variant=\"solid\" onClick={() => setUploadDialogOpen(true)}>\n Upload\n </Button>\n <Dialog\n isOpen={uploadDialogOpen}\n onClose={handleUploadDialogClose}\n onRequestClose={handleUploadDialogClose}\n >\n <h4>Upload Files</h4>\n <Upload\n draggable\n className=\"mt-6 bg-gray-100\"\n onChange={setUploadedFiles}\n onFileRemove={setUploadedFiles}\n >\n <div className=\"my-4 text-center\">\n <div className=\"text-6xl mb-4 flex justify-center\">\n <UploadMedia height={150} width={200} />\n </div>\n <p className=\"font-semibold\">\n <span className=\"text-gray-800 dark:text-white\">\n Drop your files here, or{' '}\n </span>\n <span className=\"text-blue-500\">browse</span>\n </p>\n <p className=\"mt-1 font-semibold opacity-60 dark:text-white\">\n through your machine\n </p>\n </div>\n </Upload>\n <div className=\"mt-4\">\n <Button\n block\n loading={isUploading}\n variant=\"solid\"\n disabled={uploadedFiles.length === 0}\n onClick={handleUpload}\n >\n Upload\n </Button>\n </div>\n </Dialog>\n </>\n )\n}\n\nexport default UploadFile\n"],"names":["UploadFile","uploadDialogOpen","setUploadDialogOpen","useState","isUploading","setIsUploading","uploadedFiles","setUploadedFiles","handleUploadDialogClose","handleUpload","sleep","toast","jsx","Notification","jsxs","Fragment","Button","Dialog","Upload","UploadMedia"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,IAAa,MAAM;AACrB,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAK,GAC9C,CAACG,GAAeC,CAAgB,IAAIJ,EAAiB,CAAA,CAAE,GAEvDK,IAA0B,MAAM;AAClC,IAAAN,EAAoB,EAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"UploadFile.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/components/UploadFile.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport Upload from '@/components/ui/Upload'\nimport toast from '@/components/ui/toast'\nimport Notification from '@/components/ui/Notification'\nimport UploadMedia from '@/assets/svg/UploadMedia'\nimport sleep from '@/utils/sleep'\n\nconst UploadFile = () => {\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false)\n const [isUploading, setIsUploading] = useState(false)\n const [uploadedFiles, setUploadedFiles] = useState<File[]>([])\n\n const handleUploadDialogClose = () => {\n setUploadDialogOpen(false)\n }\n\n const handleUpload = async () => {\n setIsUploading(true)\n await sleep(500)\n handleUploadDialogClose()\n setIsUploading(false)\n toast.push(\n <Notification title={'Successfully uploaded'} type=\"success\" />,\n { placement: 'top-center' },\n )\n }\n\n return (\n <>\n <Button variant=\"solid\" onClick={() => setUploadDialogOpen(true)}>\n Upload\n </Button>\n <Dialog\n isOpen={uploadDialogOpen}\n onClose={handleUploadDialogClose}\n onRequestClose={handleUploadDialogClose}\n >\n <h4>Upload Files</h4>\n <Upload\n draggable\n className=\"mt-6 bg-gray-100\"\n onChange={setUploadedFiles}\n onFileRemove={setUploadedFiles}\n >\n <div className=\"my-4 text-center\">\n <div className=\"text-6xl mb-4 flex justify-center\">\n <UploadMedia height={150} width={200} />\n </div>\n <p className=\"font-semibold\">\n <span className=\"text-gray-800 dark:text-white\">\n Drop your files here, or{' '}\n </span>\n <span className=\"text-blue-500\">browse</span>\n </p>\n <p className=\"mt-1 font-semibold opacity-60 dark:text-white\">\n through your machine\n </p>\n </div>\n </Upload>\n <div className=\"mt-4\">\n <Button\n block\n loading={isUploading}\n variant=\"solid\"\n disabled={uploadedFiles.length === 0}\n onClick={handleUpload}\n >\n Upload\n </Button>\n </div>\n </Dialog>\n </>\n )\n}\n\nexport default UploadFile\n"],"names":["UploadFile","uploadDialogOpen","setUploadDialogOpen","useState","isUploading","setIsUploading","uploadedFiles","setUploadedFiles","handleUploadDialogClose","handleUpload","sleep","toast","jsx","Notification","jsxs","Fragment","Button","Dialog","Upload","UploadMedia"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,IAAa,MAAM;AACrB,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAK,GAC9C,CAACG,GAAeC,CAAgB,IAAIJ,EAAiB,CAAA,CAAE,GAEvDK,IAA0B,MAAM;AAClC,IAAAN,EAAoB,EAAK;AAAA,EAC7B,GAEMO,IAAe,YAAY;AAC7B,IAAAJ,EAAe,EAAI,GACnB,MAAMK,EAAM,GAAG,GACfF,EAAA,GACAH,EAAe,EAAK,GACpBM,EAAM;AAAA,MACF,gBAAAC,EAACC,GAAA,EAAa,OAAO,yBAAyB,MAAK,WAAU;AAAA,MAC7D,EAAE,WAAW,aAAA;AAAA,IAAa;AAAA,EAElC;AAEA,SACI,gBAAAC,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAH,EAACI,GAAA,EAAO,SAAQ,SAAQ,SAAS,MAAMd,EAAoB,EAAI,GAAG,UAAA,SAAA,CAElE;AAAA,IACA,gBAAAY;AAAA,MAACG;AAAA,MAAA;AAAA,QACG,QAAQhB;AAAA,QACR,SAASO;AAAA,QACT,gBAAgBA;AAAA,QAEhB,UAAA;AAAA,UAAA,gBAAAI,EAAC,QAAG,UAAA,eAAA,CAAY;AAAA,UAChB,gBAAAA;AAAA,YAACM;AAAA,YAAA;AAAA,cACG,WAAS;AAAA,cACT,WAAU;AAAA,cACV,UAAUX;AAAA,cACV,cAAcA;AAAA,cAEd,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,oBACX,UAAA;AAAA,gBAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,qCACX,UAAA,gBAAAA,EAACO,KAAY,QAAQ,KAAK,OAAO,IAAA,CAAK,EAAA,CAC1C;AAAA,gBACA,gBAAAL,EAAC,KAAA,EAAE,WAAU,iBACT,UAAA;AAAA,kBAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,iCAAgC,UAAA;AAAA,oBAAA;AAAA,oBACnB;AAAA,kBAAA,GAC7B;AAAA,kBACA,gBAAAF,EAAC,QAAA,EAAK,WAAU,iBAAgB,UAAA,SAAA,CAAM;AAAA,gBAAA,GAC1C;AAAA,gBACA,gBAAAA,EAAC,KAAA,EAAE,WAAU,iDAAgD,UAAA,uBAAA,CAE7D;AAAA,cAAA,EAAA,CACJ;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJ,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAA;AAAA,YAACI;AAAA,YAAA;AAAA,cACG,OAAK;AAAA,cACL,SAASZ;AAAA,cACT,SAAQ;AAAA,cACR,UAAUE,EAAc,WAAW;AAAA,cACnC,SAASG;AAAA,cACZ,UAAA;AAAA,YAAA;AAAA,UAAA,EAED,CACJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileManagerStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/store/useFileManagerStore.tsx"],"sourcesContent":["import { create } from 'zustand'\nimport type { Files, Directories, Layout } from '../types'\n\ntype DialogProps = { id: string; open: boolean }\n\nexport type FileManagerState = {\n fileList: Files\n layout: Layout\n selectedFile: string\n openedDirectoryId: string\n directories: Directories\n deleteDialog: DialogProps\n inviteDialog: DialogProps\n renameDialog: DialogProps\n}\n\ntype FileManagerAction = {\n setFileList: (payload: Files) => void\n setLayout: (payload: Layout) => void\n setOpenedDirectoryId: (payload: string) => void\n setDirectories: (payload: Directories) => void\n setSelectedFile: (payload: string) => void\n setDeleteDialog: (paload: DialogProps) => void\n setInviteDialog: (paload: DialogProps) => void\n setRenameDialog: (paload: DialogProps) => void\n deleteFile: (payload: string) => void\n renameFile: (payload: { id: string; fileName: string }) => void\n}\n\nconst initialState: FileManagerState = {\n fileList: [],\n layout: 'grid',\n selectedFile: '',\n openedDirectoryId: '',\n directories: [],\n deleteDialog: { open: false, id: '' },\n inviteDialog: { open: false, id: '' },\n renameDialog: { open: false, id: '' },\n}\n\nexport const useFileManagerStore = create<FileManagerState & FileManagerAction>(\n (set, get) => ({\n ...initialState,\n setFileList: (payload) => set(() => ({ fileList: payload })),\n setLayout: (payload: Layout) => set(() => ({ layout: payload })),\n setOpenedDirectoryId: (payload) =>\n set(() => ({ openedDirectoryId: payload })),\n setSelectedFile: (payload) => set(() => ({ selectedFile: payload })),\n setDirectories: (payload) => set(() => ({ directories: payload })),\n setDeleteDialog: (payload) => set(() => ({ deleteDialog: payload })),\n setInviteDialog: (payload) => set(() => ({ inviteDialog: payload })),\n setRenameDialog: (payload) => set(() => ({ renameDialog: payload })),\n deleteFile: (payload) =>\n set(() => ({\n fileList: get().fileList.filter((file) => file.id !== payload),\n })),\n renameFile: (payload) =>\n set(() => ({\n fileList: get().fileList.map((file) => {\n if (file.id === payload.id) {\n const fileAbbreviationArr = file.name.split('.')\n const fileAbbreviation =\n fileAbbreviationArr[fileAbbreviationArr.length - 1]\n\n if (fileAbbreviationArr.length > 1) {\n file.name = `${payload.fileName}.${fileAbbreviation}`\n } else {\n file.name = payload.fileName\n }\n }\n return file\n }),\n })),\n }),\n)\n"],"names":["initialState","useFileManagerStore","create","set","get","payload","file","fileAbbreviationArr","fileAbbreviation"],"mappings":";AA6BA,MAAMA,IAAiC;AAAA,EACnC,UAAU,CAAA;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,aAAa,CAAA;AAAA,EACb,cAAc,EAAE,MAAM,IAAO,IAAI,GAAA;AAAA,EACjC,cAAc,EAAE,MAAM,IAAO,IAAI,GAAA;AAAA,EACjC,cAAc,EAAE,MAAM,IAAO,IAAI,GAAA;AACrC,GAEaC,IAAsBC;AAAA,EAC/B,CAACC,GAAKC,OAAS;AAAA,IACX,GAAGJ;AAAA,IACH,aAAa,CAACK,MAAYF,EAAI,OAAO,EAAE,UAAUE,IAAU;AAAA,IAC3D,WAAW,CAACA,MAAoBF,EAAI,OAAO,EAAE,QAAQE,IAAU;AAAA,IAC/D,sBAAsB,CAACA,MACnBF,EAAI,OAAO,EAAE,mBAAmBE,IAAU;AAAA,IAC9C,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,gBAAgB,CAACA,MAAYF,EAAI,OAAO,EAAE,aAAaE,IAAU;AAAA,IACjE,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,YAAY,CAACA,MACTF,EAAI,OAAO;AAAA,MACP,UAAUC,IAAM,SAAS,OAAO,CAACE,MAASA,EAAK,OAAOD,CAAO;AAAA,IAAA,EAC/D;AAAA,IACN,YAAY,CAACA,MACTF,EAAI,OAAO;AAAA,MACP,UAAUC,EAAA,EAAM,SAAS,IAAI,CAACE,MAAS;AACnC,YAAIA,EAAK,OAAOD,EAAQ,IAAI;AACxB,gBAAME,IAAsBD,EAAK,KAAK,MAAM,GAAG,GACzCE,IACFD,EAAoBA,EAAoB,SAAS,CAAC;AAEtD,UAAIA,EAAoB,SAAS,IAC7BD,EAAK,OAAO,GAAGD,EAAQ,QAAQ,IAAIG,CAAgB,KAEnDF,EAAK,OAAOD,EAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"useFileManagerStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/files/FileManager/store/useFileManagerStore.tsx"],"sourcesContent":["import { create } from 'zustand'\nimport type { Files, Directories, Layout } from '../types'\n\ntype DialogProps = { id: string; open: boolean }\n\nexport type FileManagerState = {\n fileList: Files\n layout: Layout\n selectedFile: string\n openedDirectoryId: string\n directories: Directories\n deleteDialog: DialogProps\n inviteDialog: DialogProps\n renameDialog: DialogProps\n}\n\ntype FileManagerAction = {\n setFileList: (payload: Files) => void\n setLayout: (payload: Layout) => void\n setOpenedDirectoryId: (payload: string) => void\n setDirectories: (payload: Directories) => void\n setSelectedFile: (payload: string) => void\n setDeleteDialog: (paload: DialogProps) => void\n setInviteDialog: (paload: DialogProps) => void\n setRenameDialog: (paload: DialogProps) => void\n deleteFile: (payload: string) => void\n renameFile: (payload: { id: string; fileName: string }) => void\n}\n\nconst initialState: FileManagerState = {\n fileList: [],\n layout: 'grid',\n selectedFile: '',\n openedDirectoryId: '',\n directories: [],\n deleteDialog: { open: false, id: '' },\n inviteDialog: { open: false, id: '' },\n renameDialog: { open: false, id: '' },\n}\n\nexport const useFileManagerStore = create<FileManagerState & FileManagerAction>(\n (set, get) => ({\n ...initialState,\n setFileList: (payload) => set(() => ({ fileList: payload })),\n setLayout: (payload: Layout) => set(() => ({ layout: payload })),\n setOpenedDirectoryId: (payload) =>\n set(() => ({ openedDirectoryId: payload })),\n setSelectedFile: (payload) => set(() => ({ selectedFile: payload })),\n setDirectories: (payload) => set(() => ({ directories: payload })),\n setDeleteDialog: (payload) => set(() => ({ deleteDialog: payload })),\n setInviteDialog: (payload) => set(() => ({ inviteDialog: payload })),\n setRenameDialog: (payload) => set(() => ({ renameDialog: payload })),\n deleteFile: (payload) =>\n set(() => ({\n fileList: get().fileList.filter((file) => file.id !== payload),\n })),\n renameFile: (payload) =>\n set(() => ({\n fileList: get().fileList.map((file) => {\n if (file.id === payload.id) {\n const fileAbbreviationArr = file.name.split('.')\n const fileAbbreviation =\n fileAbbreviationArr[fileAbbreviationArr.length - 1]\n\n if (fileAbbreviationArr.length > 1) {\n file.name = `${payload.fileName}.${fileAbbreviation}`\n } else {\n file.name = payload.fileName\n }\n }\n return file\n }),\n })),\n }),\n)\n"],"names":["initialState","useFileManagerStore","create","set","get","payload","file","fileAbbreviationArr","fileAbbreviation"],"mappings":";AA6BA,MAAMA,IAAiC;AAAA,EACnC,UAAU,CAAA;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,aAAa,CAAA;AAAA,EACb,cAAc,EAAE,MAAM,IAAO,IAAI,GAAA;AAAA,EACjC,cAAc,EAAE,MAAM,IAAO,IAAI,GAAA;AAAA,EACjC,cAAc,EAAE,MAAM,IAAO,IAAI,GAAA;AACrC,GAEaC,IAAsBC;AAAA,EAC/B,CAACC,GAAKC,OAAS;AAAA,IACX,GAAGJ;AAAA,IACH,aAAa,CAACK,MAAYF,EAAI,OAAO,EAAE,UAAUE,IAAU;AAAA,IAC3D,WAAW,CAACA,MAAoBF,EAAI,OAAO,EAAE,QAAQE,IAAU;AAAA,IAC/D,sBAAsB,CAACA,MACnBF,EAAI,OAAO,EAAE,mBAAmBE,IAAU;AAAA,IAC9C,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,gBAAgB,CAACA,MAAYF,EAAI,OAAO,EAAE,aAAaE,IAAU;AAAA,IACjE,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,iBAAiB,CAACA,MAAYF,EAAI,OAAO,EAAE,cAAcE,IAAU;AAAA,IACnE,YAAY,CAACA,MACTF,EAAI,OAAO;AAAA,MACP,UAAUC,IAAM,SAAS,OAAO,CAACE,MAASA,EAAK,OAAOD,CAAO;AAAA,IAAA,EAC/D;AAAA,IACN,YAAY,CAACA,MACTF,EAAI,OAAO;AAAA,MACP,UAAUC,EAAA,EAAM,SAAS,IAAI,CAACE,MAAS;AACnC,YAAIA,EAAK,OAAOD,EAAQ,IAAI;AACxB,gBAAME,IAAsBD,EAAK,KAAK,MAAM,GAAG,GACzCE,IACFD,EAAoBA,EAAoB,SAAS,CAAC;AAEtD,UAAIA,EAAoB,SAAS,IAC7BD,EAAK,OAAO,GAAGD,EAAQ,QAAQ,IAAIG,CAAgB,KAEnDF,EAAK,OAAOD,EAAQ;AAAA,QAE5B;AACA,eAAOC;AAAA,MACX,CAAC;AAAA,IAAA,EACH;AAAA,EAAA;AAEd;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArticleAction.js","sources":["../../../../../../../lib/@ecme/views/concepts/help-center/Article/components/ArticleAction.tsx"],"sourcesContent":["import { useState, useRef, useCallback } from 'react'\nimport Card from '@/components/ui/Card'\nimport Button from '@/components/ui/Button'\nimport Input from '@/components/ui/Input'\nimport { TbCheck, TbX } from 'react-icons/tb'\n\nconst ArticleAction = () => {\n const commentInput = useRef<HTMLInputElement>(null)\n\n const [helpful, setHelpful] = useState('')\n\n const onHelpfulClick = useCallback((val: string) => {\n setHelpful(val)\n }, [])\n\n const onCommentSubmit = () => {\n if (commentInput.current) {\n commentInput.current.value = ''\n }\n }\n\n return (\n <>\n <Card\n bordered\n className=\"mt-8\"\n bodyClass=\"flex items-center justify-between\"\n >\n <div>\n <h5>Was this article helpful?</h5>\n <p>\n {helpful === 'Y' ? '1' : '0'} out of{' '}\n {helpful === 'Y' ? '1' : '0'} found this helpful\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button\n icon={helpful === 'Y' && <TbCheck />}\n variant={helpful === 'Y' ? 'solid' : 'default'}\n onClick={() => onHelpfulClick('Y')}\n >\n <span>Yes</span>\n </Button>\n <Button\n icon={helpful === 'N' && <TbX />}\n variant={helpful === 'N' ? 'solid' : 'default'}\n onClick={() => onHelpfulClick('N')}\n >\n <span>No</span>\n </Button>\n </div>\n </Card>\n <div className=\"mt-12\">\n <h3 className=\"mb-4\">Comments</h3>\n <Input\n ref={commentInput}\n textArea\n placeholder=\"Enter your comment here...\"\n />\n <div className=\"mt-3 flex justify-end\">\n <Button variant=\"solid\" onClick={onCommentSubmit}>\n Submit\n </Button>\n </div>\n </div>\n </>\n )\n}\n\nexport default ArticleAction\n"],"names":["ArticleAction","commentInput","useRef","helpful","setHelpful","useState","onHelpfulClick","useCallback","val","jsxs","Fragment","Card","jsx","Button","TbCheck","TbX","Input"],"mappings":";;;;;;;;;AAMA,MAAMA,IAAgB,MAAM;AACxB,QAAMC,IAAeC,EAAyB,IAAI,GAE5C,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAE,GAEnCC,IAAiBC,EAAY,CAACC,MAAgB;AAChD,IAAAJ,EAAWI,CAAG;AAAA,
|
|
1
|
+
{"version":3,"file":"ArticleAction.js","sources":["../../../../../../../lib/@ecme/views/concepts/help-center/Article/components/ArticleAction.tsx"],"sourcesContent":["import { useState, useRef, useCallback } from 'react'\nimport Card from '@/components/ui/Card'\nimport Button from '@/components/ui/Button'\nimport Input from '@/components/ui/Input'\nimport { TbCheck, TbX } from 'react-icons/tb'\n\nconst ArticleAction = () => {\n const commentInput = useRef<HTMLInputElement>(null)\n\n const [helpful, setHelpful] = useState('')\n\n const onHelpfulClick = useCallback((val: string) => {\n setHelpful(val)\n }, [])\n\n const onCommentSubmit = () => {\n if (commentInput.current) {\n commentInput.current.value = ''\n }\n }\n\n return (\n <>\n <Card\n bordered\n className=\"mt-8\"\n bodyClass=\"flex items-center justify-between\"\n >\n <div>\n <h5>Was this article helpful?</h5>\n <p>\n {helpful === 'Y' ? '1' : '0'} out of{' '}\n {helpful === 'Y' ? '1' : '0'} found this helpful\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button\n icon={helpful === 'Y' && <TbCheck />}\n variant={helpful === 'Y' ? 'solid' : 'default'}\n onClick={() => onHelpfulClick('Y')}\n >\n <span>Yes</span>\n </Button>\n <Button\n icon={helpful === 'N' && <TbX />}\n variant={helpful === 'N' ? 'solid' : 'default'}\n onClick={() => onHelpfulClick('N')}\n >\n <span>No</span>\n </Button>\n </div>\n </Card>\n <div className=\"mt-12\">\n <h3 className=\"mb-4\">Comments</h3>\n <Input\n ref={commentInput}\n textArea\n placeholder=\"Enter your comment here...\"\n />\n <div className=\"mt-3 flex justify-end\">\n <Button variant=\"solid\" onClick={onCommentSubmit}>\n Submit\n </Button>\n </div>\n </div>\n </>\n )\n}\n\nexport default ArticleAction\n"],"names":["ArticleAction","commentInput","useRef","helpful","setHelpful","useState","onHelpfulClick","useCallback","val","jsxs","Fragment","Card","jsx","Button","TbCheck","TbX","Input"],"mappings":";;;;;;;;;AAMA,MAAMA,IAAgB,MAAM;AACxB,QAAMC,IAAeC,EAAyB,IAAI,GAE5C,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAE,GAEnCC,IAAiBC,EAAY,CAACC,MAAgB;AAChD,IAAAJ,EAAWI,CAAG;AAAA,EAClB,GAAG,CAAA,CAAE;AAQL,SACI,gBAAAC,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,UAAQ;AAAA,QACR,WAAU;AAAA,QACV,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAF,EAAC,OAAA,EACG,UAAA;AAAA,YAAA,gBAAAG,EAAC,QAAG,UAAA,4BAAA,CAAyB;AAAA,8BAC5B,KAAA,EACI,UAAA;AAAA,cAAAT,MAAY,MAAM,MAAM;AAAA,cAAI;AAAA,cAAQ;AAAA,cACpCA,MAAY,MAAM,MAAM;AAAA,cAAI;AAAA,YAAA,EAAA,CACjC;AAAA,UAAA,GACJ;AAAA,UACA,gBAAAM,EAAC,OAAA,EAAI,WAAU,cACX,UAAA;AAAA,YAAA,gBAAAG;AAAA,cAACC;AAAA,cAAA;AAAA,gBACG,MAAMV,MAAY,OAAO,gBAAAS,EAACE,GAAA,CAAA,CAAQ;AAAA,gBAClC,SAASX,MAAY,MAAM,UAAU;AAAA,gBACrC,SAAS,MAAMG,EAAe,GAAG;AAAA,gBAEjC,UAAA,gBAAAM,EAAC,UAAK,UAAA,MAAA,CAAG;AAAA,cAAA;AAAA,YAAA;AAAA,YAEb,gBAAAA;AAAA,cAACC;AAAA,cAAA;AAAA,gBACG,MAAMV,MAAY,OAAO,gBAAAS,EAACG,GAAA,CAAA,CAAI;AAAA,gBAC9B,SAASZ,MAAY,MAAM,UAAU;AAAA,gBACrC,SAAS,MAAMG,EAAe,GAAG;AAAA,gBAEjC,UAAA,gBAAAM,EAAC,UAAK,UAAA,KAAA,CAAE;AAAA,cAAA;AAAA,YAAA;AAAA,UACZ,EAAA,CACJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJ,gBAAAH,EAAC,OAAA,EAAI,WAAU,SACX,UAAA;AAAA,MAAA,gBAAAG,EAAC,MAAA,EAAG,WAAU,QAAO,UAAA,YAAQ;AAAA,MAC7B,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACG,KAAKf;AAAA,UACL,UAAQ;AAAA,UACR,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,MAEhB,gBAAAW,EAAC,OAAA,EAAI,WAAU,yBACX,UAAA,gBAAAA,EAACC,GAAA,EAAO,SAAQ,SAAQ,SA7ChB,MAAM;AAC1B,QAAIZ,EAAa,YACbA,EAAa,QAAQ,QAAQ;AAAA,MAErC,GAyCkE,UAAA,SAAA,CAElD,EAAA,CACJ;AAAA,IAAA,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
|
package/dist/@ecme/views/concepts/help-center/EditArticle/components/EditArticleFooter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditArticleFooter.js","sources":["../../../../../../../lib/@ecme/views/concepts/help-center/EditArticle/components/EditArticleFooter.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport { useNavigate } from 'react-router-dom'\nimport sleep from '@/utils/sleep'\nimport { TbDeviceFloppy, TbArrowNarrowLeft } from 'react-icons/tb'\n\nconst EditArticleFooter = () => {\n const [isPublishing, setIsPublishing] = useState(false)\n\n const [isSaving, setIsSaving] = useState(false)\n\n const navigate = useNavigate()\n\n const handleBack = () => {\n history.back()\n }\n\n const handleSave = async () => {\n setIsSaving(true)\n await sleep(1000)\n toast.push(<Notification type=\"success\">Saved as draft</Notification>, {\n placement: 'top-center',\n })\n setIsSaving(false)\n }\n\n const handlePublish = async () => {\n setIsPublishing(true)\n await sleep(1000)\n toast.push(\n <Notification type=\"success\">Article published</Notification>,\n { placement: 'top-center' },\n )\n setIsPublishing(false)\n navigate('/concepts/help-center/manage-article')\n }\n\n return (\n <div className=\"sticky bottom-0 left-0 right-0 z-10 mt-8 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 -mx-4 sm:-mx-8 py-4\">\n <div className=\"max-w-[1200px] mx-auto\">\n <div className=\"flex items-center justify-between px-8\">\n <Button\n className=\"ltr:mr-3 rtl:ml-3\"\n type=\"button\"\n variant=\"plain\"\n icon={<TbArrowNarrowLeft />}\n onClick={handleBack}\n >\n Back\n </Button>\n <div className=\"flex items-center\">\n <Button\n className=\"ltr:mr-3 rtl:ml-3\"\n type=\"button\"\n icon={<TbDeviceFloppy />}\n loading={isSaving}\n onClick={handleSave}\n >\n Save\n </Button>\n <Button\n variant=\"solid\"\n type=\"button\"\n loading={isPublishing}\n onClick={handlePublish}\n >\n Publish\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default EditArticleFooter\n"],"names":["EditArticleFooter","isPublishing","setIsPublishing","useState","isSaving","setIsSaving","navigate","useNavigate","jsx","jsxs","Button","TbArrowNarrowLeft","TbDeviceFloppy","sleep","toast","Notification"],"mappings":";;;;;;;;;;;AAQA,MAAMA,IAAoB,MAAM;AAC5B,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAEhD,CAACC,GAAUC,CAAW,IAAIF,EAAS,EAAK,GAExCG,IAAWC,EAAA;AA0BjB,SACI,gBAAAC,EAAC,OAAA,EAAI,WAAU,wIACX,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0BACX,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0CACX,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,wBAAOC,GAAA,EAAkB;AAAA,QACzB,SAjCD,MAAM;AACrB,kBAAQ,KAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"EditArticleFooter.js","sources":["../../../../../../../lib/@ecme/views/concepts/help-center/EditArticle/components/EditArticleFooter.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Button from '@/components/ui/Button'\nimport Notification from '@/components/ui/Notification'\nimport toast from '@/components/ui/toast'\nimport { useNavigate } from 'react-router-dom'\nimport sleep from '@/utils/sleep'\nimport { TbDeviceFloppy, TbArrowNarrowLeft } from 'react-icons/tb'\n\nconst EditArticleFooter = () => {\n const [isPublishing, setIsPublishing] = useState(false)\n\n const [isSaving, setIsSaving] = useState(false)\n\n const navigate = useNavigate()\n\n const handleBack = () => {\n history.back()\n }\n\n const handleSave = async () => {\n setIsSaving(true)\n await sleep(1000)\n toast.push(<Notification type=\"success\">Saved as draft</Notification>, {\n placement: 'top-center',\n })\n setIsSaving(false)\n }\n\n const handlePublish = async () => {\n setIsPublishing(true)\n await sleep(1000)\n toast.push(\n <Notification type=\"success\">Article published</Notification>,\n { placement: 'top-center' },\n )\n setIsPublishing(false)\n navigate('/concepts/help-center/manage-article')\n }\n\n return (\n <div className=\"sticky bottom-0 left-0 right-0 z-10 mt-8 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 -mx-4 sm:-mx-8 py-4\">\n <div className=\"max-w-[1200px] mx-auto\">\n <div className=\"flex items-center justify-between px-8\">\n <Button\n className=\"ltr:mr-3 rtl:ml-3\"\n type=\"button\"\n variant=\"plain\"\n icon={<TbArrowNarrowLeft />}\n onClick={handleBack}\n >\n Back\n </Button>\n <div className=\"flex items-center\">\n <Button\n className=\"ltr:mr-3 rtl:ml-3\"\n type=\"button\"\n icon={<TbDeviceFloppy />}\n loading={isSaving}\n onClick={handleSave}\n >\n Save\n </Button>\n <Button\n variant=\"solid\"\n type=\"button\"\n loading={isPublishing}\n onClick={handlePublish}\n >\n Publish\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default EditArticleFooter\n"],"names":["EditArticleFooter","isPublishing","setIsPublishing","useState","isSaving","setIsSaving","navigate","useNavigate","jsx","jsxs","Button","TbArrowNarrowLeft","TbDeviceFloppy","sleep","toast","Notification"],"mappings":";;;;;;;;;;;AAQA,MAAMA,IAAoB,MAAM;AAC5B,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAEhD,CAACC,GAAUC,CAAW,IAAIF,EAAS,EAAK,GAExCG,IAAWC,EAAA;AA0BjB,SACI,gBAAAC,EAAC,OAAA,EAAI,WAAU,wIACX,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0BACX,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0CACX,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,wBAAOC,GAAA,EAAkB;AAAA,QACzB,SAjCD,MAAM;AACrB,kBAAQ,KAAA;AAAA,QACZ;AAAA,QAgCiB,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD,gBAAAF,EAAC,OAAA,EAAI,WAAU,qBACX,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAACE;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,MAAK;AAAA,UACL,wBAAOE,GAAA,EAAe;AAAA,UACtB,SAASR;AAAA,UACT,SAvCL,YAAY;AAC3B,YAAAC,EAAY,EAAI,GAChB,MAAMQ,EAAM,GAAI,GAChBC,EAAM,KAAK,gBAAAN,EAACO,GAAA,EAAa,MAAK,WAAU,4BAAc,GAAiB;AAAA,cACnE,WAAW;AAAA,YAAA,CACd,GACDV,EAAY,EAAK;AAAA,UACrB;AAAA,UAiCqB,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGD,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACG,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAAST;AAAA,UACT,SAtCF,YAAY;AAC9B,YAAAC,EAAgB,EAAI,GACpB,MAAMW,EAAM,GAAI,GAChBC,EAAM;AAAA,cACF,gBAAAN,EAACO,GAAA,EAAa,MAAK,WAAU,UAAA,qBAAiB;AAAA,cAC9C,EAAE,WAAW,aAAA;AAAA,YAAa,GAE9Bb,EAAgB,EAAK,GACrBI,EAAS,sCAAsC;AAAA,UACnD;AAAA,UA8BqB,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,EAAA,CACJ;AAAA,EAAA,EAAA,CACJ,GACJ,GACJ;AAER;"}
|
package/dist/@ecme/views/concepts/help-center/EditArticle/components/EditArticleHeader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditArticleHeader.js","sources":["../../../../../../../lib/@ecme/views/concepts/help-center/EditArticle/components/EditArticleHeader.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Tag from '@/components/ui/Tag'\nimport uniqueId from 'lodash/uniqueId'\nimport type { ArticleContent } from '../types'\nimport type { CommonProps } from '@/@types/common'\nimport type { ReactNode } from 'react'\n\ntype EditArticleHeaderProps = Pick<\n ArticleContent,\n 'title' | 'category' | 'tags' | 'authors' | 'updateTime'\n>\n\nexport interface FieldProps extends CommonProps {\n title: string\n icon?: ReactNode\n}\n\nconst Field = (props: FieldProps) => {\n const { title, icon, children } = props\n\n return (\n <div className=\"flex items-center mb-2\">\n <div className=\"flex items-center gap-2 font-semibold min-w-[150px]\">\n <span className=\"text-lg\">{icon}</span>\n <span>{title}</span>\n </div>\n {children}\n </div>\n )\n}\n\nconst EditArticleHeader = (props: EditArticleHeaderProps) => {\n const { title, authors, updateTime, tags } = props\n\n const [articleTitle, setArticleTitle] = useState(title)\n const [articleTags, setArticleTags] = useState(tags)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n }, [articleTags])\n\n return (\n <div>\n <input\n className=\"ring-0 outline-none block w-full p-2 bg-transparent heading-text h3\"\n placeholder=\"Untitle article\"\n value={articleTitle}\n onChange={(e) => setArticleTitle(e.target.value)}\n />\n <div className=\"mt-3 flex flex-col gap-6 border-t border-gray-200 dark:border-gray-700 py-6\">\n <Field title=\"Created by:\">\n {authors.length > 0 && (\n <div className=\"flex items-center gap-2\">\n <Avatar size={25} src={authors[0].img} />\n <span className=\"heading-text font-bold\">\n {authors[0].name}\n </span>\n </div>\n )}\n </Field>\n <Field title=\"Last updated:\">\n <span className=\"heading-text font-bold\">{updateTime}</span>\n </Field>\n <Field title=\"Tags:\">\n <div className=\"flex flex-wrap items-center gap-2\">\n {articleTags.map((tag) => (\n <Tag key={tag.id}>{tag.label}</Tag>\n ))}\n <input\n ref={inputRef}\n className=\"ring-0 outline-none block py-2 bg-transparent heading-text text-sm\"\n type=\"text\"\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n const eventTarget =\n event.target as HTMLInputElement\n setArticleTags((tag) => {\n const newTags = structuredClone(tag)\n\n newTags.push({\n id: uniqueId('article-tag-'),\n label: eventTarget.value,\n })\n return newTags\n })\n inputRef.current?.blur()\n }\n\n if (\n event.key === 'Backspace' &&\n (event.target as HTMLInputElement).value\n .length === 0\n ) {\n setArticleTags((tag) => {\n const newTags = structuredClone(tag)\n newTags.pop()\n return newTags\n })\n }\n }}\n />\n </div>\n </Field>\n </div>\n </div>\n )\n}\n\nexport default EditArticleHeader\n"],"names":["Field","props","title","icon","children","jsxs","jsx","EditArticleHeader","authors","updateTime","tags","articleTitle","setArticleTitle","useState","articleTags","setArticleTags","inputRef","useRef","useEffect","e","Avatar","tag","Tag","event","eventTarget","newTags","uniqueId","_a"],"mappings":";;;;;;AAkBA,MAAMA,IAAQ,CAACC,MAAsB;AACjC,QAAM,EAAE,OAAAC,GAAO,MAAAC,GAAM,UAAAC,EAAA,IAAaH;AAElC,SACI,gBAAAI,EAAC,OAAA,EAAI,WAAU,0BACX,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,uDACX,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,WAAW,UAAAH,GAAK;AAAA,MAChC,gBAAAG,EAAC,UAAM,UAAAJ,EAAA,CAAM;AAAA,IAAA,GACjB;AAAA,IACCE;AAAA,EAAA,GACL;AAER,GAEMG,IAAoB,CAACN,MAAkC;AACzD,QAAM,EAAE,OAAAC,GAAO,SAAAM,GAAS,YAAAC,GAAY,MAAAC,MAAST,GAEvC,CAACU,GAAcC,CAAe,IAAIC,EAASX,CAAK,GAChD,CAACY,GAAaC,CAAc,IAAIF,EAASH,CAAI,GAE7CM,IAAWC,EAAyB,IAAI;AAE9C,SAAAC,EAAU,MAAM;AACZ,IAAIF,EAAS,YACTA,EAAS,QAAQ,QAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"EditArticleHeader.js","sources":["../../../../../../../lib/@ecme/views/concepts/help-center/EditArticle/components/EditArticleHeader.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Tag from '@/components/ui/Tag'\nimport uniqueId from 'lodash/uniqueId'\nimport type { ArticleContent } from '../types'\nimport type { CommonProps } from '@/@types/common'\nimport type { ReactNode } from 'react'\n\ntype EditArticleHeaderProps = Pick<\n ArticleContent,\n 'title' | 'category' | 'tags' | 'authors' | 'updateTime'\n>\n\nexport interface FieldProps extends CommonProps {\n title: string\n icon?: ReactNode\n}\n\nconst Field = (props: FieldProps) => {\n const { title, icon, children } = props\n\n return (\n <div className=\"flex items-center mb-2\">\n <div className=\"flex items-center gap-2 font-semibold min-w-[150px]\">\n <span className=\"text-lg\">{icon}</span>\n <span>{title}</span>\n </div>\n {children}\n </div>\n )\n}\n\nconst EditArticleHeader = (props: EditArticleHeaderProps) => {\n const { title, authors, updateTime, tags } = props\n\n const [articleTitle, setArticleTitle] = useState(title)\n const [articleTags, setArticleTags] = useState(tags)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n }, [articleTags])\n\n return (\n <div>\n <input\n className=\"ring-0 outline-none block w-full p-2 bg-transparent heading-text h3\"\n placeholder=\"Untitle article\"\n value={articleTitle}\n onChange={(e) => setArticleTitle(e.target.value)}\n />\n <div className=\"mt-3 flex flex-col gap-6 border-t border-gray-200 dark:border-gray-700 py-6\">\n <Field title=\"Created by:\">\n {authors.length > 0 && (\n <div className=\"flex items-center gap-2\">\n <Avatar size={25} src={authors[0].img} />\n <span className=\"heading-text font-bold\">\n {authors[0].name}\n </span>\n </div>\n )}\n </Field>\n <Field title=\"Last updated:\">\n <span className=\"heading-text font-bold\">{updateTime}</span>\n </Field>\n <Field title=\"Tags:\">\n <div className=\"flex flex-wrap items-center gap-2\">\n {articleTags.map((tag) => (\n <Tag key={tag.id}>{tag.label}</Tag>\n ))}\n <input\n ref={inputRef}\n className=\"ring-0 outline-none block py-2 bg-transparent heading-text text-sm\"\n type=\"text\"\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n const eventTarget =\n event.target as HTMLInputElement\n setArticleTags((tag) => {\n const newTags = structuredClone(tag)\n\n newTags.push({\n id: uniqueId('article-tag-'),\n label: eventTarget.value,\n })\n return newTags\n })\n inputRef.current?.blur()\n }\n\n if (\n event.key === 'Backspace' &&\n (event.target as HTMLInputElement).value\n .length === 0\n ) {\n setArticleTags((tag) => {\n const newTags = structuredClone(tag)\n newTags.pop()\n return newTags\n })\n }\n }}\n />\n </div>\n </Field>\n </div>\n </div>\n )\n}\n\nexport default EditArticleHeader\n"],"names":["Field","props","title","icon","children","jsxs","jsx","EditArticleHeader","authors","updateTime","tags","articleTitle","setArticleTitle","useState","articleTags","setArticleTags","inputRef","useRef","useEffect","e","Avatar","tag","Tag","event","eventTarget","newTags","uniqueId","_a"],"mappings":";;;;;;AAkBA,MAAMA,IAAQ,CAACC,MAAsB;AACjC,QAAM,EAAE,OAAAC,GAAO,MAAAC,GAAM,UAAAC,EAAA,IAAaH;AAElC,SACI,gBAAAI,EAAC,OAAA,EAAI,WAAU,0BACX,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,uDACX,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,WAAW,UAAAH,GAAK;AAAA,MAChC,gBAAAG,EAAC,UAAM,UAAAJ,EAAA,CAAM;AAAA,IAAA,GACjB;AAAA,IACCE;AAAA,EAAA,GACL;AAER,GAEMG,IAAoB,CAACN,MAAkC;AACzD,QAAM,EAAE,OAAAC,GAAO,SAAAM,GAAS,YAAAC,GAAY,MAAAC,MAAST,GAEvC,CAACU,GAAcC,CAAe,IAAIC,EAASX,CAAK,GAChD,CAACY,GAAaC,CAAc,IAAIF,EAASH,CAAI,GAE7CM,IAAWC,EAAyB,IAAI;AAE9C,SAAAC,EAAU,MAAM;AACZ,IAAIF,EAAS,YACTA,EAAS,QAAQ,QAAQ;AAAA,EAEjC,GAAG,CAACF,CAAW,CAAC,qBAGX,OAAA,EACG,UAAA;AAAA,IAAA,gBAAAR;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,aAAY;AAAA,QACZ,OAAOK;AAAA,QACP,UAAU,CAACQ,MAAMP,EAAgBO,EAAE,OAAO,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnD,gBAAAd,EAAC,OAAA,EAAI,WAAU,+EACX,UAAA;AAAA,MAAA,gBAAAC,EAACN,GAAA,EAAM,OAAM,eACR,UAAAQ,EAAQ,SAAS,KACd,gBAAAH,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,QAAA,gBAAAC,EAACc,KAAO,MAAM,IAAI,KAAKZ,EAAQ,CAAC,EAAE,KAAK;AAAA,0BACtC,QAAA,EAAK,WAAU,0BACX,UAAAA,EAAQ,CAAC,EAAE,KAAA,CAChB;AAAA,MAAA,EAAA,CACJ,EAAA,CAER;AAAA,MACA,gBAAAF,EAACN,KAAM,OAAM,iBACT,4BAAC,QAAA,EAAK,WAAU,0BAA0B,UAAAS,EAAA,CAAW,EAAA,CACzD;AAAA,wBACCT,GAAA,EAAM,OAAM,SACT,UAAA,gBAAAK,EAAC,OAAA,EAAI,WAAU,qCACV,UAAA;AAAA,QAAAS,EAAY,IAAI,CAACO,MACd,gBAAAf,EAACgB,KAAkB,UAAAD,EAAI,MAAA,GAAbA,EAAI,EAAe,CAChC;AAAA,QACD,gBAAAf;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,KAAKU;AAAA,YACL,WAAU;AAAA,YACV,MAAK;AAAA,YACL,WAAW,CAACO,MAAU;;AAClB,kBAAIA,EAAM,QAAQ,SAAS;AACvB,sBAAMC,IACFD,EAAM;AACV,gBAAAR,EAAe,CAACM,MAAQ;AACpB,wBAAMI,IAAU,gBAAgBJ,CAAG;AAEnC,yBAAAI,EAAQ,KAAK;AAAA,oBACT,IAAIC,EAAS,cAAc;AAAA,oBAC3B,OAAOF,EAAY;AAAA,kBAAA,CACtB,GACMC;AAAA,gBACX,CAAC,IACDE,IAAAX,EAAS,YAAT,QAAAW,EAAkB;AAAA,cACtB;AAEA,cACIJ,EAAM,QAAQ,eACbA,EAAM,OAA4B,MAC9B,WAAW,KAEhBR,EAAe,CAACM,MAAQ;AACpB,sBAAMI,IAAU,gBAAgBJ,CAAG;AACnC,uBAAAI,EAAQ,IAAA,GACDA;AAAA,cACX,CAAC;AAAA,YAET;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ,EAAA,CACJ,EAAA,CACJ;AAAA,IAAA,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
|