@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.
Files changed (478) hide show
  1. package/dist/@ecme/assets/styles/app.css +1 -1
  2. package/dist/@ecme/assets/styles/components/_input.css +1 -1
  3. package/dist/@ecme/assets/styles/components/_select.css +1 -1
  4. package/dist/@ecme/assets/styles/components/_tabs.css +1 -1
  5. package/dist/@ecme/assets/styles/components/index.css +1 -1
  6. package/dist/@ecme/assets/styles/tailwind/index.css +1 -1
  7. package/dist/@ecme/auth/AuthContext.js.map +1 -1
  8. package/dist/@ecme/auth/AuthProvider.js.map +1 -1
  9. package/dist/@ecme/components/docs/DemoCard/CardFooter.js.map +1 -1
  10. package/dist/@ecme/components/docs/DemoCard/DemoCard.js.map +1 -1
  11. package/dist/@ecme/components/docs/DocumentationNav.js.map +1 -1
  12. package/dist/@ecme/components/layouts/AuthLayout/AuthLayout.js.map +1 -1
  13. package/dist/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.js.map +1 -1
  14. package/dist/@ecme/components/route/AppRoute.js.map +1 -1
  15. package/dist/@ecme/components/shared/AbbreviateNumber.js.map +1 -1
  16. package/dist/@ecme/components/shared/Affix.js.map +1 -1
  17. package/dist/@ecme/components/shared/AutoComplete.js.map +1 -1
  18. package/dist/@ecme/components/shared/CalendarView.js.map +1 -1
  19. package/dist/@ecme/components/shared/Chart.js.map +1 -1
  20. package/dist/@ecme/components/shared/ConfirmDialog.js.map +1 -1
  21. package/dist/@ecme/components/shared/DataTable.js.map +1 -1
  22. package/dist/@ecme/components/shared/DebounceInput.js.map +1 -1
  23. package/dist/@ecme/components/shared/GanttChart/TaskListTable.js.map +1 -1
  24. package/dist/@ecme/components/shared/GanttChart/getStartEndDateForProject.js.map +1 -1
  25. package/dist/@ecme/components/shared/GanttChart/tasksPreProcess.js.map +1 -1
  26. package/dist/@ecme/components/shared/Masonry/breakpoints.js.map +1 -1
  27. package/dist/@ecme/components/shared/Masonry/useCoulmnsCount.js.map +1 -1
  28. package/dist/@ecme/components/shared/Masonry/useMasonry.js.map +1 -1
  29. package/dist/@ecme/components/shared/Masonry/useWindowWidth.js.map +1 -1
  30. package/dist/@ecme/components/shared/OtpInput.js.map +1 -1
  31. package/dist/@ecme/components/shared/PasswordInput.js.map +1 -1
  32. package/dist/@ecme/components/shared/RegionMap.js.map +1 -1
  33. package/dist/@ecme/components/shared/RichTextEditor/RichTextEditor.js.map +1 -1
  34. package/dist/@ecme/components/shared/StickyFooter.js.map +1 -1
  35. package/dist/@ecme/components/shared/StrictModeDroppable.js.map +1 -1
  36. package/dist/@ecme/components/shared/ToggleDrawer.js.map +1 -1
  37. package/dist/@ecme/components/shared/UsersAvatarGroup.js.map +1 -1
  38. package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdown.js.map +1 -1
  39. package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.js.map +1 -1
  40. package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.js.map +1 -1
  41. package/dist/@ecme/components/template/LanguageSelector.js.map +1 -1
  42. package/dist/@ecme/components/template/MobileNav.js.map +1 -1
  43. package/dist/@ecme/components/template/Notification/Notification.js.map +1 -1
  44. package/dist/@ecme/components/template/Search.js.map +1 -1
  45. package/dist/@ecme/components/template/SideNavToggle.js.map +1 -1
  46. package/dist/@ecme/components/template/SidePanel/SidePanel.js.map +1 -1
  47. package/dist/@ecme/components/template/StackedSideNav/StackedSideNav.js.map +1 -1
  48. package/dist/@ecme/components/template/StackedSideNav/StackedSideNavMini.js.map +1 -1
  49. package/dist/@ecme/components/template/StackedSideNav/StackedSideNavSecondary.js.map +1 -1
  50. package/dist/@ecme/components/template/ThemeConfigurator/CopyButton.js.map +1 -1
  51. package/dist/@ecme/components/template/ThemeConfigurator/DirectionSwitcher.js.map +1 -1
  52. package/dist/@ecme/components/template/ThemeConfigurator/LayoutSwitcher.js.map +1 -1
  53. package/dist/@ecme/components/template/ThemeConfigurator/ModeSwitcher.js.map +1 -1
  54. package/dist/@ecme/components/template/UserProfileDropdown.js.map +1 -1
  55. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.js.map +1 -1
  56. package/dist/@ecme/components/ui/Alert/Alert.js.map +1 -1
  57. package/dist/@ecme/components/ui/Avatar/Avatar.js.map +1 -1
  58. package/dist/@ecme/components/ui/Avatar/AvatarGroup.js.map +1 -1
  59. package/dist/@ecme/components/ui/Button/Button.js.map +1 -1
  60. package/dist/@ecme/components/ui/Card/Card.js.map +1 -1
  61. package/dist/@ecme/components/ui/Checkbox/Checkbox.js.map +1 -1
  62. package/dist/@ecme/components/ui/Checkbox/Group.js.map +1 -1
  63. package/dist/@ecme/components/ui/DatePicker/BasePicker.js.map +1 -1
  64. package/dist/@ecme/components/ui/DatePicker/Calendar.js.map +1 -1
  65. package/dist/@ecme/components/ui/DatePicker/CalendarBase.js.map +1 -1
  66. package/dist/@ecme/components/ui/DatePicker/DatePicker.js.map +1 -1
  67. package/dist/@ecme/components/ui/DatePicker/DatePickerRange.js.map +1 -1
  68. package/dist/@ecme/components/ui/DatePicker/DateTimepicker.js.map +1 -1
  69. package/dist/@ecme/components/ui/DatePicker/RangeCalendar.js.map +1 -1
  70. package/dist/@ecme/components/ui/DatePicker/tables/DateTable.js.map +1 -1
  71. package/dist/@ecme/components/ui/DatePicker/tables/MonthTable.js.map +1 -1
  72. package/dist/@ecme/components/ui/DatePicker/tables/YearTable.js.map +1 -1
  73. package/dist/@ecme/components/ui/DatePicker/tables/components/Month.js.map +1 -1
  74. package/dist/@ecme/components/ui/DatePicker/utils/getDecadeRange.js.map +1 -1
  75. package/dist/@ecme/components/ui/DatePicker/utils/getMonthDays.js.map +1 -1
  76. package/dist/@ecme/components/ui/Dialog/Dialog.js.map +1 -1
  77. package/dist/@ecme/components/ui/Drawer/Drawer.js.map +1 -1
  78. package/dist/@ecme/components/ui/Dropdown/DropdownItem.js.map +1 -1
  79. package/dist/@ecme/components/ui/Dropdown/DropdownMenu.js.map +1 -1
  80. package/dist/@ecme/components/ui/Dropdown/context/menuContext.js.map +1 -1
  81. package/dist/@ecme/components/ui/Form/FormItem.js.map +1 -1
  82. package/dist/@ecme/components/ui/Input/Input.js.map +1 -1
  83. package/dist/@ecme/components/ui/Menu/MenuCollapse.js.map +1 -1
  84. package/dist/@ecme/components/ui/MenuItem/index.js.map +1 -1
  85. package/dist/@ecme/components/ui/Notification/Notification.js.map +1 -1
  86. package/dist/@ecme/components/ui/Pagination/Next.js.map +1 -1
  87. package/dist/@ecme/components/ui/Pagination/Pagers.js.map +1 -1
  88. package/dist/@ecme/components/ui/Pagination/Pagination.js.map +1 -1
  89. package/dist/@ecme/components/ui/Pagination/Prev.js.map +1 -1
  90. package/dist/@ecme/components/ui/Progress/Circle.js.map +1 -1
  91. package/dist/@ecme/components/ui/Progress/Progress.js.map +1 -1
  92. package/dist/@ecme/components/ui/Radio/Group.js.map +1 -1
  93. package/dist/@ecme/components/ui/Radio/Radio.js.map +1 -1
  94. package/dist/@ecme/components/ui/Segment/Segment.js.map +1 -1
  95. package/dist/@ecme/components/ui/Segment/SegmentItem.js.map +1 -1
  96. package/dist/@ecme/components/ui/Select/Select.js.map +1 -1
  97. package/dist/@ecme/components/ui/Steps/StepItem.js.map +1 -1
  98. package/dist/@ecme/components/ui/Steps/Steps.js.map +1 -1
  99. package/dist/@ecme/components/ui/Switcher/Switcher.js.map +1 -1
  100. package/dist/@ecme/components/ui/Tabs/TabNav.js.map +1 -1
  101. package/dist/@ecme/components/ui/TimeInput/AmPmInput.js.map +1 -1
  102. package/dist/@ecme/components/ui/TimeInput/TimeInput.js.map +1 -1
  103. package/dist/@ecme/components/ui/TimeInput/TimeInputField.js.map +1 -1
  104. package/dist/@ecme/components/ui/TimeInput/TimeInputRange.js.map +1 -1
  105. package/dist/@ecme/components/ui/TimeInput/utils/createAmPmHandler.js.map +1 -1
  106. package/dist/@ecme/components/ui/TimeInput/utils/createTimeHandler.js.map +1 -1
  107. package/dist/@ecme/components/ui/Tooltip/Arrow.js.map +1 -1
  108. package/dist/@ecme/components/ui/Tooltip/Tooltip.js.map +1 -1
  109. package/dist/@ecme/components/ui/Upload/Upload.js.map +1 -1
  110. package/dist/@ecme/components/ui/hooks/useCallbackRef.js.map +1 -1
  111. package/dist/@ecme/components/ui/hooks/useControllableState.js.map +1 -1
  112. package/dist/@ecme/components/ui/hooks/useDidUpdate.js.map +1 -1
  113. package/dist/@ecme/components/ui/hooks/useMergeRef.js.map +1 -1
  114. package/dist/@ecme/components/ui/hooks/useRootClose.js.map +1 -1
  115. package/dist/@ecme/components/ui/hooks/useTimeout.js.map +1 -1
  116. package/dist/@ecme/components/ui/hooks/useWindowSize.js.map +1 -1
  117. package/dist/@ecme/components/ui/toast/ToastWrapper.js.map +1 -1
  118. package/dist/@ecme/components/ui/toast/toast.js.map +1 -1
  119. package/dist/@ecme/components/ui/utils/chainedFunction.js.map +1 -1
  120. package/dist/@ecme/components/ui/utils/mapCloneElement.js.map +1 -1
  121. package/dist/@ecme/components/view/Activity/ActivityAvatar.js.map +1 -1
  122. package/dist/@ecme/components/view/Activity/ActivityEvent.js.map +1 -1
  123. package/dist/@ecme/components/view/ChatBox/components/Attachment.js.map +1 -1
  124. package/dist/@ecme/components/view/ChatBox/components/ChatInput.js.map +1 -1
  125. package/dist/@ecme/components/view/CreditCardDialog/CreditCardDialog.js.map +1 -1
  126. package/dist/@ecme/configs/chart.config.js.map +1 -1
  127. package/dist/@ecme/constants/theme.constant.js +23 -23
  128. package/dist/@ecme/constants/theme.constant.js.map +1 -1
  129. package/dist/@ecme/mock/fakeApi/accountsFakeApi.js.map +1 -1
  130. package/dist/@ecme/mock/fakeApi/aiFakeApi.js.map +1 -1
  131. package/dist/@ecme/mock/fakeApi/authFakeApi.js.map +1 -1
  132. package/dist/@ecme/mock/fakeApi/commonFakeApi.js.map +1 -1
  133. package/dist/@ecme/mock/fakeApi/customersFakeApi.js.map +1 -1
  134. package/dist/@ecme/mock/fakeApi/fileFakeApi.js.map +1 -1
  135. package/dist/@ecme/mock/fakeApi/helpCenterFakeApi.js.map +1 -1
  136. package/dist/@ecme/mock/fakeApi/ordersFakeApi.js.map +1 -1
  137. package/dist/@ecme/mock/fakeApi/productsFakeApi.js.map +1 -1
  138. package/dist/@ecme/services/ApiService.js.map +1 -1
  139. package/dist/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.js.map +1 -1
  140. package/dist/@ecme/store/authStore.js.map +1 -1
  141. package/dist/@ecme/store/localeStore.js.map +1 -1
  142. package/dist/@ecme/utils/cookiesStorage.js.map +1 -1
  143. package/dist/@ecme/utils/hoc/withHeaderItem.js.map +1 -1
  144. package/dist/@ecme/utils/hooks/useDarkMode.js.map +1 -1
  145. package/dist/@ecme/utils/hooks/useDirection.js.map +1 -1
  146. package/dist/@ecme/utils/hooks/useInfiniteScroll.js.map +1 -1
  147. package/dist/@ecme/utils/hooks/useInterval .js.map +1 -1
  148. package/dist/@ecme/utils/hooks/useLayoutGap.js.map +1 -1
  149. package/dist/@ecme/utils/hooks/useLocale.js.map +1 -1
  150. package/dist/@ecme/utils/hooks/useMenuActive.js.map +1 -1
  151. package/dist/@ecme/utils/hooks/useRandomBgColor.js.map +1 -1
  152. package/dist/@ecme/utils/hooks/useResponsive.js.map +1 -1
  153. package/dist/@ecme/utils/hooks/useScrollTop.js.map +1 -1
  154. package/dist/@ecme/utils/hooks/useThemeSchema.js.map +1 -1
  155. package/dist/@ecme/utils/hooks/useTimeOutMessage.js.map +1 -1
  156. package/dist/@ecme/utils/reorderDragable.js.map +1 -1
  157. package/dist/@ecme/utils/sortBy.js.map +1 -1
  158. package/dist/@ecme/utils/wildCardSearch.js.map +1 -1
  159. package/dist/@ecme/views/auth/ForgotPassword/ForgotPassword.js.map +1 -1
  160. package/dist/@ecme/views/auth/ForgotPassword/components/ForgotPasswordForm.js.map +1 -1
  161. package/dist/@ecme/views/auth/OtpVerification/OtpVerification.js.map +1 -1
  162. package/dist/@ecme/views/auth/OtpVerification/components/OtpVerificationForm.js.map +1 -1
  163. package/dist/@ecme/views/auth/ResetPassword/ResetPassword.js.map +1 -1
  164. package/dist/@ecme/views/auth/ResetPassword/components/ResetPasswordForm.js.map +1 -1
  165. package/dist/@ecme/views/auth/SignIn/components/OauthSignIn.js.map +1 -1
  166. package/dist/@ecme/views/auth/SignIn/components/SignInForm.js.map +1 -1
  167. package/dist/@ecme/views/auth/SignUp/components/SignUpForm.js.map +1 -1
  168. package/dist/@ecme/views/concepts/accounts/ActivityLog/ActivityLog.js.map +1 -1
  169. package/dist/@ecme/views/concepts/accounts/Pricing/components/PaymentDialog.js.map +1 -1
  170. package/dist/@ecme/views/concepts/accounts/Pricing/components/Plans.js.map +1 -1
  171. package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsAccessDialog.js.map +1 -1
  172. package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsGroups.js.map +1 -1
  173. package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserAction.js.map +1 -1
  174. package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserSelected.js.map +1 -1
  175. package/dist/@ecme/views/concepts/accounts/RolesPermissions/components/RolesPermissionsUserTable.js.map +1 -1
  176. package/dist/@ecme/views/concepts/accounts/RolesPermissions/store/rolePermissionsStore.js.map +1 -1
  177. package/dist/@ecme/views/concepts/accounts/Settings/components/BillingHistory.js.map +1 -1
  178. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingIntegration.js.map +1 -1
  179. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingMobileMenu.js.map +1 -1
  180. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsBilling.js.map +1 -1
  181. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsMenu.js.map +1 -1
  182. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsNotification.js.map +1 -1
  183. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsProfile.js.map +1 -1
  184. package/dist/@ecme/views/concepts/accounts/Settings/components/SettingsSecurity.js.map +1 -1
  185. package/dist/@ecme/views/concepts/ai/Chat/components/ChatCustomAction.js.map +1 -1
  186. package/dist/@ecme/views/concepts/ai/Chat/components/ChatCustomContent.js.map +1 -1
  187. package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistory.js.map +1 -1
  188. package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.js.map +1 -1
  189. package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.js.map +1 -1
  190. package/dist/@ecme/views/concepts/ai/Chat/components/ChatSideNav.js.map +1 -1
  191. package/dist/@ecme/views/concepts/ai/Chat/components/ChatView.js.map +1 -1
  192. package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatSend.js.map +1 -1
  193. package/dist/@ecme/views/concepts/ai/Chat/store/generativeChatStore.js.map +1 -1
  194. package/dist/@ecme/views/concepts/ai/Image/components/Gallery.js.map +1 -1
  195. package/dist/@ecme/views/concepts/ai/Image/components/GeneratorPrompt.js.map +1 -1
  196. package/dist/@ecme/views/concepts/ai/Image/components/ImageDialog.js.map +1 -1
  197. package/dist/@ecme/views/concepts/ai/Image/store/imageGeneratorStore.js.map +1 -1
  198. package/dist/@ecme/views/concepts/calendar/Calendar/Calendar.js.map +1 -1
  199. package/dist/@ecme/views/concepts/calendar/Calendar/components/EventDialog.js.map +1 -1
  200. package/dist/@ecme/views/concepts/chat/Chat/components/ChatAction.js.map +1 -1
  201. package/dist/@ecme/views/concepts/chat/Chat/components/ChatBody.js.map +1 -1
  202. package/dist/@ecme/views/concepts/chat/Chat/components/ChatList.js.map +1 -1
  203. package/dist/@ecme/views/concepts/chat/Chat/components/ContactInfoDrawer.js.map +1 -1
  204. package/dist/@ecme/views/concepts/chat/Chat/components/NewChat.js.map +1 -1
  205. package/dist/@ecme/views/concepts/chat/Chat/hooks/useChat.js.map +1 -1
  206. package/dist/@ecme/views/concepts/chat/Chat/store/chatStore.js.map +1 -1
  207. package/dist/@ecme/views/concepts/customers/CustomerCreate/CustomerCreate.js.map +1 -1
  208. package/dist/@ecme/views/concepts/customers/CustomerDetails/ActivitySection.js.map +1 -1
  209. package/dist/@ecme/views/concepts/customers/CustomerDetails/BillingSection.js.map +1 -1
  210. package/dist/@ecme/views/concepts/customers/CustomerDetails/ProfileSection.js.map +1 -1
  211. package/dist/@ecme/views/concepts/customers/CustomerEdit/CustomerEdit.js.map +1 -1
  212. package/dist/@ecme/views/concepts/customers/CustomerForm/AccountSection.js.map +1 -1
  213. package/dist/@ecme/views/concepts/customers/CustomerForm/CustomerForm.js.map +1 -1
  214. package/dist/@ecme/views/concepts/customers/CustomerForm/OverviewSection.js.map +1 -1
  215. package/dist/@ecme/views/concepts/customers/CustomerForm/ProfileImageSection.js.map +1 -1
  216. package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListSelected.js.map +1 -1
  217. package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListTable.js.map +1 -1
  218. package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomerListTableFilter.js.map +1 -1
  219. package/dist/@ecme/views/concepts/customers/CustomerList/components/CustomersListTableTools.js.map +1 -1
  220. package/dist/@ecme/views/concepts/customers/CustomerList/store/customerListStore.js.map +1 -1
  221. package/dist/@ecme/views/concepts/files/FileManager/FileManager.js.map +1 -1
  222. package/dist/@ecme/views/concepts/files/FileManager/components/FileDetails.js.map +1 -1
  223. package/dist/@ecme/views/concepts/files/FileManager/components/FileItemDropdown.js.map +1 -1
  224. package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerDeleteDialog.js.map +1 -1
  225. package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerHeader.js.map +1 -1
  226. package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerInviteDialog.js.map +1 -1
  227. package/dist/@ecme/views/concepts/files/FileManager/components/FileManagerRenameDialog.js.map +1 -1
  228. package/dist/@ecme/views/concepts/files/FileManager/components/UploadFile.js.map +1 -1
  229. package/dist/@ecme/views/concepts/files/FileManager/store/useFileManagerStore.js.map +1 -1
  230. package/dist/@ecme/views/concepts/help-center/Article/components/ArticleAction.js.map +1 -1
  231. package/dist/@ecme/views/concepts/help-center/EditArticle/components/EditArticleFooter.js.map +1 -1
  232. package/dist/@ecme/views/concepts/help-center/EditArticle/components/EditArticleHeader.js.map +1 -1
  233. package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleListSearch.js.map +1 -1
  234. package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleListSelected.js.map +1 -1
  235. package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleListTable.js.map +1 -1
  236. package/dist/@ecme/views/concepts/help-center/ManageArticle/components/ArticleTableFilter.js.map +1 -1
  237. package/dist/@ecme/views/concepts/help-center/ManageArticle/store/manageArticleStore.js.map +1 -1
  238. package/dist/@ecme/views/concepts/help-center/SupportHub/components/Article.js.map +1 -1
  239. package/dist/@ecme/views/concepts/help-center/SupportHub/components/ArticleList.js.map +1 -1
  240. package/dist/@ecme/views/concepts/help-center/SupportHub/components/Categories.js.map +1 -1
  241. package/dist/@ecme/views/concepts/help-center/SupportHub/components/TopSection.js.map +1 -1
  242. package/dist/@ecme/views/concepts/mail/Mail/components/MailBody.js.map +1 -1
  243. package/dist/@ecme/views/concepts/mail/Mail/components/MailBodyTop.js.map +1 -1
  244. package/dist/@ecme/views/concepts/mail/Mail/components/MailDetailAction.js.map +1 -1
  245. package/dist/@ecme/views/concepts/mail/Mail/components/MailDetailTitle.js.map +1 -1
  246. package/dist/@ecme/views/concepts/mail/Mail/components/MailEditor.js.map +1 -1
  247. package/dist/@ecme/views/concepts/mail/Mail/components/MailList.js.map +1 -1
  248. package/dist/@ecme/views/concepts/mail/Mail/components/MailSidebar.js.map +1 -1
  249. package/dist/@ecme/views/concepts/mail/Mail/hooks/useMail.js.map +1 -1
  250. package/dist/@ecme/views/concepts/mail/Mail/hooks/useMailAction.js.map +1 -1
  251. package/dist/@ecme/views/concepts/orders/OrderCreate/OrderCreate.js.map +1 -1
  252. package/dist/@ecme/views/concepts/orders/OrderDetails/components/OrderDetailHeaderExtra.js.map +1 -1
  253. package/dist/@ecme/views/concepts/orders/OrderEdit/OrderEdit.js.map +1 -1
  254. package/dist/@ecme/views/concepts/orders/OrderForm/OrderForm.js.map +1 -1
  255. package/dist/@ecme/views/concepts/orders/OrderForm/components/CustomerDetailSection.js.map +1 -1
  256. package/dist/@ecme/views/concepts/orders/OrderForm/components/PaymentMethodSection.js.map +1 -1
  257. package/dist/@ecme/views/concepts/orders/OrderForm/components/ProductSelectSection.js.map +1 -1
  258. package/dist/@ecme/views/concepts/orders/OrderList/components/OrderListTable.js.map +1 -1
  259. package/dist/@ecme/views/concepts/orders/OrderList/components/OrderListTableFilter.js.map +1 -1
  260. package/dist/@ecme/views/concepts/orders/OrderList/components/OrderListTableTools.js.map +1 -1
  261. package/dist/@ecme/views/concepts/products/ProductCreate/ProductCreate.js.map +1 -1
  262. package/dist/@ecme/views/concepts/products/ProductEdit/ProducEdit.js.map +1 -1
  263. package/dist/@ecme/views/concepts/products/ProductForm/ProductForm.js.map +1 -1
  264. package/dist/@ecme/views/concepts/products/ProductForm/components/GeneralSection.js.map +1 -1
  265. package/dist/@ecme/views/concepts/products/ProductForm/components/ImageSection.js.map +1 -1
  266. package/dist/@ecme/views/concepts/products/ProductForm/components/PricingSection.js.map +1 -1
  267. package/dist/@ecme/views/concepts/products/ProductList/components/ProducListTableTools.js.map +1 -1
  268. package/dist/@ecme/views/concepts/products/ProductList/components/ProductListSearch.js.map +1 -1
  269. package/dist/@ecme/views/concepts/products/ProductList/components/ProductListSelected.js.map +1 -1
  270. package/dist/@ecme/views/concepts/products/ProductList/components/ProductListTable.js.map +1 -1
  271. package/dist/@ecme/views/concepts/products/ProductList/components/ProductTableFilter.js.map +1 -1
  272. package/dist/@ecme/views/concepts/products/ProductList/store/productListStore.js.map +1 -1
  273. package/dist/@ecme/views/concepts/projects/Issue/Issue.js.map +1 -1
  274. package/dist/@ecme/views/concepts/projects/Issue/components/IssueBody.js.map +1 -1
  275. package/dist/@ecme/views/concepts/projects/Issue/components/IssueFooter.js.map +1 -1
  276. package/dist/@ecme/views/concepts/projects/Issue/components/IssueHeader.js.map +1 -1
  277. package/dist/@ecme/views/concepts/projects/ProjectDetails/ProjectDetails.js.map +1 -1
  278. package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsActivity.js.map +1 -1
  279. package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsHeader.js.map +1 -1
  280. package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsNavigation.js.map +1 -1
  281. package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsSetting.js.map +1 -1
  282. package/dist/@ecme/views/concepts/projects/ProjectDetails/components/ProjectDetailsTask.js.map +1 -1
  283. package/dist/@ecme/views/concepts/projects/ProjectList/components/NewProjectForm.js.map +1 -1
  284. package/dist/@ecme/views/concepts/projects/ProjectList/components/NewTaskField.js.map +1 -1
  285. package/dist/@ecme/views/concepts/projects/ProjectList/components/ProjectListContent.js.map +1 -1
  286. package/dist/@ecme/views/concepts/projects/ProjectList/components/ProjectListHeader.js.map +1 -1
  287. package/dist/@ecme/views/concepts/projects/ProjectList/hooks/useProjectList.js.map +1 -1
  288. package/dist/@ecme/views/concepts/projects/ProjectList/store/projectListStore.js.map +1 -1
  289. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/AddNewColumnContent.js.map +1 -1
  290. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/AddNewMemberContent.js.map +1 -1
  291. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/AddNewTicketContent.js.map +1 -1
  292. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/Board.js.map +1 -1
  293. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/BoardCard.js.map +1 -1
  294. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/BoardTitle.js.map +1 -1
  295. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/ScrumBoardHeader.js.map +1 -1
  296. package/dist/@ecme/views/concepts/projects/ScrumBoard/components/TicketContent.js.map +1 -1
  297. package/dist/@ecme/views/concepts/projects/Tasks/Tasks.js.map +1 -1
  298. package/dist/@ecme/views/concepts/projects/Tasks/components/AddTask.js.map +1 -1
  299. package/dist/@ecme/views/concepts/projects/Tasks/components/TaskList.js.map +1 -1
  300. package/dist/@ecme/views/concepts/projects/Tasks/components/TasksHeader.js.map +1 -1
  301. package/dist/@ecme/views/dashboards/AnalyticDashboard/components/AnalyticChart.js.map +1 -1
  302. package/dist/@ecme/views/dashboards/AnalyticDashboard/components/AnalyticHeader.js.map +1 -1
  303. package/dist/@ecme/views/dashboards/AnalyticDashboard/components/DeviceSession.js.map +1 -1
  304. package/dist/@ecme/views/dashboards/AnalyticDashboard/components/Traffic.js.map +1 -1
  305. package/dist/@ecme/views/dashboards/EcommerceDashboard/components/Overview.js.map +1 -1
  306. package/dist/@ecme/views/dashboards/EcommerceDashboard/components/RecentOrder.js.map +1 -1
  307. package/dist/@ecme/views/dashboards/EcommerceDashboard/components/RevenueByChannel.js.map +1 -1
  308. package/dist/@ecme/views/dashboards/EcommerceDashboard/components/SalesTarget.js.map +1 -1
  309. package/dist/@ecme/views/dashboards/EcommerceDashboard/components/TopProduct.js.map +1 -1
  310. package/dist/@ecme/views/dashboards/MarketingDashboard/components/AdsPerformance.js.map +1 -1
  311. package/dist/@ecme/views/dashboards/MarketingDashboard/components/CreateCampaign.js.map +1 -1
  312. package/dist/@ecme/views/dashboards/MarketingDashboard/components/LeadPerformance.js.map +1 -1
  313. package/dist/@ecme/views/dashboards/MarketingDashboard/components/RecentCampaign.js.map +1 -1
  314. package/dist/@ecme/views/dashboards/ProjectDashboard/components/CreateEventDialog.js.map +1 -1
  315. package/dist/@ecme/views/dashboards/ProjectDashboard/components/CurrentTasks.js.map +1 -1
  316. package/dist/@ecme/views/dashboards/ProjectDashboard/components/Schedule.js.map +1 -1
  317. package/dist/@ecme/views/dashboards/ProjectDashboard/components/UpcomingSchedule.js.map +1 -1
  318. package/dist/@ecme/views/guide/Documentations/components/Layouts.js.map +1 -1
  319. package/dist/@ecme/views/guide/SharedComponentsDoc/components/CalendarViewDoc/Example.js.map +1 -1
  320. package/dist/@ecme/views/guide/SharedComponentsDoc/components/ConfirmDialogDoc/Example.js.map +1 -1
  321. package/dist/@ecme/views/guide/SharedComponentsDoc/components/CustomFormatInputDoc/Simple.js.map +1 -1
  322. package/dist/@ecme/views/guide/SharedComponentsDoc/components/CustomFormatInputDoc/WithForm.js.map +1 -1
  323. package/dist/@ecme/views/guide/SharedComponentsDoc/components/DataTableDoc/Basic.js.map +1 -1
  324. package/dist/@ecme/views/guide/SharedComponentsDoc/components/DataTableDoc/Checkable.js.map +1 -1
  325. package/dist/@ecme/views/guide/SharedComponentsDoc/components/DataTableDoc/Query.js.map +1 -1
  326. package/dist/@ecme/views/guide/SharedComponentsDoc/components/DebounceInputDoc/Example.js.map +1 -1
  327. package/dist/@ecme/views/guide/SharedComponentsDoc/components/GanttChartDoc/Example.js.map +1 -1
  328. package/dist/@ecme/views/guide/SharedComponentsDoc/components/MasonryDoc/Basic.js.map +1 -1
  329. package/dist/@ecme/views/guide/SharedComponentsDoc/components/MasonryDoc/Responsive.js.map +1 -1
  330. package/dist/@ecme/views/guide/SharedComponentsDoc/components/NumericInputDoc/Basic.js.map +1 -1
  331. package/dist/@ecme/views/guide/SharedComponentsDoc/components/NumericInputDoc/WithForm.js.map +1 -1
  332. package/dist/@ecme/views/guide/SharedComponentsDoc/components/OtpInputDoc/Basic.js.map +1 -1
  333. package/dist/@ecme/views/guide/SharedComponentsDoc/components/OtpInputDoc/Length.js.map +1 -1
  334. package/dist/@ecme/views/guide/SharedComponentsDoc/components/PasswordInputDoc/Example.js.map +1 -1
  335. package/dist/@ecme/views/guide/SharedComponentsDoc/components/PatternInputDoc/Basic.js.map +1 -1
  336. package/dist/@ecme/views/guide/SharedComponentsDoc/components/PatternInputDoc/WithForm.js.map +1 -1
  337. package/dist/@ecme/views/guide/SharedComponentsDoc/components/PresetSegmentItemOptionDoc/Example.js.map +1 -1
  338. package/dist/@ecme/views/guide/SharedComponentsDoc/components/RichTextEditorDoc/CustomConfig.js.map +1 -1
  339. package/dist/@ecme/views/guide/SharedComponentsDoc/components/RichTextEditorDoc/WithForm.js.map +1 -1
  340. package/dist/@ecme/views/ui-components/common/Button/ButtonWithIcon.js.map +1 -1
  341. package/dist/@ecme/views/ui-components/common/Button/Loading.js.map +1 -1
  342. package/dist/@ecme/views/ui-components/data-display/Calendar/CustomRender.js.map +1 -1
  343. package/dist/@ecme/views/ui-components/data-display/Table/DragAndDrop.js.map +1 -1
  344. package/dist/@ecme/views/ui-components/data-display/Table/Editable.js.map +1 -1
  345. package/dist/@ecme/views/ui-components/data-display/Table/Expanding.js.map +1 -1
  346. package/dist/@ecme/views/ui-components/data-display/Table/Filtering.js.map +1 -1
  347. package/dist/@ecme/views/ui-components/data-display/Table/Group.js.map +1 -1
  348. package/dist/@ecme/views/ui-components/data-display/Table/PaginationTable.js.map +1 -1
  349. package/dist/@ecme/views/ui-components/data-display/Table/Resizable.js.map +1 -1
  350. package/dist/@ecme/views/ui-components/data-display/Table/RowSelection.js.map +1 -1
  351. package/dist/@ecme/views/ui-components/data-display/Table/Sorting.js.map +1 -1
  352. package/dist/@ecme/views/ui-components/data-display/Table/SubComponent.js.map +1 -1
  353. package/dist/@ecme/views/ui-components/feedback/Alert/Closable.js.map +1 -1
  354. package/dist/@ecme/views/ui-components/feedback/Dialog/Basic.js.map +1 -1
  355. package/dist/@ecme/views/ui-components/feedback/Dialog/Closable.js.map +1 -1
  356. package/dist/@ecme/views/ui-components/feedback/Dialog/CloseWithEscBackdrop.js.map +1 -1
  357. package/dist/@ecme/views/ui-components/feedback/Dialog/CustomStyle.js.map +1 -1
  358. package/dist/@ecme/views/ui-components/feedback/Dialog/InternalScroll.js.map +1 -1
  359. package/dist/@ecme/views/ui-components/feedback/Dialog/Size.js.map +1 -1
  360. package/dist/@ecme/views/ui-components/feedback/Dialog/StaticBackdrop.js.map +1 -1
  361. package/dist/@ecme/views/ui-components/feedback/Drawer/Basic.js.map +1 -1
  362. package/dist/@ecme/views/ui-components/feedback/Drawer/Closable.js.map +1 -1
  363. package/dist/@ecme/views/ui-components/feedback/Drawer/CustomStyle.js.map +1 -1
  364. package/dist/@ecme/views/ui-components/feedback/Drawer/Footer.js.map +1 -1
  365. package/dist/@ecme/views/ui-components/feedback/Drawer/Placement.js.map +1 -1
  366. package/dist/@ecme/views/ui-components/feedback/Drawer/WidthHeight.js.map +1 -1
  367. package/dist/@ecme/views/ui-components/feedback/Progress/Dynamic.js.map +1 -1
  368. package/dist/@ecme/views/ui-components/feedback/Toast/AlertToast.js.map +1 -1
  369. package/dist/@ecme/views/ui-components/feedback/Toast/Closable.js.map +1 -1
  370. package/dist/@ecme/views/ui-components/feedback/Toast/CustomClose.js.map +1 -1
  371. package/dist/@ecme/views/ui-components/feedback/Toast/CustomIcon.js.map +1 -1
  372. package/dist/@ecme/views/ui-components/feedback/Toast/Duration.js.map +1 -1
  373. package/dist/@ecme/views/ui-components/feedback/Toast/Notification.js.map +1 -1
  374. package/dist/@ecme/views/ui-components/feedback/Toast/NotificationType.js.map +1 -1
  375. package/dist/@ecme/views/ui-components/feedback/Toast/Placement.js.map +1 -1
  376. package/dist/@ecme/views/ui-components/forms/Checkbox/Default.js.map +1 -1
  377. package/dist/@ecme/views/ui-components/forms/Checkbox/Group.js.map +1 -1
  378. package/dist/@ecme/views/ui-components/forms/DatePicker/Controlled.js.map +1 -1
  379. package/dist/@ecme/views/ui-components/forms/DatePicker/CustomRender.js.map +1 -1
  380. package/dist/@ecme/views/ui-components/forms/DatePicker/DisabledCertainDate.js.map +1 -1
  381. package/dist/@ecme/views/ui-components/forms/FormControl/AsyncValidation.js.map +1 -1
  382. package/dist/@ecme/views/ui-components/forms/FormControl/Basic.js.map +1 -1
  383. package/dist/@ecme/views/ui-components/forms/FormControl/DependentValidation.js.map +1 -1
  384. package/dist/@ecme/views/ui-components/forms/FormControl/DynamicForm.js.map +1 -1
  385. package/dist/@ecme/views/ui-components/forms/FormControl/FieldValidation.js.map +1 -1
  386. package/dist/@ecme/views/ui-components/forms/FormControl/Layout.js.map +1 -1
  387. package/dist/@ecme/views/ui-components/forms/FormControl/MixedFormControl.js.map +1 -1
  388. package/dist/@ecme/views/ui-components/forms/FormControl/SchemaValidation.js.map +1 -1
  389. package/dist/@ecme/views/ui-components/forms/FormControl/Sizes.js.map +1 -1
  390. package/dist/@ecme/views/ui-components/forms/Input/PasswordVisible.js.map +1 -1
  391. package/dist/@ecme/views/ui-components/forms/Radio/Group.js.map +1 -1
  392. package/dist/@ecme/views/ui-components/forms/Radio/Vertical.js.map +1 -1
  393. package/dist/@ecme/views/ui-components/forms/Segment/Controlled.js.map +1 -1
  394. package/dist/@ecme/views/ui-components/forms/Segment/Size.js.map +1 -1
  395. package/dist/@ecme/views/ui-components/forms/Select/AsyncOnSearch.js.map +1 -1
  396. package/dist/@ecme/views/ui-components/forms/Select/Creatable.js.map +1 -1
  397. package/dist/@ecme/views/ui-components/forms/Select/LoadOptionOnExpand.js.map +1 -1
  398. package/dist/@ecme/views/ui-components/forms/Switcher/Basic.js.map +1 -1
  399. package/dist/@ecme/views/ui-components/forms/Switcher/Controlled.js.map +1 -1
  400. package/dist/@ecme/views/ui-components/forms/Switcher/Loading.js.map +1 -1
  401. package/dist/@ecme/views/ui-components/forms/Upload/AvatarImage.js.map +1 -1
  402. package/dist/@ecme/views/ui-components/forms/Upload/BeforeUpload.js.map +1 -1
  403. package/dist/@ecme/views/ui-components/graph/Charts/DashedLine.js.map +1 -1
  404. package/dist/@ecme/views/ui-components/graph/Maps/ChoroplethQuantile.js.map +1 -1
  405. package/dist/@ecme/views/ui-components/graph/Maps/ChoroplethQuantize.js.map +1 -1
  406. package/dist/@ecme/views/ui-components/graph/Maps/MapChartWithTooltip.js.map +1 -1
  407. package/dist/@ecme/views/ui-components/graph/Maps/UsaStatesMapWithLabels.js.map +1 -1
  408. package/dist/@ecme/views/ui-components/navigation/Dropdown/Default.js.map +1 -1
  409. package/dist/@ecme/views/ui-components/navigation/Menu/CollapsableMenuItem.js.map +1 -1
  410. package/dist/@ecme/views/ui-components/navigation/Menu/Simple.js.map +1 -1
  411. package/dist/@ecme/views/ui-components/navigation/Pagination/Basic.js.map +1 -1
  412. package/dist/@ecme/views/ui-components/navigation/Pagination/Controlled.js.map +1 -1
  413. package/dist/@ecme/views/ui-components/navigation/Pagination/PageSize.js.map +1 -1
  414. package/dist/@ecme/views/ui-components/navigation/Steps/Clickable.js.map +1 -1
  415. package/dist/@ecme/views/ui-components/navigation/Steps/Controlled.js.map +1 -1
  416. package/dist/@types/@ecme/configs/chart.config.d.ts +2 -0
  417. package/dist/@types/@ecme/configs/chart.config.d.ts.map +1 -1
  418. package/dist/@types/base/configs/endpoints.config/Ticket/ticket.endpoint.config.d.ts +1 -0
  419. package/dist/@types/base/configs/endpoints.config/Ticket/ticket.endpoint.config.d.ts.map +1 -1
  420. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +18 -0
  421. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
  422. package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.d.ts +20 -0
  423. package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.d.ts.map +1 -0
  424. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +18 -0
  425. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  426. package/dist/@types/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.d.ts.map +1 -1
  427. package/dist/@types/base/services/modules/Ticket/TicketService.d.ts +1 -0
  428. package/dist/@types/base/services/modules/Ticket/TicketService.d.ts.map +1 -1
  429. package/dist/@types/base/services/modules/centralNfe/index.d.ts +2 -0
  430. package/dist/@types/base/services/modules/centralNfe/index.d.ts.map +1 -1
  431. package/dist/@types/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.d.ts +5 -0
  432. package/dist/@types/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.d.ts.map +1 -0
  433. package/dist/@types/base/services/modules/modules.query.d.ts +4 -0
  434. package/dist/@types/base/services/modules/modules.query.d.ts.map +1 -1
  435. package/dist/base/assets/styles/init.css +1 -1
  436. package/dist/base/components/forms/GenericForms/GenericUploadFormSection.js.map +1 -1
  437. package/dist/base/components/forms/NumberFormVariant/GenericNumberFormSectionPercentage.js.map +1 -1
  438. package/dist/base/components/shared/AceitarProcessoDialog.js.map +1 -1
  439. package/dist/base/components/shared/AdicionarHistoricoDialog.js.map +1 -1
  440. package/dist/base/components/shared/CancelarProcessoDialog.js.map +1 -1
  441. package/dist/base/components/shared/ConcluirProcessoDialog.js.map +1 -1
  442. package/dist/base/components/shared/ReabrirProcessoDialog.js.map +1 -1
  443. package/dist/base/components/shared/RetornarFluxAtendimentoDialog.js.map +1 -1
  444. package/dist/base/components/shared/TransferirParaAtendenteDialog.js.map +1 -1
  445. package/dist/base/components/shared/TransferirParaSolicitanteDialog.js.map +1 -1
  446. package/dist/base/components/shared/TransferirProcessoDialog.js.map +1 -1
  447. package/dist/base/components/table/ListColumn.js.map +1 -1
  448. package/dist/base/components/tools/NavFilter.js.map +1 -1
  449. package/dist/base/configs/endpoints.config/Ticket/ticket.endpoint.config.js +1 -0
  450. package/dist/base/configs/endpoints.config/Ticket/ticket.endpoint.config.js.map +1 -1
  451. package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js +5 -3
  452. package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js.map +1 -1
  453. package/dist/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.js +10 -0
  454. package/dist/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.js.map +1 -0
  455. package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js +10 -0
  456. package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js.map +1 -1
  457. package/dist/base/hooks/flux/useAceitarProcesso.js.map +1 -1
  458. package/dist/base/hooks/flux/useAdicionarHistorico.js.map +1 -1
  459. package/dist/base/hooks/flux/useCancelarProcesso.js.map +1 -1
  460. package/dist/base/hooks/flux/useConcluirProcesso.js.map +1 -1
  461. package/dist/base/hooks/flux/useReabrirProcesso.js.map +1 -1
  462. package/dist/base/hooks/flux/useRetornarFluxoAtendimento.js.map +1 -1
  463. package/dist/base/hooks/flux/useTransferirParaAtendente.js.map +1 -1
  464. package/dist/base/hooks/flux/useTransferirParaSolicitante.js.map +1 -1
  465. package/dist/base/hooks/flux/useTransferirProcesso.js.map +1 -1
  466. package/dist/base/services/modules/Ticket/TicketService.js +17 -9
  467. package/dist/base/services/modules/Ticket/TicketService.js.map +1 -1
  468. package/dist/base/services/modules/centralNfe/index.js +13 -3
  469. package/dist/base/services/modules/centralNfe/index.js.map +1 -1
  470. package/dist/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.js +37 -0
  471. package/dist/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.js.map +1 -0
  472. package/dist/base/services/modules/modules.query.js +7 -6
  473. package/dist/base/services/modules/modules.query.js.map +1 -1
  474. package/dist/base/services/query.js.map +1 -1
  475. package/dist/base/utils/functions/formUtils.js.map +1 -1
  476. package/dist/base/utils/functions/handleInputChangeUtils.js.map +1 -1
  477. package/dist/base/utils/functions/stringUtils.js.map +1 -1
  478. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.js","sources":["../../../../../lib/@ecme/components/shared/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["import classNames from '@/utils/classNames'\nimport ToolButtonBold from './toolButtons/ToolButtonBold'\nimport ToolButtonItalic from './toolButtons/ToolButtonItalic'\nimport ToolButtonStrike from './toolButtons/ToolButtonStrike'\nimport ToolButtonCode from './toolButtons/ToolButtonCode'\nimport ToolButtonOrderedList from './toolButtons/ToolButtonOrderedList'\nimport ToolButtonCodeBlock from './toolButtons/ToolButtonCodeBlock'\nimport ToolButtonBlockquote from './toolButtons/ToolButtonBlockquote'\nimport ToolButtonHorizontalRule from './toolButtons/ToolButtonHorizontalRule'\nimport ToolButtonHeading from './toolButtons/ToolButtonHeading'\nimport ToolButtonParagraph from './toolButtons/ToolButtonParagraph'\nimport ToolButtonUndo from './toolButtons/ToolButtonUndo'\nimport ToolButtonRedo from './toolButtons/ToolButtonRedo'\nimport ToolButtonBulletList from './toolButtons/ToolButtonBulletList'\nimport { EditorContent, useEditor } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\nimport type { Editor, EditorContentProps, JSONContent } from '@tiptap/react'\nimport type { ReactNode, JSX, Ref } from 'react'\nimport type { BaseToolButtonProps, HeadingLevel } from './toolButtons/types'\n\nexport type RichTextEditorRef = HTMLDivElement\n\ntype RichTextEditorProps = {\n content?: string\n invalid?: boolean\n customToolBar?: (\n editor: Editor,\n components: {\n ToolButtonBold: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonItalic: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonStrike: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonCode: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonBlockquote: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonHeading: ({\n editor,\n }: BaseToolButtonProps & {\n headingLevel?: HeadingLevel[]\n }) => JSX.Element\n ToolButtonBulletList: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonOrderedList: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonCodeBlock: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonHorizontalRule: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonParagraph: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonUndo: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonRedo: ({ editor }: BaseToolButtonProps) => JSX.Element\n },\n ) => ReactNode\n onChange?: (content: {\n text: string\n html: string\n json: JSONContent\n }) => void\n editorContentClass?: string\n customEditor?: Editor | null\n ref?: Ref<RichTextEditorRef>\n} & Omit<EditorContentProps, 'editor' | 'ref' | 'onChange'>\n\nconst RichTextEditor = (props: RichTextEditorProps) => {\n const {\n content = '',\n customToolBar,\n invalid,\n onChange,\n editorContentClass,\n customEditor,\n ref,\n ...rest\n } = props\n\n const editor = customEditor\n ? customEditor\n : useEditor({\n extensions: [\n StarterKit.configure({\n bulletList: {\n keepMarks: true,\n },\n orderedList: {\n keepMarks: true,\n },\n }),\n ],\n editorProps: {\n attributes: {\n class: 'm-2 focus:outline-none',\n },\n },\n content,\n onUpdate({ editor }) {\n onChange?.({\n text: editor.getText(),\n html: editor.getHTML(),\n json: editor.getJSON(),\n })\n },\n })\n\n if (!editor) return null\n\n return (\n <div\n className={classNames(\n 'rich-text-editor rounded-xl ring-1 ring-gray-200 dark:ring-gray-600 border border-gray-200 dark:border-gray-600 bg-gray-100 dark:bg-gray-700 pt-3',\n editor.isFocused && 'ring-primary border-primary',\n invalid && 'bg-error-subtle',\n editor.isFocused &&\n invalid &&\n 'bg-error-subtle ring-error border-error',\n )}\n >\n <div className=\"flex gap-x-1 gap-y-2 px-2\">\n {customToolBar ? (\n customToolBar(editor, {\n ToolButtonBold,\n ToolButtonItalic,\n ToolButtonStrike,\n ToolButtonCode,\n ToolButtonBlockquote,\n ToolButtonHeading,\n ToolButtonBulletList,\n ToolButtonOrderedList,\n ToolButtonCodeBlock,\n ToolButtonHorizontalRule,\n ToolButtonParagraph,\n ToolButtonUndo,\n ToolButtonRedo,\n })\n ) : (\n <>\n <ToolButtonBold editor={editor} />\n <ToolButtonItalic editor={editor} />\n <ToolButtonStrike editor={editor} />\n <ToolButtonCode editor={editor} />\n <ToolButtonBlockquote editor={editor} />\n <ToolButtonHeading editor={editor} />\n <ToolButtonBulletList editor={editor} />\n <ToolButtonOrderedList editor={editor} />\n <ToolButtonCodeBlock editor={editor} />\n <ToolButtonHorizontalRule editor={editor} />\n </>\n )}\n </div>\n\n <EditorContent\n ref={ref}\n className={classNames(\n 'max-h-[600px] overflow-auto px-2 prose prose-p:text-sm prose-p:dark:text-gray-400 max-w-full',\n editorContentClass,\n )}\n editor={editor}\n {...rest}\n />\n </div>\n )\n}\n\nexport default RichTextEditor\n"],"names":["RichTextEditor","props","content","customToolBar","invalid","onChange","editorContentClass","customEditor","ref","rest","editor","useEditor","StarterKit","jsxs","classNames","jsx","ToolButtonBold","ToolButtonItalic","ToolButtonStrike","ToolButtonCode","ToolButtonBlockquote","ToolButtonHeading","ToolButtonBulletList","ToolButtonOrderedList","ToolButtonCodeBlock","ToolButtonHorizontalRule","ToolButtonParagraph","ToolButtonUndo","ToolButtonRedo","Fragment","EditorContent"],"mappings":";;;;;;;;;;;;;;;;;AAqEA,MAAMA,IAAiB,CAACC,MAA+B;AACnD,QAAM;AAAA,IACF,SAAAC,IAAU;AAAA,IACV,eAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,KAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHR,GAEES,IAASH,KAETI,EAAU;AAAA,IACN,YAAY;AAAA,MACRC,EAAW,UAAU;AAAA,QACjB,YAAY;AAAA,UACR,WAAW;AAAA,QAAA;AAAA,QAEf,aAAa;AAAA,UACT,WAAW;AAAA,QAAA;AAAA,MACf,CACH;AAAA,IAAA;AAAA,IAEL,aAAa;AAAA,MACT,YAAY;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACX;AAAA,IAEJ,SAAAV;AAAA,IACA,SAAS,EAAE,QAAAQ,KAAU;AACjB,MAAAL,KAAA,QAAAA,EAAW;AAAA,QACP,MAAMK,EAAO,QAAA;AAAA,QACb,MAAMA,EAAO,QAAA;AAAA,QACb,MAAMA,EAAO,QAAA;AAAA,MAAQ;AAAA,IACxB;AAAA,EACL,CACH;AAEP,SAAKA,IAGD,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWC;AAAA,QACP;AAAA,QACAJ,EAAO,aAAa;AAAA,QACpBN,KAAW;AAAA,QACXM,EAAO,aACHN,KACA;AAAA,MAAA;AAAA,MAGR,UAAA;AAAA,QAAA,gBAAAW,EAAC,OAAA,EAAI,WAAU,6BACV,UAAAZ,IACGA,EAAcO,GAAQ;AAAA,UAClB,gBAAAM;AAAA,UACA,kBAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,gBAAAC;AAAA,UACA,sBAAAC;AAAA,UAAA,mBACAC;AAAAA,UACA,sBAAAC;AAAA,UACA,uBAAAC;AAAA,UACA,qBAAAC;AAAA,UACA,0BAAAC;AAAA,UACA,qBAAAC;AAAA,UACA,gBAAAC;AAAA,UACA,gBAAAC;AAAA,QAAA,CACH,IAED,gBAAAf,EAAAgB,GAAA,EACI,UAAA;AAAA,UAAA,gBAAAd,EAACC,KAAe,QAAAN,GAAgB;AAAA,UAChC,gBAAAK,EAACE,KAAiB,QAAAP,GAAgB;AAAA,UAClC,gBAAAK,EAACG,KAAiB,QAAAR,GAAgB;AAAA,UAClC,gBAAAK,EAACI,KAAe,QAAAT,GAAgB;AAAA,UAChC,gBAAAK,EAACK,KAAqB,QAAAV,GAAgB;AAAA,UACtC,gBAAAK,EAACM,KAAkB,QAAAX,GAAgB;AAAA,UACnC,gBAAAK,EAACO,KAAqB,QAAAZ,GAAgB;AAAA,UACtC,gBAAAK,EAACQ,KAAsB,QAAAb,GAAgB;AAAA,UACvC,gBAAAK,EAACS,KAAoB,QAAAd,GAAgB;AAAA,UACrC,gBAAAK,EAACU,KAAyB,QAAAf,EAAA,CAAgB;AAAA,QAAA,EAAA,CAC9C,EAAA,CAER;AAAA,QAEA,gBAAAK;AAAA,UAACe;AAAA,UAAA;AAAA,YACG,KAAAtB;AAAA,YACA,WAAWM;AAAA,cACP;AAAA,cACAR;AAAA,YAAA;AAAA,YAEJ,QAAAI;AAAA,YACC,GAAGD;AAAA,UAAA;AAAA,QAAA;AAAA,MACR;AAAA,IAAA;AAAA,EAAA,IAtDY;AAyDxB;"}
