@orbe-agro/client-core 5.3.8 → 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/Ticket/ticket.endpoint.config.d.ts +1 -0
- package/dist/@types/base/configs/endpoints.config/Ticket/ticket.endpoint.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/Ticket/TicketService.d.ts +1 -0
- package/dist/@types/base/services/modules/Ticket/TicketService.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/@types/base/services/modules/modules.query.d.ts +4 -0
- package/dist/@types/base/services/modules/modules.query.d.ts.map +1 -1
- 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/Ticket/ticket.endpoint.config.js +1 -0
- package/dist/base/configs/endpoints.config/Ticket/ticket.endpoint.config.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/Ticket/TicketService.js +17 -9
- package/dist/base/services/modules/Ticket/TicketService.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/modules/modules.query.js +7 -6
- package/dist/base/services/modules/modules.query.js.map +1 -1
- package/dist/base/services/query.js.map +1 -1
- package/dist/base/utils/functions/formUtils.js.map +1 -1
- package/dist/base/utils/functions/handleInputChangeUtils.js.map +1 -1
- package/dist/base/utils/functions/stringUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../../../../lib/@ecme/components/ui/Tooltip/Tooltip.tsx"],"sourcesContent":["import { useState } from 'react'\nimport classNames from 'classnames'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport Arrow from './Arrow'\nimport type { CommonProps } from '../@types/common'\nimport type { ArrowPlacement } from './Arrow'\nimport type { ReactNode } from 'react'\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n FloatingPortal,\n} from '@floating-ui/react'\n\nexport interface TooltipProps extends CommonProps {\n isOpen?: boolean\n placement?: ArrowPlacement\n title: string | ReactNode\n wrapperClass?: string\n disabled?: boolean\n}\n\nconst Tooltip = (props: TooltipProps) => {\n const {\n className,\n children,\n isOpen = false,\n placement = 'top',\n title,\n wrapperClass,\n disabled,\n } = props\n\n const [tooltipOpen, setTooltipOpen] = useState<boolean>(isOpen)\n\n const tooltipColor = {\n background: 'bg-gray-800 dark:bg-black',\n arrow: 'text-gray-800 dark:text-black',\n }\n\n const defaultTooltipClass = `tooltip ${tooltipColor.background}`\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: (open) => {\n if (!disabled) {\n setTooltipOpen(open)\n }\n },\n placement,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(7),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift(),\n ],\n })\n\n const hover = useHover(context, { move: false })\n const focus = useFocus(context)\n const dismiss = useDismiss(context)\n const role = useRole(context, { role: 'tooltip' })\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n hover,\n focus,\n dismiss,\n role,\n ])\n\n return (\n <>\n <span\n ref={refs.setReference}\n {...getReferenceProps()}\n className={classNames('tooltip-wrapper', wrapperClass)}\n >\n {children}\n </span>\n <FloatingPortal>\n {tooltipOpen && (\n <AnimatePresence>\n <motion.div\n ref={refs.setFloating}\n className={classNames(\n defaultTooltipClass,\n className,\n )}\n initial={{\n opacity: 0,\n visibility: 'hidden',\n }}\n animate={\n tooltipOpen\n ? {\n opacity: 1,\n visibility: 'visible',\n }\n : {\n opacity: 0,\n visibility: 'hidden',\n }\n }\n transition={{\n duration: 0.15,\n type: 'tween',\n }}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <span>{title}</span>\n <Arrow\n placement={context.placement}\n color={tooltipColor.arrow}\n />\n </motion.div>\n </AnimatePresence>\n )}\n </FloatingPortal>\n </>\n )\n}\n\nTooltip.displayName = 'Tooltip'\n\nexport default Tooltip\n"],"names":["Tooltip","props","className","children","isOpen","placement","title","wrapperClass","disabled","tooltipOpen","setTooltipOpen","useState","tooltipColor","defaultTooltipClass","refs","floatingStyles","context","useFloating","open","autoUpdate","offset","flip","shift","hover","useHover","focus","useFocus","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","jsxs","Fragment","jsx","classNames","FloatingPortal","AnimatePresence","motion","Arrow"],"mappings":";;;;;;AA6BA,MAAMA,IAAU,CAACC,MAAwB;AACrC,QAAM;AAAA,IACF,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,IACT,WAAAC,IAAY;AAAA,IACZ,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACAP,GAEE,CAACQ,GAAaC,CAAc,IAAIC,EAAkBP,CAAM,GAExDQ,IAAe;AAAA,IACjB,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA,GAGLC,IAAsB,WAAWD,EAAa,UAAU,IAExD,EAAE,MAAAE,GAAM,gBAAAC,GAAgB,SAAAC,EAAA,IAAYC,EAAY;AAAA,IAClD,MAAMb;AAAA,IACN,cAAc,CAACc,MAAS;AACpB,MAAKV,KACDE,EAAeQ,CAAI;AAAA,
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../../lib/@ecme/components/ui/Tooltip/Tooltip.tsx"],"sourcesContent":["import { useState } from 'react'\nimport classNames from 'classnames'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport Arrow from './Arrow'\nimport type { CommonProps } from '../@types/common'\nimport type { ArrowPlacement } from './Arrow'\nimport type { ReactNode } from 'react'\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n FloatingPortal,\n} from '@floating-ui/react'\n\nexport interface TooltipProps extends CommonProps {\n isOpen?: boolean\n placement?: ArrowPlacement\n title: string | ReactNode\n wrapperClass?: string\n disabled?: boolean\n}\n\nconst Tooltip = (props: TooltipProps) => {\n const {\n className,\n children,\n isOpen = false,\n placement = 'top',\n title,\n wrapperClass,\n disabled,\n } = props\n\n const [tooltipOpen, setTooltipOpen] = useState<boolean>(isOpen)\n\n const tooltipColor = {\n background: 'bg-gray-800 dark:bg-black',\n arrow: 'text-gray-800 dark:text-black',\n }\n\n const defaultTooltipClass = `tooltip ${tooltipColor.background}`\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: (open) => {\n if (!disabled) {\n setTooltipOpen(open)\n }\n },\n placement,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(7),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift(),\n ],\n })\n\n const hover = useHover(context, { move: false })\n const focus = useFocus(context)\n const dismiss = useDismiss(context)\n const role = useRole(context, { role: 'tooltip' })\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n hover,\n focus,\n dismiss,\n role,\n ])\n\n return (\n <>\n <span\n ref={refs.setReference}\n {...getReferenceProps()}\n className={classNames('tooltip-wrapper', wrapperClass)}\n >\n {children}\n </span>\n <FloatingPortal>\n {tooltipOpen && (\n <AnimatePresence>\n <motion.div\n ref={refs.setFloating}\n className={classNames(\n defaultTooltipClass,\n className,\n )}\n initial={{\n opacity: 0,\n visibility: 'hidden',\n }}\n animate={\n tooltipOpen\n ? {\n opacity: 1,\n visibility: 'visible',\n }\n : {\n opacity: 0,\n visibility: 'hidden',\n }\n }\n transition={{\n duration: 0.15,\n type: 'tween',\n }}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <span>{title}</span>\n <Arrow\n placement={context.placement}\n color={tooltipColor.arrow}\n />\n </motion.div>\n </AnimatePresence>\n )}\n </FloatingPortal>\n </>\n )\n}\n\nTooltip.displayName = 'Tooltip'\n\nexport default Tooltip\n"],"names":["Tooltip","props","className","children","isOpen","placement","title","wrapperClass","disabled","tooltipOpen","setTooltipOpen","useState","tooltipColor","defaultTooltipClass","refs","floatingStyles","context","useFloating","open","autoUpdate","offset","flip","shift","hover","useHover","focus","useFocus","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","jsxs","Fragment","jsx","classNames","FloatingPortal","AnimatePresence","motion","Arrow"],"mappings":";;;;;;AA6BA,MAAMA,IAAU,CAACC,MAAwB;AACrC,QAAM;AAAA,IACF,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,IACT,WAAAC,IAAY;AAAA,IACZ,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACAP,GAEE,CAACQ,GAAaC,CAAc,IAAIC,EAAkBP,CAAM,GAExDQ,IAAe;AAAA,IACjB,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA,GAGLC,IAAsB,WAAWD,EAAa,UAAU,IAExD,EAAE,MAAAE,GAAM,gBAAAC,GAAgB,SAAAC,EAAA,IAAYC,EAAY;AAAA,IAClD,MAAMb;AAAA,IACN,cAAc,CAACc,MAAS;AACpB,MAAKV,KACDE,EAAeQ,CAAI;AAAA,IAE3B;AAAA,IACA,WAAAb;AAAA,IACA,sBAAsBc;AAAA,IACtB,YAAY;AAAA,MACRC,EAAO,CAAC;AAAA,MACRC,EAAK;AAAA,QACD,2BAA2B;AAAA,MAAA,CAC9B;AAAA,MACDC,EAAA;AAAA,IAAM;AAAA,EACV,CACH,GAEKC,IAAQC,EAASR,GAAS,EAAE,MAAM,IAAO,GACzCS,IAAQC,EAASV,CAAO,GACxBW,IAAUC,EAAWZ,CAAO,GAC5Ba,IAAOC,EAAQd,GAAS,EAAE,MAAM,WAAW,GAE3C,EAAE,mBAAAe,GAAmB,kBAAAC,EAAA,IAAqBC,EAAgB;AAAA,IAC5DV;AAAA,IACAE;AAAA,IACAE;AAAA,IACAE;AAAA,EAAA,CACH;AAED,SACI,gBAAAK,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,KAAKtB,EAAK;AAAA,QACT,GAAGiB,EAAA;AAAA,QACJ,WAAWM,EAAW,mBAAmB9B,CAAY;AAAA,QAEpD,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEL,gBAAAiC,EAACE,GAAA,EACI,UAAA7B,KACG,gBAAA2B,EAACG,GAAA,EACG,UAAA,gBAAAL;AAAA,MAACM,EAAO;AAAA,MAAP;AAAA,QACG,KAAK1B,EAAK;AAAA,QACV,WAAWuB;AAAA,UACPxB;AAAA,UACAX;AAAA,QAAA;AAAA,QAEJ,SAAS;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,QAAA;AAAA,QAEhB,SACIO,IACM;AAAA,UACI,SAAS;AAAA,UACT,YAAY;AAAA,QAAA,IAEhB;AAAA,UACI,SAAS;AAAA,UACT,YAAY;AAAA,QAAA;AAAA,QAG1B,YAAY;AAAA,UACR,UAAU;AAAA,UACV,MAAM;AAAA,QAAA;AAAA,QAEV,OAAOM;AAAA,QACN,GAAGiB,EAAA;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAI,EAAC,UAAM,UAAA9B,EAAA,CAAM;AAAA,UACb,gBAAA8B;AAAA,YAACK;AAAA,YAAA;AAAA,cACG,WAAWzB,EAAQ;AAAA,cACnB,OAAOJ,EAAa;AAAA,YAAA;AAAA,UAAA;AAAA,QACxB;AAAA,MAAA;AAAA,IAAA,GAER,EAAA,CAER;AAAA,EAAA,GACJ;AAER;AAEAZ,EAAQ,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","sources":["../../../../../lib/@ecme/components/ui/Upload/Upload.tsx"],"sourcesContent":["import { useRef, useState, useCallback, useEffect } from 'react'\nimport classNames from '../utils/classNames'\nimport cloneDeep from 'lodash/cloneDeep'\nimport FileItem from './FileItem'\nimport Button from '../Button/Button'\nimport CloseButton from '../CloseButton'\nimport Notification from '../Notification/Notification'\nimport toast from '../toast/toast'\nimport type { CommonProps } from '../@types/common'\nimport type { ReactNode, ChangeEvent, MouseEvent, Ref } from 'react'\n\nexport interface UploadProps extends CommonProps {\n accept?: string\n beforeUpload?: (file: FileList | null, fileList: File[]) => boolean | string\n disabled?: boolean\n draggable?: boolean\n fileList?: File[]\n fileListClass?: string\n fileItemClass?: string\n multiple?: boolean\n onChange?: (file: File[], fileList: File[]) => void\n onFileRemove?: (file: File[]) => void\n ref?: Ref<HTMLDivElement>\n showList?: boolean\n tip?: string | ReactNode\n uploadLimit?: number\n}\n\nconst filesToArray = (files: File[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Object.keys(files).map((key) => files[key as any])\n\nconst Upload = (props: UploadProps) => {\n const {\n accept,\n beforeUpload,\n disabled = false,\n draggable = false,\n fileList = [],\n fileListClass,\n fileItemClass,\n multiple,\n onChange,\n onFileRemove,\n ref,\n showList = true,\n tip,\n uploadLimit,\n children,\n className,\n ...rest\n } = props\n\n const fileInputField = useRef<HTMLInputElement>(null)\n const [files, setFiles] = useState(fileList)\n const [dragOver, setDragOver] = useState(false)\n\n useEffect(() => {\n if (JSON.stringify(files) !== JSON.stringify(fileList)) {\n setFiles(fileList)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(fileList)])\n\n const triggerMessage = (msg: string | ReactNode = '') => {\n toast.push(\n <Notification type=\"danger\" duration={2000}>\n {msg || 'Upload Failed!'}\n </Notification>,\n {\n placement: 'top-center',\n },\n )\n }\n\n const pushFile = (newFiles: FileList | null, file: File[]) => {\n if (newFiles) {\n for (const f of newFiles) {\n file.push(f)\n }\n }\n\n return file\n }\n\n const addNewFiles = (newFiles: FileList | null) => {\n let file = cloneDeep(files)\n if (typeof uploadLimit === 'number' && uploadLimit !== 0) {\n if (Object.keys(file).length >= uploadLimit) {\n if (uploadLimit === 1) {\n file.shift()\n file = pushFile(newFiles, file)\n }\n\n return filesToArray({ ...file })\n }\n }\n file = pushFile(newFiles, file)\n return filesToArray({ ...file })\n }\n\n const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const { files: newFiles } = e.target\n let result: boolean | string = true\n\n if (beforeUpload) {\n result = beforeUpload(newFiles, files)\n\n if (result === false) {\n triggerMessage()\n return\n }\n\n if (typeof result === 'string' && result.length > 0) {\n triggerMessage(result)\n return\n }\n }\n\n if (result) {\n const updatedFiles = addNewFiles(newFiles)\n setFiles(updatedFiles)\n onChange?.(updatedFiles, files)\n }\n }\n\n const removeFile = (fileIndex: number) => {\n const deletedFileList = files.filter((_, index) => index !== fileIndex)\n setFiles(deletedFileList)\n onFileRemove?.(deletedFileList)\n }\n\n const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {\n if (!disabled) {\n fileInputField.current?.click()\n }\n e.stopPropagation()\n }\n\n const renderChildren = () => {\n if (!draggable && !children) {\n return (\n <Button disabled={disabled} onClick={(e) => e.preventDefault()}>\n Upload\n </Button>\n )\n }\n\n if (draggable && !children) {\n return <span>Choose a file or drag and drop here</span>\n }\n\n return children\n }\n\n const handleDragLeave = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const handleDragOver = useCallback(() => {\n if (draggable && !disabled) {\n setDragOver(true)\n }\n }, [draggable, disabled])\n\n const handleDrop = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const draggableProp = {\n onDragLeave: handleDragLeave,\n onDragOver: handleDragOver,\n onDrop: handleDrop,\n }\n\n const draggableEventFeedbackClass = `border-primary`\n\n const uploadClass = classNames(\n 'upload',\n draggable && `upload-draggable`,\n draggable && !disabled && `hover:${draggableEventFeedbackClass}`,\n draggable && disabled && 'disabled',\n dragOver && draggableEventFeedbackClass,\n className,\n )\n\n const uploadInputClass = classNames(\n 'upload-input',\n draggable && `draggable`,\n )\n\n return (\n <>\n <div\n ref={ref}\n className={uploadClass}\n {...(draggable ? draggableProp : { onClick: triggerUpload })}\n {...rest}\n >\n <input\n ref={fileInputField}\n className={uploadInputClass}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n accept={accept}\n title=\"\"\n value=\"\"\n onChange={onNewFileUpload}\n {...rest}\n ></input>\n {renderChildren()}\n </div>\n {tip}\n {showList && (\n <div className={classNames('upload-file-list', fileListClass)}>\n {files.map((file, index) => (\n <FileItem\n key={file.name + index}\n file={file}\n className={fileItemClass}\n >\n <CloseButton\n className=\"upload-file-remove\"\n onClick={() => removeFile(index)}\n />\n </FileItem>\n ))}\n </div>\n )}\n </>\n )\n}\n\nexport default Upload\n"],"names":["filesToArray","files","key","Upload","props","accept","beforeUpload","disabled","draggable","fileList","fileListClass","fileItemClass","multiple","onChange","onFileRemove","ref","showList","tip","uploadLimit","children","className","rest","fileInputField","useRef","setFiles","useState","dragOver","setDragOver","useEffect","triggerMessage","msg","toast","Notification","pushFile","newFiles","file","f","addNewFiles","cloneDeep","onNewFileUpload","e","result","updatedFiles","removeFile","fileIndex","deletedFileList","_","index","triggerUpload","_a","renderChildren","jsx","Button","handleDragLeave","useCallback","handleDragOver","handleDrop","draggableProp","draggableEventFeedbackClass","uploadClass","classNames","uploadInputClass","jsxs","Fragment","FileItem","CloseButton"],"mappings":";;;;;;;;;;AA4BA,MAAMA,IAAe,CAACC;AAAA;AAAA,EAElB,OAAO,KAAKA,CAAK,EAAE,IAAI,CAACC,MAAQD,EAAMC,CAAU,CAAC;AAAA,GAE/CC,KAAS,CAACC,MAAuB;AACnC,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,UAAAC,IAAW,CAAA;AAAA,IACX,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,KAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,KAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHjB,GAEEkB,IAAiBC,EAAyB,IAAI,GAC9C,CAACtB,GAAOuB,CAAQ,IAAIC,EAAShB,CAAQ,GACrC,CAACiB,GAAUC,CAAW,IAAIF,EAAS,EAAK;AAE9C,EAAAG,EAAU,MAAM;AACZ,IAAI,KAAK,UAAU3B,CAAK,MAAM,KAAK,UAAUQ,CAAQ,KACjDe,EAASf,CAAQ;AAAA,EACrB,GAED,CAAC,KAAK,UAAUA,CAAQ,CAAC,CAAC;AAE7B,QAAMoB,IAAiB,CAACC,IAA0B,OAAO;AACrD,IAAAC,GAAM;AAAA,wBACDC,GAAA,EAAa,MAAK,UAAS,UAAU,KACjC,eAAO,kBACZ;AAAA,MACA;AAAA,QACI,WAAW;AAAA,MAAA;AAAA,IACf;AAAA,EACJ,GAGEC,IAAW,CAACC,GAA2BC,MAAiB;AAC1D,QAAID;AACA,iBAAWE,KAAKF;AACZ,QAAAC,EAAK,KAAKC,CAAC;AAInB,WAAOD;AAAA,EAAA,GAGLE,IAAc,CAACH,MAA8B;AAC/C,QAAIC,IAAOG,EAAUrC,CAAK;AAC1B,WAAI,OAAOiB,KAAgB,YAAYA,MAAgB,KAC/C,OAAO,KAAKiB,CAAI,EAAE,UAAUjB,KACxBA,MAAgB,MAChBiB,EAAK,MAAA,GACLA,IAAOF,EAASC,GAAUC,CAAI,IAG3BnC,EAAa,EAAE,GAAGmC,GAAM,MAGvCA,IAAOF,EAASC,GAAUC,CAAI,GACvBnC,EAAa,EAAE,GAAGmC,GAAM;AAAA,EAAA,GAG7BI,IAAkB,CAACC,MAAqC;AAC1D,UAAM,EAAE,OAAON,EAAA,IAAaM,EAAE;AAC9B,QAAIC,IAA2B;AAE/B,QAAInC,GAAc;AAGd,UAFAmC,IAASnC,EAAa4B,GAAUjC,CAAK,GAEjCwC,MAAW,IAAO;AAClB,QAAAZ,EAAA;AACA;AAAA,MAAA;AAGJ,UAAI,OAAOY,KAAW,YAAYA,EAAO,SAAS,GAAG;AACjD,QAAAZ,EAAeY,CAAM;AACrB;AAAA,MAAA;AAAA,IACJ;AAGJ,QAAIA,GAAQ;AACR,YAAMC,IAAeL,EAAYH,CAAQ;AACzC,MAAAV,EAASkB,CAAY,GACrB7B,KAAA,QAAAA,EAAW6B,GAAczC;AAAA,IAAK;AAAA,EAClC,GAGE0C,IAAa,CAACC,MAAsB;AACtC,UAAMC,IAAkB5C,EAAM,OAAO,CAAC6C,GAAGC,MAAUA,MAAUH,CAAS;AACtE,IAAApB,EAASqB,CAAe,GACxB/B,KAAA,QAAAA,EAAe+B;AAAA,EAAe,GAG5BG,IAAgB,CAACR,MAAkC;;AACrD,IAAKjC,MACD0C,IAAA3B,EAAe,YAAf,QAAA2B,EAAwB,SAE5BT,EAAE,gBAAA;AAAA,EAAgB,GAGhBU,IAAiB,MACf,CAAC1C,KAAa,CAACW,IAEX,gBAAAgC,EAACC,KAAO,UAAA7C,GAAoB,SAAS,CAACiC,MAAMA,EAAE,eAAA,GAAkB,UAAA,SAAA,CAEhE,IAIJhC,KAAa,CAACW,IACP,gBAAAgC,EAAC,UAAK,UAAA,sCAAA,CAAmC,IAG7ChC,GAGLkC,IAAkBC,EAAY,MAAM;AACtC,IAAI9C,KACAmB,EAAY,EAAK;AAAA,EACrB,GACD,CAACnB,CAAS,CAAC,GAER+C,IAAiBD,EAAY,MAAM;AACrC,IAAI9C,KAAa,CAACD,KACdoB,EAAY,EAAI;AAAA,EACpB,GACD,CAACnB,GAAWD,CAAQ,CAAC,GAElBiD,IAAaF,EAAY,MAAM;AACjC,IAAI9C,KACAmB,EAAY,EAAK;AAAA,EACrB,GACD,CAACnB,CAAS,CAAC,GAERiD,IAAgB;AAAA,IAClB,aAAaJ;AAAA,IACb,YAAYE;AAAA,IACZ,QAAQC;AAAA,EAAA,GAGNE,IAA8B,kBAE9BC,IAAcC;AAAA,IAChB;AAAA,IACApD,KAAa;AAAA,IACbA,KAAa,CAACD,KAAY,SAASmD,CAA2B;AAAA,IAC9DlD,KAAaD,KAAY;AAAA,IACzBmB,KAAYgC;AAAA,IACZtC;AAAA,EAAA,GAGEyC,IAAmBD;AAAA,IACrB;AAAA,IACApD,KAAa;AAAA,EAAA;AAGjB,SACI,gBAAAsD,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,KAAA/C;AAAA,QACA,WAAW4C;AAAA,QACV,GAAInD,IAAYiD,IAAgB,EAAE,SAAST,EAAA;AAAA,QAC3C,GAAG3B;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAA8B;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,KAAK7B;AAAA,cACL,WAAWuC;AAAA,cACX,MAAK;AAAA,cACL,UAAAtD;AAAA,cACA,UAAAK;AAAA,cACA,QAAAP;AAAA,cACA,OAAM;AAAA,cACN,OAAM;AAAA,cACN,UAAUkC;AAAA,cACT,GAAGlB;AAAA,YAAA;AAAA,UAAA;AAAA,UAEP6B,EAAA;AAAA,QAAe;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnBjC;AAAA,IACAD,KACG,gBAAAmC,EAAC,OAAA,EAAI,WAAWS,EAAW,oBAAoBlD,CAAa,GACvD,UAAAT,EAAM,IAAI,CAACkC,GAAMY,MACd,gBAAAI;AAAA,MAACa;AAAA,MAAA;AAAA,QAEG,MAAA7B;AAAA,QACA,WAAWxB;AAAA,QAEX,UAAA,gBAAAwC;AAAA,UAACc;AAAA,UAAA;AAAA,YACG,WAAU;AAAA,YACV,SAAS,MAAMtB,EAAWI,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACnC;AAAA,MAPKZ,EAAK,OAAOY;AAAA,IAAA,CASxB,EAAA,CACL;AAAA,EAAA,GAER;AAER;"}
|
|
1
|
+
{"version":3,"file":"Upload.js","sources":["../../../../../lib/@ecme/components/ui/Upload/Upload.tsx"],"sourcesContent":["import { useRef, useState, useCallback, useEffect } from 'react'\nimport classNames from '../utils/classNames'\nimport cloneDeep from 'lodash/cloneDeep'\nimport FileItem from './FileItem'\nimport Button from '../Button/Button'\nimport CloseButton from '../CloseButton'\nimport Notification from '../Notification/Notification'\nimport toast from '../toast/toast'\nimport type { CommonProps } from '../@types/common'\nimport type { ReactNode, ChangeEvent, MouseEvent, Ref } from 'react'\n\nexport interface UploadProps extends CommonProps {\n accept?: string\n beforeUpload?: (file: FileList | null, fileList: File[]) => boolean | string\n disabled?: boolean\n draggable?: boolean\n fileList?: File[]\n fileListClass?: string\n fileItemClass?: string\n multiple?: boolean\n onChange?: (file: File[], fileList: File[]) => void\n onFileRemove?: (file: File[]) => void\n ref?: Ref<HTMLDivElement>\n showList?: boolean\n tip?: string | ReactNode\n uploadLimit?: number\n}\n\nconst filesToArray = (files: File[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Object.keys(files).map((key) => files[key as any])\n\nconst Upload = (props: UploadProps) => {\n const {\n accept,\n beforeUpload,\n disabled = false,\n draggable = false,\n fileList = [],\n fileListClass,\n fileItemClass,\n multiple,\n onChange,\n onFileRemove,\n ref,\n showList = true,\n tip,\n uploadLimit,\n children,\n className,\n ...rest\n } = props\n\n const fileInputField = useRef<HTMLInputElement>(null)\n const [files, setFiles] = useState(fileList)\n const [dragOver, setDragOver] = useState(false)\n\n useEffect(() => {\n if (JSON.stringify(files) !== JSON.stringify(fileList)) {\n setFiles(fileList)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(fileList)])\n\n const triggerMessage = (msg: string | ReactNode = '') => {\n toast.push(\n <Notification type=\"danger\" duration={2000}>\n {msg || 'Upload Failed!'}\n </Notification>,\n {\n placement: 'top-center',\n },\n )\n }\n\n const pushFile = (newFiles: FileList | null, file: File[]) => {\n if (newFiles) {\n for (const f of newFiles) {\n file.push(f)\n }\n }\n\n return file\n }\n\n const addNewFiles = (newFiles: FileList | null) => {\n let file = cloneDeep(files)\n if (typeof uploadLimit === 'number' && uploadLimit !== 0) {\n if (Object.keys(file).length >= uploadLimit) {\n if (uploadLimit === 1) {\n file.shift()\n file = pushFile(newFiles, file)\n }\n\n return filesToArray({ ...file })\n }\n }\n file = pushFile(newFiles, file)\n return filesToArray({ ...file })\n }\n\n const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const { files: newFiles } = e.target\n let result: boolean | string = true\n\n if (beforeUpload) {\n result = beforeUpload(newFiles, files)\n\n if (result === false) {\n triggerMessage()\n return\n }\n\n if (typeof result === 'string' && result.length > 0) {\n triggerMessage(result)\n return\n }\n }\n\n if (result) {\n const updatedFiles = addNewFiles(newFiles)\n setFiles(updatedFiles)\n onChange?.(updatedFiles, files)\n }\n }\n\n const removeFile = (fileIndex: number) => {\n const deletedFileList = files.filter((_, index) => index !== fileIndex)\n setFiles(deletedFileList)\n onFileRemove?.(deletedFileList)\n }\n\n const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {\n if (!disabled) {\n fileInputField.current?.click()\n }\n e.stopPropagation()\n }\n\n const renderChildren = () => {\n if (!draggable && !children) {\n return (\n <Button disabled={disabled} onClick={(e) => e.preventDefault()}>\n Upload\n </Button>\n )\n }\n\n if (draggable && !children) {\n return <span>Choose a file or drag and drop here</span>\n }\n\n return children\n }\n\n const handleDragLeave = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const handleDragOver = useCallback(() => {\n if (draggable && !disabled) {\n setDragOver(true)\n }\n }, [draggable, disabled])\n\n const handleDrop = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const draggableProp = {\n onDragLeave: handleDragLeave,\n onDragOver: handleDragOver,\n onDrop: handleDrop,\n }\n\n const draggableEventFeedbackClass = `border-primary`\n\n const uploadClass = classNames(\n 'upload',\n draggable && `upload-draggable`,\n draggable && !disabled && `hover:${draggableEventFeedbackClass}`,\n draggable && disabled && 'disabled',\n dragOver && draggableEventFeedbackClass,\n className,\n )\n\n const uploadInputClass = classNames(\n 'upload-input',\n draggable && `draggable`,\n )\n\n return (\n <>\n <div\n ref={ref}\n className={uploadClass}\n {...(draggable ? draggableProp : { onClick: triggerUpload })}\n {...rest}\n >\n <input\n ref={fileInputField}\n className={uploadInputClass}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n accept={accept}\n title=\"\"\n value=\"\"\n onChange={onNewFileUpload}\n {...rest}\n ></input>\n {renderChildren()}\n </div>\n {tip}\n {showList && (\n <div className={classNames('upload-file-list', fileListClass)}>\n {files.map((file, index) => (\n <FileItem\n key={file.name + index}\n file={file}\n className={fileItemClass}\n >\n <CloseButton\n className=\"upload-file-remove\"\n onClick={() => removeFile(index)}\n />\n </FileItem>\n ))}\n </div>\n )}\n </>\n )\n}\n\nexport default Upload\n"],"names":["filesToArray","files","key","Upload","props","accept","beforeUpload","disabled","draggable","fileList","fileListClass","fileItemClass","multiple","onChange","onFileRemove","ref","showList","tip","uploadLimit","children","className","rest","fileInputField","useRef","setFiles","useState","dragOver","setDragOver","useEffect","triggerMessage","msg","toast","Notification","pushFile","newFiles","file","f","addNewFiles","cloneDeep","onNewFileUpload","e","result","updatedFiles","removeFile","fileIndex","deletedFileList","_","index","triggerUpload","_a","renderChildren","jsx","Button","handleDragLeave","useCallback","handleDragOver","handleDrop","draggableProp","draggableEventFeedbackClass","uploadClass","classNames","uploadInputClass","jsxs","Fragment","FileItem","CloseButton"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCallbackRef.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useCallbackRef.ts"],"sourcesContent":["import { useRef, useEffect, useMemo } from 'react'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction useCallbackRef<T extends (...args: any[]) => any>(\n cb: T | undefined,\n): T {\n const cbRef = useRef(cb)\n\n useEffect(() => {\n cbRef.current = cb\n })\n\n return useMemo(() => ((...args) => cbRef.current?.(...args)) as T, [])\n}\n\nexport default useCallbackRef\n"],"names":["useCallbackRef","cb","cbRef","useRef","useEffect","useMemo","args","_a"],"mappings":";AAGA,SAASA,EACLC,GACC;AACD,QAAMC,IAAQC,EAAOF,CAAE;AAEvB,SAAAG,EAAU,MAAM;AACZ,IAAAF,EAAM,UAAUD;AAAA,
|
|
1
|
+
{"version":3,"file":"useCallbackRef.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useCallbackRef.ts"],"sourcesContent":["import { useRef, useEffect, useMemo } from 'react'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction useCallbackRef<T extends (...args: any[]) => any>(\n cb: T | undefined,\n): T {\n const cbRef = useRef(cb)\n\n useEffect(() => {\n cbRef.current = cb\n })\n\n return useMemo(() => ((...args) => cbRef.current?.(...args)) as T, [])\n}\n\nexport default useCallbackRef\n"],"names":["useCallbackRef","cb","cbRef","useRef","useEffect","useMemo","args","_a"],"mappings":";AAGA,SAASA,EACLC,GACC;AACD,QAAMC,IAAQC,EAAOF,CAAE;AAEvB,SAAAG,EAAU,MAAM;AACZ,IAAAF,EAAM,UAAUD;AAAA,EACpB,CAAC,GAEMI,EAAQ,MAAO,IAAIC,MAAA;;AAAS,YAAAC,IAAAL,EAAM,YAAN,gBAAAK,EAAA,KAAAL,GAAgB,GAAGI;AAAA,KAAa,EAAE;AACzE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControllableState.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useControllableState.ts"],"sourcesContent":["import { useState, useCallback, useRef, useEffect } from 'react'\nimport useCallbackRef from './useCallbackRef'\n\ntype UseControllableStateParams<T> = {\n prop?: T\n defaultProp?: T\n onChange?: (state: T) => void\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, 'prop'>) {\n const uncontrolledState = useState(defaultProp)\n const [value] = uncontrolledState\n const prevValueRef = useRef(value)\n const handleChange = useCallbackRef(onChange)\n\n useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T)\n prevValueRef.current = value\n }\n }, [value, prevValueRef, handleChange])\n\n return uncontrolledState\n}\n\nfunction useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {\n // empty callback\n },\n}: UseControllableStateParams<T>) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange,\n })\n const isControlled = prop !== undefined\n const value = isControlled ? prop : uncontrolledProp\n const handleChange = useCallbackRef(onChange)\n\n const setValue: React.Dispatch<React.SetStateAction<T | undefined>> =\n useCallback(\n (nextValue) => {\n const setter = nextValue as (prevState?: T) => T\n if (isControlled) {\n const value =\n typeof nextValue === 'function'\n ? setter(prop)\n : nextValue\n if (value !== prop) {\n handleChange(value as T)\n }\n } else {\n setUncontrolledProp(nextValue)\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange],\n )\n\n return [value, setValue] as const\n}\n\nexport default useControllableState\n"],"names":["useUncontrolledState","defaultProp","onChange","uncontrolledState","useState","value","prevValueRef","useRef","handleChange","useCallbackRef","useEffect","useControllableState","prop","uncontrolledProp","setUncontrolledProp","isControlled","setValue","useCallback","nextValue","setter"],"mappings":";;AASA,SAASA,EAAwB;AAAA,EAC7B,aAAAC;AAAA,EACA,UAAAC;AACJ,GAAgD;AAC5C,QAAMC,IAAoBC,EAASH,CAAW,GACxC,CAACI,CAAK,IAAIF,GACVG,IAAeC,EAAOF,CAAK,GAC3BG,IAAeC,EAAeP,CAAQ;AAE5C,SAAAQ,EAAU,MAAM;AACZ,IAAIJ,EAAa,YAAYD,MACzBG,EAAaH,CAAU,GACvBC,EAAa,UAAUD;AAAA,
|
|
1
|
+
{"version":3,"file":"useControllableState.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useControllableState.ts"],"sourcesContent":["import { useState, useCallback, useRef, useEffect } from 'react'\nimport useCallbackRef from './useCallbackRef'\n\ntype UseControllableStateParams<T> = {\n prop?: T\n defaultProp?: T\n onChange?: (state: T) => void\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, 'prop'>) {\n const uncontrolledState = useState(defaultProp)\n const [value] = uncontrolledState\n const prevValueRef = useRef(value)\n const handleChange = useCallbackRef(onChange)\n\n useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T)\n prevValueRef.current = value\n }\n }, [value, prevValueRef, handleChange])\n\n return uncontrolledState\n}\n\nfunction useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {\n // empty callback\n },\n}: UseControllableStateParams<T>) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange,\n })\n const isControlled = prop !== undefined\n const value = isControlled ? prop : uncontrolledProp\n const handleChange = useCallbackRef(onChange)\n\n const setValue: React.Dispatch<React.SetStateAction<T | undefined>> =\n useCallback(\n (nextValue) => {\n const setter = nextValue as (prevState?: T) => T\n if (isControlled) {\n const value =\n typeof nextValue === 'function'\n ? setter(prop)\n : nextValue\n if (value !== prop) {\n handleChange(value as T)\n }\n } else {\n setUncontrolledProp(nextValue)\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange],\n )\n\n return [value, setValue] as const\n}\n\nexport default useControllableState\n"],"names":["useUncontrolledState","defaultProp","onChange","uncontrolledState","useState","value","prevValueRef","useRef","handleChange","useCallbackRef","useEffect","useControllableState","prop","uncontrolledProp","setUncontrolledProp","isControlled","setValue","useCallback","nextValue","setter"],"mappings":";;AASA,SAASA,EAAwB;AAAA,EAC7B,aAAAC;AAAA,EACA,UAAAC;AACJ,GAAgD;AAC5C,QAAMC,IAAoBC,EAASH,CAAW,GACxC,CAACI,CAAK,IAAIF,GACVG,IAAeC,EAAOF,CAAK,GAC3BG,IAAeC,EAAeP,CAAQ;AAE5C,SAAAQ,EAAU,MAAM;AACZ,IAAIJ,EAAa,YAAYD,MACzBG,EAAaH,CAAU,GACvBC,EAAa,UAAUD;AAAA,EAE/B,GAAG,CAACA,GAAOC,GAAcE,CAAY,CAAC,GAE/BL;AACX;AAEA,SAASQ,EAAwB;AAAA,EAC7B,MAAAC;AAAA,EACA,aAAAX;AAAA,EACA,UAAAC,IAAW,MAAM;AAAA,EAEjB;AACJ,GAAkC;AAC9B,QAAM,CAACW,GAAkBC,CAAmB,IAAId,EAAqB;AAAA,IACjE,aAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,CACH,GACKa,IAAeH,MAAS,QACxBP,IAAQU,IAAeH,IAAOC,GAC9BL,IAAeC,EAAeP,CAAQ,GAEtCc,IACFC;AAAA,IACI,CAACC,MAAc;AACX,YAAMC,IAASD;AACf,UAAIH,GAAc;AACd,cAAMV,IACF,OAAOa,KAAc,aACfC,EAAOP,CAAI,IACXM;AACV,QAAIb,MAAUO,KACVJ,EAAaH,CAAU;AAAA,MAE/B;AACI,QAAAS,EAAoBI,CAAS;AAAA,IAErC;AAAA,IACA,CAACH,GAAcH,GAAME,GAAqBN,CAAY;AAAA,EAAA;AAG9D,SAAO,CAACH,GAAOW,CAAQ;AAC3B;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDidUpdate.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useDidUpdate.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\n\nexport default function useDidUpdate(\n callback: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dependencies?: any[],\n) {\n const mounted = useRef(false)\n\n useEffect(\n () => () => {\n mounted.current = false\n },\n [],\n )\n\n useEffect(() => {\n if (mounted.current) {\n return callback()\n }\n\n mounted.current = true\n return undefined\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies)\n}\n"],"names":["useDidUpdate","callback","dependencies","mounted","useRef","useEffect"],"mappings":";AAEA,SAAwBA,EACpBC,GAEAC,GACF;AACE,QAAMC,IAAUC,EAAO,EAAK;AAE5B,EAAAC;AAAA,IACI,MAAM,MAAM;AACR,MAAAF,EAAQ,UAAU;AAAA,
|
|
1
|
+
{"version":3,"file":"useDidUpdate.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useDidUpdate.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\n\nexport default function useDidUpdate(\n callback: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dependencies?: any[],\n) {\n const mounted = useRef(false)\n\n useEffect(\n () => () => {\n mounted.current = false\n },\n [],\n )\n\n useEffect(() => {\n if (mounted.current) {\n return callback()\n }\n\n mounted.current = true\n return undefined\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies)\n}\n"],"names":["useDidUpdate","callback","dependencies","mounted","useRef","useEffect"],"mappings":";AAEA,SAAwBA,EACpBC,GAEAC,GACF;AACE,QAAMC,IAAUC,EAAO,EAAK;AAE5B,EAAAC;AAAA,IACI,MAAM,MAAM;AACR,MAAAF,EAAQ,UAAU;AAAA,IACtB;AAAA,IACA,CAAA;AAAA,EAAC,GAGLE,EAAU,MAAM;AACZ,QAAIF,EAAQ;AACR,aAAOF,EAAA;AAGX,IAAAE,EAAQ,UAAU;AAAA,EAGtB,GAAGD,CAAY;AACnB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMergeRef.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useMergeRef.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dispatch, SetStateAction, ForwardedRef } from 'react'\n\ntype Ref<T> = Dispatch<SetStateAction<T>> | ForwardedRef<T>\n\nconst useMergeRef =\n <T = any>(...refs: Ref<T>[]) =>\n (element: T | null) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(element as SetStateAction<T> & (T | null))\n } else if (ref && typeof ref === 'object') {\n ref.current = element\n }\n })\n }\n\nexport default useMergeRef\n"],"names":["useMergeRef","refs","element","ref"],"mappings":"AAKA,MAAMA,IACF,IAAaC,MACb,CAACC,MAAsB;AACnB,EAAAD,EAAK,QAAQ,CAACE,MAAQ;AAClB,IAAI,OAAOA,KAAQ,aACfA,EAAID,CAAyC,IACtCC,KAAO,OAAOA,KAAQ,aAC7BA,EAAI,UAAUD;AAAA,
|
|
1
|
+
{"version":3,"file":"useMergeRef.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useMergeRef.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dispatch, SetStateAction, ForwardedRef } from 'react'\n\ntype Ref<T> = Dispatch<SetStateAction<T>> | ForwardedRef<T>\n\nconst useMergeRef =\n <T = any>(...refs: Ref<T>[]) =>\n (element: T | null) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(element as SetStateAction<T> & (T | null))\n } else if (ref && typeof ref === 'object') {\n ref.current = element\n }\n })\n }\n\nexport default useMergeRef\n"],"names":["useMergeRef","refs","element","ref"],"mappings":"AAKA,MAAMA,IACF,IAAaC,MACb,CAACC,MAAsB;AACnB,EAAAD,EAAK,QAAQ,CAACE,MAAQ;AAClB,IAAI,OAAOA,KAAQ,aACfA,EAAID,CAAyC,IACtCC,KAAO,OAAOA,KAAQ,aAC7BA,EAAI,UAAUD;AAAA,EAEtB,CAAC;AACL;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRootClose.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useRootClose.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useCallback, useRef } from 'react'\nimport type { RefObject, ReactEventHandler } from 'react'\n\ntype Options = {\n disabled: boolean\n triggerTarget: RefObject<HTMLElement | null>\n overlayTarget: RefObject<HTMLElement | null>\n listenEscape?: boolean\n}\n\ninterface CustomEventListener<T = any> {\n (evt: T): void\n}\n\nconst domContains = (context: Element, node: (Node & ParentNode) | null) => {\n if (context.contains) {\n return context.contains(node)\n } else if (context.compareDocumentPosition) {\n return (\n context === node ||\n !!(context.compareDocumentPosition(node as Node) & 16)\n )\n }\n if (node) {\n do {\n if (node === context) {\n return true\n }\n } while ((node = node.parentNode))\n }\n return false\n}\n\nfunction isLeftClickEvent(e: MouseEvent) {\n return e?.button === 0\n}\n\nfunction isModifiedEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e?.shiftKey)\n}\n\nfunction onEventListener<K extends keyof DocumentEventMap>(\n target: Element | Window | Document | EventTarget,\n eventType: K,\n listener: EventListenerOrEventListenerObject | CustomEventListener,\n options: boolean | AddEventListenerOptions = false,\n): { off: () => void } {\n target.addEventListener(eventType, listener, options)\n\n return {\n off() {\n target.removeEventListener(eventType, listener, options)\n },\n }\n}\n\nfunction useRootClose(\n onRootClose: ReactEventHandler | undefined,\n { disabled, triggerTarget, overlayTarget }: Options,\n) {\n const handleDocumentMouseDown = useCallback(\n (event: any) => {\n const triggerElement = triggerTarget?.current\n const overlayElement = overlayTarget?.current\n\n if (triggerElement && domContains(triggerElement, event.target)) {\n return\n }\n\n if (overlayElement && domContains(overlayElement, event.target)) {\n return\n }\n\n if (isModifiedEvent(event) || !isLeftClickEvent(event)) {\n return\n }\n\n onRootClose?.(event)\n },\n [onRootClose, triggerTarget, overlayTarget],\n )\n\n const handleDocumentMouseDownRef = useRef(handleDocumentMouseDown)\n\n useEffect(() => {\n handleDocumentMouseDownRef.current = handleDocumentMouseDown\n }, [handleDocumentMouseDown])\n\n useEffect(() => {\n const currentTarget = triggerTarget?.current\n\n if (disabled || !currentTarget) return\n\n const doc = () =>\n (currentTarget && currentTarget.ownerDocument) || document\n const onDocumentMouseDownListener = onEventListener(\n doc(),\n 'mousedown',\n (event: any) => handleDocumentMouseDownRef.current(event),\n true,\n )\n\n return () => {\n onDocumentMouseDownListener?.off()\n }\n }, [triggerTarget, disabled])\n}\n\nexport default useRootClose\n"],"names":["domContains","context","node","isLeftClickEvent","e","isModifiedEvent","onEventListener","target","eventType","listener","options","useRootClose","onRootClose","disabled","triggerTarget","overlayTarget","handleDocumentMouseDown","useCallback","event","triggerElement","overlayElement","handleDocumentMouseDownRef","useRef","useEffect","currentTarget","onDocumentMouseDownListener"],"mappings":";AAeA,MAAMA,IAAc,CAACC,GAAkBC,MAAqC;AACxE,MAAID,EAAQ;AACR,WAAOA,EAAQ,SAASC,CAAI;AAChC,MAAWD,EAAQ;AACf,WACIA,MAAYC,KACZ,CAAC,EAAED,EAAQ,wBAAwBC,CAAY,IAAI;AAG3D,MAAIA;AACA;AACI,UAAIA,MAASD;AACT,eAAO;AAAA,WAELC,IAAOA,EAAK;AAE1B,SAAO;AACX;AAEA,SAASC,EAAiBC,GAAe;AACrC,UAAOA,KAAA,gBAAAA,EAAG,YAAW;AACzB;AAEA,SAASC,EAAgBD,GAAe;AACpC,SAAO,CAAC,EAAEA,EAAE,WAAWA,EAAE,UAAUA,EAAE,WAAWA,KAAA,QAAAA,EAAG;AACvD;AAEA,SAASE,EACLC,GACAC,GACAC,GACAC,IAA6C,IAC1B;AACnB,SAAAH,EAAO,iBAAiBC,GAAWC,GAAUC,CAAO,GAE7C;AAAA,IACH,MAAM;AACF,MAAAH,EAAO,oBAAoBC,GAAWC,GAAUC,CAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"useRootClose.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useRootClose.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useCallback, useRef } from 'react'\nimport type { RefObject, ReactEventHandler } from 'react'\n\ntype Options = {\n disabled: boolean\n triggerTarget: RefObject<HTMLElement | null>\n overlayTarget: RefObject<HTMLElement | null>\n listenEscape?: boolean\n}\n\ninterface CustomEventListener<T = any> {\n (evt: T): void\n}\n\nconst domContains = (context: Element, node: (Node & ParentNode) | null) => {\n if (context.contains) {\n return context.contains(node)\n } else if (context.compareDocumentPosition) {\n return (\n context === node ||\n !!(context.compareDocumentPosition(node as Node) & 16)\n )\n }\n if (node) {\n do {\n if (node === context) {\n return true\n }\n } while ((node = node.parentNode))\n }\n return false\n}\n\nfunction isLeftClickEvent(e: MouseEvent) {\n return e?.button === 0\n}\n\nfunction isModifiedEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e?.shiftKey)\n}\n\nfunction onEventListener<K extends keyof DocumentEventMap>(\n target: Element | Window | Document | EventTarget,\n eventType: K,\n listener: EventListenerOrEventListenerObject | CustomEventListener,\n options: boolean | AddEventListenerOptions = false,\n): { off: () => void } {\n target.addEventListener(eventType, listener, options)\n\n return {\n off() {\n target.removeEventListener(eventType, listener, options)\n },\n }\n}\n\nfunction useRootClose(\n onRootClose: ReactEventHandler | undefined,\n { disabled, triggerTarget, overlayTarget }: Options,\n) {\n const handleDocumentMouseDown = useCallback(\n (event: any) => {\n const triggerElement = triggerTarget?.current\n const overlayElement = overlayTarget?.current\n\n if (triggerElement && domContains(triggerElement, event.target)) {\n return\n }\n\n if (overlayElement && domContains(overlayElement, event.target)) {\n return\n }\n\n if (isModifiedEvent(event) || !isLeftClickEvent(event)) {\n return\n }\n\n onRootClose?.(event)\n },\n [onRootClose, triggerTarget, overlayTarget],\n )\n\n const handleDocumentMouseDownRef = useRef(handleDocumentMouseDown)\n\n useEffect(() => {\n handleDocumentMouseDownRef.current = handleDocumentMouseDown\n }, [handleDocumentMouseDown])\n\n useEffect(() => {\n const currentTarget = triggerTarget?.current\n\n if (disabled || !currentTarget) return\n\n const doc = () =>\n (currentTarget && currentTarget.ownerDocument) || document\n const onDocumentMouseDownListener = onEventListener(\n doc(),\n 'mousedown',\n (event: any) => handleDocumentMouseDownRef.current(event),\n true,\n )\n\n return () => {\n onDocumentMouseDownListener?.off()\n }\n }, [triggerTarget, disabled])\n}\n\nexport default useRootClose\n"],"names":["domContains","context","node","isLeftClickEvent","e","isModifiedEvent","onEventListener","target","eventType","listener","options","useRootClose","onRootClose","disabled","triggerTarget","overlayTarget","handleDocumentMouseDown","useCallback","event","triggerElement","overlayElement","handleDocumentMouseDownRef","useRef","useEffect","currentTarget","onDocumentMouseDownListener"],"mappings":";AAeA,MAAMA,IAAc,CAACC,GAAkBC,MAAqC;AACxE,MAAID,EAAQ;AACR,WAAOA,EAAQ,SAASC,CAAI;AAChC,MAAWD,EAAQ;AACf,WACIA,MAAYC,KACZ,CAAC,EAAED,EAAQ,wBAAwBC,CAAY,IAAI;AAG3D,MAAIA;AACA;AACI,UAAIA,MAASD;AACT,eAAO;AAAA,WAELC,IAAOA,EAAK;AAE1B,SAAO;AACX;AAEA,SAASC,EAAiBC,GAAe;AACrC,UAAOA,KAAA,gBAAAA,EAAG,YAAW;AACzB;AAEA,SAASC,EAAgBD,GAAe;AACpC,SAAO,CAAC,EAAEA,EAAE,WAAWA,EAAE,UAAUA,EAAE,WAAWA,KAAA,QAAAA,EAAG;AACvD;AAEA,SAASE,EACLC,GACAC,GACAC,GACAC,IAA6C,IAC1B;AACnB,SAAAH,EAAO,iBAAiBC,GAAWC,GAAUC,CAAO,GAE7C;AAAA,IACH,MAAM;AACF,MAAAH,EAAO,oBAAoBC,GAAWC,GAAUC,CAAO;AAAA,IAC3D;AAAA,EAAA;AAER;AAEA,SAASC,EACLC,GACA,EAAE,UAAAC,GAAU,eAAAC,GAAe,eAAAC,KAC7B;AACE,QAAMC,IAA0BC;AAAA,IAC5B,CAACC,MAAe;AACZ,YAAMC,IAAiBL,KAAA,gBAAAA,EAAe,SAChCM,IAAiBL,KAAA,gBAAAA,EAAe;AAEtC,MAAII,KAAkBnB,EAAYmB,GAAgBD,EAAM,MAAM,KAI1DE,KAAkBpB,EAAYoB,GAAgBF,EAAM,MAAM,KAI1Db,EAAgBa,CAAK,KAAK,CAACf,EAAiBe,CAAK,KAIrDN,KAAA,QAAAA,EAAcM;AAAA,IAClB;AAAA,IACA,CAACN,GAAaE,GAAeC,CAAa;AAAA,EAAA,GAGxCM,IAA6BC,EAAON,CAAuB;AAEjE,EAAAO,EAAU,MAAM;AACZ,IAAAF,EAA2B,UAAUL;AAAA,EACzC,GAAG,CAACA,CAAuB,CAAC,GAE5BO,EAAU,MAAM;AACZ,UAAMC,IAAgBV,KAAA,gBAAAA,EAAe;AAErC,QAAID,KAAY,CAACW,EAAe;AAIhC,UAAMC,IAA8BnB;AAAA,MAD/BkB,KAAiBA,EAAc,iBAAkB;AAAA,MAGlD;AAAA,MACA,CAACN,MAAeG,EAA2B,QAAQH,CAAK;AAAA,MACxD;AAAA,IAAA;AAGJ,WAAO,MAAM;AACT,MAAAO,KAAA,QAAAA,EAA6B;AAAA,IACjC;AAAA,EACJ,GAAG,CAACX,GAAeD,CAAQ,CAAC;AAChC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTimeout.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useTimeout.ts"],"sourcesContent":["import { useEffect, useRef, useCallback } from 'react'\n\nexport type UseTimeoutReturn = {\n clear: () => void\n reset: () => void\n}\n\nfunction useTimeout(\n fn: (() => void) | undefined,\n ms = 0,\n enabled = true,\n): UseTimeoutReturn {\n const timeout = useRef<ReturnType<typeof setTimeout>>(undefined)\n const callback = useRef(fn)\n\n const clear = useCallback(() => {\n timeout.current && clearTimeout(timeout.current)\n }, [])\n\n const set = useCallback(() => {\n timeout.current && clearTimeout(timeout.current)\n if (enabled) {\n timeout.current = setTimeout(() => {\n callback.current?.()\n }, ms)\n }\n }, [ms, enabled])\n\n useEffect(() => {\n callback.current = fn\n }, [fn])\n\n useEffect(() => {\n set()\n return clear\n }, [ms, enabled, set, clear])\n\n return { clear, reset: set }\n}\n\nexport default useTimeout\n"],"names":["useTimeout","fn","ms","enabled","timeout","useRef","callback","clear","useCallback","set","_a","useEffect"],"mappings":";AAOA,SAASA,EACLC,GACAC,IAAK,GACLC,IAAU,IACM;AAChB,QAAMC,IAAUC,EAAsC,MAAS,GACzDC,IAAWD,EAAOJ,CAAE,GAEpBM,IAAQC,EAAY,MAAM;AAC5B,IAAAJ,EAAQ,WAAW,aAAaA,EAAQ,OAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"useTimeout.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useTimeout.ts"],"sourcesContent":["import { useEffect, useRef, useCallback } from 'react'\n\nexport type UseTimeoutReturn = {\n clear: () => void\n reset: () => void\n}\n\nfunction useTimeout(\n fn: (() => void) | undefined,\n ms = 0,\n enabled = true,\n): UseTimeoutReturn {\n const timeout = useRef<ReturnType<typeof setTimeout>>(undefined)\n const callback = useRef(fn)\n\n const clear = useCallback(() => {\n timeout.current && clearTimeout(timeout.current)\n }, [])\n\n const set = useCallback(() => {\n timeout.current && clearTimeout(timeout.current)\n if (enabled) {\n timeout.current = setTimeout(() => {\n callback.current?.()\n }, ms)\n }\n }, [ms, enabled])\n\n useEffect(() => {\n callback.current = fn\n }, [fn])\n\n useEffect(() => {\n set()\n return clear\n }, [ms, enabled, set, clear])\n\n return { clear, reset: set }\n}\n\nexport default useTimeout\n"],"names":["useTimeout","fn","ms","enabled","timeout","useRef","callback","clear","useCallback","set","_a","useEffect"],"mappings":";AAOA,SAASA,EACLC,GACAC,IAAK,GACLC,IAAU,IACM;AAChB,QAAMC,IAAUC,EAAsC,MAAS,GACzDC,IAAWD,EAAOJ,CAAE,GAEpBM,IAAQC,EAAY,MAAM;AAC5B,IAAAJ,EAAQ,WAAW,aAAaA,EAAQ,OAAO;AAAA,EACnD,GAAG,CAAA,CAAE,GAECK,IAAMD,EAAY,MAAM;AAC1B,IAAAJ,EAAQ,WAAW,aAAaA,EAAQ,OAAO,GAC3CD,MACAC,EAAQ,UAAU,WAAW,MAAM;;AAC/B,OAAAM,IAAAJ,EAAS,YAAT,QAAAI,EAAA,KAAAJ;AAAA,IACJ,GAAGJ,CAAE;AAAA,EAEb,GAAG,CAACA,GAAIC,CAAO,CAAC;AAEhB,SAAAQ,EAAU,MAAM;AACZ,IAAAL,EAAS,UAAUL;AAAA,EACvB,GAAG,CAACA,CAAE,CAAC,GAEPU,EAAU,OACNF,EAAA,GACOF,IACR,CAACL,GAAIC,GAASM,GAAKF,CAAK,CAAC,GAErB,EAAE,OAAAA,GAAO,OAAOE,EAAA;AAC3B;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWindowSize.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useWindowSize.ts"],"sourcesContent":["import { useState, useEffect } from 'react'\n\nexport default function useWindowSize() {\n const [windowSize, setWindowSize] = useState<{\n width?: number\n height?: number\n }>({\n width: undefined,\n height: undefined,\n })\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n window.addEventListener('resize', handleResize)\n handleResize()\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowSize\n}\n"],"names":["useWindowSize","windowSize","setWindowSize","useState","useEffect","handleResize"],"mappings":";AAEA,SAAwBA,IAAgB;AACpC,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAGjC;AAAA,IACC,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA,CACX;AACD,SAAAC,EAAU,MAAM;AACZ,aAASC,IAAe;AACpB,MAAAH,EAAc;AAAA,QACV,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MAAA,CAClB;AAAA,
|
|
1
|
+
{"version":3,"file":"useWindowSize.js","sources":["../../../../../lib/@ecme/components/ui/hooks/useWindowSize.ts"],"sourcesContent":["import { useState, useEffect } from 'react'\n\nexport default function useWindowSize() {\n const [windowSize, setWindowSize] = useState<{\n width?: number\n height?: number\n }>({\n width: undefined,\n height: undefined,\n })\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n window.addEventListener('resize', handleResize)\n handleResize()\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowSize\n}\n"],"names":["useWindowSize","windowSize","setWindowSize","useState","useEffect","handleResize"],"mappings":";AAEA,SAAwBA,IAAgB;AACpC,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAGjC;AAAA,IACC,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA,CACX;AACD,SAAAC,EAAU,MAAM;AACZ,aAASC,IAAe;AACpB,MAAAH,EAAc;AAAA,QACV,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MAAA,CAClB;AAAA,IACL;AACA,kBAAO,iBAAiB,UAAUG,CAAY,GAC9CA,EAAA,GACO,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAClE,GAAG,CAAA,CAAE,GAEEJ;AACX;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastWrapper.js","sources":["../../../../../lib/@ecme/components/ui/toast/ToastWrapper.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n useState,\r\n useImperativeHandle,\r\n useRef,\r\n useCallback,\r\n cloneElement,\r\n createRef,\r\n} from 'react'\r\nimport classNames from 'classnames'\r\nimport chainedFunction from '../utils/chainedFunction'\r\nimport { motion } from 'framer-motion'\r\nimport { getPlacementTransition } from './transition'\r\nimport { PLACEMENT } from '../utils/constants'\r\nimport { createRoot } from 'react-dom/client'\r\nimport { NotificationPlacement } from '../@types/placement'\r\nimport type { DetailedReactHTMLElement, ReactNode, Ref } from 'react'\r\n\r\ntype NodeProps = DetailedReactHTMLElement<any, HTMLDivElement>\r\n\r\ntype Message = {\r\n key: string\r\n visible: boolean\r\n node: NodeProps\r\n}\r\n\r\nconst useMessages = (msgKey: string) => {\r\n const [messages, setMessages] = useState<Message[]>([])\r\n\r\n const getKey = useCallback(\r\n (key: string) => {\r\n if (typeof key === 'undefined' && messages.length) {\r\n key = messages[messages.length - 1].key\r\n }\r\n return key\r\n },\r\n [messages],\r\n )\r\n\r\n const push = useCallback(\r\n (message: NodeProps) => {\r\n const key = msgKey || '_' + Math.random().toString(36).substr(2, 12)\r\n setMessages([...messages, { key, visible: true, node: message }])\r\n return key\r\n },\r\n [messages, msgKey],\r\n )\r\n\r\n const removeAll = useCallback(() => {\r\n setMessages(messages.map((msg) => ({ ...msg, visible: false })))\r\n setTimeout(() => {\r\n setMessages([])\r\n }, 50)\r\n }, [messages])\r\n\r\n const remove = useCallback(\r\n (key: string) => {\r\n setMessages(\r\n messages.map((elm) => {\r\n if (elm.key === getKey(key)) {\r\n elm.visible = false\r\n }\r\n return elm\r\n }),\r\n )\r\n\r\n setTimeout(() => {\r\n setMessages(messages.filter((msg) => msg.visible))\r\n }, 50)\r\n },\r\n [messages, getKey],\r\n )\r\n\r\n return { messages, push, removeAll, remove }\r\n}\r\n\r\nexport interface ToastProps {\r\n transitionType?: 'scale' | 'fade'\r\n placement?: NotificationPlacement | 'top-full' | 'bottom-full'\r\n offsetX?: string | number\r\n offsetY?: string | number\r\n block?: boolean\r\n}\r\n\r\nexport interface ToastWrapperInstance {\r\n root: HTMLElement | null\r\n push: (message: NodeProps) => string\r\n remove: (key: string) => void\r\n removeAll: () => void\r\n}\r\n\r\nexport interface ToastWrapperProps extends ToastProps {\r\n messageKey: string\r\n callback: (ref: HTMLDivElement | null) => void\r\n ref: Ref<ToastWrapperInstance>\r\n wrapper?: HTMLElement | (() => HTMLElement)\r\n}\r\n\r\nconst ToastWrapper = (props: ToastWrapperProps) => {\r\n const rootRef = useRef<HTMLDivElement | null>(null)\r\n\r\n const {\r\n transitionType = 'scale',\r\n placement = PLACEMENT.TOP_END as NotificationPlacement,\r\n offsetX = 30,\r\n offsetY = 30,\r\n messageKey,\r\n block = false,\r\n ref,\r\n callback,\r\n ...rest\r\n } = props\r\n\r\n const { push, removeAll, remove, messages } = useMessages(messageKey)\r\n\r\n useImperativeHandle(ref, () => {\r\n return { root: rootRef.current, push, removeAll, remove }\r\n })\r\n\r\n const placementTransition = getPlacementTransition({\r\n offsetX,\r\n offsetY,\r\n placement: placement as NotificationPlacement,\r\n transitionType,\r\n })\r\n\r\n const toastProps = {\r\n triggerByToast: true,\r\n ...rest,\r\n }\r\n\r\n const messageElements = messages.map((item) => {\r\n return (\r\n <motion.div\r\n key={item.key}\r\n className={'toast-wrapper'}\r\n initial={placementTransition.variants.initial}\r\n variants={placementTransition.variants}\r\n animate={item.visible ? 'animate' : 'exit'}\r\n transition={{ duration: 0.15, type: 'tween' }}\r\n >\r\n {cloneElement(\r\n item.node as DetailedReactHTMLElement<any, HTMLElement>,\r\n {\r\n ...toastProps,\r\n ref,\r\n onClose: chainedFunction(\r\n item.node?.props?.onClose,\r\n () => remove(item.key),\r\n ),\r\n className: classNames(item.node?.props?.className),\r\n },\r\n )}\r\n </motion.div>\r\n )\r\n })\r\n\r\n return (\r\n <div\r\n style={placementTransition.default}\r\n {...rest}\r\n ref={(thisRef) => {\r\n rootRef.current = thisRef\r\n callback?.(thisRef)\r\n }}\r\n className={classNames('toast', block && 'w-full')}\r\n >\r\n {messageElements}\r\n </div>\r\n )\r\n}\r\n\r\nToastWrapper.getInstance = (props: ToastWrapperProps) => {\r\n const { wrapper, ...rest } = props\r\n\r\n const wrapperRef = createRef<ToastWrapperInstance>()\r\n\r\n const wrapperElement =\r\n (typeof wrapper === 'function' ? wrapper() : wrapper) || document.body\r\n\r\n return new Promise((resolve) => {\r\n const renderCallback = () => {\r\n resolve([wrapperRef, unmount])\r\n }\r\n\r\n function renderElement(element: ReactNode) {\r\n const mountElement = document.createElement('div')\r\n\r\n wrapperElement.appendChild(mountElement)\r\n\r\n const root = createRoot(mountElement)\r\n\r\n root.render(element)\r\n\r\n return root\r\n }\r\n\r\n const { unmount } = renderElement(\r\n <ToastWrapper\r\n {...rest}\r\n ref={wrapperRef}\r\n callback={renderCallback}\r\n />,\r\n )\r\n })\r\n}\r\n\r\nexport default ToastWrapper\r\n"],"names":["useMessages","msgKey","messages","setMessages","useState","getKey","useCallback","key","push","message","removeAll","msg","remove","elm","ToastWrapper","props","rootRef","useRef","transitionType","placement","PLACEMENT","offsetX","offsetY","messageKey","block","ref","callback","rest","useImperativeHandle","placementTransition","getPlacementTransition","toastProps","messageElements","item","jsx","motion","cloneElement","chainedFunction","_b","_a","classNames","_d","_c","thisRef","wrapper","wrapperRef","createRef","wrapperElement","resolve","renderCallback","unmount","renderElement","element","mountElement","root","createRoot"],"mappings":";;;;;;;;AA0BA,MAAMA,IAAc,CAACC,MAAmB;AACpC,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAoB,CAAA,CAAE,GAEhDC,IAASC;AAAA,IACX,CAACC,OACO,OAAOA,IAAQ,OAAeL,EAAS,WACvCK,IAAML,EAASA,EAAS,SAAS,CAAC,EAAE,MAEjCK;AAAA,IAEX,CAACL,CAAQ;AAAA,EAAA,GAGPM,IAAOF;AAAA,IACT,CAACG,MAAuB;AACpB,YAAMF,IAAMN,KAAU,MAAM,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,OAAO,GAAG,EAAE;AACnE,aAAAE,EAAY,CAAC,GAAGD,GAAU,EAAE,KAAAK,GAAK,SAAS,IAAM,MAAME,EAAA,CAAS,CAAC,GACzDF;AAAA,IAAA;AAAA,IAEX,CAACL,GAAUD,CAAM;AAAA,EAAA,GAGfS,IAAYJ,EAAY,MAAM;AAChC,IAAAH,EAAYD,EAAS,IAAI,CAACS,OAAS,EAAE,GAAGA,GAAK,SAAS,GAAA,EAAQ,CAAC,GAC/D,WAAW,MAAM;AACb,MAAAR,EAAY,CAAA,CAAE;AAAA,IAAA,GACf,EAAE;AAAA,EAAA,GACN,CAACD,CAAQ,CAAC,GAEPU,IAASN;AAAA,IACX,CAACC,MAAgB;AACb,MAAAJ;AAAA,QACID,EAAS,IAAI,CAACW,OACNA,EAAI,QAAQR,EAAOE,CAAG,MACtBM,EAAI,UAAU,KAEXA,EACV;AAAA,MAAA,GAGL,WAAW,MAAM;AACb,QAAAV,EAAYD,EAAS,OAAO,CAACS,MAAQA,EAAI,OAAO,CAAC;AAAA,MAAA,GAClD,EAAE;AAAA,IAAA;AAAA,IAET,CAACT,GAAUG,CAAM;AAAA,EAAA;AAGrB,SAAO,EAAE,UAAAH,GAAU,MAAAM,GAAM,WAAAE,GAAW,QAAAE,EAAA;AACxC,GAwBME,IAAe,CAACC,MAA6B;AAC/C,QAAMC,IAAUC,EAA8B,IAAI,GAE5C;AAAA,IACF,gBAAAC,IAAiB;AAAA,IACjB,WAAAC,IAAYC,EAAU;AAAA,IACtB,SAAAC,IAAU;AAAA,IACV,SAAAC,IAAU;AAAA,IACV,YAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,KAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHZ,GAEE,EAAE,MAAAP,GAAM,WAAAE,GAAW,QAAAE,GAAQ,UAAAV,EAAA,IAAaF,EAAYuB,CAAU;AAEpE,EAAAK,EAAoBH,GAAK,OACd,EAAE,MAAMT,EAAQ,SAAS,MAAAR,GAAM,WAAAE,GAAW,QAAAE,EAAA,EACpD;AAED,QAAMiB,IAAsBC,EAAuB;AAAA,IAC/C,SAAAT;AAAA,IACA,SAAAC;AAAA,IACA,WAAAH;AAAA,IACA,gBAAAD;AAAA,EAAA,CACH,GAEKa,IAAa;AAAA,IACf,gBAAgB;AAAA,IAChB,GAAGJ;AAAA,EAAA,GAGDK,IAAkB9B,EAAS,IAAI,CAAC+B,MAAS;;AAC3C,WACI,gBAAAC;AAAA,MAACC,EAAO;AAAA,MAAP;AAAA,QAEG,WAAW;AAAA,QACX,SAASN,EAAoB,SAAS;AAAA,QACtC,UAAUA,EAAoB;AAAA,QAC9B,SAASI,EAAK,UAAU,YAAY;AAAA,QACpC,YAAY,EAAE,UAAU,MAAM,MAAM,QAAA;AAAA,QAEnC,UAAAG;AAAA,UACGH,EAAK;AAAA,UACL;AAAA,YACI,GAAGF;AAAA,YACH,KAAAN;AAAA,YACA,SAASY;AAAA,eACLC,KAAAC,IAAAN,EAAK,SAAL,gBAAAM,EAAW,UAAX,gBAAAD,EAAkB;AAAA,cAClB,MAAM1B,EAAOqB,EAAK,GAAG;AAAA,YAAA;AAAA,YAEzB,WAAWO,GAAWC,KAAAC,IAAAT,EAAK,SAAL,gBAAAS,EAAW,UAAX,gBAAAD,EAAkB,SAAS;AAAA,UAAA;AAAA,QACrD;AAAA,MACJ;AAAA,MAlBKR,EAAK;AAAA,IAAA;AAAA,EAmBd,CAEP;AAED,SACI,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAOL,EAAoB;AAAA,MAC1B,GAAGF;AAAA,MACJ,KAAK,CAACgB,MAAY;AACd,QAAA3B,EAAQ,UAAU2B,GAClBjB,KAAA,QAAAA,EAAWiB;AAAA,MAAO;AAAA,MAEtB,WAAWH,EAAW,SAAShB,KAAS,QAAQ;AAAA,MAE/C,UAAAQ;AAAA,IAAA;AAAA,EAAA;AAGb;AAEAlB,EAAa,cAAc,CAACC,MAA6B;AACrD,QAAM,EAAE,SAAA6B,GAAS,GAAGjB,EAAA,IAASZ,GAEvB8B,IAAaC,EAAA,GAEbC,KACD,OAAOH,KAAY,aAAaA,MAAYA,MAAY,SAAS;AAEtE,SAAO,IAAI,QAAQ,CAACI,MAAY;AAC5B,UAAMC,IAAiB,MAAM;AACzB,MAAAD,EAAQ,CAACH,GAAYK,CAAO,CAAC;AAAA,IAAA;AAGjC,aAASC,EAAcC,GAAoB;AACvC,YAAMC,IAAe,SAAS,cAAc,KAAK;AAEjD,MAAAN,EAAe,YAAYM,CAAY;AAEvC,YAAMC,IAAOC,EAAWF,CAAY;AAEpC,aAAAC,EAAK,OAAOF,CAAO,GAEZE;AAAA,IAAA;AAGX,UAAM,EAAE,SAAAJ,MAAYC;AAAA,MAChB,gBAAAjB;AAAA,QAACpB;AAAA,QAAA;AAAA,UACI,GAAGa;AAAA,UACJ,KAAKkB;AAAA,UACL,UAAUI;AAAA,QAAA;AAAA,MAAA;AAAA,IACd;AAAA,EACJ,CACH;AACL;"}
|
|
1
|
+
{"version":3,"file":"ToastWrapper.js","sources":["../../../../../lib/@ecme/components/ui/toast/ToastWrapper.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n useState,\r\n useImperativeHandle,\r\n useRef,\r\n useCallback,\r\n cloneElement,\r\n createRef,\r\n} from 'react'\r\nimport classNames from 'classnames'\r\nimport chainedFunction from '../utils/chainedFunction'\r\nimport { motion } from 'framer-motion'\r\nimport { getPlacementTransition } from './transition'\r\nimport { PLACEMENT } from '../utils/constants'\r\nimport { createRoot } from 'react-dom/client'\r\nimport { NotificationPlacement } from '../@types/placement'\r\nimport type { DetailedReactHTMLElement, ReactNode, Ref } from 'react'\r\n\r\ntype NodeProps = DetailedReactHTMLElement<any, HTMLDivElement>\r\n\r\ntype Message = {\r\n key: string\r\n visible: boolean\r\n node: NodeProps\r\n}\r\n\r\nconst useMessages = (msgKey: string) => {\r\n const [messages, setMessages] = useState<Message[]>([])\r\n\r\n const getKey = useCallback(\r\n (key: string) => {\r\n if (typeof key === 'undefined' && messages.length) {\r\n key = messages[messages.length - 1].key\r\n }\r\n return key\r\n },\r\n [messages],\r\n )\r\n\r\n const push = useCallback(\r\n (message: NodeProps) => {\r\n const key = msgKey || '_' + Math.random().toString(36).substr(2, 12)\r\n setMessages([...messages, { key, visible: true, node: message }])\r\n return key\r\n },\r\n [messages, msgKey],\r\n )\r\n\r\n const removeAll = useCallback(() => {\r\n setMessages(messages.map((msg) => ({ ...msg, visible: false })))\r\n setTimeout(() => {\r\n setMessages([])\r\n }, 50)\r\n }, [messages])\r\n\r\n const remove = useCallback(\r\n (key: string) => {\r\n setMessages(\r\n messages.map((elm) => {\r\n if (elm.key === getKey(key)) {\r\n elm.visible = false\r\n }\r\n return elm\r\n }),\r\n )\r\n\r\n setTimeout(() => {\r\n setMessages(messages.filter((msg) => msg.visible))\r\n }, 50)\r\n },\r\n [messages, getKey],\r\n )\r\n\r\n return { messages, push, removeAll, remove }\r\n}\r\n\r\nexport interface ToastProps {\r\n transitionType?: 'scale' | 'fade'\r\n placement?: NotificationPlacement | 'top-full' | 'bottom-full'\r\n offsetX?: string | number\r\n offsetY?: string | number\r\n block?: boolean\r\n}\r\n\r\nexport interface ToastWrapperInstance {\r\n root: HTMLElement | null\r\n push: (message: NodeProps) => string\r\n remove: (key: string) => void\r\n removeAll: () => void\r\n}\r\n\r\nexport interface ToastWrapperProps extends ToastProps {\r\n messageKey: string\r\n callback: (ref: HTMLDivElement | null) => void\r\n ref: Ref<ToastWrapperInstance>\r\n wrapper?: HTMLElement | (() => HTMLElement)\r\n}\r\n\r\nconst ToastWrapper = (props: ToastWrapperProps) => {\r\n const rootRef = useRef<HTMLDivElement | null>(null)\r\n\r\n const {\r\n transitionType = 'scale',\r\n placement = PLACEMENT.TOP_END as NotificationPlacement,\r\n offsetX = 30,\r\n offsetY = 30,\r\n messageKey,\r\n block = false,\r\n ref,\r\n callback,\r\n ...rest\r\n } = props\r\n\r\n const { push, removeAll, remove, messages } = useMessages(messageKey)\r\n\r\n useImperativeHandle(ref, () => {\r\n return { root: rootRef.current, push, removeAll, remove }\r\n })\r\n\r\n const placementTransition = getPlacementTransition({\r\n offsetX,\r\n offsetY,\r\n placement: placement as NotificationPlacement,\r\n transitionType,\r\n })\r\n\r\n const toastProps = {\r\n triggerByToast: true,\r\n ...rest,\r\n }\r\n\r\n const messageElements = messages.map((item) => {\r\n return (\r\n <motion.div\r\n key={item.key}\r\n className={'toast-wrapper'}\r\n initial={placementTransition.variants.initial}\r\n variants={placementTransition.variants}\r\n animate={item.visible ? 'animate' : 'exit'}\r\n transition={{ duration: 0.15, type: 'tween' }}\r\n >\r\n {cloneElement(\r\n item.node as DetailedReactHTMLElement<any, HTMLElement>,\r\n {\r\n ...toastProps,\r\n ref,\r\n onClose: chainedFunction(\r\n item.node?.props?.onClose,\r\n () => remove(item.key),\r\n ),\r\n className: classNames(item.node?.props?.className),\r\n },\r\n )}\r\n </motion.div>\r\n )\r\n })\r\n\r\n return (\r\n <div\r\n style={placementTransition.default}\r\n {...rest}\r\n ref={(thisRef) => {\r\n rootRef.current = thisRef\r\n callback?.(thisRef)\r\n }}\r\n className={classNames('toast', block && 'w-full')}\r\n >\r\n {messageElements}\r\n </div>\r\n )\r\n}\r\n\r\nToastWrapper.getInstance = (props: ToastWrapperProps) => {\r\n const { wrapper, ...rest } = props\r\n\r\n const wrapperRef = createRef<ToastWrapperInstance>()\r\n\r\n const wrapperElement =\r\n (typeof wrapper === 'function' ? wrapper() : wrapper) || document.body\r\n\r\n return new Promise((resolve) => {\r\n const renderCallback = () => {\r\n resolve([wrapperRef, unmount])\r\n }\r\n\r\n function renderElement(element: ReactNode) {\r\n const mountElement = document.createElement('div')\r\n\r\n wrapperElement.appendChild(mountElement)\r\n\r\n const root = createRoot(mountElement)\r\n\r\n root.render(element)\r\n\r\n return root\r\n }\r\n\r\n const { unmount } = renderElement(\r\n <ToastWrapper\r\n {...rest}\r\n ref={wrapperRef}\r\n callback={renderCallback}\r\n />,\r\n )\r\n })\r\n}\r\n\r\nexport default ToastWrapper\r\n"],"names":["useMessages","msgKey","messages","setMessages","useState","getKey","useCallback","key","push","message","removeAll","msg","remove","elm","ToastWrapper","props","rootRef","useRef","transitionType","placement","PLACEMENT","offsetX","offsetY","messageKey","block","ref","callback","rest","useImperativeHandle","placementTransition","getPlacementTransition","toastProps","messageElements","item","jsx","motion","cloneElement","chainedFunction","_b","_a","classNames","_d","_c","thisRef","wrapper","wrapperRef","createRef","wrapperElement","resolve","renderCallback","unmount","renderElement","element","mountElement","root","createRoot"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","sources":["../../../../../lib/@ecme/components/ui/toast/toast.tsx"],"sourcesContent":["import ToastWrapper from './ToastWrapper'\nimport { PLACEMENT } from '../utils/constants'\nimport type { ToastProps, ToastWrapperProps } from './ToastWrapper'\nimport { NotificationPlacement } from '../@types/placement'\nimport type { ReactNode } from 'react'\n\nexport const toastDefaultProps = {\n placement: PLACEMENT.TOP_END,\n offsetX: 30,\n offsetY: 30,\n transitionType: 'scale',\n block: false,\n}\n\nexport interface Toast {\n push(\n message: ReactNode,\n options?: ToastProps,\n ): string | undefined | Promise<string | undefined>\n remove(key: string): void\n removeAll(): void\n}\n\nconst defaultWrapperId = 'default'\nconst wrappers = new Map()\n\nfunction castPlacment(placement: NotificationPlacement) {\n if (/\\top\\b/.test(placement)) {\n return 'top-full'\n }\n\n if (/\\bottom\\b/.test(placement)) {\n return 'bottom-full'\n }\n}\n\nasync function createWrapper(wrapperId: string, props: ToastProps) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [wrapper] = await ToastWrapper.getInstance(props as ToastWrapperProps) as any\n\n wrappers.set(wrapperId || defaultWrapperId, wrapper)\n\n return wrapper\n}\n\nfunction getWrapper(wrapperId?: string) {\n if (wrappers.size === 0) {\n return null\n }\n return wrappers.get(wrapperId || defaultWrapperId)\n}\n\nconst toast: Toast = (message: ReactNode) => toast.push(message)\n\ntoast.push = (message, options = toastDefaultProps as ToastProps) => {\n let id = options.placement\n if (options.block) {\n id = castPlacment(options.placement as NotificationPlacement)\n }\n\n const wrapper = getWrapper(id)\n\n if (wrapper?.current) {\n return wrapper.current.push(message)\n }\n\n return createWrapper(id ?? '', options).then((ref) => {\n return ref.current?.push(message)\n })\n}\n\ntoast.remove = (key) => {\n wrappers.forEach((elm) => {\n elm.current.remove(key)\n })\n}\n\ntoast.removeAll = () => {\n wrappers.forEach((elm) => elm.current.removeAll())\n}\n\nexport default toast\n"],"names":["toastDefaultProps","PLACEMENT","defaultWrapperId","wrappers","castPlacment","placement","createWrapper","wrapperId","props","wrapper","ToastWrapper","getWrapper","toast","message","options","id","ref","_a","key","elm"],"mappings":";;AAMO,MAAMA,IAAoB;AAAA,EAC7B,WAAWC,EAAU;AAAA,EACrB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,OAAO;AACX,GAWMC,IAAmB,WACnBC,wBAAe,IAAA;AAErB,SAASC,EAAaC,GAAkC;AACpD,MAAI,SAAS,KAAKA,CAAS;AACvB,WAAO;AAGX,MAAI,YAAY,KAAKA,CAAS;AAC1B,WAAO;AAEf;AAEA,eAAeC,EAAcC,GAAmBC,GAAmB;AAE/D,QAAM,CAACC,CAAO,IAAI,MAAMC,EAAa,YAAYF,CAA0B;AAE3E,SAAAL,EAAS,IAAII,KAAaL,GAAkBO,CAAO,GAE5CA;AACX;AAEA,SAASE,EAAWJ,GAAoB;AACpC,SAAIJ,EAAS,SAAS,IACX,OAEJA,EAAS,IAAII,KAAaL,CAAgB;AACrD;AAEA,MAAMU,IAAe,CAACC,MAAuBD,EAAM,KAAKC,CAAO;AAE/DD,EAAM,OAAO,CAACC,GAASC,IAAUd,MAAoC;AACjE,MAAIe,IAAKD,EAAQ;AACjB,EAAIA,EAAQ,UACRC,IAAKX,EAAaU,EAAQ,SAAkC;AAGhE,QAAML,IAAUE,EAAWI,CAAE;AAE7B,SAAIN,KAAA,QAAAA,EAAS,UACFA,EAAQ,QAAQ,KAAKI,CAAO,IAGhCP,EAAcS,KAAM,IAAID,CAAO,EAAE,KAAK,CAACE,MAAQ;;AAClD,YAAOC,IAAAD,EAAI,YAAJ,gBAAAC,EAAa,KAAKJ;AAAA,
|
|
1
|
+
{"version":3,"file":"toast.js","sources":["../../../../../lib/@ecme/components/ui/toast/toast.tsx"],"sourcesContent":["import ToastWrapper from './ToastWrapper'\nimport { PLACEMENT } from '../utils/constants'\nimport type { ToastProps, ToastWrapperProps } from './ToastWrapper'\nimport { NotificationPlacement } from '../@types/placement'\nimport type { ReactNode } from 'react'\n\nexport const toastDefaultProps = {\n placement: PLACEMENT.TOP_END,\n offsetX: 30,\n offsetY: 30,\n transitionType: 'scale',\n block: false,\n}\n\nexport interface Toast {\n push(\n message: ReactNode,\n options?: ToastProps,\n ): string | undefined | Promise<string | undefined>\n remove(key: string): void\n removeAll(): void\n}\n\nconst defaultWrapperId = 'default'\nconst wrappers = new Map()\n\nfunction castPlacment(placement: NotificationPlacement) {\n if (/\\top\\b/.test(placement)) {\n return 'top-full'\n }\n\n if (/\\bottom\\b/.test(placement)) {\n return 'bottom-full'\n }\n}\n\nasync function createWrapper(wrapperId: string, props: ToastProps) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [wrapper] = await ToastWrapper.getInstance(props as ToastWrapperProps) as any\n\n wrappers.set(wrapperId || defaultWrapperId, wrapper)\n\n return wrapper\n}\n\nfunction getWrapper(wrapperId?: string) {\n if (wrappers.size === 0) {\n return null\n }\n return wrappers.get(wrapperId || defaultWrapperId)\n}\n\nconst toast: Toast = (message: ReactNode) => toast.push(message)\n\ntoast.push = (message, options = toastDefaultProps as ToastProps) => {\n let id = options.placement\n if (options.block) {\n id = castPlacment(options.placement as NotificationPlacement)\n }\n\n const wrapper = getWrapper(id)\n\n if (wrapper?.current) {\n return wrapper.current.push(message)\n }\n\n return createWrapper(id ?? '', options).then((ref) => {\n return ref.current?.push(message)\n })\n}\n\ntoast.remove = (key) => {\n wrappers.forEach((elm) => {\n elm.current.remove(key)\n })\n}\n\ntoast.removeAll = () => {\n wrappers.forEach((elm) => elm.current.removeAll())\n}\n\nexport default toast\n"],"names":["toastDefaultProps","PLACEMENT","defaultWrapperId","wrappers","castPlacment","placement","createWrapper","wrapperId","props","wrapper","ToastWrapper","getWrapper","toast","message","options","id","ref","_a","key","elm"],"mappings":";;AAMO,MAAMA,IAAoB;AAAA,EAC7B,WAAWC,EAAU;AAAA,EACrB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,OAAO;AACX,GAWMC,IAAmB,WACnBC,wBAAe,IAAA;AAErB,SAASC,EAAaC,GAAkC;AACpD,MAAI,SAAS,KAAKA,CAAS;AACvB,WAAO;AAGX,MAAI,YAAY,KAAKA,CAAS;AAC1B,WAAO;AAEf;AAEA,eAAeC,EAAcC,GAAmBC,GAAmB;AAE/D,QAAM,CAACC,CAAO,IAAI,MAAMC,EAAa,YAAYF,CAA0B;AAE3E,SAAAL,EAAS,IAAII,KAAaL,GAAkBO,CAAO,GAE5CA;AACX;AAEA,SAASE,EAAWJ,GAAoB;AACpC,SAAIJ,EAAS,SAAS,IACX,OAEJA,EAAS,IAAII,KAAaL,CAAgB;AACrD;AAEA,MAAMU,IAAe,CAACC,MAAuBD,EAAM,KAAKC,CAAO;AAE/DD,EAAM,OAAO,CAACC,GAASC,IAAUd,MAAoC;AACjE,MAAIe,IAAKD,EAAQ;AACjB,EAAIA,EAAQ,UACRC,IAAKX,EAAaU,EAAQ,SAAkC;AAGhE,QAAML,IAAUE,EAAWI,CAAE;AAE7B,SAAIN,KAAA,QAAAA,EAAS,UACFA,EAAQ,QAAQ,KAAKI,CAAO,IAGhCP,EAAcS,KAAM,IAAID,CAAO,EAAE,KAAK,CAACE,MAAQ;;AAClD,YAAOC,IAAAD,EAAI,YAAJ,gBAAAC,EAAa,KAAKJ;AAAA,EAC7B,CAAC;AACL;AAEAD,EAAM,SAAS,CAACM,MAAQ;AACpB,EAAAf,EAAS,QAAQ,CAACgB,MAAQ;AACtB,IAAAA,EAAI,QAAQ,OAAOD,CAAG;AAAA,EAC1B,CAAC;AACL;AAEAN,EAAM,YAAY,MAAM;AACpB,EAAAT,EAAS,QAAQ,CAACgB,MAAQA,EAAI,QAAQ,WAAW;AACrD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chainedFunction.js","sources":["../../../../../lib/@ecme/components/ui/utils/chainedFunction.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport default function chainedFunction<T = any>(...funcs: (T | null)[]) {\n return funcs\n .filter((f) => f !== null && typeof f !== 'undefined')\n .reduce((acc: any, f: any) => {\n if (typeof f !== 'function') {\n throw new Error(\n 'Invalid Argument Type, must only provide functions, undefined, or null.',\n )\n }\n\n if (acc === undefined) {\n return f\n }\n\n return function chainedFunction(this: any, ...args: any[]) {\n acc.apply(this, args)\n f.apply(this, args)\n }\n }, undefined)\n}\n"],"names":["chainedFunction","funcs","f","acc","args"],"mappings":"AACA,SAAwBA,KAA4BC,GAAqB;AACrE,SAAOA,EACF,OAAO,CAACC,MAAMA,MAAM,QAAQ,OAAOA,IAAM,GAAW,EACpD,OAAO,CAACC,GAAUD,MAAW;AAC1B,QAAI,OAAOA,KAAM;AACb,YAAM,IAAI;AAAA,QACN;AAAA,MAAA;AAIR,WAAIC,MAAQ,SACDD,IAGJ,YAAuCE,GAAa;AACvD,MAAAD,EAAI,MAAM,MAAMC,CAAI,GACpBF,EAAE,MAAM,MAAME,CAAI;AAAA,
|
|
1
|
+
{"version":3,"file":"chainedFunction.js","sources":["../../../../../lib/@ecme/components/ui/utils/chainedFunction.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport default function chainedFunction<T = any>(...funcs: (T | null)[]) {\n return funcs\n .filter((f) => f !== null && typeof f !== 'undefined')\n .reduce((acc: any, f: any) => {\n if (typeof f !== 'function') {\n throw new Error(\n 'Invalid Argument Type, must only provide functions, undefined, or null.',\n )\n }\n\n if (acc === undefined) {\n return f\n }\n\n return function chainedFunction(this: any, ...args: any[]) {\n acc.apply(this, args)\n f.apply(this, args)\n }\n }, undefined)\n}\n"],"names":["chainedFunction","funcs","f","acc","args"],"mappings":"AACA,SAAwBA,KAA4BC,GAAqB;AACrE,SAAOA,EACF,OAAO,CAACC,MAAMA,MAAM,QAAQ,OAAOA,IAAM,GAAW,EACpD,OAAO,CAACC,GAAUD,MAAW;AAC1B,QAAI,OAAOA,KAAM;AACb,YAAM,IAAI;AAAA,QACN;AAAA,MAAA;AAIR,WAAIC,MAAQ,SACDD,IAGJ,YAAuCE,GAAa;AACvD,MAAAD,EAAI,MAAM,MAAMC,CAAI,GACpBF,EAAE,MAAM,MAAME,CAAI;AAAA,IACtB;AAAA,EACJ,GAAG,MAAS;AACpB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCloneElement.js","sources":["../../../../../lib/@ecme/components/ui/utils/mapCloneElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Children, isValidElement, cloneElement } from 'react'\nimport type { ReactNode, DetailedReactHTMLElement } from 'react'\n\nfunction map(children: ReactNode, func: any, context?: any) {\n let index = 0\n return Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child\n }\n const handle = func.call(context, child, index)\n index += 1\n return handle\n })\n}\n\nfunction mapCloneElement(children: ReactNode, func: any, context?: any) {\n return map(\n children,\n (child: DetailedReactHTMLElement<any, HTMLElement>, index: number) =>\n cloneElement(child, {\n key: index,\n ...func(child, index),\n }),\n context,\n )\n}\n\nexport default mapCloneElement\n"],"names":["map","children","func","context","index","Children","child","isValidElement","handle","mapCloneElement","cloneElement"],"mappings":";AAIA,SAASA,EAAIC,GAAqBC,GAAWC,GAAe;AACxD,MAAIC,IAAQ;AACZ,SAAOC,EAAS,IAAIJ,GAAU,CAACK,MAAU;AACrC,QAAI,CAACC,EAAeD,CAAK;AACrB,aAAOA;AAEX,UAAME,IAASN,EAAK,KAAKC,GAASG,GAAOF,CAAK;AAC9C,WAAAA,KAAS,GACFI;AAAA,
|
|
1
|
+
{"version":3,"file":"mapCloneElement.js","sources":["../../../../../lib/@ecme/components/ui/utils/mapCloneElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Children, isValidElement, cloneElement } from 'react'\nimport type { ReactNode, DetailedReactHTMLElement } from 'react'\n\nfunction map(children: ReactNode, func: any, context?: any) {\n let index = 0\n return Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child\n }\n const handle = func.call(context, child, index)\n index += 1\n return handle\n })\n}\n\nfunction mapCloneElement(children: ReactNode, func: any, context?: any) {\n return map(\n children,\n (child: DetailedReactHTMLElement<any, HTMLElement>, index: number) =>\n cloneElement(child, {\n key: index,\n ...func(child, index),\n }),\n context,\n )\n}\n\nexport default mapCloneElement\n"],"names":["map","children","func","context","index","Children","child","isValidElement","handle","mapCloneElement","cloneElement"],"mappings":";AAIA,SAASA,EAAIC,GAAqBC,GAAWC,GAAe;AACxD,MAAIC,IAAQ;AACZ,SAAOC,EAAS,IAAIJ,GAAU,CAACK,MAAU;AACrC,QAAI,CAACC,EAAeD,CAAK;AACrB,aAAOA;AAEX,UAAME,IAASN,EAAK,KAAKC,GAASG,GAAOF,CAAK;AAC9C,WAAAA,KAAS,GACFI;AAAA,EACX,CAAC;AACL;AAEA,SAASC,EAAgBR,GAAqBC,GAAWC,GAAe;AACpE,SAAOH;AAAA,IACHC;AAAA,IACA,CAACK,GAAmDF,MAChDM,EAAaJ,GAAO;AAAA,MAChB,KAAKF;AAAA,MACL,GAAGF,EAAKI,GAAOF,CAAK;AAAA,IAAA,CACvB;AAAA,IACLD;AAAA,EAAA;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityAvatar.js","sources":["../../../../../lib/@ecme/components/view/Activity/ActivityAvatar.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport acronym from '@/utils/acronym'\nimport classNames from '@/utils/classNames'\nimport useRandomBgColor from '@/utils/hooks/useRandomBgColor'\nimport { TbUser, TbTag, TbFileText, TbTicket, TbRefresh } from 'react-icons/tb'\nimport {\n ADD_TAGS_TO_TICKET,\n ADD_FILES_TO_TICKET,\n UPDATE_TICKET,\n CREATE_TICKET,\n avatarType,\n iconType,\n} from './constants'\nimport type { AvatarProps } from '@/components/ui/Avatar'\n\ntype ActivityAvatar = {\n data?: {\n type: string\n userImg?: string\n userName: string\n }\n}\n\nconst Icon = ({ type }: { type: string }) => {\n switch (type) {\n case ADD_TAGS_TO_TICKET:\n return <TbTag />\n case ADD_FILES_TO_TICKET:\n return <TbFileText />\n case UPDATE_TICKET:\n return <TbRefresh />\n case CREATE_TICKET:\n return <TbTicket />\n default:\n return <TbUser />\n }\n}\n\nconst ActivityAvatar = ({ data }: ActivityAvatar) => {\n const color = useRandomBgColor()\n\n const defaultAvatarProps: AvatarProps = useMemo(\n () => ({ size: 35, shape: 'circle' }),\n [],\n )\n\n if (data && avatarType.includes(data.type)) {\n const avatarProps = data.userImg\n ? { src: data.userImg }\n : { className: classNames(color(data.userName || '')) }\n\n return (\n <Avatar {...avatarProps} {...defaultAvatarProps}>\n <span className=\"text-gray-900 font-bold\">\n {acronym(data.userName || '')}\n </span>\n </Avatar>\n )\n }\n\n if (data && iconType.includes(data.type)) {\n return (\n <Avatar\n className=\"text-gray-900 bg-gray-100 dark:text-white dark:bg-gray-700\"\n icon={<Icon type={data.type} />}\n {...defaultAvatarProps}\n />\n )\n }\n\n return null\n}\n\nexport default ActivityAvatar\n"],"names":["Icon","type","ADD_TAGS_TO_TICKET","TbTag","ADD_FILES_TO_TICKET","TbFileText","UPDATE_TICKET","TbRefresh","CREATE_TICKET","TbTicket","TbUser","ActivityAvatar","data","color","useRandomBgColor","defaultAvatarProps","useMemo","avatarType","avatarProps","classNames","jsx","Avatar","acronym","iconType"],"mappings":";;;;;;;;AAwBA,MAAMA,IAAO,CAAC,EAAE,MAAAC,QAA6B;AACzC,UAAQA,GAAA;AAAA,IACJ,KAAKC;AACD,+BAAQC,GAAA,EAAM;AAAA,IAClB,KAAKC;AACD,+BAAQC,GAAA,EAAW;AAAA,IACvB,KAAKC;AACD,+BAAQC,GAAA,EAAU;AAAA,IACtB,KAAKC;AACD,+BAAQC,GAAA,EAAS;AAAA,IACrB;AACI,+BAAQC,GAAA,EAAO;AAAA,EAAA;AAE3B,GAEMC,IAAiB,CAAC,EAAE,MAAAC,QAA2B;AACjD,QAAMC,IAAQC,EAAA,GAERC,IAAkCC;AAAA,IACpC,OAAO,EAAE,MAAM,IAAI,OAAO,SAAA;AAAA,IAC1B,CAAA;AAAA,EAAC;AAGL,MAAIJ,KAAQK,EAAW,SAASL,EAAK,IAAI,GAAG;AACxC,UAAMM,IAAcN,EAAK,UACnB,EAAE,KAAKA,EAAK,QAAA,IACZ,EAAE,WAAWO,EAAWN,EAAMD,EAAK,YAAY,EAAE,CAAC,EAAA;AAExD,WACI,gBAAAQ,EAACC,GAAA,EAAQ,GAAGH,GAAc,GAAGH,GACzB,UAAA,gBAAAK,EAAC,QAAA,EAAK,WAAU,2BACX,UAAAE,EAAQV,EAAK,YAAY,EAAE,GAChC,GACJ;AAAA,
|
|
1
|
+
{"version":3,"file":"ActivityAvatar.js","sources":["../../../../../lib/@ecme/components/view/Activity/ActivityAvatar.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport acronym from '@/utils/acronym'\nimport classNames from '@/utils/classNames'\nimport useRandomBgColor from '@/utils/hooks/useRandomBgColor'\nimport { TbUser, TbTag, TbFileText, TbTicket, TbRefresh } from 'react-icons/tb'\nimport {\n ADD_TAGS_TO_TICKET,\n ADD_FILES_TO_TICKET,\n UPDATE_TICKET,\n CREATE_TICKET,\n avatarType,\n iconType,\n} from './constants'\nimport type { AvatarProps } from '@/components/ui/Avatar'\n\ntype ActivityAvatar = {\n data?: {\n type: string\n userImg?: string\n userName: string\n }\n}\n\nconst Icon = ({ type }: { type: string }) => {\n switch (type) {\n case ADD_TAGS_TO_TICKET:\n return <TbTag />\n case ADD_FILES_TO_TICKET:\n return <TbFileText />\n case UPDATE_TICKET:\n return <TbRefresh />\n case CREATE_TICKET:\n return <TbTicket />\n default:\n return <TbUser />\n }\n}\n\nconst ActivityAvatar = ({ data }: ActivityAvatar) => {\n const color = useRandomBgColor()\n\n const defaultAvatarProps: AvatarProps = useMemo(\n () => ({ size: 35, shape: 'circle' }),\n [],\n )\n\n if (data && avatarType.includes(data.type)) {\n const avatarProps = data.userImg\n ? { src: data.userImg }\n : { className: classNames(color(data.userName || '')) }\n\n return (\n <Avatar {...avatarProps} {...defaultAvatarProps}>\n <span className=\"text-gray-900 font-bold\">\n {acronym(data.userName || '')}\n </span>\n </Avatar>\n )\n }\n\n if (data && iconType.includes(data.type)) {\n return (\n <Avatar\n className=\"text-gray-900 bg-gray-100 dark:text-white dark:bg-gray-700\"\n icon={<Icon type={data.type} />}\n {...defaultAvatarProps}\n />\n )\n }\n\n return null\n}\n\nexport default ActivityAvatar\n"],"names":["Icon","type","ADD_TAGS_TO_TICKET","TbTag","ADD_FILES_TO_TICKET","TbFileText","UPDATE_TICKET","TbRefresh","CREATE_TICKET","TbTicket","TbUser","ActivityAvatar","data","color","useRandomBgColor","defaultAvatarProps","useMemo","avatarType","avatarProps","classNames","jsx","Avatar","acronym","iconType"],"mappings":";;;;;;;;AAwBA,MAAMA,IAAO,CAAC,EAAE,MAAAC,QAA6B;AACzC,UAAQA,GAAA;AAAA,IACJ,KAAKC;AACD,+BAAQC,GAAA,EAAM;AAAA,IAClB,KAAKC;AACD,+BAAQC,GAAA,EAAW;AAAA,IACvB,KAAKC;AACD,+BAAQC,GAAA,EAAU;AAAA,IACtB,KAAKC;AACD,+BAAQC,GAAA,EAAS;AAAA,IACrB;AACI,+BAAQC,GAAA,EAAO;AAAA,EAAA;AAE3B,GAEMC,IAAiB,CAAC,EAAE,MAAAC,QAA2B;AACjD,QAAMC,IAAQC,EAAA,GAERC,IAAkCC;AAAA,IACpC,OAAO,EAAE,MAAM,IAAI,OAAO,SAAA;AAAA,IAC1B,CAAA;AAAA,EAAC;AAGL,MAAIJ,KAAQK,EAAW,SAASL,EAAK,IAAI,GAAG;AACxC,UAAMM,IAAcN,EAAK,UACnB,EAAE,KAAKA,EAAK,QAAA,IACZ,EAAE,WAAWO,EAAWN,EAAMD,EAAK,YAAY,EAAE,CAAC,EAAA;AAExD,WACI,gBAAAQ,EAACC,GAAA,EAAQ,GAAGH,GAAc,GAAGH,GACzB,UAAA,gBAAAK,EAAC,QAAA,EAAK,WAAU,2BACX,UAAAE,EAAQV,EAAK,YAAY,EAAE,GAChC,GACJ;AAAA,EAER;AAEA,SAAIA,KAAQW,EAAS,SAASX,EAAK,IAAI,IAE/B,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,MAAM,gBAAAD,EAACpB,GAAA,EAAK,MAAMY,EAAK,MAAM;AAAA,MAC5B,GAAGG;AAAA,IAAA;AAAA,EAAA,IAKT;AACX;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityEvent.js","sources":["../../../../../lib/@ecme/components/view/Activity/ActivityEvent.tsx"],"sourcesContent":["import Badge from '@/components/ui/Badge'\nimport Card from '@/components/ui/Card'\nimport Tag from '@/components/ui/Tag'\nimport classNames from 'classnames'\nimport ReactHtmlParser from 'html-react-parser'\nimport isLastChild from '@/utils/isLastChild'\nimport dayjs from 'dayjs'\nimport {\n UPDATE_TICKET,\n COMMENT,\n ADD_TAGS_TO_TICKET,\n ADD_FILES_TO_TICKET,\n CREATE_TICKET,\n COMMENT_MENTION,\n ASSIGN_TICKET,\n} from './constants'\nimport type { CommonProps } from '@/@types/common'\nimport type { HTMLReactParserOptions } from 'html-react-parser'\n\ntype ActivityEventProps = {\n data: {\n type: string\n dateTime: number\n ticket?: string\n status?: number\n userName: string\n userImg?: string\n comment?: string\n tags?: string[]\n files?: string[]\n assignee?: string\n }\n compact?: boolean\n}\n\nconst ticketStatus: Record<\n number,\n {\n label: string\n bgClass: string\n textClass: string\n }\n> = {\n 0: {\n label: 'Completed',\n bgClass: 'bg-emerald-500',\n textClass: 'text-emerald-500',\n },\n 1: {\n label: 'In progress',\n bgClass: 'bg-blue-500',\n textClass: 'text-blue-500',\n },\n 2: {\n label: 'Ready to test',\n bgClass: 'bg-amber-500',\n textClass: 'text-amber-500',\n },\n}\n\nconst taskLabelColors: Record<string, string> = {\n 'Live Issue': 'bg-rose-500',\n Backend: 'bg-blue-500',\n Bug: 'bg-amber-400',\n 'Low priority': 'bg-indigo-500',\n}\n\nconst UnixDateTime = ({ value }: { value: number }) => {\n return <>{dayjs.unix(value).format('hh:mm A')}</>\n}\n\nconst HighlightedText = ({ children, className }: CommonProps) => {\n return (\n <span className={classNames('font-bold heading-text', className)}>\n {children}\n </span>\n )\n}\n\nconst ActivityEvent = ({ data, compact }: ActivityEventProps) => {\n const options: HTMLReactParserOptions = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n replace: (node: any) => {\n if (node.type === 'tag' && node?.name === 'strong') {\n return (\n <HighlightedText key={node?.children[0]?.data}>\n {node?.children[0]?.data}\n </HighlightedText>\n )\n }\n return node.data\n },\n }\n\n switch (data.type) {\n case UPDATE_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">has change </span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\"> status to </span>\n <span className=\"inline-flex items-center gap-1\">\n <Badge\n className={\n ticketStatus[data.status || 0].bgClass\n }\n />\n <HighlightedText className=\"ml-1 rtl:mr-1\">\n {ticketStatus[data.status || 0].label}\n </HighlightedText>\n </span>\n </div>\n </>\n ) : (\n <p className=\"my-1\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"mx-1\">has change </span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\"> status to </span>\n <span className=\"inline-flex items-center gap-1\">\n <Badge\n className={ticketStatus[data.status || 0].bgClass}\n />\n <HighlightedText>\n {ticketStatus[data.status || 0].label}\n </HighlightedText>\n </span>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </p>\n )\n case COMMENT:\n return (\n <>\n {compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>\n {data.userName}\n </HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">comment on your</span>\n <HighlightedText>Post</HighlightedText>\n </div>\n </>\n ) : (\n <p className=\"gap-1 inline-flex items-center flex-wrap\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"mx-1\">comment on your</span>\n <HighlightedText>Post</HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </p>\n )}\n <Card\n bordered={false}\n className=\"mt-4 bg-gray-100 dark:bg-gray-700 shadow-none\"\n >\n {ReactHtmlParser(data.comment || '', options)}\n </Card>\n </>\n )\n case COMMENT_MENTION:\n return (\n <>\n {compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>\n {data.userName}\n </HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">\n mentioned you in a comment\n </span>\n <HighlightedText>Post</HighlightedText>\n </div>\n </>\n ) : (\n <p className=\"my-1\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"mx-1\">\n mentioned you in a comment\n </span>\n <HighlightedText>Post</HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </p>\n )}\n <Card\n bordered={false}\n className=\"mt-4 bg-gray-100 dark:bg-gray-700 shadow-none\"\n >\n {ReactHtmlParser(data.comment || '', options)}\n </Card>\n </>\n )\n case ADD_TAGS_TO_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">added tags </span>\n {data?.tags?.map((label, index) => (\n <Tag\n key={label + index}\n prefix\n className=\"mx-1\"\n prefixClass={`${taskLabelColors[label]}`}\n >\n {label}\n </Tag>\n ))}\n </div>\n </>\n ) : (\n <div>\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">added tags </span>\n <span className=\"inline-flex items-center gap-1\">\n {data?.tags?.map((label, index) => (\n <Tag\n key={label + index}\n prefix\n prefixClass={`${taskLabelColors[label]}`}\n >\n {label}\n </Tag>\n ))}\n </span>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n case ADD_FILES_TO_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">added</span>\n {data?.files?.map((file, index) => (\n <HighlightedText key={file + index}>\n {file}\n {!isLastChild(data?.files || [], index) && (\n <span className=\"ltr:mr-1 rtl:ml-1\">\n ,{' '}\n </span>\n )}\n </HighlightedText>\n ))}\n </div>\n </>\n ) : (\n <div className=\"inline-flex items-center flex-wrap\">\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">added</span>\n {data?.files?.map((file, index) => (\n <HighlightedText key={file + index}>\n {file}\n {!isLastChild(data?.files || [], index) && (\n <span className=\"ltr:mr-1 rtl:ml-1\">, </span>\n )}\n </HighlightedText>\n ))}\n <span className=\"mx-1\">to ticket</span>\n <HighlightedText>{data.ticket} </HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n case ASSIGN_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">assigned ticket</span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\">to</span>\n <HighlightedText>{data?.assignee} </HighlightedText>\n </div>\n </>\n ) : (\n <div>\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">assigned ticket</span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\">to</span>\n <HighlightedText>{data.assignee} </HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n case CREATE_TICKET:\n return (\n <div className=\"inline-flex items-center flex-wrap\">\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">has created ticket</span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n default:\n return null\n }\n}\n\nexport default ActivityEvent\n"],"names":["ticketStatus","taskLabelColors","UnixDateTime","value","dayjs","HighlightedText","children","className","classNames","ActivityEvent","data","compact","options","node","jsx","_a","_b","UPDATE_TICKET","jsxs","Fragment","Badge","COMMENT","Card","ReactHtmlParser","COMMENT_MENTION","ADD_TAGS_TO_TICKET","label","index","Tag","ADD_FILES_TO_TICKET","_c","file","isLastChild","_d","ASSIGN_TICKET","CREATE_TICKET"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ActivityEvent.js","sources":["../../../../../lib/@ecme/components/view/Activity/ActivityEvent.tsx"],"sourcesContent":["import Badge from '@/components/ui/Badge'\nimport Card from '@/components/ui/Card'\nimport Tag from '@/components/ui/Tag'\nimport classNames from 'classnames'\nimport ReactHtmlParser from 'html-react-parser'\nimport isLastChild from '@/utils/isLastChild'\nimport dayjs from 'dayjs'\nimport {\n UPDATE_TICKET,\n COMMENT,\n ADD_TAGS_TO_TICKET,\n ADD_FILES_TO_TICKET,\n CREATE_TICKET,\n COMMENT_MENTION,\n ASSIGN_TICKET,\n} from './constants'\nimport type { CommonProps } from '@/@types/common'\nimport type { HTMLReactParserOptions } from 'html-react-parser'\n\ntype ActivityEventProps = {\n data: {\n type: string\n dateTime: number\n ticket?: string\n status?: number\n userName: string\n userImg?: string\n comment?: string\n tags?: string[]\n files?: string[]\n assignee?: string\n }\n compact?: boolean\n}\n\nconst ticketStatus: Record<\n number,\n {\n label: string\n bgClass: string\n textClass: string\n }\n> = {\n 0: {\n label: 'Completed',\n bgClass: 'bg-emerald-500',\n textClass: 'text-emerald-500',\n },\n 1: {\n label: 'In progress',\n bgClass: 'bg-blue-500',\n textClass: 'text-blue-500',\n },\n 2: {\n label: 'Ready to test',\n bgClass: 'bg-amber-500',\n textClass: 'text-amber-500',\n },\n}\n\nconst taskLabelColors: Record<string, string> = {\n 'Live Issue': 'bg-rose-500',\n Backend: 'bg-blue-500',\n Bug: 'bg-amber-400',\n 'Low priority': 'bg-indigo-500',\n}\n\nconst UnixDateTime = ({ value }: { value: number }) => {\n return <>{dayjs.unix(value).format('hh:mm A')}</>\n}\n\nconst HighlightedText = ({ children, className }: CommonProps) => {\n return (\n <span className={classNames('font-bold heading-text', className)}>\n {children}\n </span>\n )\n}\n\nconst ActivityEvent = ({ data, compact }: ActivityEventProps) => {\n const options: HTMLReactParserOptions = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n replace: (node: any) => {\n if (node.type === 'tag' && node?.name === 'strong') {\n return (\n <HighlightedText key={node?.children[0]?.data}>\n {node?.children[0]?.data}\n </HighlightedText>\n )\n }\n return node.data\n },\n }\n\n switch (data.type) {\n case UPDATE_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">has change </span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\"> status to </span>\n <span className=\"inline-flex items-center gap-1\">\n <Badge\n className={\n ticketStatus[data.status || 0].bgClass\n }\n />\n <HighlightedText className=\"ml-1 rtl:mr-1\">\n {ticketStatus[data.status || 0].label}\n </HighlightedText>\n </span>\n </div>\n </>\n ) : (\n <p className=\"my-1\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"mx-1\">has change </span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\"> status to </span>\n <span className=\"inline-flex items-center gap-1\">\n <Badge\n className={ticketStatus[data.status || 0].bgClass}\n />\n <HighlightedText>\n {ticketStatus[data.status || 0].label}\n </HighlightedText>\n </span>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </p>\n )\n case COMMENT:\n return (\n <>\n {compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>\n {data.userName}\n </HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">comment on your</span>\n <HighlightedText>Post</HighlightedText>\n </div>\n </>\n ) : (\n <p className=\"gap-1 inline-flex items-center flex-wrap\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"mx-1\">comment on your</span>\n <HighlightedText>Post</HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </p>\n )}\n <Card\n bordered={false}\n className=\"mt-4 bg-gray-100 dark:bg-gray-700 shadow-none\"\n >\n {ReactHtmlParser(data.comment || '', options)}\n </Card>\n </>\n )\n case COMMENT_MENTION:\n return (\n <>\n {compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>\n {data.userName}\n </HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">\n mentioned you in a comment\n </span>\n <HighlightedText>Post</HighlightedText>\n </div>\n </>\n ) : (\n <p className=\"my-1\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"mx-1\">\n mentioned you in a comment\n </span>\n <HighlightedText>Post</HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </p>\n )}\n <Card\n bordered={false}\n className=\"mt-4 bg-gray-100 dark:bg-gray-700 shadow-none\"\n >\n {ReactHtmlParser(data.comment || '', options)}\n </Card>\n </>\n )\n case ADD_TAGS_TO_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">added tags </span>\n {data?.tags?.map((label, index) => (\n <Tag\n key={label + index}\n prefix\n className=\"mx-1\"\n prefixClass={`${taskLabelColors[label]}`}\n >\n {label}\n </Tag>\n ))}\n </div>\n </>\n ) : (\n <div>\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">added tags </span>\n <span className=\"inline-flex items-center gap-1\">\n {data?.tags?.map((label, index) => (\n <Tag\n key={label + index}\n prefix\n prefixClass={`${taskLabelColors[label]}`}\n >\n {label}\n </Tag>\n ))}\n </span>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n case ADD_FILES_TO_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">added</span>\n {data?.files?.map((file, index) => (\n <HighlightedText key={file + index}>\n {file}\n {!isLastChild(data?.files || [], index) && (\n <span className=\"ltr:mr-1 rtl:ml-1\">\n ,{' '}\n </span>\n )}\n </HighlightedText>\n ))}\n </div>\n </>\n ) : (\n <div className=\"inline-flex items-center flex-wrap\">\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">added</span>\n {data?.files?.map((file, index) => (\n <HighlightedText key={file + index}>\n {file}\n {!isLastChild(data?.files || [], index) && (\n <span className=\"ltr:mr-1 rtl:ml-1\">, </span>\n )}\n </HighlightedText>\n ))}\n <span className=\"mx-1\">to ticket</span>\n <HighlightedText>{data.ticket} </HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n case ASSIGN_TICKET:\n return compact ? (\n <>\n <div className=\"flex flex-col gap-y-0.5\">\n <HighlightedText>{data.userName}</HighlightedText>\n <span className=\"text-xs font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n <div className=\"mt-2\">\n <span className=\"mx-1\">assigned ticket</span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\">to</span>\n <HighlightedText>{data?.assignee} </HighlightedText>\n </div>\n </>\n ) : (\n <div>\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">assigned ticket</span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"mx-1\">to</span>\n <HighlightedText>{data.assignee} </HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n case CREATE_TICKET:\n return (\n <div className=\"inline-flex items-center flex-wrap\">\n <HighlightedText>{data.userName} </HighlightedText>\n <span className=\"mx-1\">has created ticket</span>\n <HighlightedText>{data.ticket}</HighlightedText>\n <span className=\"ml-1 rtl:mr-1 md;ml-3 rtl:md:mr-3 font-semibold\">\n <UnixDateTime value={data.dateTime} />\n </span>\n </div>\n )\n default:\n return null\n }\n}\n\nexport default ActivityEvent\n"],"names":["ticketStatus","taskLabelColors","UnixDateTime","value","dayjs","HighlightedText","children","className","classNames","ActivityEvent","data","compact","options","node","jsx","_a","_b","UPDATE_TICKET","jsxs","Fragment","Badge","COMMENT","Card","ReactHtmlParser","COMMENT_MENTION","ADD_TAGS_TO_TICKET","label","index","Tag","ADD_FILES_TO_TICKET","_c","file","isLastChild","_d","ASSIGN_TICKET","CREATE_TICKET"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attachment.js","sources":["../../../../../../lib/@ecme/components/view/ChatBox/components/Attachment.tsx"],"sourcesContent":["import fileSizeUnit from '@/utils/fileSizeUnit'\nimport { TbFile } from 'react-icons/tb'\n\nexport type AttatchmentProps = {\n attachments?: Array<{\n type: 'image' | 'video' | 'audio' | 'misc'\n source: File\n mediaUrl: string\n }>\n}\n\nconst Attachment = ({ attachments }: AttatchmentProps) => {\n return (\n <div className=\"flex flex-col\">\n {attachments &&\n attachments.map((attachment, index) => {\n const key = attachment.mediaUrl + index\n\n if (attachment.type === 'image') {\n return (\n <div key={key}>\n <img\n className=\"rounded-xl my-2\"\n src={attachment.mediaUrl}\n alt=\"\"\n />\n </div>\n )\n }\n\n if (attachment.type === 'video') {\n return (\n <div key={key}>\n <a\n href={attachment.mediaUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <video\n className=\"rounded-xl my-2\"\n src={attachment.mediaUrl}\n />\n </a>\n </div>\n )\n }\n\n if (attachment.type === 'audio') {\n return (\n <div key={key}>\n <audio controls>\n <source src={attachment.mediaUrl} />\n Your browser does not support the audio\n element.\n </audio>\n </div>\n )\n }\n\n return (\n <a\n key={key}\n download\n className=\"flex items-center gap-2 p-2 rounded-xl border border-gray-300 dark:border-gray-600 min-w-[250px] bg-white dark:bg-gray-600 my-2 no-underline\"\n href={attachment.mediaUrl}\n >\n <TbFile className=\"text-3xl heading-text\" />\n <div>\n <div className=\"heading-text font-bold\">\n {attachment.source?.name}\n </div>\n <div className=\"heading-text\">\n {fileSizeUnit(attachment.source?.size)}\n </div>\n </div>\n </a>\n )\n })}\n </div>\n )\n}\n\nexport default Attachment\n"],"names":["Attachment","attachments","jsx","attachment","index","key","jsxs","TbFile","_a","_b"],"mappings":";;;AAWA,MAAMA,IAAa,CAAC,EAAE,aAAAC,QAEd,gBAAAC,EAAC,SAAI,WAAU,iBACV,eACGD,EAAY,IAAI,CAACE,GAAYC,MAAU;;AACnC,QAAMC,IAAMF,EAAW,WAAWC;AAElC,SAAID,EAAW,SAAS,4BAEf,OAAA,EACG,UAAA,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,KAAKC,EAAW;AAAA,MAChB,KAAI;AAAA,IAAA;AAAA,EAAA,KAJFE,CAMV,IAIJF,EAAW,SAAS,4BAEf,OAAA,EACG,UAAA,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAMC,EAAW;AAAA,MACjB,QAAO;AAAA,MACP,KAAI;AAAA,MAEJ,UAAA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,KAAKC,EAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACpB;AAAA,EAAA,KATEE,CAWV,IAIJF,EAAW,SAAS,UAEhB,gBAAAD,EAAC,OAAA,EACG,UAAA,gBAAAI,EAAC,SAAA,EAAM,UAAQ,IACX,UAAA;AAAA,IAAA,gBAAAJ,EAAC,UAAA,EAAO,KAAKC,EAAW,SAAA,CAAU;AAAA,IAAE;AAAA,EAAA,EAAA,CAGxC,KALME,CAMV,IAKJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MAEG,UAAQ;AAAA,MACR,WAAU;AAAA,MACV,MAAMH,EAAW;AAAA,MAEjB,UAAA;AAAA,QAAA,gBAAAD,EAACK,GAAA,EAAO,WAAU,wBAAA,CAAwB;AAAA,0BACzC,OAAA,EACG,UAAA;AAAA,UAAA,gBAAAL,EAAC,OAAA,EAAI,WAAU,0BACV,WAAAM,IAAAL,EAAW,WAAX,gBAAAK,EAAmB,MACxB;AAAA,UACA,gBAAAN,EAAC,SAAI,WAAU,gBACV,aAAaO,IAAAN,EAAW,WAAX,gBAAAM,EAAmB,IAAI,EAAA,CACzC;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAbKJ;AAAA,EAAA;
|
|
1
|
+
{"version":3,"file":"Attachment.js","sources":["../../../../../../lib/@ecme/components/view/ChatBox/components/Attachment.tsx"],"sourcesContent":["import fileSizeUnit from '@/utils/fileSizeUnit'\nimport { TbFile } from 'react-icons/tb'\n\nexport type AttatchmentProps = {\n attachments?: Array<{\n type: 'image' | 'video' | 'audio' | 'misc'\n source: File\n mediaUrl: string\n }>\n}\n\nconst Attachment = ({ attachments }: AttatchmentProps) => {\n return (\n <div className=\"flex flex-col\">\n {attachments &&\n attachments.map((attachment, index) => {\n const key = attachment.mediaUrl + index\n\n if (attachment.type === 'image') {\n return (\n <div key={key}>\n <img\n className=\"rounded-xl my-2\"\n src={attachment.mediaUrl}\n alt=\"\"\n />\n </div>\n )\n }\n\n if (attachment.type === 'video') {\n return (\n <div key={key}>\n <a\n href={attachment.mediaUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <video\n className=\"rounded-xl my-2\"\n src={attachment.mediaUrl}\n />\n </a>\n </div>\n )\n }\n\n if (attachment.type === 'audio') {\n return (\n <div key={key}>\n <audio controls>\n <source src={attachment.mediaUrl} />\n Your browser does not support the audio\n element.\n </audio>\n </div>\n )\n }\n\n return (\n <a\n key={key}\n download\n className=\"flex items-center gap-2 p-2 rounded-xl border border-gray-300 dark:border-gray-600 min-w-[250px] bg-white dark:bg-gray-600 my-2 no-underline\"\n href={attachment.mediaUrl}\n >\n <TbFile className=\"text-3xl heading-text\" />\n <div>\n <div className=\"heading-text font-bold\">\n {attachment.source?.name}\n </div>\n <div className=\"heading-text\">\n {fileSizeUnit(attachment.source?.size)}\n </div>\n </div>\n </a>\n )\n })}\n </div>\n )\n}\n\nexport default Attachment\n"],"names":["Attachment","attachments","jsx","attachment","index","key","jsxs","TbFile","_a","_b"],"mappings":";;;AAWA,MAAMA,IAAa,CAAC,EAAE,aAAAC,QAEd,gBAAAC,EAAC,SAAI,WAAU,iBACV,eACGD,EAAY,IAAI,CAACE,GAAYC,MAAU;;AACnC,QAAMC,IAAMF,EAAW,WAAWC;AAElC,SAAID,EAAW,SAAS,4BAEf,OAAA,EACG,UAAA,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,KAAKC,EAAW;AAAA,MAChB,KAAI;AAAA,IAAA;AAAA,EAAA,KAJFE,CAMV,IAIJF,EAAW,SAAS,4BAEf,OAAA,EACG,UAAA,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAMC,EAAW;AAAA,MACjB,QAAO;AAAA,MACP,KAAI;AAAA,MAEJ,UAAA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,KAAKC,EAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACpB;AAAA,EAAA,KATEE,CAWV,IAIJF,EAAW,SAAS,UAEhB,gBAAAD,EAAC,OAAA,EACG,UAAA,gBAAAI,EAAC,SAAA,EAAM,UAAQ,IACX,UAAA;AAAA,IAAA,gBAAAJ,EAAC,UAAA,EAAO,KAAKC,EAAW,SAAA,CAAU;AAAA,IAAE;AAAA,EAAA,EAAA,CAGxC,KALME,CAMV,IAKJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MAEG,UAAQ;AAAA,MACR,WAAU;AAAA,MACV,MAAMH,EAAW;AAAA,MAEjB,UAAA;AAAA,QAAA,gBAAAD,EAACK,GAAA,EAAO,WAAU,wBAAA,CAAwB;AAAA,0BACzC,OAAA,EACG,UAAA;AAAA,UAAA,gBAAAL,EAAC,OAAA,EAAI,WAAU,0BACV,WAAAM,IAAAL,EAAW,WAAX,gBAAAK,EAAmB,MACxB;AAAA,UACA,gBAAAN,EAAC,SAAI,WAAU,gBACV,aAAaO,IAAAN,EAAW,WAAX,gBAAAM,EAAmB,IAAI,EAAA,CACzC;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAbKJ;AAAA,EAAA;AAgBjB,CAAC,EAAA,CACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInput.js","sources":["../../../../../../lib/@ecme/components/view/ChatBox/components/ChatInput.tsx"],"sourcesContent":["import { useState, useRef } from 'react'\nimport Button from '@/components/ui/Button'\nimport Upload from '@/components/ui/Upload'\nimport hooks from '@/components/ui/hooks'\nimport { TbPhotoPlus, TbArrowRight } from 'react-icons/tb'\nimport type { KeyboardEvent, Ref } from 'react'\n\nexport type ChatInputProps = {\n placeholder?: string\n onInputChange?: (payload: { value: string; attachments: File[] }) => void\n ref?: Ref<HTMLInputElement>\n}\n\nconst { useMergeRef } = hooks\n\nconst ChatInput = (props: ChatInputProps) => {\n const [attachments, setAttachments] = useState<File[]>([])\n\n const { placeholder, onInputChange, ref = null } = props\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleInputClear = () => {\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n setAttachments([])\n }\n\n const handleChange = () => {\n if (inputRef.current?.value) {\n onInputChange?.({\n value: inputRef.current?.value || '',\n attachments,\n })\n handleInputClear()\n }\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n onInputChange?.({\n value: inputRef.current?.value || '',\n attachments,\n })\n handleInputClear()\n }\n }\n\n return (\n <div className=\"border-2 border-gray-200 dark:border-gray-700 rounded-xl min-h-[50px] px-3 flex flex-col\">\n {attachments.length > 0 && (\n <Upload\n fileList={attachments}\n fileListClass=\"flex gap-4\"\n fileItemClass=\"flex gap-8\"\n onFileRemove={setAttachments}\n >\n <></>\n </Upload>\n )}\n <div className=\"flex items-center gap-2 w-full h-[50px]\">\n <Upload\n fileList={attachments}\n showList={false}\n onChange={setAttachments}\n >\n <button\n className=\"text-xl heading-text hover:text-primary px-1 py-2\"\n type=\"button\"\n >\n <TbPhotoPlus />\n </button>\n </Upload>\n <input\n ref={useMergeRef(inputRef, ref)}\n className=\"flex-1 h-full placeholder:text-gray-400 bg-transparent focus:outline-none heading-text\"\n placeholder={placeholder}\n onKeyDown={handleKeyDown}\n />\n <Button\n size=\"xs\"\n shape=\"circle\"\n variant=\"solid\"\n icon={<TbArrowRight />}\n onClick={handleChange}\n />\n </div>\n </div>\n )\n}\n\nexport default ChatInput\n"],"names":["useMergeRef","hooks","ChatInput","props","attachments","setAttachments","useState","placeholder","onInputChange","ref","inputRef","useRef","handleInputClear","handleChange","_a","_b","handleKeyDown","event","jsxs","jsx","Upload","Fragment","TbPhotoPlus","Button","TbArrowRight"],"mappings":";;;;;;;;AAaA,MAAM,EAAE,aAAAA,MAAgBC,GAElBC,IAAY,CAACC,MAA0B;AACzC,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAiB,CAAA,CAAE,GAEnD,EAAE,aAAAC,GAAa,eAAAC,GAAe,KAAAC,IAAM,SAASN,GAE7CO,IAAWC,EAAyB,IAAI,GAExCC,IAAmB,MAAM;AAC3B,IAAIF,EAAS,YACTA,EAAS,QAAQ,QAAQ,KAE7BL,EAAe,CAAA,CAAE;AAAA,
|
|
1
|
+
{"version":3,"file":"ChatInput.js","sources":["../../../../../../lib/@ecme/components/view/ChatBox/components/ChatInput.tsx"],"sourcesContent":["import { useState, useRef } from 'react'\nimport Button from '@/components/ui/Button'\nimport Upload from '@/components/ui/Upload'\nimport hooks from '@/components/ui/hooks'\nimport { TbPhotoPlus, TbArrowRight } from 'react-icons/tb'\nimport type { KeyboardEvent, Ref } from 'react'\n\nexport type ChatInputProps = {\n placeholder?: string\n onInputChange?: (payload: { value: string; attachments: File[] }) => void\n ref?: Ref<HTMLInputElement>\n}\n\nconst { useMergeRef } = hooks\n\nconst ChatInput = (props: ChatInputProps) => {\n const [attachments, setAttachments] = useState<File[]>([])\n\n const { placeholder, onInputChange, ref = null } = props\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleInputClear = () => {\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n setAttachments([])\n }\n\n const handleChange = () => {\n if (inputRef.current?.value) {\n onInputChange?.({\n value: inputRef.current?.value || '',\n attachments,\n })\n handleInputClear()\n }\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n onInputChange?.({\n value: inputRef.current?.value || '',\n attachments,\n })\n handleInputClear()\n }\n }\n\n return (\n <div className=\"border-2 border-gray-200 dark:border-gray-700 rounded-xl min-h-[50px] px-3 flex flex-col\">\n {attachments.length > 0 && (\n <Upload\n fileList={attachments}\n fileListClass=\"flex gap-4\"\n fileItemClass=\"flex gap-8\"\n onFileRemove={setAttachments}\n >\n <></>\n </Upload>\n )}\n <div className=\"flex items-center gap-2 w-full h-[50px]\">\n <Upload\n fileList={attachments}\n showList={false}\n onChange={setAttachments}\n >\n <button\n className=\"text-xl heading-text hover:text-primary px-1 py-2\"\n type=\"button\"\n >\n <TbPhotoPlus />\n </button>\n </Upload>\n <input\n ref={useMergeRef(inputRef, ref)}\n className=\"flex-1 h-full placeholder:text-gray-400 bg-transparent focus:outline-none heading-text\"\n placeholder={placeholder}\n onKeyDown={handleKeyDown}\n />\n <Button\n size=\"xs\"\n shape=\"circle\"\n variant=\"solid\"\n icon={<TbArrowRight />}\n onClick={handleChange}\n />\n </div>\n </div>\n )\n}\n\nexport default ChatInput\n"],"names":["useMergeRef","hooks","ChatInput","props","attachments","setAttachments","useState","placeholder","onInputChange","ref","inputRef","useRef","handleInputClear","handleChange","_a","_b","handleKeyDown","event","jsxs","jsx","Upload","Fragment","TbPhotoPlus","Button","TbArrowRight"],"mappings":";;;;;;;;AAaA,MAAM,EAAE,aAAAA,MAAgBC,GAElBC,IAAY,CAACC,MAA0B;AACzC,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAiB,CAAA,CAAE,GAEnD,EAAE,aAAAC,GAAa,eAAAC,GAAe,KAAAC,IAAM,SAASN,GAE7CO,IAAWC,EAAyB,IAAI,GAExCC,IAAmB,MAAM;AAC3B,IAAIF,EAAS,YACTA,EAAS,QAAQ,QAAQ,KAE7BL,EAAe,CAAA,CAAE;AAAA,EACrB,GAEMQ,IAAe,MAAM;;AACvB,KAAIC,IAAAJ,EAAS,YAAT,QAAAI,EAAkB,UAClBN,KAAA,QAAAA,EAAgB;AAAA,MACZ,SAAOO,IAAAL,EAAS,YAAT,gBAAAK,EAAkB,UAAS;AAAA,MAClC,aAAAX;AAAA,IAAA,IAEJQ,EAAA;AAAA,EAER,GAEMI,IAAgB,CAACC,MAA2C;;AAC9D,IAAIA,EAAM,QAAQ,YACdT,KAAA,QAAAA,EAAgB;AAAA,MACZ,SAAOM,IAAAJ,EAAS,YAAT,gBAAAI,EAAkB,UAAS;AAAA,MAClC,aAAAV;AAAA,IAAA,IAEJQ,EAAA;AAAA,EAER;AAEA,SACI,gBAAAM,EAAC,OAAA,EAAI,WAAU,4FACV,UAAA;AAAA,IAAAd,EAAY,SAAS,KAClB,gBAAAe;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,UAAUhB;AAAA,QACV,eAAc;AAAA,QACd,eAAc;AAAA,QACd,cAAcC;AAAA,QAEd,UAAA,gBAAAc,EAAAE,GAAA,CAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,IAGV,gBAAAH,EAAC,OAAA,EAAI,WAAU,2CACX,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACG,UAAUhB;AAAA,UACV,UAAU;AAAA,UACV,UAAUC;AAAA,UAEV,UAAA,gBAAAc;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAU;AAAA,cACV,MAAK;AAAA,cAEL,4BAACG,GAAA,CAAA,CAAY;AAAA,YAAA;AAAA,UAAA;AAAA,QACjB;AAAA,MAAA;AAAA,MAEJ,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKnB,EAAYU,GAAUD,CAAG;AAAA,UAC9B,WAAU;AAAA,UACV,aAAAF;AAAA,UACA,WAAWS;AAAA,QAAA;AAAA,MAAA;AAAA,MAEf,gBAAAG;AAAA,QAACI;AAAA,QAAA;AAAA,UACG,MAAK;AAAA,UACL,OAAM;AAAA,UACN,SAAQ;AAAA,UACR,wBAAOC,GAAA,EAAa;AAAA,UACpB,SAASX;AAAA,QAAA;AAAA,MAAA;AAAA,IACb,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreditCardDialog.js","sources":["../../../../../lib/@ecme/components/view/CreditCardDialog/CreditCardDialog.tsx"],"sourcesContent":["import { useEffect } from 'react'\nimport Input from '@/components/ui/Input'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport { Form, FormItem } from '@/components/ui/Form'\nimport FormCustomFormatInput from '@/components/shared/CustomFormatInput'\nimport FormPatternInput from '@/components/shared/PatternInput'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport type { ZodType } from 'zod'\n\ntype CreditCard = {\n cardHolderName: string\n ccNumber?: string\n cardExpiry?: string\n code?: string\n}\n\ntype FormSchema = CreditCard\n\ntype CreditCardDialogProps = {\n title: string\n dialogOpen: boolean\n onDialogClose: () => void\n defaultValues: CreditCard\n onSubmit: (value: FormSchema) => void\n}\n\nfunction limit(val: string, max: string) {\n if (val.length === 1 && val[0] > max[0]) {\n val = '0' + val\n }\n\n if (val.length === 2) {\n if (Number(val) === 0) {\n val = '01'\n } else if (val > max) {\n val = max\n }\n }\n\n return val\n}\n\nfunction cardExpiryFormat(val: string) {\n const month = limit(val.substring(0, 2), '12')\n const date = limit(val.substring(2, 4), '31')\n\n return month + (date.length ? '/' + date : '')\n}\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n cardHolderName: z.string().min(1, { message: 'Card holder name required' }),\n ccNumber: z\n .string()\n .min(1, 'Credit card number required')\n .refine(\n (value) =>\n /^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/.test(\n value,\n ),\n 'Invalid credit card number',\n ),\n cardExpiry: z\n .string()\n .min(1, { message: 'Card holder name required' })\n .refine(\n (value) => /^(0[1-9]|1[0-2])\\/?([0-9]{4}|[0-9]{2})$/.test(value),\n 'Invalid Date',\n ),\n code: z\n .string()\n .min(1, { message: 'Code required' })\n .refine((value) => /^[0-9]{3}$/.test(value), 'Invalid CVV'),\n})\n\nconst CreditCardDialog = ({\n title,\n dialogOpen,\n onDialogClose,\n defaultValues,\n onSubmit,\n}: CreditCardDialogProps) => {\n const {\n handleSubmit,\n formState: { errors, isSubmitting },\n reset,\n control,\n } = useForm<FormSchema>({\n defaultValues,\n resolver: zodResolver(validationSchema),\n })\n\n useEffect(() => {\n reset(defaultValues)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultValues])\n\n return (\n <Dialog\n isOpen={dialogOpen}\n onClose={onDialogClose}\n onRequestClose={onDialogClose}\n >\n <h4>{title}</h4>\n <Form className=\"mt-6\" onSubmit={handleSubmit(onSubmit)}>\n <FormItem\n label=\"User Name\"\n invalid={Boolean(errors.cardHolderName)}\n errorMessage={errors.cardHolderName?.message}\n >\n <Controller\n name=\"cardHolderName\"\n control={control}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n placeholder=\"Card holder name\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem\n label=\"Credit card number\"\n invalid={Boolean(errors.ccNumber)}\n errorMessage={errors.ccNumber?.message}\n >\n <Controller\n name=\"ccNumber\"\n control={control}\n render={({ field }) => (\n <FormPatternInput\n placeholder=\"•••• •••• •••• ••••\"\n format=\"#### #### #### ####\"\n value={field.value}\n onValueChange={(e) => {\n field.onChange(e.value)\n }}\n />\n )}\n />\n </FormItem>\n <div className=\"grid grid-cols-2 gap-4\">\n <FormItem\n label=\"Expiration date\"\n invalid={Boolean(errors.cardExpiry)}\n errorMessage={errors.cardExpiry?.message}\n >\n <Controller\n name=\"cardExpiry\"\n control={control}\n render={({ field }) => (\n <FormCustomFormatInput\n placeholder=\"••/••\"\n format={cardExpiryFormat}\n value={field.value}\n onValueChange={(e) => {\n field.onChange(e.value)\n }}\n />\n )}\n />\n </FormItem>\n <FormItem\n label=\"CVV\"\n invalid={Boolean(errors.code)}\n errorMessage={errors.code?.message}\n >\n <Controller\n name=\"code\"\n control={control}\n render={({ field }) => (\n <FormPatternInput\n placeholder=\"•••\"\n format=\"###\"\n value={field.value}\n onValueChange={(e) => {\n field.onChange(e.value)\n }}\n />\n )}\n />\n </FormItem>\n </div>\n <Button\n block\n variant=\"solid\"\n type=\"submit\"\n loading={isSubmitting}\n >\n Update\n </Button>\n </Form>\n </Dialog>\n )\n}\n\nexport default CreditCardDialog\n"],"names":["limit","val","max","cardExpiryFormat","month","date","validationSchema","z","value","CreditCardDialog","title","dialogOpen","onDialogClose","defaultValues","onSubmit","handleSubmit","errors","isSubmitting","reset","control","useForm","zodResolver","useEffect","jsxs","Dialog","jsx","Form","FormItem","_a","Controller","field","Input","_b","FormPatternInput","e","_c","FormCustomFormatInput","_d","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreditCardDialog.js","sources":["../../../../../lib/@ecme/components/view/CreditCardDialog/CreditCardDialog.tsx"],"sourcesContent":["import { useEffect } from 'react'\nimport Input from '@/components/ui/Input'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport { Form, FormItem } from '@/components/ui/Form'\nimport FormCustomFormatInput from '@/components/shared/CustomFormatInput'\nimport FormPatternInput from '@/components/shared/PatternInput'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport type { ZodType } from 'zod'\n\ntype CreditCard = {\n cardHolderName: string\n ccNumber?: string\n cardExpiry?: string\n code?: string\n}\n\ntype FormSchema = CreditCard\n\ntype CreditCardDialogProps = {\n title: string\n dialogOpen: boolean\n onDialogClose: () => void\n defaultValues: CreditCard\n onSubmit: (value: FormSchema) => void\n}\n\nfunction limit(val: string, max: string) {\n if (val.length === 1 && val[0] > max[0]) {\n val = '0' + val\n }\n\n if (val.length === 2) {\n if (Number(val) === 0) {\n val = '01'\n } else if (val > max) {\n val = max\n }\n }\n\n return val\n}\n\nfunction cardExpiryFormat(val: string) {\n const month = limit(val.substring(0, 2), '12')\n const date = limit(val.substring(2, 4), '31')\n\n return month + (date.length ? '/' + date : '')\n}\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n cardHolderName: z.string().min(1, { message: 'Card holder name required' }),\n ccNumber: z\n .string()\n .min(1, 'Credit card number required')\n .refine(\n (value) =>\n /^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/.test(\n value,\n ),\n 'Invalid credit card number',\n ),\n cardExpiry: z\n .string()\n .min(1, { message: 'Card holder name required' })\n .refine(\n (value) => /^(0[1-9]|1[0-2])\\/?([0-9]{4}|[0-9]{2})$/.test(value),\n 'Invalid Date',\n ),\n code: z\n .string()\n .min(1, { message: 'Code required' })\n .refine((value) => /^[0-9]{3}$/.test(value), 'Invalid CVV'),\n})\n\nconst CreditCardDialog = ({\n title,\n dialogOpen,\n onDialogClose,\n defaultValues,\n onSubmit,\n}: CreditCardDialogProps) => {\n const {\n handleSubmit,\n formState: { errors, isSubmitting },\n reset,\n control,\n } = useForm<FormSchema>({\n defaultValues,\n resolver: zodResolver(validationSchema),\n })\n\n useEffect(() => {\n reset(defaultValues)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultValues])\n\n return (\n <Dialog\n isOpen={dialogOpen}\n onClose={onDialogClose}\n onRequestClose={onDialogClose}\n >\n <h4>{title}</h4>\n <Form className=\"mt-6\" onSubmit={handleSubmit(onSubmit)}>\n <FormItem\n label=\"User Name\"\n invalid={Boolean(errors.cardHolderName)}\n errorMessage={errors.cardHolderName?.message}\n >\n <Controller\n name=\"cardHolderName\"\n control={control}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n placeholder=\"Card holder name\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem\n label=\"Credit card number\"\n invalid={Boolean(errors.ccNumber)}\n errorMessage={errors.ccNumber?.message}\n >\n <Controller\n name=\"ccNumber\"\n control={control}\n render={({ field }) => (\n <FormPatternInput\n placeholder=\"•••• •••• •••• ••••\"\n format=\"#### #### #### ####\"\n value={field.value}\n onValueChange={(e) => {\n field.onChange(e.value)\n }}\n />\n )}\n />\n </FormItem>\n <div className=\"grid grid-cols-2 gap-4\">\n <FormItem\n label=\"Expiration date\"\n invalid={Boolean(errors.cardExpiry)}\n errorMessage={errors.cardExpiry?.message}\n >\n <Controller\n name=\"cardExpiry\"\n control={control}\n render={({ field }) => (\n <FormCustomFormatInput\n placeholder=\"••/••\"\n format={cardExpiryFormat}\n value={field.value}\n onValueChange={(e) => {\n field.onChange(e.value)\n }}\n />\n )}\n />\n </FormItem>\n <FormItem\n label=\"CVV\"\n invalid={Boolean(errors.code)}\n errorMessage={errors.code?.message}\n >\n <Controller\n name=\"code\"\n control={control}\n render={({ field }) => (\n <FormPatternInput\n placeholder=\"•••\"\n format=\"###\"\n value={field.value}\n onValueChange={(e) => {\n field.onChange(e.value)\n }}\n />\n )}\n />\n </FormItem>\n </div>\n <Button\n block\n variant=\"solid\"\n type=\"submit\"\n loading={isSubmitting}\n >\n Update\n </Button>\n </Form>\n </Dialog>\n )\n}\n\nexport default CreditCardDialog\n"],"names":["limit","val","max","cardExpiryFormat","month","date","validationSchema","z","value","CreditCardDialog","title","dialogOpen","onDialogClose","defaultValues","onSubmit","handleSubmit","errors","isSubmitting","reset","control","useForm","zodResolver","useEffect","jsxs","Dialog","jsx","Form","FormItem","_a","Controller","field","Input","_b","FormPatternInput","e","_c","FormCustomFormatInput","_d","Button"],"mappings":"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"}
|