1
+ {"version":3,"file":"RichTextEditor.js","sources":["../../../../../lib/@ecme/components/shared/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["import classNames from '@/utils/classNames'\nimport ToolButtonBold from './toolButtons/ToolButtonBold'\nimport ToolButtonItalic from './toolButtons/ToolButtonItalic'\nimport ToolButtonStrike from './toolButtons/ToolButtonStrike'\nimport ToolButtonCode from './toolButtons/ToolButtonCode'\nimport ToolButtonOrderedList from './toolButtons/ToolButtonOrderedList'\nimport ToolButtonCodeBlock from './toolButtons/ToolButtonCodeBlock'\nimport ToolButtonBlockquote from './toolButtons/ToolButtonBlockquote'\nimport ToolButtonHorizontalRule from './toolButtons/ToolButtonHorizontalRule'\nimport ToolButtonHeading from './toolButtons/ToolButtonHeading'\nimport ToolButtonParagraph from './toolButtons/ToolButtonParagraph'\nimport ToolButtonUndo from './toolButtons/ToolButtonUndo'\nimport ToolButtonRedo from './toolButtons/ToolButtonRedo'\nimport ToolButtonBulletList from './toolButtons/ToolButtonBulletList'\nimport { EditorContent, useEditor } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\nimport type { Editor, EditorContentProps, JSONContent } from '@tiptap/react'\nimport type { ReactNode, JSX, Ref } from 'react'\nimport type { BaseToolButtonProps, HeadingLevel } from './toolButtons/types'\n\nexport type RichTextEditorRef = HTMLDivElement\n\ntype RichTextEditorProps = {\n content?: string\n invalid?: boolean\n customToolBar?: (\n editor: Editor,\n components: {\n ToolButtonBold: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonItalic: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonStrike: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonCode: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonBlockquote: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonHeading: ({\n editor,\n }: BaseToolButtonProps & {\n headingLevel?: HeadingLevel[]\n }) => JSX.Element\n ToolButtonBulletList: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonOrderedList: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonCodeBlock: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonHorizontalRule: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonParagraph: ({\n editor,\n }: BaseToolButtonProps) => JSX.Element\n ToolButtonUndo: ({ editor }: BaseToolButtonProps) => JSX.Element\n ToolButtonRedo: ({ editor }: BaseToolButtonProps) => JSX.Element\n },\n ) => ReactNode\n onChange?: (content: {\n text: string\n html: string\n json: JSONContent\n }) => void\n editorContentClass?: string\n customEditor?: Editor | null\n ref?: Ref<RichTextEditorRef>\n} & Omit<EditorContentProps, 'editor' | 'ref' | 'onChange'>\n\nconst RichTextEditor = (props: RichTextEditorProps) => {\n const {\n content = '',\n customToolBar,\n invalid,\n onChange,\n editorContentClass,\n customEditor,\n ref,\n ...rest\n } = props\n\n const editor = customEditor\n ? customEditor\n : useEditor({\n extensions: [\n StarterKit.configure({\n bulletList: {\n keepMarks: true,\n },\n orderedList: {\n keepMarks: true,\n },\n }),\n ],\n editorProps: {\n attributes: {\n class: 'm-2 focus:outline-none',\n },\n },\n content,\n onUpdate({ editor }) {\n onChange?.({\n text: editor.getText(),\n html: editor.getHTML(),\n json: editor.getJSON(),\n })\n },\n })\n\n if (!editor) return null\n\n return (\n <div\n className={classNames(\n 'rich-text-editor rounded-xl ring-1 ring-gray-200 dark:ring-gray-600 border border-gray-200 dark:border-gray-600 bg-gray-100 dark:bg-gray-700 pt-3',\n editor.isFocused && 'ring-primary border-primary',\n invalid && 'bg-error-subtle',\n editor.isFocused &&\n invalid &&\n 'bg-error-subtle ring-error border-error',\n )}\n >\n <div className=\"flex gap-x-1 gap-y-2 px-2\">\n {customToolBar ? (\n customToolBar(editor, {\n ToolButtonBold,\n ToolButtonItalic,\n ToolButtonStrike,\n ToolButtonCode,\n ToolButtonBlockquote,\n ToolButtonHeading,\n ToolButtonBulletList,\n ToolButtonOrderedList,\n ToolButtonCodeBlock,\n ToolButtonHorizontalRule,\n ToolButtonParagraph,\n ToolButtonUndo,\n ToolButtonRedo,\n })\n ) : (\n <>\n <ToolButtonBold editor={editor} />\n <ToolButtonItalic editor={editor} />\n <ToolButtonStrike editor={editor} />\n <ToolButtonCode editor={editor} />\n <ToolButtonBlockquote editor={editor} />\n <ToolButtonHeading editor={editor} />\n <ToolButtonBulletList editor={editor} />\n <ToolButtonOrderedList editor={editor} />\n <ToolButtonCodeBlock editor={editor} />\n <ToolButtonHorizontalRule editor={editor} />\n </>\n )}\n </div>\n\n <EditorContent\n ref={ref}\n className={classNames(\n 'max-h-[600px] overflow-auto px-2 prose prose-p:text-sm prose-p:dark:text-gray-400 max-w-full',\n editorContentClass,\n )}\n editor={editor}\n {...rest}\n />\n </div>\n )\n}\n\nexport default RichTextEditor\n"],"names":["RichTextEditor","props","content","customToolBar","invalid","onChange","editorContentClass","customEditor","ref","rest","editor","useEditor","StarterKit","jsxs","classNames","jsx","ToolButtonBold","ToolButtonItalic","ToolButtonStrike","ToolButtonCode","ToolButtonBlockquote","ToolButtonHeading","ToolButtonBulletList","ToolButtonOrderedList","ToolButtonCodeBlock","ToolButtonHorizontalRule","ToolButtonParagraph","ToolButtonUndo","ToolButtonRedo","Fragment","EditorContent"],"mappings":";;;;;;;;;;;;;;;;;AAqEA,MAAMA,IAAiB,CAACC,MAA+B;AACnD,QAAM;AAAA,IACF,SAAAC,IAAU;AAAA,IACV,eAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,KAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHR,GAEES,IAASH,KAETI,EAAU;AAAA,IACN,YAAY;AAAA,MACRC,EAAW,UAAU;AAAA,QACjB,YAAY;AAAA,UACR,WAAW;AAAA,QAAA;AAAA,QAEf,aAAa;AAAA,UACT,WAAW;AAAA,QAAA;AAAA,MACf,CACH;AAAA,IAAA;AAAA,IAEL,aAAa;AAAA,MACT,YAAY;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACX;AAAA,IAEJ,SAAAV;AAAA,IACA,SAAS,EAAE,QAAAQ,KAAU;AACjB,MAAAL,KAAA,QAAAA,EAAW;AAAA,QACP,MAAMK,EAAO,QAAA;AAAA,QACb,MAAMA,EAAO,QAAA;AAAA,QACb,MAAMA,EAAO,QAAA;AAAA,MAAQ;AAAA,IAE7B;AAAA,EAAA,CACH;AAEP,SAAKA,IAGD,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWC;AAAA,QACP;AAAA,QACAJ,EAAO,aAAa;AAAA,QACpBN,KAAW;AAAA,QACXM,EAAO,aACHN,KACA;AAAA,MAAA;AAAA,MAGR,UAAA;AAAA,QAAA,gBAAAW,EAAC,OAAA,EAAI,WAAU,6BACV,UAAAZ,IACGA,EAAcO,GAAQ;AAAA,UAClB,gBAAAM;AAAA,UACA,kBAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,gBAAAC;AAAA,UACA,sBAAAC;AAAA,UAAA,mBACAC;AAAAA,UACA,sBAAAC;AAAA,UACA,uBAAAC;AAAA,UACA,qBAAAC;AAAA,UACA,0BAAAC;AAAA,UACA,qBAAAC;AAAA,UACA,gBAAAC;AAAA,UACA,gBAAAC;AAAA,QAAA,CACH,IAED,gBAAAf,EAAAgB,GAAA,EACI,UAAA;AAAA,UAAA,gBAAAd,EAACC,KAAe,QAAAN,GAAgB;AAAA,UAChC,gBAAAK,EAACE,KAAiB,QAAAP,GAAgB;AAAA,UAClC,gBAAAK,EAACG,KAAiB,QAAAR,GAAgB;AAAA,UAClC,gBAAAK,EAACI,KAAe,QAAAT,GAAgB;AAAA,UAChC,gBAAAK,EAACK,KAAqB,QAAAV,GAAgB;AAAA,UACtC,gBAAAK,EAACM,KAAkB,QAAAX,GAAgB;AAAA,UACnC,gBAAAK,EAACO,KAAqB,QAAAZ,GAAgB;AAAA,UACtC,gBAAAK,EAACQ,KAAsB,QAAAb,GAAgB;AAAA,UACvC,gBAAAK,EAACS,KAAoB,QAAAd,GAAgB;AAAA,UACrC,gBAAAK,EAACU,KAAyB,QAAAf,EAAA,CAAgB;AAAA,QAAA,EAAA,CAC9C,EAAA,CAER;AAAA,QAEA,gBAAAK;AAAA,UAACe;AAAA,UAAA;AAAA,YACG,KAAAtB;AAAA,YACA,WAAWM;AAAA,cACP;AAAA,cACAR;AAAA,YAAA;AAAA,YAEJ,QAAAI;AAAA,YACC,GAAGD;AAAA,UAAA;AAAA,QAAA;AAAA,MACR;AAAA,IAAA;AAAA,EAAA,IAtDY;AAyDxB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StickyFooter.js","sources":["../../../../lib/@ecme/components/shared/StickyFooter.tsx"],"sourcesContent":["import { useRef, useState, useEffect, ReactNode } from 'react'\nimport classNames from 'classnames'\nimport useDebounce from '@/utils/hooks/useDebounce'\nimport type { HTMLAttributes } from 'react'\n\ninterface StickyFooterProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n stickyClass?: string\n defaultClass?: string\n children?: ReactNode | ((isSticky: boolean) => ReactNode)\n}\n\nconst StickyFooter = (props: StickyFooterProps) => {\n const { children, className, stickyClass, defaultClass, ...rest } = props\n\n const [isSticky, setIsSticky] = useState(false)\n const ref = useRef<HTMLDivElement>(null)\n\n function handleDebounceFn(val: boolean) {\n setIsSticky(val)\n }\n\n const debounceFn = useDebounce(handleDebounceFn, 100)\n\n useEffect(() => {\n const cachedRef = ref.current\n const observer = new IntersectionObserver(\n ([e]) => {\n console.log(\n 'e.intersectionRatio < 1',\n e.intersectionRatio,\n e.intersectionRatio < 1,\n )\n if (!(e.intersectionRatio < 1)) {\n window.scrollTo({\n top: document.body.scrollHeight - 1,\n behavior: 'smooth',\n })\n }\n debounceFn(e.intersectionRatio < 1)\n },\n {\n threshold: [1],\n },\n )\n\n observer.observe(cachedRef as Element)\n\n return function () {\n observer.unobserve(cachedRef as Element)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <div\n ref={ref}\n className={classNames(\n 'static -bottom-[1px]',\n className,\n isSticky ? classNames(stickyClass, 'sticky') : defaultClass,\n )}\n {...rest}\n >\n {typeof children === 'function' ? children(isSticky) : children}\n </div>\n )\n}\n\nexport default StickyFooter\n"],"names":["StickyFooter","props","children","className","stickyClass","defaultClass","rest","isSticky","setIsSticky","useState","ref","useRef","handleDebounceFn","val","debounceFn","useDebounce","useEffect","cachedRef","observer","jsx","classNames"],"mappings":";;;;AAYA,MAAMA,IAAe,CAACC,MAA6B;AAC/C,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,aAAAC,GAAa,cAAAC,GAAc,GAAGC,MAASL,GAE9D,CAACM,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAMC,EAAuB,IAAI;AAEvC,WAASC,EAAiBC,GAAc;AACpC,IAAAL,EAAYK,CAAG;AAAA,EAAA;AAGnB,QAAMC,IAAaC,EAAYH,GAAkB,GAAG;AAEpD,SAAAI,EAAU,MAAM;AACZ,UAAMC,IAAYP,EAAI,SAChBQ,IAAW,IAAI;AAAA,MACjB,CAAC,CAAC,CAAC,MAAM;AACL,gBAAQ;AAAA,UACJ;AAAA,UACA,EAAE;AAAA,UACF,EAAE,oBAAoB;AAAA,QAAA,GAEpB,EAAE,oBAAoB,KACxB,OAAO,SAAS;AAAA,UACZ,KAAK,SAAS,KAAK,eAAe;AAAA,UAClC,UAAU;AAAA,QAAA,CACb,GAELJ,EAAW,EAAE,oBAAoB,CAAC;AAAA,MAAA;AAAA,MAEtC;AAAA,QACI,WAAW,CAAC,CAAC;AAAA,MAAA;AAAA,IACjB;AAGJ,WAAAI,EAAS,QAAQD,CAAoB,GAE9B,WAAY;AACf,MAAAC,EAAS,UAAUD,CAAoB;AAAA,IAAA;AAAA,EAC3C,GAED,EAAE,GAGD,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAAT;AAAA,MACA,WAAWU;AAAA,QACP;AAAA,QACAjB;AAAA,QACAI,IAAWa,EAAWhB,GAAa,QAAQ,IAAIC;AAAA,MAAA;AAAA,MAElD,GAAGC;AAAA,MAEH,UAAA,OAAOJ,KAAa,aAAaA,EAASK,CAAQ,IAAIL;AAAA,IAAA;AAAA,EAAA;AAGnE;"}
1
+ {"version":3,"file":"StickyFooter.js","sources":["../../../../lib/@ecme/components/shared/StickyFooter.tsx"],"sourcesContent":["import { useRef, useState, useEffect, ReactNode } from 'react'\nimport classNames from 'classnames'\nimport useDebounce from '@/utils/hooks/useDebounce'\nimport type { HTMLAttributes } from 'react'\n\ninterface StickyFooterProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n stickyClass?: string\n defaultClass?: string\n children?: ReactNode | ((isSticky: boolean) => ReactNode)\n}\n\nconst StickyFooter = (props: StickyFooterProps) => {\n const { children, className, stickyClass, defaultClass, ...rest } = props\n\n const [isSticky, setIsSticky] = useState(false)\n const ref = useRef<HTMLDivElement>(null)\n\n function handleDebounceFn(val: boolean) {\n setIsSticky(val)\n }\n\n const debounceFn = useDebounce(handleDebounceFn, 100)\n\n useEffect(() => {\n const cachedRef = ref.current\n const observer = new IntersectionObserver(\n ([e]) => {\n console.log(\n 'e.intersectionRatio < 1',\n e.intersectionRatio,\n e.intersectionRatio < 1,\n )\n if (!(e.intersectionRatio < 1)) {\n window.scrollTo({\n top: document.body.scrollHeight - 1,\n behavior: 'smooth',\n })\n }\n debounceFn(e.intersectionRatio < 1)\n },\n {\n threshold: [1],\n },\n )\n\n observer.observe(cachedRef as Element)\n\n return function () {\n observer.unobserve(cachedRef as Element)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <div\n ref={ref}\n className={classNames(\n 'static -bottom-[1px]',\n className,\n isSticky ? classNames(stickyClass, 'sticky') : defaultClass,\n )}\n {...rest}\n >\n {typeof children === 'function' ? children(isSticky) : children}\n </div>\n )\n}\n\nexport default StickyFooter\n"],"names":["StickyFooter","props","children","className","stickyClass","defaultClass","rest","isSticky","setIsSticky","useState","ref","useRef","handleDebounceFn","val","debounceFn","useDebounce","useEffect","cachedRef","observer","jsx","classNames"],"mappings":";;;;AAYA,MAAMA,IAAe,CAACC,MAA6B;AAC/C,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,aAAAC,GAAa,cAAAC,GAAc,GAAGC,MAASL,GAE9D,CAACM,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAMC,EAAuB,IAAI;AAEvC,WAASC,EAAiBC,GAAc;AACpC,IAAAL,EAAYK,CAAG;AAAA,EACnB;AAEA,QAAMC,IAAaC,EAAYH,GAAkB,GAAG;AAEpD,SAAAI,EAAU,MAAM;AACZ,UAAMC,IAAYP,EAAI,SAChBQ,IAAW,IAAI;AAAA,MACjB,CAAC,CAAC,CAAC,MAAM;AACL,gBAAQ;AAAA,UACJ;AAAA,UACA,EAAE;AAAA,UACF,EAAE,oBAAoB;AAAA,QAAA,GAEpB,EAAE,oBAAoB,KACxB,OAAO,SAAS;AAAA,UACZ,KAAK,SAAS,KAAK,eAAe;AAAA,UAClC,UAAU;AAAA,QAAA,CACb,GAELJ,EAAW,EAAE,oBAAoB,CAAC;AAAA,MACtC;AAAA,MACA;AAAA,QACI,WAAW,CAAC,CAAC;AAAA,MAAA;AAAA,IACjB;AAGJ,WAAAI,EAAS,QAAQD,CAAoB,GAE9B,WAAY;AACf,MAAAC,EAAS,UAAUD,CAAoB;AAAA,IAC3C;AAAA,EAEJ,GAAG,CAAA,CAAE,GAGD,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAAT;AAAA,MACA,WAAWU;AAAA,QACP;AAAA,QACAjB;AAAA,QACAI,IAAWa,EAAWhB,GAAa,QAAQ,IAAIC;AAAA,MAAA;AAAA,MAElD,GAAGC;AAAA,MAEH,UAAA,OAAOJ,KAAa,aAAaA,EAASK,CAAQ,IAAIL;AAAA,IAAA;AAAA,EAAA;AAGnE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StrictModeDroppable.js","sources":["../../../../lib/@ecme/components/shared/StrictModeDroppable.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { Droppable, DroppableProps } from '@hello-pangea/dnd'\n\nconst StrictModeDroppable = ({ children, ...props }: DroppableProps) => {\n const [enabled, setEnabled] = useState(false)\n\n useEffect(() => {\n const animation = requestAnimationFrame(() => setEnabled(true))\n\n return () => {\n cancelAnimationFrame(animation)\n setEnabled(false)\n }\n }, [])\n\n if (!enabled) {\n return null\n }\n\n return <Droppable {...props}>{children}</Droppable>\n}\n\nexport default StrictModeDroppable\n"],"names":["StrictModeDroppable","children","props","enabled","setEnabled","useState","useEffect","animation","jsx","Droppable"],"mappings":";;;AAGA,MAAMA,IAAsB,CAAC,EAAE,UAAAC,GAAU,GAAGC,QAA4B;AACpE,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK;AAW5C,SATAC,EAAU,MAAM;AACZ,UAAMC,IAAY,sBAAsB,MAAMH,EAAW,EAAI,CAAC;AAE9D,WAAO,MAAM;AACT,2BAAqBG,CAAS,GAC9BH,EAAW,EAAK;AAAA,IAAA;AAAA,EACpB,GACD,EAAE,GAEAD,IAIE,gBAAAK,EAACC,GAAA,EAAW,GAAGP,GAAQ,UAAAD,EAAA,CAAS,IAH5B;AAIf;"}
1
+ {"version":3,"file":"StrictModeDroppable.js","sources":["../../../../lib/@ecme/components/shared/StrictModeDroppable.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { Droppable, DroppableProps } from '@hello-pangea/dnd'\n\nconst StrictModeDroppable = ({ children, ...props }: DroppableProps) => {\n const [enabled, setEnabled] = useState(false)\n\n useEffect(() => {\n const animation = requestAnimationFrame(() => setEnabled(true))\n\n return () => {\n cancelAnimationFrame(animation)\n setEnabled(false)\n }\n }, [])\n\n if (!enabled) {\n return null\n }\n\n return <Droppable {...props}>{children}</Droppable>\n}\n\nexport default StrictModeDroppable\n"],"names":["StrictModeDroppable","children","props","enabled","setEnabled","useState","useEffect","animation","jsx","Droppable"],"mappings":";;;AAGA,MAAMA,IAAsB,CAAC,EAAE,UAAAC,GAAU,GAAGC,QAA4B;AACpE,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK;AAW5C,SATAC,EAAU,MAAM;AACZ,UAAMC,IAAY,sBAAsB,MAAMH,EAAW,EAAI,CAAC;AAE9D,WAAO,MAAM;AACT,2BAAqBG,CAAS,GAC9BH,EAAW,EAAK;AAAA,IACpB;AAAA,EACJ,GAAG,CAAA,CAAE,GAEAD,IAIE,gBAAAK,EAACC,GAAA,EAAW,GAAGP,GAAQ,UAAAD,EAAA,CAAS,IAH5B;AAIf;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleDrawer.js","sources":["../../../../lib/@ecme/components/shared/ToggleDrawer.tsx"],"sourcesContent":["import { useState, useImperativeHandle } from 'react'\nimport Drawer from '@/components/ui/Drawer'\nimport NavToggle from './NavToggle'\nimport type { DrawerProps } from '@/components/ui/Drawer'\nimport type { Ref } from 'react'\n\nexport type ToggleDrawerProps = Omit<DrawerProps, 'isOpen'> & {\n ref?: Ref<ToggleDrawerRef>\n}\n\nexport type ToggleDrawerRef = {\n handleCloseDrawer: () => void\n handleOpenDrawer: () => void\n}\n\nconst ToggleDrawer = (props: ToggleDrawerProps) => {\n const { children, placement = 'left', ref, ...rest } = props\n\n const [toggled, setToggled] = useState(false)\n\n const handleCloseDrawer = () => {\n setToggled(false)\n }\n\n const handleOpenDrawer = () => {\n setToggled(true)\n }\n\n useImperativeHandle(ref, () => {\n return {\n handleCloseDrawer,\n handleOpenDrawer,\n }\n }, [])\n\n return (\n <>\n <button\n className=\"close-button text-xl\"\n type=\"button\"\n onClick={() => setToggled(!toggled)}\n >\n <NavToggle toggled={toggled} />\n </button>\n <Drawer\n isOpen={toggled}\n width={330}\n placement={placement}\n onClose={() => setToggled(false)}\n onRequestClose={() => setToggled(false)}\n {...rest}\n >\n {children}\n </Drawer>\n </>\n )\n}\n\nexport default ToggleDrawer\n"],"names":["ToggleDrawer","props","children","placement","ref","rest","toggled","setToggled","useState","handleCloseDrawer","handleOpenDrawer","useImperativeHandle","jsxs","Fragment","jsx","NavToggle","Drawer"],"mappings":";;;;;AAeA,MAAMA,IAAe,CAACC,MAA6B;AAC/C,QAAM,EAAE,UAAAC,GAAU,WAAAC,IAAY,QAAQ,KAAAC,GAAK,GAAGC,MAASJ,GAEjD,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GAEtCC,IAAoB,MAAM;AAC5B,IAAAF,EAAW,EAAK;AAAA,EAAA,GAGdG,IAAmB,MAAM;AAC3B,IAAAH,EAAW,EAAI;AAAA,EAAA;AAGnB,SAAAI,EAAoBP,GAAK,OACd;AAAA,IACH,mBAAAK;AAAA,IACA,kBAAAC;AAAA,EAAA,IAEL,EAAE,GAGD,gBAAAE,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,MAAK;AAAA,QACL,SAAS,MAAMP,EAAW,CAACD,CAAO;AAAA,QAElC,UAAA,gBAAAQ,EAACC,KAAU,SAAAT,EAAA,CAAkB;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjC,gBAAAQ;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,QAAQV;AAAA,QACR,OAAO;AAAA,QACP,WAAAH;AAAA,QACA,SAAS,MAAMI,EAAW,EAAK;AAAA,QAC/B,gBAAgB,MAAMA,EAAW,EAAK;AAAA,QACrC,GAAGF;AAAA,QAEH,UAAAH;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GACJ;AAER;"}
1
+ {"version":3,"file":"ToggleDrawer.js","sources":["../../../../lib/@ecme/components/shared/ToggleDrawer.tsx"],"sourcesContent":["import { useState, useImperativeHandle } from 'react'\nimport Drawer from '@/components/ui/Drawer'\nimport NavToggle from './NavToggle'\nimport type { DrawerProps } from '@/components/ui/Drawer'\nimport type { Ref } from 'react'\n\nexport type ToggleDrawerProps = Omit<DrawerProps, 'isOpen'> & {\n ref?: Ref<ToggleDrawerRef>\n}\n\nexport type ToggleDrawerRef = {\n handleCloseDrawer: () => void\n handleOpenDrawer: () => void\n}\n\nconst ToggleDrawer = (props: ToggleDrawerProps) => {\n const { children, placement = 'left', ref, ...rest } = props\n\n const [toggled, setToggled] = useState(false)\n\n const handleCloseDrawer = () => {\n setToggled(false)\n }\n\n const handleOpenDrawer = () => {\n setToggled(true)\n }\n\n useImperativeHandle(ref, () => {\n return {\n handleCloseDrawer,\n handleOpenDrawer,\n }\n }, [])\n\n return (\n <>\n <button\n className=\"close-button text-xl\"\n type=\"button\"\n onClick={() => setToggled(!toggled)}\n >\n <NavToggle toggled={toggled} />\n </button>\n <Drawer\n isOpen={toggled}\n width={330}\n placement={placement}\n onClose={() => setToggled(false)}\n onRequestClose={() => setToggled(false)}\n {...rest}\n >\n {children}\n </Drawer>\n </>\n )\n}\n\nexport default ToggleDrawer\n"],"names":["ToggleDrawer","props","children","placement","ref","rest","toggled","setToggled","useState","handleCloseDrawer","handleOpenDrawer","useImperativeHandle","jsxs","Fragment","jsx","NavToggle","Drawer"],"mappings":";;;;;AAeA,MAAMA,IAAe,CAACC,MAA6B;AAC/C,QAAM,EAAE,UAAAC,GAAU,WAAAC,IAAY,QAAQ,KAAAC,GAAK,GAAGC,MAASJ,GAEjD,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GAEtCC,IAAoB,MAAM;AAC5B,IAAAF,EAAW,EAAK;AAAA,EACpB,GAEMG,IAAmB,MAAM;AAC3B,IAAAH,EAAW,EAAI;AAAA,EACnB;AAEA,SAAAI,EAAoBP,GAAK,OACd;AAAA,IACH,mBAAAK;AAAA,IACA,kBAAAC;AAAA,EAAA,IAEL,CAAA,CAAE,GAGD,gBAAAE,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,MAAK;AAAA,QACL,SAAS,MAAMP,EAAW,CAACD,CAAO;AAAA,QAElC,UAAA,gBAAAQ,EAACC,KAAU,SAAAT,EAAA,CAAkB;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjC,gBAAAQ;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,QAAQV;AAAA,QACR,OAAO;AAAA,QACP,WAAAH;AAAA,QACA,SAAS,MAAMI,EAAW,EAAK;AAAA,QAC/B,gBAAgB,MAAMA,EAAW,EAAK;AAAA,QACrC,GAAGF;AAAA,QAEH,UAAAH;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GACJ;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UsersAvatarGroup.js","sources":["../../../../lib/@ecme/components/shared/UsersAvatarGroup.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Tooltip from '@/components/ui/Tooltip'\nimport Avatar from '@/components/ui/Avatar'\nimport acronym from '@/utils/acronym'\nimport useRandomBgColor from '@/utils/hooks/useRandomBgColor'\nimport type { AvatarProps, AvatarGroupProps } from '@/components/ui/Avatar'\n\ntype User = Record<string, string>\n\ninterface UsersAvatarGroupProps extends AvatarGroupProps {\n avatarGroupProps?: AvatarGroupProps\n avatarProps?: AvatarProps\n imgKey?: string\n nameKey?: string\n onAvatarClick?: (avatar: User) => void\n users?: User[]\n}\n\nconst UsersAvatarGroup = (props: UsersAvatarGroupProps) => {\n const {\n avatarGroupProps = {},\n avatarProps = {},\n imgKey = 'img',\n nameKey = 'name',\n onAvatarClick,\n users = [],\n ...rest\n } = props\n\n const bgColor = useRandomBgColor()\n\n const defaultAvatarProps = useMemo(() => {\n return {\n shape: 'circle' as 'round' | 'circle' | 'square',\n size: 30,\n className: 'cursor-pointer',\n ...avatarProps,\n }\n }, [avatarProps])\n\n const handleAvatarClick = (avatar: User) => {\n onAvatarClick?.(avatar)\n }\n\n return (\n <Avatar.Group\n omittedAvatarTooltip\n chained\n omittedAvatarProps={defaultAvatarProps}\n omittedAvatarTooltipProps={{\n wrapperClass: 'flex',\n }}\n {...avatarGroupProps}\n {...rest}\n >\n {users.map((elm, index) => (\n <Tooltip\n key={elm[nameKey] + index}\n wrapperClass=\"flex\"\n title={elm[nameKey]}\n >\n <Avatar\n {...defaultAvatarProps}\n className={`${\n elm[imgKey] ? '' : bgColor(elm[nameKey])\n } ${defaultAvatarProps.className}`}\n src={elm[imgKey]}\n onClick={() => handleAvatarClick(elm)}\n >\n {acronym(elm.name)}\n </Avatar>\n </Tooltip>\n ))}\n </Avatar.Group>\n )\n}\n\nexport default UsersAvatarGroup\n"],"names":["UsersAvatarGroup","props","avatarGroupProps","avatarProps","imgKey","nameKey","onAvatarClick","users","rest","bgColor","useRandomBgColor","defaultAvatarProps","useMemo","handleAvatarClick","avatar","jsx","Avatar","elm","index","Tooltip","acronym"],"mappings":";;;;;;;AAkBA,MAAMA,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,kBAAAC,IAAmB,CAAA;AAAA,IACnB,aAAAC,IAAc,CAAA;AAAA,IACd,QAAAC,IAAS;AAAA,IACT,SAAAC,IAAU;AAAA,IACV,eAAAC;AAAA,IACA,OAAAC,IAAQ,CAAA;AAAA,IACR,GAAGC;AAAA,EAAA,IACHP,GAEEQ,IAAUC,EAAA,GAEVC,IAAqBC,EAAQ,OACxB;AAAA,IACH,OAAO;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,GAAGT;AAAA,EAAA,IAER,CAACA,CAAW,CAAC,GAEVU,IAAoB,CAACC,MAAiB;AACxC,IAAAR,KAAA,QAAAA,EAAgBQ;AAAA,EAAM;AAG1B,SACI,gBAAAC;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACG,sBAAoB;AAAA,MACpB,SAAO;AAAA,MACP,oBAAoBL;AAAA,MACpB,2BAA2B;AAAA,QACvB,cAAc;AAAA,MAAA;AAAA,MAEjB,GAAGT;AAAA,MACH,GAAGM;AAAA,MAEH,UAAAD,EAAM,IAAI,CAACU,GAAKC,MACb,gBAAAH;AAAA,QAACI;AAAA,QAAA;AAAA,UAEG,cAAa;AAAA,UACb,OAAOF,EAAIZ,CAAO;AAAA,UAElB,UAAA,gBAAAU;AAAA,YAACC;AAAA,YAAA;AAAA,cACI,GAAGL;AAAA,cACJ,WAAW,GACPM,EAAIb,CAAM,IAAI,KAAKK,EAAQQ,EAAIZ,CAAO,CAAC,CAC3C,IAAIM,EAAmB,SAAS;AAAA,cAChC,KAAKM,EAAIb,CAAM;AAAA,cACf,SAAS,MAAMS,EAAkBI,CAAG;AAAA,cAEnC,UAAAG,EAAQH,EAAI,IAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QACrB;AAAA,QAbKA,EAAIZ,CAAO,IAAIa;AAAA,MAAA,CAe3B;AAAA,IAAA;AAAA,EAAA;AAGb;"}
1
+ {"version":3,"file":"UsersAvatarGroup.js","sources":["../../../../lib/@ecme/components/shared/UsersAvatarGroup.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Tooltip from '@/components/ui/Tooltip'\nimport Avatar from '@/components/ui/Avatar'\nimport acronym from '@/utils/acronym'\nimport useRandomBgColor from '@/utils/hooks/useRandomBgColor'\nimport type { AvatarProps, AvatarGroupProps } from '@/components/ui/Avatar'\n\ntype User = Record<string, string>\n\ninterface UsersAvatarGroupProps extends AvatarGroupProps {\n avatarGroupProps?: AvatarGroupProps\n avatarProps?: AvatarProps\n imgKey?: string\n nameKey?: string\n onAvatarClick?: (avatar: User) => void\n users?: User[]\n}\n\nconst UsersAvatarGroup = (props: UsersAvatarGroupProps) => {\n const {\n avatarGroupProps = {},\n avatarProps = {},\n imgKey = 'img',\n nameKey = 'name',\n onAvatarClick,\n users = [],\n ...rest\n } = props\n\n const bgColor = useRandomBgColor()\n\n const defaultAvatarProps = useMemo(() => {\n return {\n shape: 'circle' as 'round' | 'circle' | 'square',\n size: 30,\n className: 'cursor-pointer',\n ...avatarProps,\n }\n }, [avatarProps])\n\n const handleAvatarClick = (avatar: User) => {\n onAvatarClick?.(avatar)\n }\n\n return (\n <Avatar.Group\n omittedAvatarTooltip\n chained\n omittedAvatarProps={defaultAvatarProps}\n omittedAvatarTooltipProps={{\n wrapperClass: 'flex',\n }}\n {...avatarGroupProps}\n {...rest}\n >\n {users.map((elm, index) => (\n <Tooltip\n key={elm[nameKey] + index}\n wrapperClass=\"flex\"\n title={elm[nameKey]}\n >\n <Avatar\n {...defaultAvatarProps}\n className={`${\n elm[imgKey] ? '' : bgColor(elm[nameKey])\n } ${defaultAvatarProps.className}`}\n src={elm[imgKey]}\n onClick={() => handleAvatarClick(elm)}\n >\n {acronym(elm.name)}\n </Avatar>\n </Tooltip>\n ))}\n </Avatar.Group>\n )\n}\n\nexport default UsersAvatarGroup\n"],"names":["UsersAvatarGroup","props","avatarGroupProps","avatarProps","imgKey","nameKey","onAvatarClick","users","rest","bgColor","useRandomBgColor","defaultAvatarProps","useMemo","handleAvatarClick","avatar","jsx","Avatar","elm","index","Tooltip","acronym"],"mappings":";;;;;;;AAkBA,MAAMA,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,kBAAAC,IAAmB,CAAA;AAAA,IACnB,aAAAC,IAAc,CAAA;AAAA,IACd,QAAAC,IAAS;AAAA,IACT,SAAAC,IAAU;AAAA,IACV,eAAAC;AAAA,IACA,OAAAC,IAAQ,CAAA;AAAA,IACR,GAAGC;AAAA,EAAA,IACHP,GAEEQ,IAAUC,EAAA,GAEVC,IAAqBC,EAAQ,OACxB;AAAA,IACH,OAAO;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,GAAGT;AAAA,EAAA,IAER,CAACA,CAAW,CAAC,GAEVU,IAAoB,CAACC,MAAiB;AACxC,IAAAR,KAAA,QAAAA,EAAgBQ;AAAA,EACpB;AAEA,SACI,gBAAAC;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACG,sBAAoB;AAAA,MACpB,SAAO;AAAA,MACP,oBAAoBL;AAAA,MACpB,2BAA2B;AAAA,QACvB,cAAc;AAAA,MAAA;AAAA,MAEjB,GAAGT;AAAA,MACH,GAAGM;AAAA,MAEH,UAAAD,EAAM,IAAI,CAACU,GAAKC,MACb,gBAAAH;AAAA,QAACI;AAAA,QAAA;AAAA,UAEG,cAAa;AAAA,UACb,OAAOF,EAAIZ,CAAO;AAAA,UAElB,UAAA,gBAAAU;AAAA,YAACC;AAAA,YAAA;AAAA,cACI,GAAGL;AAAA,cACJ,WAAW,GACPM,EAAIb,CAAM,IAAI,KAAKK,EAAQQ,EAAIZ,CAAO,CAAC,CAC3C,IAAIM,EAAmB,SAAS;AAAA,cAChC,KAAKM,EAAIb,CAAM;AAAA,cACf,SAAS,MAAMS,EAAkBI,CAAG;AAAA,cAEnC,UAAAG,EAAQH,EAAI,IAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QACrB;AAAA,QAbKA,EAAIZ,CAAO,IAAIa;AAAA,MAAA,CAe3B;AAAA,IAAA;AAAA,EAAA;AAGb;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalMenuDropdown.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdown.tsx"],"sourcesContent":["import { useEffect, useState, useRef, useContext, createContext } from 'react'\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListItem,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTypeahead,\n useTransitionStyles,\n} from '@floating-ui/react'\nimport type {\n CSSProperties,\n HTMLProps,\n Dispatch,\n SetStateAction,\n ReactNode,\n} from 'react'\n\ninterface HorizontalMenuDropdownProps {\n dropdownLean?: boolean\n triggerContent?: (payload: {\n ref: ((instance: HTMLElement | null) => void) | null\n props: { [x: string]: unknown }\n isOpen: boolean\n hasFocusInside: boolean\n }) => ReactNode\n menuContent?: (props: {\n styles: CSSProperties\n handleDropdownClose: () => void\n }) => ReactNode\n}\n\nconst MenuContext = createContext<{\n getItemProps: (\n userProps?: HTMLProps<HTMLElement>,\n ) => Record<string, unknown>\n activeIndex: number | null\n setActiveIndex: Dispatch<SetStateAction<number | null>>\n setHasFocusInside: Dispatch<SetStateAction<boolean>>\n isOpen: boolean\n}>({\n getItemProps: () => ({}),\n activeIndex: null,\n setActiveIndex: () => {},\n setHasFocusInside: () => {},\n isOpen: false,\n})\n\nconst HorizontalMenuDropdown = (props: HorizontalMenuDropdownProps) => {\n const { menuContent, triggerContent, dropdownLean } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const [hasFocusInside, setHasFocusInside] = useState(false)\n const [activeIndex, setActiveIndex] = useState<number | null>(null)\n\n const elementsRef = useRef<Array<HTMLButtonElement | null>>([])\n const labelsRef = useRef<Array<string | null>>([])\n const parent = useContext(MenuContext)\n\n const tree = useFloatingTree()\n const nodeId = useFloatingNodeId()\n const parentId = useFloatingParentNodeId()\n const item = useListItem()\n\n const isNested = parentId != null\n\n const { floatingStyles, refs, context } = useFloating<HTMLButtonElement>({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: isNested\n ? 'right-start'\n : dropdownLean\n ? 'bottom-start'\n : 'bottom',\n middleware: [\n offset({\n mainAxis: isNested ? 0 : 4,\n alignmentAxis: isNested ? -4 : 0,\n }),\n flip(),\n shift(),\n ],\n whileElementsMounted: autoUpdate,\n })\n\n const { isMounted, styles } = useTransitionStyles(context, {\n common: ({ side }) => ({\n transformOrigin: {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[side],\n }),\n initial: {\n transform: 'translateY(-5%)',\n opacity: 0,\n },\n duration: 200,\n open: {\n opacity: 1,\n transform: 'translateY(0%)',\n },\n close: {\n opacity: 0,\n transform: 'translateY(-5%)',\n },\n })\n\n const hover = useHover(context, {\n enabled: isNested,\n handleClose: safePolygon({ blockPointerEvents: true }),\n })\n const click = useClick(context, {\n event: 'mousedown',\n toggle: !isNested,\n ignoreMouse: isNested,\n })\n const role = useRole(context, { role: 'menu' })\n const dismiss = useDismiss(context, { bubbles: true })\n const listNavigation = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n nested: isNested,\n onNavigate: setActiveIndex,\n })\n const typeahead = useTypeahead(context, {\n listRef: labelsRef,\n onMatch: isOpen ? setActiveIndex : undefined,\n activeIndex,\n })\n\n const { getReferenceProps, getFloatingProps, getItemProps } =\n useInteractions([\n hover,\n click,\n role,\n dismiss,\n listNavigation,\n typeahead,\n ])\n\n const handleDropdownClose = () => {\n setIsOpen(false)\n }\n\n useEffect(() => {\n if (!tree) return\n\n function handleTreeClick() {\n handleDropdownClose()\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n handleDropdownClose()\n }\n }\n\n tree.events.on('click', handleTreeClick)\n tree.events.on('menuopen', onSubMenuOpen)\n\n return () => {\n tree.events.off('click', handleTreeClick)\n tree.events.off('menuopen', onSubMenuOpen)\n }\n }, [tree, nodeId, parentId])\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit('menuopen', { parentId, nodeId })\n }\n }, [tree, isOpen, nodeId, parentId])\n\n const dropdownRef = useMergeRefs([refs.setReference, item.ref])\n const dropdownProps = {\n ...getReferenceProps(\n parent.getItemProps({\n ...props,\n onFocus() {\n setHasFocusInside(false)\n parent.setHasFocusInside(true)\n },\n }),\n ),\n }\n\n return (\n <FloatingTree>\n <FloatingNode id={nodeId}>\n {triggerContent?.({\n ref: dropdownRef,\n props: dropdownProps,\n hasFocusInside,\n isOpen: isMounted,\n })}\n <MenuContext.Provider\n value={{\n activeIndex,\n setActiveIndex,\n getItemProps,\n setHasFocusInside,\n isOpen,\n }}\n >\n <FloatingList\n elementsRef={elementsRef}\n labelsRef={labelsRef}\n >\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={isNested ? -1 : 0}\n returnFocus={!isNested}\n >\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n className=\"outline-none z-30\"\n {...getFloatingProps()}\n >\n {menuContent?.({\n styles,\n handleDropdownClose,\n })}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </FloatingList>\n </MenuContext.Provider>\n </FloatingNode>\n </FloatingTree>\n )\n}\n\nexport default HorizontalMenuDropdown\n"],"names":["MenuContext","createContext","HorizontalMenuDropdown","props","menuContent","triggerContent","dropdownLean","isOpen","setIsOpen","useState","hasFocusInside","setHasFocusInside","activeIndex","setActiveIndex","elementsRef","useRef","labelsRef","parent","useContext","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","item","useListItem","isNested","floatingStyles","refs","context","useFloating","offset","flip","shift","autoUpdate","isMounted","styles","useTransitionStyles","side","hover","useHover","safePolygon","click","useClick","role","useRole","dismiss","useDismiss","listNavigation","useListNavigation","typeahead","useTypeahead","getReferenceProps","getFloatingProps","getItemProps","useInteractions","handleDropdownClose","useEffect","handleTreeClick","onSubMenuOpen","event","dropdownRef","useMergeRefs","dropdownProps","jsx","FloatingTree","jsxs","FloatingNode","FloatingList","FloatingPortal","FloatingFocusManager"],"mappings":"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"}
1
+ {"version":3,"file":"HorizontalMenuDropdown.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdown.tsx"],"sourcesContent":["import { useEffect, useState, useRef, useContext, createContext } from 'react'\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListItem,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTypeahead,\n useTransitionStyles,\n} from '@floating-ui/react'\nimport type {\n CSSProperties,\n HTMLProps,\n Dispatch,\n SetStateAction,\n ReactNode,\n} from 'react'\n\ninterface HorizontalMenuDropdownProps {\n dropdownLean?: boolean\n triggerContent?: (payload: {\n ref: ((instance: HTMLElement | null) => void) | null\n props: { [x: string]: unknown }\n isOpen: boolean\n hasFocusInside: boolean\n }) => ReactNode\n menuContent?: (props: {\n styles: CSSProperties\n handleDropdownClose: () => void\n }) => ReactNode\n}\n\nconst MenuContext = createContext<{\n getItemProps: (\n userProps?: HTMLProps<HTMLElement>,\n ) => Record<string, unknown>\n activeIndex: number | null\n setActiveIndex: Dispatch<SetStateAction<number | null>>\n setHasFocusInside: Dispatch<SetStateAction<boolean>>\n isOpen: boolean\n}>({\n getItemProps: () => ({}),\n activeIndex: null,\n setActiveIndex: () => {},\n setHasFocusInside: () => {},\n isOpen: false,\n})\n\nconst HorizontalMenuDropdown = (props: HorizontalMenuDropdownProps) => {\n const { menuContent, triggerContent, dropdownLean } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const [hasFocusInside, setHasFocusInside] = useState(false)\n const [activeIndex, setActiveIndex] = useState<number | null>(null)\n\n const elementsRef = useRef<Array<HTMLButtonElement | null>>([])\n const labelsRef = useRef<Array<string | null>>([])\n const parent = useContext(MenuContext)\n\n const tree = useFloatingTree()\n const nodeId = useFloatingNodeId()\n const parentId = useFloatingParentNodeId()\n const item = useListItem()\n\n const isNested = parentId != null\n\n const { floatingStyles, refs, context } = useFloating<HTMLButtonElement>({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: isNested\n ? 'right-start'\n : dropdownLean\n ? 'bottom-start'\n : 'bottom',\n middleware: [\n offset({\n mainAxis: isNested ? 0 : 4,\n alignmentAxis: isNested ? -4 : 0,\n }),\n flip(),\n shift(),\n ],\n whileElementsMounted: autoUpdate,\n })\n\n const { isMounted, styles } = useTransitionStyles(context, {\n common: ({ side }) => ({\n transformOrigin: {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[side],\n }),\n initial: {\n transform: 'translateY(-5%)',\n opacity: 0,\n },\n duration: 200,\n open: {\n opacity: 1,\n transform: 'translateY(0%)',\n },\n close: {\n opacity: 0,\n transform: 'translateY(-5%)',\n },\n })\n\n const hover = useHover(context, {\n enabled: isNested,\n handleClose: safePolygon({ blockPointerEvents: true }),\n })\n const click = useClick(context, {\n event: 'mousedown',\n toggle: !isNested,\n ignoreMouse: isNested,\n })\n const role = useRole(context, { role: 'menu' })\n const dismiss = useDismiss(context, { bubbles: true })\n const listNavigation = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n nested: isNested,\n onNavigate: setActiveIndex,\n })\n const typeahead = useTypeahead(context, {\n listRef: labelsRef,\n onMatch: isOpen ? setActiveIndex : undefined,\n activeIndex,\n })\n\n const { getReferenceProps, getFloatingProps, getItemProps } =\n useInteractions([\n hover,\n click,\n role,\n dismiss,\n listNavigation,\n typeahead,\n ])\n\n const handleDropdownClose = () => {\n setIsOpen(false)\n }\n\n useEffect(() => {\n if (!tree) return\n\n function handleTreeClick() {\n handleDropdownClose()\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n handleDropdownClose()\n }\n }\n\n tree.events.on('click', handleTreeClick)\n tree.events.on('menuopen', onSubMenuOpen)\n\n return () => {\n tree.events.off('click', handleTreeClick)\n tree.events.off('menuopen', onSubMenuOpen)\n }\n }, [tree, nodeId, parentId])\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit('menuopen', { parentId, nodeId })\n }\n }, [tree, isOpen, nodeId, parentId])\n\n const dropdownRef = useMergeRefs([refs.setReference, item.ref])\n const dropdownProps = {\n ...getReferenceProps(\n parent.getItemProps({\n ...props,\n onFocus() {\n setHasFocusInside(false)\n parent.setHasFocusInside(true)\n },\n }),\n ),\n }\n\n return (\n <FloatingTree>\n <FloatingNode id={nodeId}>\n {triggerContent?.({\n ref: dropdownRef,\n props: dropdownProps,\n hasFocusInside,\n isOpen: isMounted,\n })}\n <MenuContext.Provider\n value={{\n activeIndex,\n setActiveIndex,\n getItemProps,\n setHasFocusInside,\n isOpen,\n }}\n >\n <FloatingList\n elementsRef={elementsRef}\n labelsRef={labelsRef}\n >\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={isNested ? -1 : 0}\n returnFocus={!isNested}\n >\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n className=\"outline-none z-30\"\n {...getFloatingProps()}\n >\n {menuContent?.({\n styles,\n handleDropdownClose,\n })}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </FloatingList>\n </MenuContext.Provider>\n </FloatingNode>\n </FloatingTree>\n )\n}\n\nexport default HorizontalMenuDropdown\n"],"names":["MenuContext","createContext","HorizontalMenuDropdown","props","menuContent","triggerContent","dropdownLean","isOpen","setIsOpen","useState","hasFocusInside","setHasFocusInside","activeIndex","setActiveIndex","elementsRef","useRef","labelsRef","parent","useContext","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","item","useListItem","isNested","floatingStyles","refs","context","useFloating","offset","flip","shift","autoUpdate","isMounted","styles","useTransitionStyles","side","hover","useHover","safePolygon","click","useClick","role","useRole","dismiss","useDismiss","listNavigation","useListNavigation","typeahead","useTypeahead","getReferenceProps","getFloatingProps","getItemProps","useInteractions","handleDropdownClose","useEffect","handleTreeClick","onSubMenuOpen","event","dropdownRef","useMergeRefs","dropdownProps","jsx","FloatingTree","jsxs","FloatingNode","FloatingList","FloatingPortal","FloatingFocusManager"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalMenuDropdownContent.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport Avatar from \"@/components/ui/Avatar\";\nimport Dropdown from \"@/components/ui/Dropdown\";\nimport HorizontalMenuNavLink from \"./HorizontalMenuNavLink\";\nimport AuthorityCheck from \"@/components/shared/AuthorityCheck\";\nimport classNames from \"@/utils/classNames\";\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from \"@/constants/navigation.constant\";\nimport navigationIcon from \"@/configs/navigation-icon.config\";\nimport { TbCircle } from \"react-icons/tb\";\nimport type { CommonProps, TraslationFn } from \"@/@types/common\";\nimport type { NavigationTree, HorizontalMenuMeta } from \"@/@types/navigation\";\nimport type { ReactNode, HTMLProps } from \"react\";\n\ninterface LayoutProps extends CommonProps {\n navigationTree: NavigationTree[];\n t: TraslationFn;\n onDropdownClose: () => void;\n routeKey: string;\n routeParentKey?: string;\n userAuthority: string[];\n}\n\ninterface HorizontalMenuDropdownContentProps extends LayoutProps {\n layoutMeta?: HorizontalMenuMeta;\n}\n\nconst gridClasses = {\n 1: {\n grid: \"grid-cols-1\",\n width: \"w-[150px]\",\n },\n 2: {\n grid: \"grid-cols-2\",\n width: \"w-[350px]\",\n },\n 3: {\n grid: \"grid-cols-3\",\n width: \"w-[750px]\",\n },\n 4: {\n grid: \"grid-cols-4\",\n width: \"w-[950px]\",\n },\n 5: {\n grid: \"grid-cols-5\",\n width: \"w-[1150px]\",\n },\n};\n\nconst MenuItem = ({\n children,\n className,\n active,\n ...rest\n}: CommonProps & { active?: boolean } & HTMLProps<HTMLDivElement>) => {\n return (\n <div\n className={classNames(\n \"cursor-pointer font-semibold px-3 rounded-lg flex items-center w-full whitespace-nowrap gap-x-2 transition-colors duration-150 hover:text-gray-900 hover:bg-gray-100 dark:hover:text-gray-100 dark:hover:bg-gray-800\",\n active && \"bg-gray-100 dark:bg-gray-800\",\n className\n )}\n role=\"menuitem\"\n {...rest}\n >\n {children}\n </div>\n );\n};\n\nconst MenuIcon = ({ icon }: { icon: string }) => {\n if (typeof icon !== \"string\" && !icon) {\n return <></>;\n }\n\n return (\n <>\n {navigationIcon[icon] && (\n <span className={`text-xl`}>\n {navigationIcon[icon] || <TbCircle />}\n </span>\n )}\n </>\n );\n};\n\nconst MenuLink = ({\n path,\n isExternalLink,\n onClick,\n icon,\n title,\n description,\n active,\n}: {\n path: string;\n isExternalLink?: boolean;\n onClick: () => void;\n icon: ReactNode;\n title: string;\n description: string;\n active?: boolean;\n}) => (\n <HorizontalMenuNavLink\n path={path}\n isExternalLink={isExternalLink}\n className=\"gap-2 block\"\n onClick={onClick}\n >\n <MenuItem className=\"py-2 px-2 gap-3\" active={active}>\n <div>\n <Avatar\n className={classNames(\n \"bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\",\n active ? \"text-primary\" : \"heading-text\"\n )}\n size={40}\n icon={icon}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">{title}</div>\n <div className=\"text-xs truncate\">{description}</div>\n </div>\n </MenuItem>\n </HorizontalMenuNavLink>\n);\n\nconst ColumnsLayout = (\n props: LayoutProps & {\n columns: 1 | 2 | 3 | 4 | 5;\n showColumnTitle?: boolean;\n }\n) => {\n const {\n navigationTree,\n t,\n onDropdownClose,\n columns = 1,\n showColumnTitle = true,\n routeKey,\n userAuthority,\n } = props;\n\n return (\n <div className=\"flex max-w-[1400px] w-full\">\n <div\n className={classNames(\n \"grid gap-y-6 gap-x-8 p-6 flex-1\",\n gridClasses[columns]?.grid\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"max-w-[250px]\">\n {showColumnTitle && (\n <div className=\"heading-text font-bold mb-2\">\n {t(nav.translateKey, nav.title)}\n </div>\n )}\n {nav.subMenu.map((subNav) => (\n <AuthorityCheck\n key={subNav.key}\n userAuthority={userAuthority}\n authority={subNav.authority}\n >\n <div key={subNav.key}>\n <MenuLink\n path={subNav.path}\n isExternalLink={subNav.isExternalLink}\n icon={navigationIcon[subNav.icon] || <TbCircle />}\n title={t(subNav.translateKey, subNav.title)}\n description={t(\n subNav.meta?.description?.translateKey || \"\",\n subNav.meta?.description?.label || \"\"\n )}\n active={subNav.key === routeKey}\n onClick={onDropdownClose}\n />\n </div>\n </AuthorityCheck>\n ))}\n </div>\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n {navigationTree.some((nav) => nav.type === NAV_ITEM_TYPE_ITEM) && (\n <div\n className={classNames(\n \"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 min-w-[280px] p-4 flex flex-col\"\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length === 0 && nav.type === NAV_ITEM_TYPE_ITEM) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <MenuLink\n key={nav.key}\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n icon={navigationIcon[nav.icon] || <TbCircle />}\n title={t(nav.translateKey, nav.title)}\n description={t(\n nav.meta?.description?.translateKey || \"\",\n nav.meta?.description?.label || \"\"\n )}\n active={nav.key === routeKey}\n onClick={onDropdownClose}\n />\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n )}\n </div>\n );\n};\n\nconst DefaultLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n routeKey,\n userAuthority,\n}: LayoutProps) => {\n const renderNavigation = (navTree: NavigationTree[], cascade: number) => {\n const nextCascade = cascade + 1;\n\n return (\n <div className={classNames(cascade === 0 && \"p-3\")}>\n {navTree.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <ul>\n {nav.type === NAV_ITEM_TYPE_ITEM && (\n <Dropdown.Item active={routeKey === nav.key}>\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 h-full\"\n onClick={onDropdownClose}\n >\n <MenuIcon icon={nav.icon} />\n <span>{t(nav.translateKey, nav.title)}</span>\n </HorizontalMenuNavLink>\n </Dropdown.Item>\n )}\n {nav.type === NAV_ITEM_TYPE_COLLAPSE && (\n <Dropdown\n renderTitle={\n <span className=\"flex items-center gap-2\">\n <MenuIcon icon={nav.icon} />\n <span>{t(nav.translateKey, nav.title)}</span>\n </span>\n }\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(nav.subMenu, nextCascade)}\n </Dropdown>\n )}\n </ul>\n </AuthorityCheck>\n ))}\n </div>\n );\n };\n\n return <>{renderNavigation(navigationTree, 0)}</>;\n};\n\nconst TabLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n columns,\n routeKey,\n userAuthority,\n routeParentKey,\n}: LayoutProps & { columns: 1 | 2 | 3 | 4 | 5 }) => {\n const [activeKey, setActiveKey] = useState(\n navigationTree.some((nav) => nav.key === routeParentKey)\n ? routeParentKey\n : navigationTree[0]?.key || \"\"\n );\n\n return (\n <div className=\"flex\">\n <div className=\"p-4\">\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"min-w-[250px]\">\n <div key={nav.key}>\n <MenuItem\n className=\"py-2 px-2 gap-3\"\n active={nav.key === activeKey}\n onClick={() => setActiveKey(nav.key)}\n >\n <div>\n <Avatar\n className={classNames(\n \"bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\",\n nav.key === routeKey\n ? \"text-primary\"\n : \"heading-text\"\n )}\n size={40}\n icon={navigationIcon[nav.icon] || <TbCircle />}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">\n {t(nav.translateKey, nav.title)}\n </div>\n <div className=\"text-xs truncate\">\n {t(\n nav.meta?.description?.translateKey || \"\",\n nav.meta?.description?.label || \"\"\n )}\n </div>\n </div>\n </MenuItem>\n </div>\n </div>\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n {navigationTree.some(\n (nav) => nav.key === activeKey && nav.type === NAV_ITEM_TYPE_COLLAPSE\n ) && (\n <div className=\"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 p-6\">\n <div\n className={classNames(\n \"grid gap-x-8 flex-1\",\n gridClasses[columns]?.grid,\n gridClasses[columns]?.width\n )}\n >\n {navigationTree\n .find((nav) => nav.key === activeKey)\n ?.subMenu.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 group\"\n onClick={() => onDropdownClose()}\n >\n <div\n className={classNames(\n \"flex items-center gap-2 h-[42px] heading-text group-hover:text-primary\",\n routeKey === nav.key && \"text-primary\"\n )}\n >\n <span className=\"text-xl\">\n {navigationIcon[nav.icon] || <TbCircle />}\n </span>\n <span>{t(nav.translateKey, nav.title)}</span>\n </div>\n </HorizontalMenuNavLink>\n </AuthorityCheck>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst HorizontalMenuDropdownContent = (\n props: HorizontalMenuDropdownContentProps\n) => {\n const { style, navigationTree, layoutMeta, ...rest } = props;\n\n return (\n <div\n className=\"rounded-2xl bg-white dark:bg-gray-900 ring-0 shadow-[0px_48px_64px_-16px_rgba(0,0,0,0.25)] border border-gray-100 dark:border-gray-800 focus:outline-none min-w-[180px]\"\n style={style}\n >\n {layoutMeta?.layout === \"default\" && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n {layoutMeta?.layout === \"columns\" && (\n <ColumnsLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n showColumnTitle={layoutMeta.showColumnTitle}\n {...rest}\n />\n )}\n {layoutMeta?.layout === \"tabs\" && (\n <TabLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n {...rest}\n />\n )}\n {!layoutMeta && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n </div>\n );\n};\n\nexport default HorizontalMenuDropdownContent;\n"],"names":["gridClasses","MenuItem","children","className","active","rest","jsx","classNames","MenuIcon","icon","Fragment","navigationIcon","TbCircle","MenuLink","path","isExternalLink","onClick","title","description","HorizontalMenuNavLink","jsxs","Avatar","ColumnsLayout","props","navigationTree","t","onDropdownClose","columns","showColumnTitle","routeKey","userAuthority","_a","nav","AuthorityCheck","subNav","_b","_d","_c","NAV_ITEM_TYPE_ITEM","DefaultLayout","renderNavigation","navTree","cascade","nextCascade","Dropdown","NAV_ITEM_TYPE_COLLAPSE","TabLayout","routeParentKey","activeKey","setActiveKey","useState","HorizontalMenuDropdownContent","style","layoutMeta"],"mappings":"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"}
1
+ {"version":3,"file":"HorizontalMenuDropdownContent.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport Avatar from \"@/components/ui/Avatar\";\nimport Dropdown from \"@/components/ui/Dropdown\";\nimport HorizontalMenuNavLink from \"./HorizontalMenuNavLink\";\nimport AuthorityCheck from \"@/components/shared/AuthorityCheck\";\nimport classNames from \"@/utils/classNames\";\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from \"@/constants/navigation.constant\";\nimport navigationIcon from \"@/configs/navigation-icon.config\";\nimport { TbCircle } from \"react-icons/tb\";\nimport type { CommonProps, TraslationFn } from \"@/@types/common\";\nimport type { NavigationTree, HorizontalMenuMeta } from \"@/@types/navigation\";\nimport type { ReactNode, HTMLProps } from \"react\";\n\ninterface LayoutProps extends CommonProps {\n navigationTree: NavigationTree[];\n t: TraslationFn;\n onDropdownClose: () => void;\n routeKey: string;\n routeParentKey?: string;\n userAuthority: string[];\n}\n\ninterface HorizontalMenuDropdownContentProps extends LayoutProps {\n layoutMeta?: HorizontalMenuMeta;\n}\n\nconst gridClasses = {\n 1: {\n grid: \"grid-cols-1\",\n width: \"w-[150px]\",\n },\n 2: {\n grid: \"grid-cols-2\",\n width: \"w-[350px]\",\n },\n 3: {\n grid: \"grid-cols-3\",\n width: \"w-[750px]\",\n },\n 4: {\n grid: \"grid-cols-4\",\n width: \"w-[950px]\",\n },\n 5: {\n grid: \"grid-cols-5\",\n width: \"w-[1150px]\",\n },\n};\n\nconst MenuItem = ({\n children,\n className,\n active,\n ...rest\n}: CommonProps & { active?: boolean } & HTMLProps<HTMLDivElement>) => {\n return (\n <div\n className={classNames(\n \"cursor-pointer font-semibold px-3 rounded-lg flex items-center w-full whitespace-nowrap gap-x-2 transition-colors duration-150 hover:text-gray-900 hover:bg-gray-100 dark:hover:text-gray-100 dark:hover:bg-gray-800\",\n active && \"bg-gray-100 dark:bg-gray-800\",\n className\n )}\n role=\"menuitem\"\n {...rest}\n >\n {children}\n </div>\n );\n};\n\nconst MenuIcon = ({ icon }: { icon: string }) => {\n if (typeof icon !== \"string\" && !icon) {\n return <></>;\n }\n\n return (\n <>\n {navigationIcon[icon] && (\n <span className={`text-xl`}>\n {navigationIcon[icon] || <TbCircle />}\n </span>\n )}\n </>\n );\n};\n\nconst MenuLink = ({\n path,\n isExternalLink,\n onClick,\n icon,\n title,\n description,\n active,\n}: {\n path: string;\n isExternalLink?: boolean;\n onClick: () => void;\n icon: ReactNode;\n title: string;\n description: string;\n active?: boolean;\n}) => (\n <HorizontalMenuNavLink\n path={path}\n isExternalLink={isExternalLink}\n className=\"gap-2 block\"\n onClick={onClick}\n >\n <MenuItem className=\"py-2 px-2 gap-3\" active={active}>\n <div>\n <Avatar\n className={classNames(\n \"bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\",\n active ? \"text-primary\" : \"heading-text\"\n )}\n size={40}\n icon={icon}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">{title}</div>\n <div className=\"text-xs truncate\">{description}</div>\n </div>\n </MenuItem>\n </HorizontalMenuNavLink>\n);\n\nconst ColumnsLayout = (\n props: LayoutProps & {\n columns: 1 | 2 | 3 | 4 | 5;\n showColumnTitle?: boolean;\n }\n) => {\n const {\n navigationTree,\n t,\n onDropdownClose,\n columns = 1,\n showColumnTitle = true,\n routeKey,\n userAuthority,\n } = props;\n\n return (\n <div className=\"flex max-w-[1400px] w-full\">\n <div\n className={classNames(\n \"grid gap-y-6 gap-x-8 p-6 flex-1\",\n gridClasses[columns]?.grid\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"max-w-[250px]\">\n {showColumnTitle && (\n <div className=\"heading-text font-bold mb-2\">\n {t(nav.translateKey, nav.title)}\n </div>\n )}\n {nav.subMenu.map((subNav) => (\n <AuthorityCheck\n key={subNav.key}\n userAuthority={userAuthority}\n authority={subNav.authority}\n >\n <div key={subNav.key}>\n <MenuLink\n path={subNav.path}\n isExternalLink={subNav.isExternalLink}\n icon={navigationIcon[subNav.icon] || <TbCircle />}\n title={t(subNav.translateKey, subNav.title)}\n description={t(\n subNav.meta?.description?.translateKey || \"\",\n subNav.meta?.description?.label || \"\"\n )}\n active={subNav.key === routeKey}\n onClick={onDropdownClose}\n />\n </div>\n </AuthorityCheck>\n ))}\n </div>\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n {navigationTree.some((nav) => nav.type === NAV_ITEM_TYPE_ITEM) && (\n <div\n className={classNames(\n \"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 min-w-[280px] p-4 flex flex-col\"\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length === 0 && nav.type === NAV_ITEM_TYPE_ITEM) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <MenuLink\n key={nav.key}\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n icon={navigationIcon[nav.icon] || <TbCircle />}\n title={t(nav.translateKey, nav.title)}\n description={t(\n nav.meta?.description?.translateKey || \"\",\n nav.meta?.description?.label || \"\"\n )}\n active={nav.key === routeKey}\n onClick={onDropdownClose}\n />\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n )}\n </div>\n );\n};\n\nconst DefaultLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n routeKey,\n userAuthority,\n}: LayoutProps) => {\n const renderNavigation = (navTree: NavigationTree[], cascade: number) => {\n const nextCascade = cascade + 1;\n\n return (\n <div className={classNames(cascade === 0 && \"p-3\")}>\n {navTree.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <ul>\n {nav.type === NAV_ITEM_TYPE_ITEM && (\n <Dropdown.Item active={routeKey === nav.key}>\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 h-full\"\n onClick={onDropdownClose}\n >\n <MenuIcon icon={nav.icon} />\n <span>{t(nav.translateKey, nav.title)}</span>\n </HorizontalMenuNavLink>\n </Dropdown.Item>\n )}\n {nav.type === NAV_ITEM_TYPE_COLLAPSE && (\n <Dropdown\n renderTitle={\n <span className=\"flex items-center gap-2\">\n <MenuIcon icon={nav.icon} />\n <span>{t(nav.translateKey, nav.title)}</span>\n </span>\n }\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(nav.subMenu, nextCascade)}\n </Dropdown>\n )}\n </ul>\n </AuthorityCheck>\n ))}\n </div>\n );\n };\n\n return <>{renderNavigation(navigationTree, 0)}</>;\n};\n\nconst TabLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n columns,\n routeKey,\n userAuthority,\n routeParentKey,\n}: LayoutProps & { columns: 1 | 2 | 3 | 4 | 5 }) => {\n const [activeKey, setActiveKey] = useState(\n navigationTree.some((nav) => nav.key === routeParentKey)\n ? routeParentKey\n : navigationTree[0]?.key || \"\"\n );\n\n return (\n <div className=\"flex\">\n <div className=\"p-4\">\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"min-w-[250px]\">\n <div key={nav.key}>\n <MenuItem\n className=\"py-2 px-2 gap-3\"\n active={nav.key === activeKey}\n onClick={() => setActiveKey(nav.key)}\n >\n <div>\n <Avatar\n className={classNames(\n \"bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\",\n nav.key === routeKey\n ? \"text-primary\"\n : \"heading-text\"\n )}\n size={40}\n icon={navigationIcon[nav.icon] || <TbCircle />}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">\n {t(nav.translateKey, nav.title)}\n </div>\n <div className=\"text-xs truncate\">\n {t(\n nav.meta?.description?.translateKey || \"\",\n nav.meta?.description?.label || \"\"\n )}\n </div>\n </div>\n </MenuItem>\n </div>\n </div>\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n {navigationTree.some(\n (nav) => nav.key === activeKey && nav.type === NAV_ITEM_TYPE_COLLAPSE\n ) && (\n <div className=\"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 p-6\">\n <div\n className={classNames(\n \"grid gap-x-8 flex-1\",\n gridClasses[columns]?.grid,\n gridClasses[columns]?.width\n )}\n >\n {navigationTree\n .find((nav) => nav.key === activeKey)\n ?.subMenu.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 group\"\n onClick={() => onDropdownClose()}\n >\n <div\n className={classNames(\n \"flex items-center gap-2 h-[42px] heading-text group-hover:text-primary\",\n routeKey === nav.key && \"text-primary\"\n )}\n >\n <span className=\"text-xl\">\n {navigationIcon[nav.icon] || <TbCircle />}\n </span>\n <span>{t(nav.translateKey, nav.title)}</span>\n </div>\n </HorizontalMenuNavLink>\n </AuthorityCheck>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst HorizontalMenuDropdownContent = (\n props: HorizontalMenuDropdownContentProps\n) => {\n const { style, navigationTree, layoutMeta, ...rest } = props;\n\n return (\n <div\n className=\"rounded-2xl bg-white dark:bg-gray-900 ring-0 shadow-[0px_48px_64px_-16px_rgba(0,0,0,0.25)] border border-gray-100 dark:border-gray-800 focus:outline-none min-w-[180px]\"\n style={style}\n >\n {layoutMeta?.layout === \"default\" && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n {layoutMeta?.layout === \"columns\" && (\n <ColumnsLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n showColumnTitle={layoutMeta.showColumnTitle}\n {...rest}\n />\n )}\n {layoutMeta?.layout === \"tabs\" && (\n <TabLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n {...rest}\n />\n )}\n {!layoutMeta && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n </div>\n );\n};\n\nexport default HorizontalMenuDropdownContent;\n"],"names":["gridClasses","MenuItem","children","className","active","rest","jsx","classNames","MenuIcon","icon","Fragment","navigationIcon","TbCircle","MenuLink","path","isExternalLink","onClick","title","description","HorizontalMenuNavLink","jsxs","Avatar","ColumnsLayout","props","navigationTree","t","onDropdownClose","columns","showColumnTitle","routeKey","userAuthority","_a","nav","AuthorityCheck","subNav","_b","_d","_c","NAV_ITEM_TYPE_ITEM","DefaultLayout","renderNavigation","navTree","cascade","nextCascade","Dropdown","NAV_ITEM_TYPE_COLLAPSE","TabLayout","routeParentKey","activeKey","setActiveKey","useState","HorizontalMenuDropdownContent","style","layoutMeta"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalMenuDropdownTrigger.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.tsx"],"sourcesContent":["import classNames from \"@/utils/classNames\";\nimport HorizontalMenuNavLink from \"./HorizontalMenuNavLink\";\nimport type { CommonProps } from \"@/@types/common\";\nimport type { HorizontalMenuNavLinkProps } from \"./HorizontalMenuNavLink\";\nimport type { ButtonHTMLAttributes, Ref } from \"react\";\n\ninterface HorizontalMenuDropdownTriggerCommonProps extends CommonProps {\n active?: boolean;\n}\n\ninterface ButtonProps\n extends HorizontalMenuDropdownTriggerCommonProps,\n ButtonHTMLAttributes<HTMLButtonElement> {\n asElement?: \"button\";\n ref?: Ref<HTMLButtonElement>;\n}\n\ninterface AnchorProps\n extends HorizontalMenuNavLinkProps,\n HorizontalMenuDropdownTriggerCommonProps {\n asElement?: \"a\";\n path: string;\n isExternalLink?: boolean;\n linkRenderer?: HorizontalMenuNavLinkProps[\"linkRenderer\"];\n}\n\ntype HorizontalMenuDropdownTriggerProps = ButtonProps | AnchorProps;\n\nconst HorizontalMenuDropdownTrigger = (\n props: HorizontalMenuDropdownTriggerProps\n) => {\n const { className, active, asElement = \"button\", ...rest } = props;\n const commonProps = {\n className: classNames(\n \"font-semibold inline-flex h-9 w-max items-center justify-center rounded-lg bg-background px-4 py-2 dark:text-gray-300 dark:hover:text-gray-100 text-gray-900 hover:bg-gray-100 dark:hover:bg-white/10 transition-colors\",\n className,\n active &&\n \"bg-gray-100 hover:bg-gray-200 dark:bg-white/10 dark:hover:bg-white/20\"\n ),\n };\n\n if (asElement === \"a\") {\n const { path, isExternalLink, linkRenderer, ...anchorProps } =\n rest as AnchorProps;\n return (\n <HorizontalMenuNavLink\n linkRenderer={linkRenderer}\n path={path as string}\n isExternalLink={isExternalLink}\n {...commonProps}\n {...anchorProps}\n />\n );\n }\n\n if (asElement === \"button\") {\n return (\n <button\n ref={(rest as ButtonProps).ref}\n {...commonProps}\n {...(rest as ButtonProps)}\n />\n );\n }\n\n return <></>;\n};\n\nexport default HorizontalMenuDropdownTrigger;\n"],"names":["HorizontalMenuDropdownTrigger","props","className","active","asElement","rest","commonProps","classNames","path","isExternalLink","linkRenderer","anchorProps","jsx","HorizontalMenuNavLink","Fragment"],"mappings":";;;AA4BA,MAAMA,IAAgC,CACpCC,MACG;AACH,QAAM,EAAE,WAAAC,GAAW,QAAAC,GAAQ,WAAAC,IAAY,UAAU,GAAGC,MAASJ,GACvDK,IAAc;AAAA,IAClB,WAAWC;AAAA,MACT;AAAA,MACAL;AAAA,MACAC,KACE;AAAA,IAAA;AAAA,EACJ;AAGF,MAAIC,MAAc,KAAK;AACrB,UAAM,EAAE,MAAAI,GAAM,gBAAAC,GAAgB,cAAAC,GAAc,GAAGC,MAC7CN;AACF,WACE,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,cAAAH;AAAA,QACA,MAAAF;AAAA,QACA,gBAAAC;AAAA,QACC,GAAGH;AAAA,QACH,GAAGK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AAIJ,SAAIP,MAAc,WAEd,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAMP,EAAqB;AAAA,MAC1B,GAAGC;AAAA,MACH,GAAID;AAAA,IAAA;AAAA,EAAA,IAKJ,gBAAAO,EAAAE,GAAA,EAAE;AACX;"}
1
+ {"version":3,"file":"HorizontalMenuDropdownTrigger.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.tsx"],"sourcesContent":["import classNames from \"@/utils/classNames\";\nimport HorizontalMenuNavLink from \"./HorizontalMenuNavLink\";\nimport type { CommonProps } from \"@/@types/common\";\nimport type { HorizontalMenuNavLinkProps } from \"./HorizontalMenuNavLink\";\nimport type { ButtonHTMLAttributes, Ref } from \"react\";\n\ninterface HorizontalMenuDropdownTriggerCommonProps extends CommonProps {\n active?: boolean;\n}\n\ninterface ButtonProps\n extends HorizontalMenuDropdownTriggerCommonProps,\n ButtonHTMLAttributes<HTMLButtonElement> {\n asElement?: \"button\";\n ref?: Ref<HTMLButtonElement>;\n}\n\ninterface AnchorProps\n extends HorizontalMenuNavLinkProps,\n HorizontalMenuDropdownTriggerCommonProps {\n asElement?: \"a\";\n path: string;\n isExternalLink?: boolean;\n linkRenderer?: HorizontalMenuNavLinkProps[\"linkRenderer\"];\n}\n\ntype HorizontalMenuDropdownTriggerProps = ButtonProps | AnchorProps;\n\nconst HorizontalMenuDropdownTrigger = (\n props: HorizontalMenuDropdownTriggerProps\n) => {\n const { className, active, asElement = \"button\", ...rest } = props;\n const commonProps = {\n className: classNames(\n \"font-semibold inline-flex h-9 w-max items-center justify-center rounded-lg bg-background px-4 py-2 dark:text-gray-300 dark:hover:text-gray-100 text-gray-900 hover:bg-gray-100 dark:hover:bg-white/10 transition-colors\",\n className,\n active &&\n \"bg-gray-100 hover:bg-gray-200 dark:bg-white/10 dark:hover:bg-white/20\"\n ),\n };\n\n if (asElement === \"a\") {\n const { path, isExternalLink, linkRenderer, ...anchorProps } =\n rest as AnchorProps;\n return (\n <HorizontalMenuNavLink\n linkRenderer={linkRenderer}\n path={path as string}\n isExternalLink={isExternalLink}\n {...commonProps}\n {...anchorProps}\n />\n );\n }\n\n if (asElement === \"button\") {\n return (\n <button\n ref={(rest as ButtonProps).ref}\n {...commonProps}\n {...(rest as ButtonProps)}\n />\n );\n }\n\n return <></>;\n};\n\nexport default HorizontalMenuDropdownTrigger;\n"],"names":["HorizontalMenuDropdownTrigger","props","className","active","asElement","rest","commonProps","classNames","path","isExternalLink","linkRenderer","anchorProps","jsx","HorizontalMenuNavLink","Fragment"],"mappings":";;;AA4BA,MAAMA,IAAgC,CACpCC,MACG;AACH,QAAM,EAAE,WAAAC,GAAW,QAAAC,GAAQ,WAAAC,IAAY,UAAU,GAAGC,MAASJ,GACvDK,IAAc;AAAA,IAClB,WAAWC;AAAA,MACT;AAAA,MACAL;AAAA,MACAC,KACE;AAAA,IAAA;AAAA,EACJ;AAGF,MAAIC,MAAc,KAAK;AACrB,UAAM,EAAE,MAAAI,GAAM,gBAAAC,GAAgB,cAAAC,GAAc,GAAGC,MAC7CN;AACF,WACE,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,cAAAH;AAAA,QACA,MAAAF;AAAA,QACA,gBAAAC;AAAA,QACC,GAAGH;AAAA,QACH,GAAGK;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AAEA,SAAIP,MAAc,WAEd,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAMP,EAAqB;AAAA,MAC1B,GAAGC;AAAA,MACH,GAAID;AAAA,IAAA;AAAA,EAAA,IAKJ,gBAAAO,EAAAE,GAAA,EAAE;AACX;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageSelector.js","sources":["../../../../lib/@ecme/components/template/LanguageSelector.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Dropdown from '@/components/ui/Dropdown'\nimport classNames from 'classnames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport { useLocaleStore } from '@/store/localeStore'\nimport { HiCheck } from 'react-icons/hi'\nimport type { CommonProps } from '@/@types/common'\n\nconst languageList = [\n { label: 'English', value: 'en', flag: 'US' },\n { label: 'Português', value: 'ptBR', flag: 'BR' },\n]\n\nconst _LanguageSelector = ({ className }: CommonProps) => {\n const { currentLang: locale, setLang } = useLocaleStore((state) => state)\n\n const selectLangFlag = useMemo(() => {\n return languageList.find((lang) => lang.value === locale)?.flag\n }, [locale])\n\n const selectedLanguage = (\n <div className={classNames(className, 'flex items-center')}>\n <Avatar\n size={24}\n shape=\"circle\"\n src={`/img/countries/${selectLangFlag}.png`}\n />\n </div>\n )\n\n return (\n <Dropdown renderTitle={selectedLanguage} placement=\"bottom-end\">\n {languageList.map((lang) => (\n <Dropdown.Item\n key={lang.label}\n className=\"justify-between\"\n eventKey={lang.label}\n onClick={() => setLang(lang.value)}\n >\n <span className=\"flex items-center\">\n <Avatar\n size={18}\n shape=\"circle\"\n src={`/img/countries/${lang.flag}.png`}\n />\n <span className=\"ltr:ml-2 rtl:mr-2\">{lang.label}</span>\n </span>\n {locale === lang.value && (\n <HiCheck className=\"text-lg text-emerald-500\" />\n )}\n </Dropdown.Item>\n ))}\n </Dropdown>\n )\n}\n\nconst LanguageSelector = withHeaderItem(_LanguageSelector)\n\nexport default LanguageSelector\n"],"names":["languageList","_LanguageSelector","className","locale","setLang","useLocaleStore","state","selectLangFlag","useMemo","_a","lang","selectedLanguage","jsx","classNames","Avatar","Dropdown","jsxs","HiCheck","LanguageSelector","withHeaderItem"],"mappings":";;;;;;;;AASA,MAAMA,IAAe;AAAA,EACjB,EAAE,OAAO,WAAW,OAAO,MAAM,MAAM,KAAA;AAAA,EACvC,EAAE,OAAO,aAAa,OAAO,QAAQ,MAAM,KAAA;AAC/C,GAEMC,IAAoB,CAAC,EAAE,WAAAC,QAA6B;AACtD,QAAM,EAAE,aAAaC,GAAQ,SAAAC,EAAA,IAAYC,EAAe,CAACC,MAAUA,CAAK,GAElEC,IAAiBC,EAAQ,MAAM;;AACjC,YAAOC,IAAAT,EAAa,KAAK,CAACU,MAASA,EAAK,UAAUP,CAAM,MAAjD,gBAAAM,EAAoD;AAAA,EAAA,GAC5D,CAACN,CAAM,CAAC,GAELQ,IACF,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAWX,GAAW,mBAAmB,GACrD,UAAA,gBAAAU;AAAA,IAACE;AAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,OAAM;AAAA,MACN,KAAK,kBAAkBP,CAAc;AAAA,IAAA;AAAA,EAAA,GAE7C;AAGJ,SACI,gBAAAK,EAACG,KAAS,aAAaJ,GAAkB,WAAU,cAC9C,UAAAX,EAAa,IAAI,CAACU,MACf,gBAAAM;AAAA,IAACD,EAAS;AAAA,IAAT;AAAA,MAEG,WAAU;AAAA,MACV,UAAUL,EAAK;AAAA,MACf,SAAS,MAAMN,EAAQM,EAAK,KAAK;AAAA,MAEjC,UAAA;AAAA,QAAA,gBAAAM,EAAC,QAAA,EAAK,WAAU,qBACZ,UAAA;AAAA,UAAA,gBAAAJ;AAAA,YAACE;AAAA,YAAA;AAAA,cACG,MAAM;AAAA,cACN,OAAM;AAAA,cACN,KAAK,kBAAkBJ,EAAK,IAAI;AAAA,YAAA;AAAA,UAAA;AAAA,UAEpC,gBAAAE,EAAC,QAAA,EAAK,WAAU,qBAAqB,YAAK,MAAA,CAAM;AAAA,QAAA,GACpD;AAAA,QACCT,MAAWO,EAAK,SACb,gBAAAE,EAACK,GAAA,EAAQ,WAAU,2BAAA,CAA2B;AAAA,MAAA;AAAA,IAAA;AAAA,IAd7CP,EAAK;AAAA,EAAA,CAiBjB,GACL;AAER,GAEMQ,IAAmBC,EAAelB,CAAiB;"}
1
+ {"version":3,"file":"LanguageSelector.js","sources":["../../../../lib/@ecme/components/template/LanguageSelector.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Dropdown from '@/components/ui/Dropdown'\nimport classNames from 'classnames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport { useLocaleStore } from '@/store/localeStore'\nimport { HiCheck } from 'react-icons/hi'\nimport type { CommonProps } from '@/@types/common'\n\nconst languageList = [\n { label: 'English', value: 'en', flag: 'US' },\n { label: 'Português', value: 'ptBR', flag: 'BR' },\n]\n\nconst _LanguageSelector = ({ className }: CommonProps) => {\n const { currentLang: locale, setLang } = useLocaleStore((state) => state)\n\n const selectLangFlag = useMemo(() => {\n return languageList.find((lang) => lang.value === locale)?.flag\n }, [locale])\n\n const selectedLanguage = (\n <div className={classNames(className, 'flex items-center')}>\n <Avatar\n size={24}\n shape=\"circle\"\n src={`/img/countries/${selectLangFlag}.png`}\n />\n </div>\n )\n\n return (\n <Dropdown renderTitle={selectedLanguage} placement=\"bottom-end\">\n {languageList.map((lang) => (\n <Dropdown.Item\n key={lang.label}\n className=\"justify-between\"\n eventKey={lang.label}\n onClick={() => setLang(lang.value)}\n >\n <span className=\"flex items-center\">\n <Avatar\n size={18}\n shape=\"circle\"\n src={`/img/countries/${lang.flag}.png`}\n />\n <span className=\"ltr:ml-2 rtl:mr-2\">{lang.label}</span>\n </span>\n {locale === lang.value && (\n <HiCheck className=\"text-lg text-emerald-500\" />\n )}\n </Dropdown.Item>\n ))}\n </Dropdown>\n )\n}\n\nconst LanguageSelector = withHeaderItem(_LanguageSelector)\n\nexport default LanguageSelector\n"],"names":["languageList","_LanguageSelector","className","locale","setLang","useLocaleStore","state","selectLangFlag","useMemo","_a","lang","selectedLanguage","jsx","classNames","Avatar","Dropdown","jsxs","HiCheck","LanguageSelector","withHeaderItem"],"mappings":";;;;;;;;AASA,MAAMA,IAAe;AAAA,EACjB,EAAE,OAAO,WAAW,OAAO,MAAM,MAAM,KAAA;AAAA,EACvC,EAAE,OAAO,aAAa,OAAO,QAAQ,MAAM,KAAA;AAC/C,GAEMC,IAAoB,CAAC,EAAE,WAAAC,QAA6B;AACtD,QAAM,EAAE,aAAaC,GAAQ,SAAAC,EAAA,IAAYC,EAAe,CAACC,MAAUA,CAAK,GAElEC,IAAiBC,EAAQ,MAAM;;AACjC,YAAOC,IAAAT,EAAa,KAAK,CAACU,MAASA,EAAK,UAAUP,CAAM,MAAjD,gBAAAM,EAAoD;AAAA,EAC/D,GAAG,CAACN,CAAM,CAAC,GAELQ,IACF,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAWX,GAAW,mBAAmB,GACrD,UAAA,gBAAAU;AAAA,IAACE;AAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,OAAM;AAAA,MACN,KAAK,kBAAkBP,CAAc;AAAA,IAAA;AAAA,EAAA,GAE7C;AAGJ,SACI,gBAAAK,EAACG,KAAS,aAAaJ,GAAkB,WAAU,cAC9C,UAAAX,EAAa,IAAI,CAACU,MACf,gBAAAM;AAAA,IAACD,EAAS;AAAA,IAAT;AAAA,MAEG,WAAU;AAAA,MACV,UAAUL,EAAK;AAAA,MACf,SAAS,MAAMN,EAAQM,EAAK,KAAK;AAAA,MAEjC,UAAA;AAAA,QAAA,gBAAAM,EAAC,QAAA,EAAK,WAAU,qBACZ,UAAA;AAAA,UAAA,gBAAAJ;AAAA,YAACE;AAAA,YAAA;AAAA,cACG,MAAM;AAAA,cACN,OAAM;AAAA,cACN,KAAK,kBAAkBJ,EAAK,IAAI;AAAA,YAAA;AAAA,UAAA;AAAA,UAEpC,gBAAAE,EAAC,QAAA,EAAK,WAAU,qBAAqB,YAAK,MAAA,CAAM;AAAA,QAAA,GACpD;AAAA,QACCT,MAAWO,EAAK,SACb,gBAAAE,EAACK,GAAA,EAAQ,WAAU,2BAAA,CAA2B;AAAA,MAAA;AAAA,IAAA;AAAA,IAd7CP,EAAK;AAAA,EAAA,CAiBjB,GACL;AAER,GAEMQ,IAAmBC,EAAelB,CAAiB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MobileNav.js","sources":["../../../../lib/@ecme/components/template/MobileNav.tsx"],"sourcesContent":["import { useState, Suspense, lazy } from \"react\";\nimport classNames from \"classnames\";\nimport Drawer from \"@/components/ui/Drawer\";\nimport NavToggle from \"@/components/shared/NavToggle\";\nimport { DIR_RTL } from \"@/constants/theme.constant\";\nimport withHeaderItem, {\n WithHeaderItemProps,\n} from \"@/utils/hoc/withHeaderItem\";\nimport navigationConfig from \"@/configs/navigation.config\";\nimport appConfig from \"@/configs/app.config\";\nimport { useThemeStore } from \"@/store/themeStore\";\nimport { useRouteKeyStore } from \"@/store/routeKeyStore\";\nimport { useSessionUser } from \"@/store/authStore\";\nimport { LinkRenderer } from \"../layouts/Layouts\";\n\nconst VerticalMenuContent = lazy(\n () => import(\"@/components/template/VerticalMenuContent\")\n);\n\ntype MobileNavToggleProps = {\n toggled?: boolean;\n};\n\ntype MobileNavProps = {\n translationSetup?: boolean;\n linkRenderer?: LinkRenderer;\n};\n\nconst MobileNavToggle = withHeaderItem<\n MobileNavToggleProps & WithHeaderItemProps\n>(NavToggle);\n\nconst MobileNav = ({\n translationSetup = appConfig.activeNavTranslation,\n linkRenderer,\n}: MobileNavProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleOpenDrawer = () => {\n setIsOpen(true);\n };\n\n const handleDrawerClose = () => {\n setIsOpen(false);\n };\n\n const direction = useThemeStore((state) => state.direction);\n const currentRouteKey = useRouteKeyStore((state) => state.currentRouteKey);\n\n const userAuthority = useSessionUser((state) => state.user.authority);\n\n return (\n <>\n <div className=\"text-2xl\" onClick={handleOpenDrawer}>\n <MobileNavToggle toggled={isOpen} />\n </div>\n <Drawer\n title=\"Navigation\"\n isOpen={isOpen}\n bodyClass={classNames(\"p-0\")}\n width={330}\n placement={direction === DIR_RTL ? \"right\" : \"left\"}\n onClose={handleDrawerClose}\n onRequestClose={handleDrawerClose}\n >\n <Suspense fallback={<></>}>\n {isOpen && (\n <VerticalMenuContent\n collapsed={false}\n navigationTree={navigationConfig}\n routeKey={currentRouteKey}\n userAuthority={userAuthority as string[]}\n direction={direction}\n translationSetup={translationSetup}\n onMenuItemClick={handleDrawerClose}\n linkRenderer={linkRenderer}\n />\n )}\n </Suspense>\n </Drawer>\n </>\n );\n};\n\nexport default MobileNav;\n"],"names":["VerticalMenuContent","lazy","MobileNavToggle","withHeaderItem","NavToggle","MobileNav","translationSetup","appConfig","linkRenderer","isOpen","setIsOpen","useState","handleOpenDrawer","handleDrawerClose","direction","useThemeStore","state","currentRouteKey","useRouteKeyStore","userAuthority","useSessionUser","jsxs","Fragment","jsx","Drawer","classNames","DIR_RTL","Suspense","navigationConfig"],"mappings":";;;;;;;;;;;;;AAeA,MAAMA,IAAsBC;AAAA,EAC1B,MAAM,OAAO,gCAA2C;AAC1D,GAWMC,IAAkBC,EAEtBC,CAAS,GAELC,IAAY,CAAC;AAAA,EACjB,kBAAAC,IAAmBC,EAAU;AAAA,EAC7B,cAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAmB,MAAM;AAC7B,IAAAF,EAAU,EAAI;AAAA,EAAA,GAGVG,IAAoB,MAAM;AAC9B,IAAAH,EAAU,EAAK;AAAA,EAAA,GAGXI,IAAYC,EAAc,CAACC,MAAUA,EAAM,SAAS,GACpDC,IAAkBC,EAAiB,CAACF,MAAUA,EAAM,eAAe,GAEnEG,IAAgBC,EAAe,CAACJ,MAAUA,EAAM,KAAK,SAAS;AAEpE,SACE,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,YAAW,SAASX,GACjC,UAAA,gBAAAW,EAACrB,GAAA,EAAgB,SAASO,EAAA,CAAQ,EAAA,CACpC;AAAA,IACA,gBAAAc;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAAf;AAAA,QACA,WAAWgB,EAAW,KAAK;AAAA,QAC3B,OAAO;AAAA,QACP,WAAWX,MAAcY,IAAU,UAAU;AAAA,QAC7C,SAASb;AAAA,QACT,gBAAgBA;AAAA,QAEhB,UAAA,gBAAAU,EAACI,GAAA,EAAS,UAAU,gBAAAJ,EAAAD,GAAA,EAAE,GACnB,UAAAb,KACC,gBAAAc;AAAA,UAACvB;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,YACX,gBAAgB4B;AAAA,YAChB,UAAUX;AAAA,YACV,eAAAE;AAAA,YACA,WAAAL;AAAA,YACA,kBAAAR;AAAA,YACA,iBAAiBO;AAAA,YACjB,cAAAL;AAAA,UAAA;AAAA,QAAA,EACF,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"MobileNav.js","sources":["../../../../lib/@ecme/components/template/MobileNav.tsx"],"sourcesContent":["import { useState, Suspense, lazy } from \"react\";\nimport classNames from \"classnames\";\nimport Drawer from \"@/components/ui/Drawer\";\nimport NavToggle from \"@/components/shared/NavToggle\";\nimport { DIR_RTL } from \"@/constants/theme.constant\";\nimport withHeaderItem, {\n WithHeaderItemProps,\n} from \"@/utils/hoc/withHeaderItem\";\nimport navigationConfig from \"@/configs/navigation.config\";\nimport appConfig from \"@/configs/app.config\";\nimport { useThemeStore } from \"@/store/themeStore\";\nimport { useRouteKeyStore } from \"@/store/routeKeyStore\";\nimport { useSessionUser } from \"@/store/authStore\";\nimport { LinkRenderer } from \"../layouts/Layouts\";\n\nconst VerticalMenuContent = lazy(\n () => import(\"@/components/template/VerticalMenuContent\")\n);\n\ntype MobileNavToggleProps = {\n toggled?: boolean;\n};\n\ntype MobileNavProps = {\n translationSetup?: boolean;\n linkRenderer?: LinkRenderer;\n};\n\nconst MobileNavToggle = withHeaderItem<\n MobileNavToggleProps & WithHeaderItemProps\n>(NavToggle);\n\nconst MobileNav = ({\n translationSetup = appConfig.activeNavTranslation,\n linkRenderer,\n}: MobileNavProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleOpenDrawer = () => {\n setIsOpen(true);\n };\n\n const handleDrawerClose = () => {\n setIsOpen(false);\n };\n\n const direction = useThemeStore((state) => state.direction);\n const currentRouteKey = useRouteKeyStore((state) => state.currentRouteKey);\n\n const userAuthority = useSessionUser((state) => state.user.authority);\n\n return (\n <>\n <div className=\"text-2xl\" onClick={handleOpenDrawer}>\n <MobileNavToggle toggled={isOpen} />\n </div>\n <Drawer\n title=\"Navigation\"\n isOpen={isOpen}\n bodyClass={classNames(\"p-0\")}\n width={330}\n placement={direction === DIR_RTL ? \"right\" : \"left\"}\n onClose={handleDrawerClose}\n onRequestClose={handleDrawerClose}\n >\n <Suspense fallback={<></>}>\n {isOpen && (\n <VerticalMenuContent\n collapsed={false}\n navigationTree={navigationConfig}\n routeKey={currentRouteKey}\n userAuthority={userAuthority as string[]}\n direction={direction}\n translationSetup={translationSetup}\n onMenuItemClick={handleDrawerClose}\n linkRenderer={linkRenderer}\n />\n )}\n </Suspense>\n </Drawer>\n </>\n );\n};\n\nexport default MobileNav;\n"],"names":["VerticalMenuContent","lazy","MobileNavToggle","withHeaderItem","NavToggle","MobileNav","translationSetup","appConfig","linkRenderer","isOpen","setIsOpen","useState","handleOpenDrawer","handleDrawerClose","direction","useThemeStore","state","currentRouteKey","useRouteKeyStore","userAuthority","useSessionUser","jsxs","Fragment","jsx","Drawer","classNames","DIR_RTL","Suspense","navigationConfig"],"mappings":";;;;;;;;;;;;;AAeA,MAAMA,IAAsBC;AAAA,EAC1B,MAAM,OAAO,gCAA2C;AAC1D,GAWMC,IAAkBC,EAEtBC,CAAS,GAELC,IAAY,CAAC;AAAA,EACjB,kBAAAC,IAAmBC,EAAU;AAAA,EAC7B,cAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAmB,MAAM;AAC7B,IAAAF,EAAU,EAAI;AAAA,EAChB,GAEMG,IAAoB,MAAM;AAC9B,IAAAH,EAAU,EAAK;AAAA,EACjB,GAEMI,IAAYC,EAAc,CAACC,MAAUA,EAAM,SAAS,GACpDC,IAAkBC,EAAiB,CAACF,MAAUA,EAAM,eAAe,GAEnEG,IAAgBC,EAAe,CAACJ,MAAUA,EAAM,KAAK,SAAS;AAEpE,SACE,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,YAAW,SAASX,GACjC,UAAA,gBAAAW,EAACrB,GAAA,EAAgB,SAASO,EAAA,CAAQ,EAAA,CACpC;AAAA,IACA,gBAAAc;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAAf;AAAA,QACA,WAAWgB,EAAW,KAAK;AAAA,QAC3B,OAAO;AAAA,QACP,WAAWX,MAAcY,IAAU,UAAU;AAAA,QAC7C,SAASb;AAAA,QACT,gBAAgBA;AAAA,QAEhB,UAAA,gBAAAU,EAACI,GAAA,EAAS,UAAU,gBAAAJ,EAAAD,GAAA,EAAE,GACnB,UAAAb,KACC,gBAAAc;AAAA,UAACvB;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,YACX,gBAAgB4B;AAAA,YAChB,UAAUX;AAAA,YACV,eAAAE;AAAA,YACA,WAAAL;AAAA,YACA,kBAAAR;AAAA,YACA,iBAAiBO;AAAA,YACjB,cAAAL;AAAA,UAAA;AAAA,QAAA,EACF,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.js","sources":["../../../../../lib/@ecme/components/template/Notification/Notification.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from 'react'\nimport classNames from 'classnames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport Dropdown from '@/components/ui/Dropdown'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport Spinner from '@/components/ui/Spinner'\nimport Badge from '@/components/ui/Badge'\nimport Button from '@/components/ui/Button'\nimport Tooltip from '@/components/ui/Tooltip'\nimport NotificationAvatar from './NotificationAvatar'\nimport NotificationToggle from './NotificationToggle'\nimport { HiOutlineMailOpen } from 'react-icons/hi'\nimport {\n apiGetNotificationList,\n apiGetNotificationCount,\n} from '@/services/CommonService'\nimport isLastChild from '@/utils/isLastChild'\nimport useResponsive from '@/utils/hooks/useResponsive'\nimport { useNavigate } from 'react-router-dom'\n\nimport type { DropdownRef } from '@/components/ui/Dropdown'\nimport { useTranslation } from 'react-i18next'\n\ntype NotificationList = {\n id: string\n target: string\n description: string\n date: string\n image: string\n type: number\n location: string\n locationLabel: string\n status: string\n readed: boolean\n}\n\nconst notificationHeight = 'h-[280px]'\n\nconst _Notification = ({ className }: { className?: string }) => {\n const [notificationList, setNotificationList] = useState<\n NotificationList[]\n >([])\n const [unreadNotification, setUnreadNotification] = useState(false)\n const [noResult, setNoResult] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const { larger } = useResponsive()\n\n const navigate = useNavigate()\n\n const getNotificationCount = async () => {\n const resp = await apiGetNotificationCount()\n if (resp.count > 0) {\n setNoResult(false)\n setUnreadNotification(true)\n } else {\n setNoResult(true)\n }\n }\n\n useEffect(() => {\n getNotificationCount()\n }, [])\n\n const onNotificationOpen = async () => {\n if (notificationList.length === 0) {\n setLoading(true)\n const resp = await apiGetNotificationList()\n setLoading(false)\n setNotificationList(resp)\n }\n }\n\n const onMarkAllAsRead = () => {\n const list = notificationList.map((item: NotificationList) => {\n if (!item.readed) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n setUnreadNotification(false)\n }\n\n const onMarkAsRead = (id: string) => {\n const list = notificationList.map((item) => {\n if (item.id === id) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n const hasUnread = notificationList.some((item) => !item.readed)\n\n if (!hasUnread) {\n setUnreadNotification(false)\n }\n }\n\n const notificationDropdownRef = useRef<DropdownRef>(null)\n\n const handleViewAllActivity = () => {\n navigate('/concepts/account/activity-log')\n if (notificationDropdownRef.current) {\n notificationDropdownRef.current.handleDropdownClose()\n }\n }\n\n const { t } = useTranslation()\n\n const isDisabled = true\n\n return (\n <Dropdown\n disabled={isDisabled}\n ref={notificationDropdownRef}\n renderTitle={\n <NotificationToggle\n dot={unreadNotification}\n className={isDisabled ? 'header-action-item-disabled' : className}\n />\n }\n menuClass=\"min-w-[280px] md:min-w-[340px]\"\n placement={larger.md ? 'bottom-end' : 'bottom'}\n onOpen={onNotificationOpen}\n >\n <Dropdown.Item variant=\"header\">\n <div className=\"mb-1 flex items-center justify-between px-2 dark:border-gray-700\">\n <h6>{t('base.layout.notifications.title')}</h6>\n <Tooltip\n title={t('base.layout.notifications.actions.readAll')}\n >\n <Button\n variant=\"plain\"\n shape=\"circle\"\n size=\"sm\"\n icon={<HiOutlineMailOpen className=\"text-xl\" />}\n onClick={onMarkAllAsRead}\n />\n </Tooltip>\n </div>\n </Dropdown.Item>\n <ScrollBar\n className={classNames('overflow-y-auto', notificationHeight)}\n >\n {notificationList.length > 0 &&\n notificationList.map((item, index) => (\n <div key={item.id}>\n <div\n className={`relative flex cursor-pointer rounded-xl px-4 py-3 hover:bg-gray-100 active:bg-gray-100 dark:hover:bg-gray-700`}\n onClick={() => onMarkAsRead(item.id)}\n >\n <div>\n <NotificationAvatar {...item} />\n </div>\n <div className=\"mx-3\">\n <div>\n {item.target && (\n <span className=\"heading-text font-semibold\">\n {item.target}{' '}\n </span>\n )}\n <span>{item.description}</span>\n </div>\n <span className=\"text-xs\">{item.date}</span>\n </div>\n <Badge\n className=\"absolute top-4 mt-1.5 ltr:right-4 rtl:left-4\"\n innerClass={`${\n item.readed\n ? 'bg-gray-300 dark:bg-gray-600'\n : 'bg-primary'\n } `}\n />\n </div>\n {!isLastChild(notificationList, index) ? (\n <div className=\"my-2 border-b border-gray-200 dark:border-gray-700\" />\n ) : (\n ''\n )}\n </div>\n ))}\n {loading && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <Spinner size={40} />\n </div>\n )}\n {noResult && notificationList.length === 0 && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <div className=\"text-center\">\n <img\n className=\"mx-auto mb-2 max-w-[150px]\"\n src=\"/img/others/no-notification.png\"\n alt=\"no-notification\"\n />\n <h6 className=\"font-semibold\">No notifications!</h6>\n <p className=\"mt-1\">Please Try again later</p>\n </div>\n </div>\n )}\n </ScrollBar>\n <Dropdown.Item variant=\"header\">\n <div className=\"pt-4\">\n <Button\n block\n variant=\"solid\"\n onClick={handleViewAllActivity}\n >\n {t('base.layout.notifications.buttons.viewAll')}\n </Button>\n </div>\n </Dropdown.Item>\n </Dropdown>\n )\n}\n\nconst Notification = withHeaderItem(_Notification)\n\nexport default Notification\n"],"names":["notificationHeight","_Notification","className","notificationList","setNotificationList","useState","unreadNotification","setUnreadNotification","noResult","setNoResult","loading","setLoading","larger","useResponsive","navigate","useNavigate","getNotificationCount","apiGetNotificationCount","useEffect","onNotificationOpen","resp","apiGetNotificationList","onMarkAllAsRead","list","item","onMarkAsRead","id","notificationDropdownRef","useRef","handleViewAllActivity","t","useTranslation","isDisabled","jsxs","Dropdown","jsx","NotificationToggle","Tooltip","Button","HiOutlineMailOpen","ScrollBar","classNames","index","NotificationAvatar","Badge","isLastChild","Spinner","Notification","withHeaderItem"],"mappings":"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"}
1
+ {"version":3,"file":"Notification.js","sources":["../../../../../lib/@ecme/components/template/Notification/Notification.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from 'react'\nimport classNames from 'classnames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport Dropdown from '@/components/ui/Dropdown'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport Spinner from '@/components/ui/Spinner'\nimport Badge from '@/components/ui/Badge'\nimport Button from '@/components/ui/Button'\nimport Tooltip from '@/components/ui/Tooltip'\nimport NotificationAvatar from './NotificationAvatar'\nimport NotificationToggle from './NotificationToggle'\nimport { HiOutlineMailOpen } from 'react-icons/hi'\nimport {\n apiGetNotificationList,\n apiGetNotificationCount,\n} from '@/services/CommonService'\nimport isLastChild from '@/utils/isLastChild'\nimport useResponsive from '@/utils/hooks/useResponsive'\nimport { useNavigate } from 'react-router-dom'\n\nimport type { DropdownRef } from '@/components/ui/Dropdown'\nimport { useTranslation } from 'react-i18next'\n\ntype NotificationList = {\n id: string\n target: string\n description: string\n date: string\n image: string\n type: number\n location: string\n locationLabel: string\n status: string\n readed: boolean\n}\n\nconst notificationHeight = 'h-[280px]'\n\nconst _Notification = ({ className }: { className?: string }) => {\n const [notificationList, setNotificationList] = useState<\n NotificationList[]\n >([])\n const [unreadNotification, setUnreadNotification] = useState(false)\n const [noResult, setNoResult] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const { larger } = useResponsive()\n\n const navigate = useNavigate()\n\n const getNotificationCount = async () => {\n const resp = await apiGetNotificationCount()\n if (resp.count > 0) {\n setNoResult(false)\n setUnreadNotification(true)\n } else {\n setNoResult(true)\n }\n }\n\n useEffect(() => {\n getNotificationCount()\n }, [])\n\n const onNotificationOpen = async () => {\n if (notificationList.length === 0) {\n setLoading(true)\n const resp = await apiGetNotificationList()\n setLoading(false)\n setNotificationList(resp)\n }\n }\n\n const onMarkAllAsRead = () => {\n const list = notificationList.map((item: NotificationList) => {\n if (!item.readed) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n setUnreadNotification(false)\n }\n\n const onMarkAsRead = (id: string) => {\n const list = notificationList.map((item) => {\n if (item.id === id) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n const hasUnread = notificationList.some((item) => !item.readed)\n\n if (!hasUnread) {\n setUnreadNotification(false)\n }\n }\n\n const notificationDropdownRef = useRef<DropdownRef>(null)\n\n const handleViewAllActivity = () => {\n navigate('/concepts/account/activity-log')\n if (notificationDropdownRef.current) {\n notificationDropdownRef.current.handleDropdownClose()\n }\n }\n\n const { t } = useTranslation()\n\n const isDisabled = true\n\n return (\n <Dropdown\n disabled={isDisabled}\n ref={notificationDropdownRef}\n renderTitle={\n <NotificationToggle\n dot={unreadNotification}\n className={isDisabled ? 'header-action-item-disabled' : className}\n />\n }\n menuClass=\"min-w-[280px] md:min-w-[340px]\"\n placement={larger.md ? 'bottom-end' : 'bottom'}\n onOpen={onNotificationOpen}\n >\n <Dropdown.Item variant=\"header\">\n <div className=\"mb-1 flex items-center justify-between px-2 dark:border-gray-700\">\n <h6>{t('base.layout.notifications.title')}</h6>\n <Tooltip\n title={t('base.layout.notifications.actions.readAll')}\n >\n <Button\n variant=\"plain\"\n shape=\"circle\"\n size=\"sm\"\n icon={<HiOutlineMailOpen className=\"text-xl\" />}\n onClick={onMarkAllAsRead}\n />\n </Tooltip>\n </div>\n </Dropdown.Item>\n <ScrollBar\n className={classNames('overflow-y-auto', notificationHeight)}\n >\n {notificationList.length > 0 &&\n notificationList.map((item, index) => (\n <div key={item.id}>\n <div\n className={`relative flex cursor-pointer rounded-xl px-4 py-3 hover:bg-gray-100 active:bg-gray-100 dark:hover:bg-gray-700`}\n onClick={() => onMarkAsRead(item.id)}\n >\n <div>\n <NotificationAvatar {...item} />\n </div>\n <div className=\"mx-3\">\n <div>\n {item.target && (\n <span className=\"heading-text font-semibold\">\n {item.target}{' '}\n </span>\n )}\n <span>{item.description}</span>\n </div>\n <span className=\"text-xs\">{item.date}</span>\n </div>\n <Badge\n className=\"absolute top-4 mt-1.5 ltr:right-4 rtl:left-4\"\n innerClass={`${\n item.readed\n ? 'bg-gray-300 dark:bg-gray-600'\n : 'bg-primary'\n } `}\n />\n </div>\n {!isLastChild(notificationList, index) ? (\n <div className=\"my-2 border-b border-gray-200 dark:border-gray-700\" />\n ) : (\n ''\n )}\n </div>\n ))}\n {loading && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <Spinner size={40} />\n </div>\n )}\n {noResult && notificationList.length === 0 && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <div className=\"text-center\">\n <img\n className=\"mx-auto mb-2 max-w-[150px]\"\n src=\"/img/others/no-notification.png\"\n alt=\"no-notification\"\n />\n <h6 className=\"font-semibold\">No notifications!</h6>\n <p className=\"mt-1\">Please Try again later</p>\n </div>\n </div>\n )}\n </ScrollBar>\n <Dropdown.Item variant=\"header\">\n <div className=\"pt-4\">\n <Button\n block\n variant=\"solid\"\n onClick={handleViewAllActivity}\n >\n {t('base.layout.notifications.buttons.viewAll')}\n </Button>\n </div>\n </Dropdown.Item>\n </Dropdown>\n )\n}\n\nconst Notification = withHeaderItem(_Notification)\n\nexport default Notification\n"],"names":["notificationHeight","_Notification","className","notificationList","setNotificationList","useState","unreadNotification","setUnreadNotification","noResult","setNoResult","loading","setLoading","larger","useResponsive","navigate","useNavigate","getNotificationCount","apiGetNotificationCount","useEffect","onNotificationOpen","resp","apiGetNotificationList","onMarkAllAsRead","list","item","onMarkAsRead","id","notificationDropdownRef","useRef","handleViewAllActivity","t","useTranslation","isDisabled","jsxs","Dropdown","jsx","NotificationToggle","Tooltip","Button","HiOutlineMailOpen","ScrollBar","classNames","index","NotificationAvatar","Badge","isLastChild","Spinner","Notification","withHeaderItem"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../../../lib/@ecme/components/template/Search.tsx"],"sourcesContent":["import { NavigationTree } from '@/@types/navigation'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport navigationIcon from '@/configs/navigation-icon.config'\nimport navigationConfig from '@/configs/navigation.config'\nimport { NAV_ITEM_TYPE_ITEM } from '@/constants/navigation.constant'\nimport {\n GUIDE_PREFIX_PATH,\n UI_COMPONENTS_PREFIX_PATH,\n} from '@/constants/route.constant'\nimport classNames from '@/utils/classNames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport {\n filterDeep,\n findDeep,\n findPathDeep,\n findValueDeep,\n} from 'deepdash-es/standalone'\nimport { flatten, flattenDeep } from 'lodash'\nimport debounce from 'lodash/debounce'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport Highlighter from 'react-highlight-words'\nimport { useTranslation } from 'react-i18next'\nimport { HiChevronRight, HiOutlineSearch } from 'react-icons/hi'\nimport { PiMagnifyingGlassDuotone } from 'react-icons/pi'\nimport { Link } from 'react-router-dom'\nimport { Spinner } from '../ui'\n\ntype SearchData = {\n key: string\n path: string\n title: string\n icon: string\n category: string\n categoryTitle: string\n breadcrumbs: string[]\n}\n\ntype SearchResult = {\n title: string\n data: SearchData[]\n}\n\nconst ListItem = (props: {\n icon: string\n label: string\n url: string\n isLast?: boolean\n keyWord: string\n breadcrumbs: string[]\n onNavigate: () => void\n}) => {\n const { icon, label, url = '', keyWord, onNavigate, breadcrumbs } = props\n\n const makeBreadcrumbs = (breadcrumbs: string[]) => {\n return breadcrumbs.join(' / ')\n }\n\n return (\n <Link to={url} onClick={onNavigate}>\n <div\n className={classNames(\n 'flex items-center justify-between rounded-xl p-3 cursor-pointer user-select',\n 'hover:bg-gray-100 dark:hover:bg-gray-700',\n )}\n >\n <div className=\"flex items-center gap-2\">\n {/* <div\n className={classNames(\n 'rounded-lg border-2 border-gray-200 shadow-sm text-xl group-hover:shadow h-10 w-10 flex items-center justify-center bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100',\n )}\n >\n {icon && navigationIcon[icon]}\n </div> */}\n <div className=\"text-gray-900 dark:text-gray-300\">\n <Highlighter\n autoEscape\n highlightClassName={classNames(\n 'text-primary',\n 'underline bg-transparent font-semibold dark:text-white',\n )}\n searchWords={[keyWord]}\n textToHighlight={makeBreadcrumbs(breadcrumbs)}\n />\n </div>\n </div>\n <HiChevronRight className=\"text-lg\" />\n </div>\n </Link>\n )\n}\n\ntype NavigationTreeFlat = NavigationTree & { parents: string[] }\n\nconst _Search = ({ className }: { className?: string }) => {\n const [loading, setLoading] = useState(false)\n const [searchDialogOpen, setSearchDialogOpen] = useState(false)\n const [searchResult, setSearchResult] = useState<SearchResult[]>([])\n const [noResult, setNoResult] = useState(false)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleReset = () => {\n setNoResult(false)\n setSearchResult([])\n }\n\n const handleSearchOpen = () => {\n setSearchDialogOpen(true)\n }\n\n const handleSearchClose = () => {\n setSearchDialogOpen(false)\n handleReset()\n }\n\n const debounceFn = debounce(handleDebounceFn, 750)\n\n const { t } = useTranslation()\n\n const flatNavTree = useMemo(() => {\n const arr: NavigationTreeFlat[] = []\n\n const makeflat = (item: NavigationTree, parents: string[]) => {\n if (Array.isArray(item.subMenu) && item.subMenu.length > 0) {\n item.subMenu.forEach((item) =>\n makeflat(item, [...parents, t(item.translateKey)]),\n )\n }\n arr.push({ ...item, parents })\n }\n\n navigationConfig.forEach(function f(item) {\n makeflat(item, [t(item.translateKey)])\n })\n return arr\n }, [navigationConfig, t])\n\n const filterNavigationTreeFlat = (\n text: string,\n tree: NavigationTreeFlat[],\n ): NavigationTreeFlat[] => {\n const results = tree.filter(\n (item) =>\n item.type === NAV_ITEM_TYPE_ITEM &&\n item.parents.join().toUpperCase().includes(text.toUpperCase()),\n )\n\n return results\n }\n\n function navTreeFlatToSearchResult(\n tree: NavigationTreeFlat[],\n ): SearchResult[] {\n const navTreeSearchResult: SearchResult = {\n title: t('base.layout.search.results.navTree'),\n data: [],\n }\n tree.forEach((item) => {\n navTreeSearchResult.data.push({\n category: item.path,\n categoryTitle: item.title,\n icon: item.icon,\n key: item.key,\n path: item.path,\n title: t(item.translateKey, item.title),\n breadcrumbs: item.parents,\n })\n })\n return [navTreeSearchResult]\n }\n\n async function handleDebounceFn(query: string) {\n if (!query) {\n setLoading(false)\n setSearchResult([])\n return\n }\n\n if (noResult) {\n setNoResult(false)\n }\n\n const res = await filterNavigationTreeFlat(query, flatNavTree)\n\n if (res) {\n if (res.length === 0) {\n setNoResult(true)\n setSearchResult([])\n } else {\n setSearchResult(navTreeFlatToSearchResult(res))\n }\n }\n\n setLoading(false)\n }\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setLoading(true)\n debounceFn(e.target.value)\n }\n\n useEffect(() => {\n if (searchDialogOpen) {\n const timeout = setTimeout(() => inputRef.current?.focus(), 100)\n return () => {\n clearTimeout(timeout)\n }\n }\n }, [searchDialogOpen])\n\n const handleNavigate = () => {\n handleSearchClose()\n }\n\n return (\n <>\n <div\n className={classNames(className, 'text-2xl')}\n onClick={handleSearchOpen}\n >\n <PiMagnifyingGlassDuotone />\n </div>\n <Dialog\n contentClassName=\"p-0\"\n isOpen={searchDialogOpen}\n closable={false}\n onRequestClose={handleSearchClose}\n >\n <div>\n <div className=\"flex items-center justify-between border-b border-gray-200 px-4 dark:border-gray-600\">\n <div className=\"flex items-center\">\n <HiOutlineSearch className=\"text-xl\" />\n <input\n ref={inputRef}\n className=\"block w-full bg-transparent p-4 text-base text-gray-900 outline-none ring-0 dark:text-gray-100\"\n placeholder={t('common.input.placeholder.search')}\n onChange={handleSearch}\n />\n </div>\n <Button size=\"xs\" onClick={handleSearchClose}>\n Esc\n </Button>\n </div>\n <div className=\"px-5 py-6\">\n {loading ? (\n <div\n className={classNames(\n 'flex items-center justify-center',\n )}\n >\n <Spinner size={40} />\n </div>\n ) : (\n <>\n <ScrollBar className=\"max-h-[350px] overflow-y-auto\">\n {searchResult.map((result) => (\n <div\n key={result.title}\n className=\"mb-4\"\n >\n <h6 className=\"mb-3\">\n {result.title}\n </h6>\n {result.data.map((data, index) => (\n <ListItem\n key={data.title + index}\n icon={data.icon}\n breadcrumbs={\n data.breadcrumbs\n }\n label={data.title}\n url={data.path}\n keyWord={\n inputRef.current\n ?.value || ''\n }\n onNavigate={handleNavigate}\n />\n ))}\n </div>\n ))}\n {searchResult.length === 0 && noResult && (\n <div className=\"my-10 text-center text-lg\">\n <span className=\"pr-1\">\n {t(\n 'common.status.noResultsFor',\n )}\n </span>\n <span className=\"heading-text\">\n {`'`}\n {inputRef.current?.value}\n {`'`}\n </span>\n </div>\n )}\n </ScrollBar>\n </>\n )}\n </div>\n </div>\n </Dialog>\n </>\n )\n}\n\nconst Search = withHeaderItem(_Search)\n\nexport default Search\n"],"names":["ListItem","props","icon","label","url","keyWord","onNavigate","breadcrumbs","makeBreadcrumbs","jsx","Link","jsxs","classNames","Highlighter","HiChevronRight","_Search","className","loading","setLoading","useState","searchDialogOpen","setSearchDialogOpen","searchResult","setSearchResult","noResult","setNoResult","inputRef","useRef","handleReset","handleSearchOpen","handleSearchClose","debounceFn","debounce","handleDebounceFn","t","useTranslation","flatNavTree","useMemo","arr","makeflat","item","parents","navigationConfig","filterNavigationTreeFlat","text","tree","NAV_ITEM_TYPE_ITEM","navTreeFlatToSearchResult","navTreeSearchResult","query","res","handleSearch","e","useEffect","timeout","_a","handleNavigate","Fragment","PiMagnifyingGlassDuotone","Dialog","HiOutlineSearch","Button","Spinner","ScrollBar","result","data","index","Search","withHeaderItem"],"mappings":"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"}
1
+ {"version":3,"file":"Search.js","sources":["../../../../lib/@ecme/components/template/Search.tsx"],"sourcesContent":["import { NavigationTree } from '@/@types/navigation'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport navigationIcon from '@/configs/navigation-icon.config'\nimport navigationConfig from '@/configs/navigation.config'\nimport { NAV_ITEM_TYPE_ITEM } from '@/constants/navigation.constant'\nimport {\n GUIDE_PREFIX_PATH,\n UI_COMPONENTS_PREFIX_PATH,\n} from '@/constants/route.constant'\nimport classNames from '@/utils/classNames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport {\n filterDeep,\n findDeep,\n findPathDeep,\n findValueDeep,\n} from 'deepdash-es/standalone'\nimport { flatten, flattenDeep } from 'lodash'\nimport debounce from 'lodash/debounce'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport Highlighter from 'react-highlight-words'\nimport { useTranslation } from 'react-i18next'\nimport { HiChevronRight, HiOutlineSearch } from 'react-icons/hi'\nimport { PiMagnifyingGlassDuotone } from 'react-icons/pi'\nimport { Link } from 'react-router-dom'\nimport { Spinner } from '../ui'\n\ntype SearchData = {\n key: string\n path: string\n title: string\n icon: string\n category: string\n categoryTitle: string\n breadcrumbs: string[]\n}\n\ntype SearchResult = {\n title: string\n data: SearchData[]\n}\n\nconst ListItem = (props: {\n icon: string\n label: string\n url: string\n isLast?: boolean\n keyWord: string\n breadcrumbs: string[]\n onNavigate: () => void\n}) => {\n const { icon, label, url = '', keyWord, onNavigate, breadcrumbs } = props\n\n const makeBreadcrumbs = (breadcrumbs: string[]) => {\n return breadcrumbs.join(' / ')\n }\n\n return (\n <Link to={url} onClick={onNavigate}>\n <div\n className={classNames(\n 'flex items-center justify-between rounded-xl p-3 cursor-pointer user-select',\n 'hover:bg-gray-100 dark:hover:bg-gray-700',\n )}\n >\n <div className=\"flex items-center gap-2\">\n {/* <div\n className={classNames(\n 'rounded-lg border-2 border-gray-200 shadow-sm text-xl group-hover:shadow h-10 w-10 flex items-center justify-center bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100',\n )}\n >\n {icon && navigationIcon[icon]}\n </div> */}\n <div className=\"text-gray-900 dark:text-gray-300\">\n <Highlighter\n autoEscape\n highlightClassName={classNames(\n 'text-primary',\n 'underline bg-transparent font-semibold dark:text-white',\n )}\n searchWords={[keyWord]}\n textToHighlight={makeBreadcrumbs(breadcrumbs)}\n />\n </div>\n </div>\n <HiChevronRight className=\"text-lg\" />\n </div>\n </Link>\n )\n}\n\ntype NavigationTreeFlat = NavigationTree & { parents: string[] }\n\nconst _Search = ({ className }: { className?: string }) => {\n const [loading, setLoading] = useState(false)\n const [searchDialogOpen, setSearchDialogOpen] = useState(false)\n const [searchResult, setSearchResult] = useState<SearchResult[]>([])\n const [noResult, setNoResult] = useState(false)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleReset = () => {\n setNoResult(false)\n setSearchResult([])\n }\n\n const handleSearchOpen = () => {\n setSearchDialogOpen(true)\n }\n\n const handleSearchClose = () => {\n setSearchDialogOpen(false)\n handleReset()\n }\n\n const debounceFn = debounce(handleDebounceFn, 750)\n\n const { t } = useTranslation()\n\n const flatNavTree = useMemo(() => {\n const arr: NavigationTreeFlat[] = []\n\n const makeflat = (item: NavigationTree, parents: string[]) => {\n if (Array.isArray(item.subMenu) && item.subMenu.length > 0) {\n item.subMenu.forEach((item) =>\n makeflat(item, [...parents, t(item.translateKey)]),\n )\n }\n arr.push({ ...item, parents })\n }\n\n navigationConfig.forEach(function f(item) {\n makeflat(item, [t(item.translateKey)])\n })\n return arr\n }, [navigationConfig, t])\n\n const filterNavigationTreeFlat = (\n text: string,\n tree: NavigationTreeFlat[],\n ): NavigationTreeFlat[] => {\n const results = tree.filter(\n (item) =>\n item.type === NAV_ITEM_TYPE_ITEM &&\n item.parents.join().toUpperCase().includes(text.toUpperCase()),\n )\n\n return results\n }\n\n function navTreeFlatToSearchResult(\n tree: NavigationTreeFlat[],\n ): SearchResult[] {\n const navTreeSearchResult: SearchResult = {\n title: t('base.layout.search.results.navTree'),\n data: [],\n }\n tree.forEach((item) => {\n navTreeSearchResult.data.push({\n category: item.path,\n categoryTitle: item.title,\n icon: item.icon,\n key: item.key,\n path: item.path,\n title: t(item.translateKey, item.title),\n breadcrumbs: item.parents,\n })\n })\n return [navTreeSearchResult]\n }\n\n async function handleDebounceFn(query: string) {\n if (!query) {\n setLoading(false)\n setSearchResult([])\n return\n }\n\n if (noResult) {\n setNoResult(false)\n }\n\n const res = await filterNavigationTreeFlat(query, flatNavTree)\n\n if (res) {\n if (res.length === 0) {\n setNoResult(true)\n setSearchResult([])\n } else {\n setSearchResult(navTreeFlatToSearchResult(res))\n }\n }\n\n setLoading(false)\n }\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setLoading(true)\n debounceFn(e.target.value)\n }\n\n useEffect(() => {\n if (searchDialogOpen) {\n const timeout = setTimeout(() => inputRef.current?.focus(), 100)\n return () => {\n clearTimeout(timeout)\n }\n }\n }, [searchDialogOpen])\n\n const handleNavigate = () => {\n handleSearchClose()\n }\n\n return (\n <>\n <div\n className={classNames(className, 'text-2xl')}\n onClick={handleSearchOpen}\n >\n <PiMagnifyingGlassDuotone />\n </div>\n <Dialog\n contentClassName=\"p-0\"\n isOpen={searchDialogOpen}\n closable={false}\n onRequestClose={handleSearchClose}\n >\n <div>\n <div className=\"flex items-center justify-between border-b border-gray-200 px-4 dark:border-gray-600\">\n <div className=\"flex items-center\">\n <HiOutlineSearch className=\"text-xl\" />\n <input\n ref={inputRef}\n className=\"block w-full bg-transparent p-4 text-base text-gray-900 outline-none ring-0 dark:text-gray-100\"\n placeholder={t('common.input.placeholder.search')}\n onChange={handleSearch}\n />\n </div>\n <Button size=\"xs\" onClick={handleSearchClose}>\n Esc\n </Button>\n </div>\n <div className=\"px-5 py-6\">\n {loading ? (\n <div\n className={classNames(\n 'flex items-center justify-center',\n )}\n >\n <Spinner size={40} />\n </div>\n ) : (\n <>\n <ScrollBar className=\"max-h-[350px] overflow-y-auto\">\n {searchResult.map((result) => (\n <div\n key={result.title}\n className=\"mb-4\"\n >\n <h6 className=\"mb-3\">\n {result.title}\n </h6>\n {result.data.map((data, index) => (\n <ListItem\n key={data.title + index}\n icon={data.icon}\n breadcrumbs={\n data.breadcrumbs\n }\n label={data.title}\n url={data.path}\n keyWord={\n inputRef.current\n ?.value || ''\n }\n onNavigate={handleNavigate}\n />\n ))}\n </div>\n ))}\n {searchResult.length === 0 && noResult && (\n <div className=\"my-10 text-center text-lg\">\n <span className=\"pr-1\">\n {t(\n 'common.status.noResultsFor',\n )}\n </span>\n <span className=\"heading-text\">\n {`'`}\n {inputRef.current?.value}\n {`'`}\n </span>\n </div>\n )}\n </ScrollBar>\n </>\n )}\n </div>\n </div>\n </Dialog>\n </>\n )\n}\n\nconst Search = withHeaderItem(_Search)\n\nexport default Search\n"],"names":["ListItem","props","icon","label","url","keyWord","onNavigate","breadcrumbs","makeBreadcrumbs","jsx","Link","jsxs","classNames","Highlighter","HiChevronRight","_Search","className","loading","setLoading","useState","searchDialogOpen","setSearchDialogOpen","searchResult","setSearchResult","noResult","setNoResult","inputRef","useRef","handleReset","handleSearchOpen","handleSearchClose","debounceFn","debounce","handleDebounceFn","t","useTranslation","flatNavTree","useMemo","arr","makeflat","item","parents","navigationConfig","filterNavigationTreeFlat","text","tree","NAV_ITEM_TYPE_ITEM","navTreeFlatToSearchResult","navTreeSearchResult","query","res","handleSearch","e","useEffect","timeout","_a","handleNavigate","Fragment","PiMagnifyingGlassDuotone","Dialog","HiOutlineSearch","Button","Spinner","ScrollBar","result","data","index","Search","withHeaderItem"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavToggle.js","sources":["../../../../lib/@ecme/components/template/SideNavToggle.tsx"],"sourcesContent":["import withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport { useThemeStore } from '@/store/themeStore'\nimport useResponsive from '@/utils/hooks/useResponsive'\nimport NavToggle from '@/components/shared/NavToggle'\nimport type { CommonProps } from '@/@types/common'\n\nconst _SideNavToggle = ({ className }: CommonProps) => {\n const { layout, setSideNavCollapse } = useThemeStore((state) => state)\n\n const sideNavCollapse = layout.sideNavCollapse\n\n const { larger } = useResponsive()\n\n const onCollapse = () => {\n setSideNavCollapse(!sideNavCollapse)\n }\n\n return (\n <>\n {larger.md && (\n <div className={className} role=\"button\" onClick={onCollapse}>\n <NavToggle className=\"text-2xl\" toggled={sideNavCollapse} />\n </div>\n )}\n </>\n )\n}\n\nconst SideNavToggle = withHeaderItem(_SideNavToggle)\n\nexport default SideNavToggle\n"],"names":["_SideNavToggle","className","layout","setSideNavCollapse","useThemeStore","state","sideNavCollapse","larger","useResponsive","onCollapse","jsx","NavToggle","SideNavToggle","withHeaderItem"],"mappings":";;;;;AAMA,MAAMA,IAAiB,CAAC,EAAE,WAAAC,QAA6B;AACnD,QAAM,EAAE,QAAAC,GAAQ,oBAAAC,EAAA,IAAuBC,EAAc,CAACC,MAAUA,CAAK,GAE/DC,IAAkBJ,EAAO,iBAEzB,EAAE,QAAAK,EAAA,IAAWC,EAAA,GAEbC,IAAa,MAAM;AACrB,IAAAN,EAAmB,CAACG,CAAe;AAAA,EAAA;AAGvC,gCAES,UAAAC,EAAO,MACJ,gBAAAG,EAAC,OAAA,EAAI,WAAAT,GAAsB,MAAK,UAAS,SAASQ,GAC9C,4BAACE,GAAA,EAAU,WAAU,YAAW,SAASL,GAAiB,GAC9D,EAAA,CAER;AAER,GAEMM,IAAgBC,EAAeb,CAAc;"}
1
+ {"version":3,"file":"SideNavToggle.js","sources":["../../../../lib/@ecme/components/template/SideNavToggle.tsx"],"sourcesContent":["import withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport { useThemeStore } from '@/store/themeStore'\nimport useResponsive from '@/utils/hooks/useResponsive'\nimport NavToggle from '@/components/shared/NavToggle'\nimport type { CommonProps } from '@/@types/common'\n\nconst _SideNavToggle = ({ className }: CommonProps) => {\n const { layout, setSideNavCollapse } = useThemeStore((state) => state)\n\n const sideNavCollapse = layout.sideNavCollapse\n\n const { larger } = useResponsive()\n\n const onCollapse = () => {\n setSideNavCollapse(!sideNavCollapse)\n }\n\n return (\n <>\n {larger.md && (\n <div className={className} role=\"button\" onClick={onCollapse}>\n <NavToggle className=\"text-2xl\" toggled={sideNavCollapse} />\n </div>\n )}\n </>\n )\n}\n\nconst SideNavToggle = withHeaderItem(_SideNavToggle)\n\nexport default SideNavToggle\n"],"names":["_SideNavToggle","className","layout","setSideNavCollapse","useThemeStore","state","sideNavCollapse","larger","useResponsive","onCollapse","jsx","NavToggle","SideNavToggle","withHeaderItem"],"mappings":";;;;;AAMA,MAAMA,IAAiB,CAAC,EAAE,WAAAC,QAA6B;AACnD,QAAM,EAAE,QAAAC,GAAQ,oBAAAC,EAAA,IAAuBC,EAAc,CAACC,MAAUA,CAAK,GAE/DC,IAAkBJ,EAAO,iBAEzB,EAAE,QAAAK,EAAA,IAAWC,EAAA,GAEbC,IAAa,MAAM;AACrB,IAAAN,EAAmB,CAACG,CAAe;AAAA,EACvC;AAEA,gCAES,UAAAC,EAAO,MACJ,gBAAAG,EAAC,OAAA,EAAI,WAAAT,GAAsB,MAAK,UAAS,SAASQ,GAC9C,4BAACE,GAAA,EAAU,WAAU,YAAW,SAASL,GAAiB,GAC9D,EAAA,CAER;AAER,GAEMM,IAAgBC,EAAeb,CAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanel.js","sources":["../../../../../lib/@ecme/components/template/SidePanel/SidePanel.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport Drawer from '@/components/ui/Drawer'\nimport { PiGearDuotone } from 'react-icons/pi'\nimport SidePanelContent, { SidePanelContentProps } from './SidePanelContent'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport { useThemeStore } from '@/store/themeStore'\nimport type { CommonProps } from '@/@types/common'\nimport { useTranslation } from 'react-i18next'\n\ntype SidePanelProps = SidePanelContentProps & CommonProps\n\nconst _SidePanel = (props: SidePanelProps) => {\n const { className, ...rest } = props\n\n const panelExpand = useThemeStore((state) => state.panelExpand)\n const direction = useThemeStore((state) => state.direction)\n const setPanelExpand = useThemeStore((state) => state.setPanelExpand)\n\n const openPanel = () => {\n setPanelExpand(true)\n }\n\n const closePanel = () => {\n setPanelExpand(false)\n\n if (document) {\n const bodyClassList = document.body.classList\n if (bodyClassList.contains('drawer-lock-scroll')) {\n bodyClassList.remove('drawer-lock-scroll', 'drawer-open')\n }\n }\n }\n\n const { t } = useTranslation()\n\n return (\n <>\n <div\n className={classNames('text-2xl', className)}\n onClick={openPanel}\n {...rest}\n >\n <PiGearDuotone />\n </div>\n <Drawer\n title={t('base.layout.themeConfig.title')}\n isOpen={panelExpand}\n placement={direction === 'rtl' ? 'left' : 'right'}\n width={375}\n onClose={closePanel}\n onRequestClose={closePanel}\n >\n <SidePanelContent callBackClose={closePanel} />\n </Drawer>\n </>\n )\n}\n\nconst SidePanel = withHeaderItem(_SidePanel)\n\nexport default SidePanel\n"],"names":["_SidePanel","props","className","rest","panelExpand","useThemeStore","state","direction","setPanelExpand","openPanel","closePanel","bodyClassList","t","useTranslation","jsxs","Fragment","jsx","classNames","PiGearDuotone","Drawer","SidePanelContent","SidePanel","withHeaderItem"],"mappings":";;;;;;;;;AAWA,MAAMA,IAAa,CAACC,MAA0B;AAC1C,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAA,IAASF,GAEzBG,IAAcC,EAAc,CAACC,MAAUA,EAAM,WAAW,GACxDC,IAAYF,EAAc,CAACC,MAAUA,EAAM,SAAS,GACpDE,IAAiBH,EAAc,CAACC,MAAUA,EAAM,cAAc,GAE9DG,IAAY,MAAM;AACpB,IAAAD,EAAe,EAAI;AAAA,EAAA,GAGjBE,IAAa,MAAM;AAGrB,QAFAF,EAAe,EAAK,GAEhB,UAAU;AACV,YAAMG,IAAgB,SAAS,KAAK;AACpC,MAAIA,EAAc,SAAS,oBAAoB,KAC3CA,EAAc,OAAO,sBAAsB,aAAa;AAAA,IAC5D;AAAA,EACJ,GAGE,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACI,gBAAAC,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWC,EAAW,YAAYf,CAAS;AAAA,QAC3C,SAASO;AAAA,QACR,GAAGN;AAAA,QAEJ,4BAACe,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnB,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QACG,OAAOP,EAAE,+BAA+B;AAAA,QACxC,QAAQR;AAAA,QACR,WAAWG,MAAc,QAAQ,SAAS;AAAA,QAC1C,OAAO;AAAA,QACP,SAASG;AAAA,QACT,gBAAgBA;AAAA,QAEhB,UAAA,gBAAAM,EAACI,GAAA,EAAiB,eAAeV,EAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EACjD,GACJ;AAER,GAEMW,IAAYC,EAAetB,CAAU;"}
1
+ {"version":3,"file":"SidePanel.js","sources":["../../../../../lib/@ecme/components/template/SidePanel/SidePanel.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport Drawer from '@/components/ui/Drawer'\nimport { PiGearDuotone } from 'react-icons/pi'\nimport SidePanelContent, { SidePanelContentProps } from './SidePanelContent'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport { useThemeStore } from '@/store/themeStore'\nimport type { CommonProps } from '@/@types/common'\nimport { useTranslation } from 'react-i18next'\n\ntype SidePanelProps = SidePanelContentProps & CommonProps\n\nconst _SidePanel = (props: SidePanelProps) => {\n const { className, ...rest } = props\n\n const panelExpand = useThemeStore((state) => state.panelExpand)\n const direction = useThemeStore((state) => state.direction)\n const setPanelExpand = useThemeStore((state) => state.setPanelExpand)\n\n const openPanel = () => {\n setPanelExpand(true)\n }\n\n const closePanel = () => {\n setPanelExpand(false)\n\n if (document) {\n const bodyClassList = document.body.classList\n if (bodyClassList.contains('drawer-lock-scroll')) {\n bodyClassList.remove('drawer-lock-scroll', 'drawer-open')\n }\n }\n }\n\n const { t } = useTranslation()\n\n return (\n <>\n <div\n className={classNames('text-2xl', className)}\n onClick={openPanel}\n {...rest}\n >\n <PiGearDuotone />\n </div>\n <Drawer\n title={t('base.layout.themeConfig.title')}\n isOpen={panelExpand}\n placement={direction === 'rtl' ? 'left' : 'right'}\n width={375}\n onClose={closePanel}\n onRequestClose={closePanel}\n >\n <SidePanelContent callBackClose={closePanel} />\n </Drawer>\n </>\n )\n}\n\nconst SidePanel = withHeaderItem(_SidePanel)\n\nexport default SidePanel\n"],"names":["_SidePanel","props","className","rest","panelExpand","useThemeStore","state","direction","setPanelExpand","openPanel","closePanel","bodyClassList","t","useTranslation","jsxs","Fragment","jsx","classNames","PiGearDuotone","Drawer","SidePanelContent","SidePanel","withHeaderItem"],"mappings":";;;;;;;;;AAWA,MAAMA,IAAa,CAACC,MAA0B;AAC1C,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAA,IAASF,GAEzBG,IAAcC,EAAc,CAACC,MAAUA,EAAM,WAAW,GACxDC,IAAYF,EAAc,CAACC,MAAUA,EAAM,SAAS,GACpDE,IAAiBH,EAAc,CAACC,MAAUA,EAAM,cAAc,GAE9DG,IAAY,MAAM;AACpB,IAAAD,EAAe,EAAI;AAAA,EACvB,GAEME,IAAa,MAAM;AAGrB,QAFAF,EAAe,EAAK,GAEhB,UAAU;AACV,YAAMG,IAAgB,SAAS,KAAK;AACpC,MAAIA,EAAc,SAAS,oBAAoB,KAC3CA,EAAc,OAAO,sBAAsB,aAAa;AAAA,IAEhE;AAAA,EACJ,GAEM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACI,gBAAAC,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWC,EAAW,YAAYf,CAAS;AAAA,QAC3C,SAASO;AAAA,QACR,GAAGN;AAAA,QAEJ,4BAACe,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnB,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QACG,OAAOP,EAAE,+BAA+B;AAAA,QACxC,QAAQR;AAAA,QACR,WAAWG,MAAc,QAAQ,SAAS;AAAA,QAC1C,OAAO;AAAA,QACP,SAASG;AAAA,QACT,gBAAgBA;AAAA,QAEhB,UAAA,gBAAAM,EAACI,GAAA,EAAiB,eAAeV,EAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EACjD,GACJ;AAER,GAEMW,IAAYC,EAAetB,CAAU;"}