@orbe-agro/client-core 5.3.9 → 5.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) 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/centralNfe/centralNfe.d.ts +18 -0
  419. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
  420. package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.d.ts +20 -0
  421. package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.d.ts.map +1 -0
  422. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +18 -0
  423. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  424. package/dist/@types/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.d.ts.map +1 -1
  425. package/dist/@types/base/services/modules/centralNfe/index.d.ts +2 -0
  426. package/dist/@types/base/services/modules/centralNfe/index.d.ts.map +1 -1
  427. package/dist/@types/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.d.ts +5 -0
  428. package/dist/@types/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.d.ts.map +1 -0
  429. package/dist/base/assets/styles/init.css +1 -1
  430. package/dist/base/components/forms/GenericForms/GenericUploadFormSection.js.map +1 -1
  431. package/dist/base/components/forms/NumberFormVariant/GenericNumberFormSectionPercentage.js.map +1 -1
  432. package/dist/base/components/shared/AceitarProcessoDialog.js.map +1 -1
  433. package/dist/base/components/shared/AdicionarHistoricoDialog.js.map +1 -1
  434. package/dist/base/components/shared/CancelarProcessoDialog.js.map +1 -1
  435. package/dist/base/components/shared/ConcluirProcessoDialog.js.map +1 -1
  436. package/dist/base/components/shared/ReabrirProcessoDialog.js.map +1 -1
  437. package/dist/base/components/shared/RetornarFluxAtendimentoDialog.js.map +1 -1
  438. package/dist/base/components/shared/TransferirParaAtendenteDialog.js.map +1 -1
  439. package/dist/base/components/shared/TransferirParaSolicitanteDialog.js.map +1 -1
  440. package/dist/base/components/shared/TransferirProcessoDialog.js.map +1 -1
  441. package/dist/base/components/table/ListColumn.js.map +1 -1
  442. package/dist/base/components/tools/NavFilter.js.map +1 -1
  443. package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js +5 -3
  444. package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js.map +1 -1
  445. package/dist/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.js +10 -0
  446. package/dist/base/configs/endpoints.config/centralNfe/config/vinculoUnidadeMedida.js.map +1 -0
  447. package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js +10 -0
  448. package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js.map +1 -1
  449. package/dist/base/hooks/flux/useAceitarProcesso.js.map +1 -1
  450. package/dist/base/hooks/flux/useAdicionarHistorico.js.map +1 -1
  451. package/dist/base/hooks/flux/useCancelarProcesso.js.map +1 -1
  452. package/dist/base/hooks/flux/useConcluirProcesso.js.map +1 -1
  453. package/dist/base/hooks/flux/useReabrirProcesso.js.map +1 -1
  454. package/dist/base/hooks/flux/useRetornarFluxoAtendimento.js.map +1 -1
  455. package/dist/base/hooks/flux/useTransferirParaAtendente.js.map +1 -1
  456. package/dist/base/hooks/flux/useTransferirParaSolicitante.js.map +1 -1
  457. package/dist/base/hooks/flux/useTransferirProcesso.js.map +1 -1
  458. package/dist/base/services/modules/centralNfe/index.js +13 -3
  459. package/dist/base/services/modules/centralNfe/index.js.map +1 -1
  460. package/dist/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.js +37 -0
  461. package/dist/base/services/modules/centralNfe/vinculoUnidadeMedida/VinculoUnidadeMedidaService.js.map +1 -0
  462. package/dist/base/services/query.js.map +1 -1
  463. package/dist/base/utils/functions/formUtils.js.map +1 -1
  464. package/dist/base/utils/functions/handleInputChangeUtils.js.map +1 -1
  465. package/dist/base/utils/functions/stringUtils.js.map +1 -1
  466. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"projectListStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ProjectList/store/projectListStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { ProjectList, Project, MemberListOption } from '../types'\n\nexport type ProjectListState = {\n projectList: ProjectList\n memberList: MemberListOption[]\n newProjectDialog: boolean\n}\n\ntype ProjectListAction = {\n setProjectList: (payload: ProjectList) => void\n updateProjectList: (payload: Project) => void\n updateProjectFavorite: (payload: { id: string; value: boolean }) => void\n setMembers: (payload: MemberListOption[]) => void\n}\n\nconst initialState: ProjectListState = {\n projectList: [],\n memberList: [],\n newProjectDialog: false,\n}\n\nexport const useProjectListStore = create<ProjectListState & ProjectListAction>(\n (set) => ({\n ...initialState,\n setProjectList: (payload) => set(() => ({ projectList: payload })),\n updateProjectList: (payload) =>\n set((state) => ({\n projectList: [...state.projectList, ...[payload]],\n })),\n updateProjectFavorite: (payload) =>\n set((state) => {\n const { id, value } = payload\n const newList = state.projectList.map((project) => {\n if (project.id === id) {\n project.favourite = value\n }\n return project\n })\n\n return {\n projectList: [...newList],\n }\n }),\n setMembers: (payload) => set(() => ({ memberList: payload })),\n }),\n)\n"],"names":["initialState","useProjectListStore","create","set","payload","state","id","value","project"],"mappings":";AAgBA,MAAMA,IAAiC;AAAA,EACnC,aAAa,CAAA;AAAA,EACb,YAAY,CAAA;AAAA,EACZ,kBAAkB;AACtB,GAEaC,IAAsBC;AAAA,EAC/B,CAACC,OAAS;AAAA,IACN,GAAGH;AAAA,IACH,gBAAgB,CAACI,MAAYD,EAAI,OAAO,EAAE,aAAaC,IAAU;AAAA,IACjE,mBAAmB,CAACA,MAChBD,EAAI,CAACE,OAAW;AAAA,MACZ,aAAa,CAAC,GAAGA,EAAM,aAAiBD,CAAQ;AAAA,IAAA,EAClD;AAAA,IACN,uBAAuB,CAACA,MACpBD,EAAI,CAACE,MAAU;AACX,YAAM,EAAE,IAAAC,GAAI,OAAAC,EAAA,IAAUH;AAQtB,aAAO;AAAA,QACH,aAAa,CAAC,GARFC,EAAM,YAAY,IAAI,CAACG,OAC/BA,EAAQ,OAAOF,MACfE,EAAQ,YAAYD,IAEjBC,EACV,CAG2B;AAAA,MAAA;AAAA,IAC5B,CACH;AAAA,IACL,YAAY,CAACJ,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AAAA,EAAA;AAEpE;"}
1
+ {"version":3,"file":"projectListStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ProjectList/store/projectListStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { ProjectList, Project, MemberListOption } from '../types'\n\nexport type ProjectListState = {\n projectList: ProjectList\n memberList: MemberListOption[]\n newProjectDialog: boolean\n}\n\ntype ProjectListAction = {\n setProjectList: (payload: ProjectList) => void\n updateProjectList: (payload: Project) => void\n updateProjectFavorite: (payload: { id: string; value: boolean }) => void\n setMembers: (payload: MemberListOption[]) => void\n}\n\nconst initialState: ProjectListState = {\n projectList: [],\n memberList: [],\n newProjectDialog: false,\n}\n\nexport const useProjectListStore = create<ProjectListState & ProjectListAction>(\n (set) => ({\n ...initialState,\n setProjectList: (payload) => set(() => ({ projectList: payload })),\n updateProjectList: (payload) =>\n set((state) => ({\n projectList: [...state.projectList, ...[payload]],\n })),\n updateProjectFavorite: (payload) =>\n set((state) => {\n const { id, value } = payload\n const newList = state.projectList.map((project) => {\n if (project.id === id) {\n project.favourite = value\n }\n return project\n })\n\n return {\n projectList: [...newList],\n }\n }),\n setMembers: (payload) => set(() => ({ memberList: payload })),\n }),\n)\n"],"names":["initialState","useProjectListStore","create","set","payload","state","id","value","project"],"mappings":";AAgBA,MAAMA,IAAiC;AAAA,EACnC,aAAa,CAAA;AAAA,EACb,YAAY,CAAA;AAAA,EACZ,kBAAkB;AACtB,GAEaC,IAAsBC;AAAA,EAC/B,CAACC,OAAS;AAAA,IACN,GAAGH;AAAA,IACH,gBAAgB,CAACI,MAAYD,EAAI,OAAO,EAAE,aAAaC,IAAU;AAAA,IACjE,mBAAmB,CAACA,MAChBD,EAAI,CAACE,OAAW;AAAA,MACZ,aAAa,CAAC,GAAGA,EAAM,aAAiBD,CAAQ;AAAA,IAAA,EAClD;AAAA,IACN,uBAAuB,CAACA,MACpBD,EAAI,CAACE,MAAU;AACX,YAAM,EAAE,IAAAC,GAAI,OAAAC,EAAA,IAAUH;AAQtB,aAAO;AAAA,QACH,aAAa,CAAC,GARFC,EAAM,YAAY,IAAI,CAACG,OAC/BA,EAAQ,OAAOF,MACfE,EAAQ,YAAYD,IAEjBC,EACV,CAG2B;AAAA,MAAA;AAAA,IAEhC,CAAC;AAAA,IACL,YAAY,CAACJ,MAAYD,EAAI,OAAO,EAAE,YAAYC,IAAU;AAAA,EAAA;AAEpE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AddNewColumnContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/AddNewColumnContent.tsx"],"sourcesContent":["import { Form, FormItem } from '@/components/ui/Form'\nimport Input from '@/components/ui/Input'\nimport Button from '@/components/ui/Button'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport sleep from '@/utils/sleep'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport cloneDeep from 'lodash/cloneDeep'\nimport type { ZodType } from 'zod'\nimport type { Columns } from '../types'\n\ntype FormSchema = {\n title: string\n}\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n title: z.string().min(1, 'Column title is required!'),\n})\n\nconst AddNewColumnContent = () => {\n const {\n columns,\n ordered,\n closeDialog,\n updateColumns,\n resetView,\n updateOrdered,\n } = useScrumBoardStore()\n\n const {\n control,\n formState: { errors },\n handleSubmit,\n } = useForm<FormSchema>({\n defaultValues: {\n title: '',\n },\n resolver: zodResolver(validationSchema),\n })\n\n const onFormSubmit = async ({ title }: FormSchema) => {\n const data = cloneDeep(columns)\n data[title ? title : 'Untitled Board'] = []\n const newOrdered = [...ordered, ...[title ? title : 'Untitled Board']]\n const newColumns: Columns = {}\n\n newOrdered.forEach((elm) => {\n newColumns[elm] = data[elm]\n })\n\n updateColumns(newColumns)\n updateOrdered(newOrdered)\n closeDialog()\n await sleep(500)\n resetView()\n }\n\n return (\n <div>\n <h5>Add New Column</h5>\n <div className=\"mt-8\">\n <Form layout=\"inline\" onSubmit={handleSubmit(onFormSubmit)}>\n <FormItem\n label=\"Column title\"\n invalid={Boolean(errors.title)}\n errorMessage={errors.title?.message}\n >\n <Controller\n name=\"title\"\n control={control}\n rules={{ required: true }}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem>\n <Button variant=\"solid\" type=\"submit\">\n Add\n </Button>\n </FormItem>\n </Form>\n </div>\n </div>\n )\n}\n\nexport default AddNewColumnContent\n"],"names":["validationSchema","z","AddNewColumnContent","columns","ordered","closeDialog","updateColumns","resetView","updateOrdered","useScrumBoardStore","control","errors","handleSubmit","useForm","zodResolver","jsx","jsxs","Form","title","data","cloneDeep","newOrdered","newColumns","elm","sleep","FormItem","_a","Controller","field","Input","Button"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAMA,IAAwCC,EAAE,OAAO;AAAA,EACnD,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,2BAA2B;AACxD,CAAC,GAEKC,IAAsB,MAAM;;AAC9B,QAAM;AAAA,IACF,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACAC,EAAA,GAEE;AAAA,IACF,SAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAA;AAAA,IACb,cAAAC;AAAA,EAAA,IACAC,EAAoB;AAAA,IACpB,eAAe;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAEX,UAAUC,EAAYd,CAAgB;AAAA,EAAA,CACzC;AAmBD,2BACK,OAAA,EACG,UAAA;AAAA,IAAA,gBAAAe,EAAC,QAAG,UAAA,iBAAA,CAAc;AAAA,IAClB,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAC,EAACC,GAAA,EAAK,QAAO,UAAS,UAAUL,EArBvB,OAAO,EAAE,OAAAM,QAAwB;AAClD,YAAMC,IAAOC,EAAUjB,CAAO;AAC9B,MAAAgB,EAAKD,KAAgB,gBAAgB,IAAI,CAAA;AACzC,YAAMG,IAAa,CAAC,GAAGjB,GAAac,KAAgB,gBAAiB,GAC/DI,IAAsB,CAAA;AAE5B,MAAAD,EAAW,QAAQ,CAACE,MAAQ;AACxB,QAAAD,EAAWC,CAAG,IAAIJ,EAAKI,CAAG;AAAA,MAAA,CAC7B,GAEDjB,EAAcgB,CAAU,GACxBd,EAAca,CAAU,GACxBhB,EAAA,GACA,MAAMmB,EAAM,GAAG,GACfjB,EAAA;AAAA,IAAU,CAOuD,GACrD,UAAA;AAAA,MAAA,gBAAAQ;AAAA,QAACU;AAAA,QAAA;AAAA,UACG,OAAM;AAAA,UACN,SAAS,EAAQd,EAAO;AAAA,UACxB,eAAce,IAAAf,EAAO,UAAP,gBAAAe,EAAc;AAAA,UAE5B,UAAA,gBAAAX;AAAA,YAACY;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,SAAAjB;AAAA,cACA,OAAO,EAAE,UAAU,GAAA;AAAA,cACnB,QAAQ,CAAC,EAAE,OAAAkB,EAAA,MACP,gBAAAb;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,cAAa;AAAA,kBACZ,GAAGD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA;AAAA,QAER;AAAA,MAAA;AAAA,MAEJ,gBAAAb,EAACU,KACG,UAAA,gBAAAV,EAACe,GAAA,EAAO,SAAQ,SAAQ,MAAK,UAAS,UAAA,MAAA,CAEtC,EAAA,CACJ;AAAA,IAAA,EAAA,CACJ,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
1
+ {"version":3,"file":"AddNewColumnContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/AddNewColumnContent.tsx"],"sourcesContent":["import { Form, FormItem } from '@/components/ui/Form'\nimport Input from '@/components/ui/Input'\nimport Button from '@/components/ui/Button'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport sleep from '@/utils/sleep'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport cloneDeep from 'lodash/cloneDeep'\nimport type { ZodType } from 'zod'\nimport type { Columns } from '../types'\n\ntype FormSchema = {\n title: string\n}\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n title: z.string().min(1, 'Column title is required!'),\n})\n\nconst AddNewColumnContent = () => {\n const {\n columns,\n ordered,\n closeDialog,\n updateColumns,\n resetView,\n updateOrdered,\n } = useScrumBoardStore()\n\n const {\n control,\n formState: { errors },\n handleSubmit,\n } = useForm<FormSchema>({\n defaultValues: {\n title: '',\n },\n resolver: zodResolver(validationSchema),\n })\n\n const onFormSubmit = async ({ title }: FormSchema) => {\n const data = cloneDeep(columns)\n data[title ? title : 'Untitled Board'] = []\n const newOrdered = [...ordered, ...[title ? title : 'Untitled Board']]\n const newColumns: Columns = {}\n\n newOrdered.forEach((elm) => {\n newColumns[elm] = data[elm]\n })\n\n updateColumns(newColumns)\n updateOrdered(newOrdered)\n closeDialog()\n await sleep(500)\n resetView()\n }\n\n return (\n <div>\n <h5>Add New Column</h5>\n <div className=\"mt-8\">\n <Form layout=\"inline\" onSubmit={handleSubmit(onFormSubmit)}>\n <FormItem\n label=\"Column title\"\n invalid={Boolean(errors.title)}\n errorMessage={errors.title?.message}\n >\n <Controller\n name=\"title\"\n control={control}\n rules={{ required: true }}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem>\n <Button variant=\"solid\" type=\"submit\">\n Add\n </Button>\n </FormItem>\n </Form>\n </div>\n </div>\n )\n}\n\nexport default AddNewColumnContent\n"],"names":["validationSchema","z","AddNewColumnContent","columns","ordered","closeDialog","updateColumns","resetView","updateOrdered","useScrumBoardStore","control","errors","handleSubmit","useForm","zodResolver","jsx","jsxs","Form","title","data","cloneDeep","newOrdered","newColumns","elm","sleep","FormItem","_a","Controller","field","Input","Button"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAMA,IAAwCC,EAAE,OAAO;AAAA,EACnD,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,2BAA2B;AACxD,CAAC,GAEKC,IAAsB,MAAM;;AAC9B,QAAM;AAAA,IACF,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACAC,EAAA,GAEE;AAAA,IACF,SAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAA;AAAA,IACb,cAAAC;AAAA,EAAA,IACAC,EAAoB;AAAA,IACpB,eAAe;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAEX,UAAUC,EAAYd,CAAgB;AAAA,EAAA,CACzC;AAmBD,2BACK,OAAA,EACG,UAAA;AAAA,IAAA,gBAAAe,EAAC,QAAG,UAAA,iBAAA,CAAc;AAAA,IAClB,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAC,EAACC,GAAA,EAAK,QAAO,UAAS,UAAUL,EArBvB,OAAO,EAAE,OAAAM,QAAwB;AAClD,YAAMC,IAAOC,EAAUjB,CAAO;AAC9B,MAAAgB,EAAKD,KAAgB,gBAAgB,IAAI,CAAA;AACzC,YAAMG,IAAa,CAAC,GAAGjB,GAAac,KAAgB,gBAAiB,GAC/DI,IAAsB,CAAA;AAE5B,MAAAD,EAAW,QAAQ,CAACE,MAAQ;AACxB,QAAAD,EAAWC,CAAG,IAAIJ,EAAKI,CAAG;AAAA,MAC9B,CAAC,GAEDjB,EAAcgB,CAAU,GACxBd,EAAca,CAAU,GACxBhB,EAAA,GACA,MAAMmB,EAAM,GAAG,GACfjB,EAAA;AAAA,IACJ,CAMqE,GACrD,UAAA;AAAA,MAAA,gBAAAQ;AAAA,QAACU;AAAA,QAAA;AAAA,UACG,OAAM;AAAA,UACN,SAAS,EAAQd,EAAO;AAAA,UACxB,eAAce,IAAAf,EAAO,UAAP,gBAAAe,EAAc;AAAA,UAE5B,UAAA,gBAAAX;AAAA,YAACY;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,SAAAjB;AAAA,cACA,OAAO,EAAE,UAAU,GAAA;AAAA,cACnB,QAAQ,CAAC,EAAE,OAAAkB,EAAA,MACP,gBAAAb;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,cAAa;AAAA,kBACZ,GAAGD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA;AAAA,QAER;AAAA,MAAA;AAAA,MAEJ,gBAAAb,EAACU,KACG,UAAA,gBAAAV,EAACe,GAAA,EAAO,SAAQ,SAAQ,MAAK,UAAS,UAAA,MAAA,CAEtC,EAAA,CACJ;AAAA,IAAA,EAAA,CACJ,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AddNewMemberContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/AddNewMemberContent.tsx"],"sourcesContent":["import { useState, useRef } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Button from '@/components/ui/Button'\nimport Input from '@/components/ui/Input'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport wildCardSearch from '@/utils/wildCardSearch'\nimport classNames from '@/utils/classNames'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport { TbSearch } from 'react-icons/tb'\nimport debounce from 'lodash/debounce'\nimport cloneDeep from 'lodash/cloneDeep'\nimport type { ChangeEvent } from 'react'\n\ntype Member = {\n id: string\n name: string\n email: string\n img: string\n}\n\nconst AddNewMemberContent = () => {\n const inputRef = useRef(null)\n\n const { allMembers, boardMembers, updateBoardMembers, closeDialog } =\n useScrumBoardStore()\n\n const [memberList, setMemberList] = useState(allMembers)\n\n const debounceFn = debounce(handleDebounceFn, 500)\n\n function handleDebounceFn(query: string) {\n const data = wildCardSearch(allMembers, query)\n setMemberList(data as Member[])\n }\n\n const onSearch = (e: ChangeEvent<HTMLInputElement>) => {\n debounceFn(e.target.value)\n }\n\n const existingMember = (id: string) => {\n return boardMembers.some((member) => member.id === id)\n }\n\n const onAddMember = (member: Member) => {\n const data = cloneDeep(boardMembers)\n data.push(member)\n updateBoardMembers(data)\n }\n\n const onRemoveMember = (id: string) => {\n const data = cloneDeep(boardMembers).filter(\n (member) => member.id !== id,\n )\n updateBoardMembers(data)\n }\n\n const onDone = () => {\n closeDialog()\n }\n\n return (\n <div>\n <div className=\"text-center mb-6\">\n <h4 className=\"mb-1\">Add people</h4>\n <p>Invite existing team member to this project.</p>\n </div>\n <Input\n ref={inputRef}\n prefix={<TbSearch className=\"text-lg\" />}\n placeholder=\"Quick search member\"\n onChange={onSearch}\n />\n <div className=\"mt-4\">\n <p className=\"font-semibold uppercase text-xs mb-4\">\n {memberList.length} members available\n </p>\n <div className=\"mb-6\">\n <ScrollBar className={classNames('overflow-y-auto h-80')}>\n {memberList.map((member) => (\n <div\n key={member.id}\n className=\"py-3 pr-5 rounded-lg flex items-center justify-between\"\n >\n <div className=\"flex items-center gap-2\">\n <Avatar shape=\"circle\" src={member.img} />\n <div>\n <p className=\"heading-text font-bold\">\n {member.name}\n </p>\n <p>{member.email}</p>\n </div>\n </div>\n {existingMember(member.id) ? (\n <Button\n size=\"xs\"\n customColorClass={() =>\n 'hover:border-red-500 hover:ring-red-500'\n }\n onClick={() =>\n onRemoveMember(member.id)\n }\n >\n <span className=\"text-red-500\">\n Remove\n </span>\n </Button>\n ) : (\n <Button\n size=\"xs\"\n onClick={() => onAddMember(member)}\n >\n Add\n </Button>\n )}\n </div>\n ))}\n </ScrollBar>\n </div>\n <Button block variant=\"solid\" onClick={onDone}>\n Done\n </Button>\n </div>\n </div>\n )\n}\n\nexport default AddNewMemberContent\n"],"names":["AddNewMemberContent","inputRef","useRef","allMembers","boardMembers","updateBoardMembers","closeDialog","useScrumBoardStore","memberList","setMemberList","useState","debounceFn","debounce","handleDebounceFn","query","data","wildCardSearch","onSearch","existingMember","id","member","onAddMember","cloneDeep","onRemoveMember","onDone","jsxs","jsx","Input","TbSearch","ScrollBar","classNames","Avatar","Button"],"mappings":"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"}
1
+ {"version":3,"file":"AddNewMemberContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/AddNewMemberContent.tsx"],"sourcesContent":["import { useState, useRef } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Button from '@/components/ui/Button'\nimport Input from '@/components/ui/Input'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport wildCardSearch from '@/utils/wildCardSearch'\nimport classNames from '@/utils/classNames'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport { TbSearch } from 'react-icons/tb'\nimport debounce from 'lodash/debounce'\nimport cloneDeep from 'lodash/cloneDeep'\nimport type { ChangeEvent } from 'react'\n\ntype Member = {\n id: string\n name: string\n email: string\n img: string\n}\n\nconst AddNewMemberContent = () => {\n const inputRef = useRef(null)\n\n const { allMembers, boardMembers, updateBoardMembers, closeDialog } =\n useScrumBoardStore()\n\n const [memberList, setMemberList] = useState(allMembers)\n\n const debounceFn = debounce(handleDebounceFn, 500)\n\n function handleDebounceFn(query: string) {\n const data = wildCardSearch(allMembers, query)\n setMemberList(data as Member[])\n }\n\n const onSearch = (e: ChangeEvent<HTMLInputElement>) => {\n debounceFn(e.target.value)\n }\n\n const existingMember = (id: string) => {\n return boardMembers.some((member) => member.id === id)\n }\n\n const onAddMember = (member: Member) => {\n const data = cloneDeep(boardMembers)\n data.push(member)\n updateBoardMembers(data)\n }\n\n const onRemoveMember = (id: string) => {\n const data = cloneDeep(boardMembers).filter(\n (member) => member.id !== id,\n )\n updateBoardMembers(data)\n }\n\n const onDone = () => {\n closeDialog()\n }\n\n return (\n <div>\n <div className=\"text-center mb-6\">\n <h4 className=\"mb-1\">Add people</h4>\n <p>Invite existing team member to this project.</p>\n </div>\n <Input\n ref={inputRef}\n prefix={<TbSearch className=\"text-lg\" />}\n placeholder=\"Quick search member\"\n onChange={onSearch}\n />\n <div className=\"mt-4\">\n <p className=\"font-semibold uppercase text-xs mb-4\">\n {memberList.length} members available\n </p>\n <div className=\"mb-6\">\n <ScrollBar className={classNames('overflow-y-auto h-80')}>\n {memberList.map((member) => (\n <div\n key={member.id}\n className=\"py-3 pr-5 rounded-lg flex items-center justify-between\"\n >\n <div className=\"flex items-center gap-2\">\n <Avatar shape=\"circle\" src={member.img} />\n <div>\n <p className=\"heading-text font-bold\">\n {member.name}\n </p>\n <p>{member.email}</p>\n </div>\n </div>\n {existingMember(member.id) ? (\n <Button\n size=\"xs\"\n customColorClass={() =>\n 'hover:border-red-500 hover:ring-red-500'\n }\n onClick={() =>\n onRemoveMember(member.id)\n }\n >\n <span className=\"text-red-500\">\n Remove\n </span>\n </Button>\n ) : (\n <Button\n size=\"xs\"\n onClick={() => onAddMember(member)}\n >\n Add\n </Button>\n )}\n </div>\n ))}\n </ScrollBar>\n </div>\n <Button block variant=\"solid\" onClick={onDone}>\n Done\n </Button>\n </div>\n </div>\n )\n}\n\nexport default AddNewMemberContent\n"],"names":["AddNewMemberContent","inputRef","useRef","allMembers","boardMembers","updateBoardMembers","closeDialog","useScrumBoardStore","memberList","setMemberList","useState","debounceFn","debounce","handleDebounceFn","query","data","wildCardSearch","onSearch","existingMember","id","member","onAddMember","cloneDeep","onRemoveMember","onDone","jsxs","jsx","Input","TbSearch","ScrollBar","classNames","Avatar","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AddNewTicketContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/AddNewTicketContent.tsx"],"sourcesContent":["import { Form, FormItem } from '@/components/ui/Form'\nimport Input from '@/components/ui/Input'\nimport Button from '@/components/ui/Button'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport sleep from '@/utils/sleep'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { createCardObject } from '../utils'\nimport type { ZodType } from 'zod'\n\ntype FormSchema = {\n title: string\n}\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n title: z.string().min(1, 'Ticket title is required!'),\n})\n\nconst AddNewTicketContent = () => {\n const { columns, board, closeDialog, updateColumns, setSelectedBoard } =\n useScrumBoardStore()\n\n const {\n control,\n formState: { errors },\n handleSubmit,\n } = useForm<FormSchema>({\n defaultValues: {\n title: '',\n },\n resolver: zodResolver(validationSchema),\n })\n\n const onFormSubmit = async ({ title }: FormSchema) => {\n const data = columns\n const newCard = createCardObject()\n newCard.name = title ? title : 'Untitled Card'\n\n const newData = cloneDeep(data)\n newData[board].push(newCard)\n updateColumns(newData)\n closeDialog()\n await sleep(1000)\n setSelectedBoard('')\n }\n\n return (\n <div>\n <h5>Add New Ticket</h5>\n <div className=\"mt-8\">\n <Form layout=\"inline\" onSubmit={handleSubmit(onFormSubmit)}>\n <FormItem\n label=\"Column title\"\n invalid={Boolean(errors.title)}\n errorMessage={errors.title?.message}\n >\n <Controller\n name=\"title\"\n control={control}\n rules={{ required: true }}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem>\n <Button variant=\"solid\" type=\"submit\">\n Add\n </Button>\n </FormItem>\n </Form>\n </div>\n </div>\n )\n}\n\nexport default AddNewTicketContent\n"],"names":["validationSchema","z","AddNewTicketContent","columns","board","closeDialog","updateColumns","setSelectedBoard","useScrumBoardStore","control","errors","handleSubmit","useForm","zodResolver","jsx","jsxs","Form","title","data","newCard","createCardObject","newData","cloneDeep","sleep","FormItem","_a","Controller","field","Input","Button"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAMA,IAAwCC,EAAE,OAAO;AAAA,EACnD,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,2BAA2B;AACxD,CAAC,GAEKC,IAAsB,MAAM;;AAC9B,QAAM,EAAE,SAAAC,GAAS,OAAAC,GAAO,aAAAC,GAAa,eAAAC,GAAe,kBAAAC,EAAA,IAChDC,EAAA,GAEE;AAAA,IACF,SAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAA;AAAA,IACb,cAAAC;AAAA,EAAA,IACAC,EAAoB;AAAA,IACpB,eAAe;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAEX,UAAUC,EAAYb,CAAgB;AAAA,EAAA,CACzC;AAeD,2BACK,OAAA,EACG,UAAA;AAAA,IAAA,gBAAAc,EAAC,QAAG,UAAA,iBAAA,CAAc;AAAA,IAClB,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAC,EAACC,GAAA,EAAK,QAAO,UAAS,UAAUL,EAjBvB,OAAO,EAAE,OAAAM,QAAwB;AAClD,YAAMC,IAAOf,GACPgB,IAAUC,EAAA;AAChB,MAAAD,EAAQ,OAAOF,KAAgB;AAE/B,YAAMI,IAAUC,EAAUJ,CAAI;AAC9B,MAAAG,EAAQjB,CAAK,EAAE,KAAKe,CAAO,GAC3Bb,EAAce,CAAO,GACrBhB,EAAA,GACA,MAAMkB,EAAM,GAAI,GAChBhB,EAAiB,EAAE;AAAA,IAAA,CAO8C,GACrD,UAAA;AAAA,MAAA,gBAAAO;AAAA,QAACU;AAAA,QAAA;AAAA,UACG,OAAM;AAAA,UACN,SAAS,EAAQd,EAAO;AAAA,UACxB,eAAce,IAAAf,EAAO,UAAP,gBAAAe,EAAc;AAAA,UAE5B,UAAA,gBAAAX;AAAA,YAACY;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,SAAAjB;AAAA,cACA,OAAO,EAAE,UAAU,GAAA;AAAA,cACnB,QAAQ,CAAC,EAAE,OAAAkB,EAAA,MACP,gBAAAb;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,cAAa;AAAA,kBACZ,GAAGD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA;AAAA,QAER;AAAA,MAAA;AAAA,MAEJ,gBAAAb,EAACU,KACG,UAAA,gBAAAV,EAACe,GAAA,EAAO,SAAQ,SAAQ,MAAK,UAAS,UAAA,MAAA,CAEtC,EAAA,CACJ;AAAA,IAAA,EAAA,CACJ,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
1
+ {"version":3,"file":"AddNewTicketContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/AddNewTicketContent.tsx"],"sourcesContent":["import { Form, FormItem } from '@/components/ui/Form'\nimport Input from '@/components/ui/Input'\nimport Button from '@/components/ui/Button'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport sleep from '@/utils/sleep'\nimport { useForm, Controller } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport cloneDeep from 'lodash/cloneDeep'\nimport { createCardObject } from '../utils'\nimport type { ZodType } from 'zod'\n\ntype FormSchema = {\n title: string\n}\n\nconst validationSchema: ZodType<FormSchema> = z.object({\n title: z.string().min(1, 'Ticket title is required!'),\n})\n\nconst AddNewTicketContent = () => {\n const { columns, board, closeDialog, updateColumns, setSelectedBoard } =\n useScrumBoardStore()\n\n const {\n control,\n formState: { errors },\n handleSubmit,\n } = useForm<FormSchema>({\n defaultValues: {\n title: '',\n },\n resolver: zodResolver(validationSchema),\n })\n\n const onFormSubmit = async ({ title }: FormSchema) => {\n const data = columns\n const newCard = createCardObject()\n newCard.name = title ? title : 'Untitled Card'\n\n const newData = cloneDeep(data)\n newData[board].push(newCard)\n updateColumns(newData)\n closeDialog()\n await sleep(1000)\n setSelectedBoard('')\n }\n\n return (\n <div>\n <h5>Add New Ticket</h5>\n <div className=\"mt-8\">\n <Form layout=\"inline\" onSubmit={handleSubmit(onFormSubmit)}>\n <FormItem\n label=\"Column title\"\n invalid={Boolean(errors.title)}\n errorMessage={errors.title?.message}\n >\n <Controller\n name=\"title\"\n control={control}\n rules={{ required: true }}\n render={({ field }) => (\n <Input\n type=\"text\"\n autoComplete=\"off\"\n {...field}\n />\n )}\n />\n </FormItem>\n <FormItem>\n <Button variant=\"solid\" type=\"submit\">\n Add\n </Button>\n </FormItem>\n </Form>\n </div>\n </div>\n )\n}\n\nexport default AddNewTicketContent\n"],"names":["validationSchema","z","AddNewTicketContent","columns","board","closeDialog","updateColumns","setSelectedBoard","useScrumBoardStore","control","errors","handleSubmit","useForm","zodResolver","jsx","jsxs","Form","title","data","newCard","createCardObject","newData","cloneDeep","sleep","FormItem","_a","Controller","field","Input","Button"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAMA,IAAwCC,EAAE,OAAO;AAAA,EACnD,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,2BAA2B;AACxD,CAAC,GAEKC,IAAsB,MAAM;;AAC9B,QAAM,EAAE,SAAAC,GAAS,OAAAC,GAAO,aAAAC,GAAa,eAAAC,GAAe,kBAAAC,EAAA,IAChDC,EAAA,GAEE;AAAA,IACF,SAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAA;AAAA,IACb,cAAAC;AAAA,EAAA,IACAC,EAAoB;AAAA,IACpB,eAAe;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAEX,UAAUC,EAAYb,CAAgB;AAAA,EAAA,CACzC;AAeD,2BACK,OAAA,EACG,UAAA;AAAA,IAAA,gBAAAc,EAAC,QAAG,UAAA,iBAAA,CAAc;AAAA,IAClB,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAC,EAACC,GAAA,EAAK,QAAO,UAAS,UAAUL,EAjBvB,OAAO,EAAE,OAAAM,QAAwB;AAClD,YAAMC,IAAOf,GACPgB,IAAUC,EAAA;AAChB,MAAAD,EAAQ,OAAOF,KAAgB;AAE/B,YAAMI,IAAUC,EAAUJ,CAAI;AAC9B,MAAAG,EAAQjB,CAAK,EAAE,KAAKe,CAAO,GAC3Bb,EAAce,CAAO,GACrBhB,EAAA,GACA,MAAMkB,EAAM,GAAI,GAChBhB,EAAiB,EAAE;AAAA,IACvB,CAMqE,GACrD,UAAA;AAAA,MAAA,gBAAAO;AAAA,QAACU;AAAA,QAAA;AAAA,UACG,OAAM;AAAA,UACN,SAAS,EAAQd,EAAO;AAAA,UACxB,eAAce,IAAAf,EAAO,UAAP,gBAAAe,EAAc;AAAA,UAE5B,UAAA,gBAAAX;AAAA,YAACY;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,SAAAjB;AAAA,cACA,OAAO,EAAE,UAAU,GAAA;AAAA,cACnB,QAAQ,CAAC,EAAE,OAAAkB,EAAA,MACP,gBAAAb;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,cAAa;AAAA,kBACZ,GAAGD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA;AAAA,QAER;AAAA,MAAA;AAAA,MAEJ,gBAAAb,EAACU,KACG,UAAA,gBAAAV,EAACe,GAAA,EAAO,SAAQ,SAAQ,MAAK,UAAS,UAAA,MAAA,CAEtC,EAAA,CACJ;AAAA,IAAA,EAAA,CACJ,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Board.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/Board.tsx"],"sourcesContent":["import { lazy, Suspense } from \"react\";\nimport Dialog from \"@/components/ui/Dialog\";\nimport Spinner from \"@/components/ui/Spinner\";\nimport AdaptiveCard from \"@/components/shared/AdaptiveCard\";\nimport reorderDragable from \"@/utils/reorderDragable\";\nimport BoardColumn from \"./BoardColumn\";\nimport ScrumBoardHeader from \"./ScrumBoardHeader\";\nimport { useScrumBoardStore } from \"../store/scrumBoardStore\";\nimport sleep from \"@/utils/sleep\";\nimport reoderArray from \"@/utils/reoderArray\";\nimport {\n apiGetScrumBoards,\n apiGetProjectMembers,\n} from \"@/services/ProjectService\";\nimport {\n Droppable,\n DragDropContext,\n DraggableChildrenFn,\n} from \"@hello-pangea/dnd\";\nimport useSWR from \"swr\";\nimport type {\n GetScrumBoardsResponse,\n GetProjectMembersResponse,\n Ticket,\n Columns,\n} from \"../types\";\nimport type { DropResult } from \"@hello-pangea/dnd\";\nimport { FileNotFound } from \"@/assets\";\n\ntype DialogTipo = \"transferir\" | \"aceitar\" | \"concluir\" | \"cancelar\";\n\nexport type BoardProps = {\n noData?: boolean;\n containerHeight?: boolean;\n useClone?: DraggableChildrenFn;\n isCombineEnabled?: boolean;\n isDisabledMoveColumn?: boolean;\n isDisabledMoveCard?: boolean;\n withScrollableColumns?: boolean;\n sprintTitle?: string;\n projectTitle?: string;\n showActions?: boolean;\n showHeaderInfo?: boolean;\n tasks?: Record<string, Ticket[]>;\n columns?: Columns;\n ordered?: string[];\n showAssignedTo?: boolean;\n showLabels?: boolean;\n showDueDate?: boolean;\n showDescription?: boolean;\n showUserInitiator?: boolean;\n showUserResponder?: boolean;\n showActionsTicket?: boolean;\n showChangeButton?: boolean;\n showCloseTicket?: boolean;\n descriptionTitle?: string;\n dueDateTitle?: string;\n userInitiatorTitle?: string;\n userResponderTitle?: string;\n onOpenDialog?: (tipo: DialogTipo, id: number) => void;\n goView?: (id: number) => void;\n renderActions?: (ticket: Ticket) => React.ReactNode;\n};\n\nconst TicketContent = lazy(() => import(\"./TicketContent\"));\nconst AddNewTicketContent = lazy(() => import(\"./AddNewTicketContent\"));\nconst AddNewMemberContent = lazy(() => import(\"./AddNewMemberContent\"));\nconst AddNewColumnContent = lazy(() => import(\"./AddNewColumnContent\"));\n\nconst Board = (props: BoardProps) => {\n const {\n columns,\n ordered,\n boardMembers,\n updateOrdered,\n updateColumns,\n updateBoardMembers,\n updateAllMembers,\n closeDialog,\n resetView,\n dialogView,\n dialogOpen,\n } = useScrumBoardStore();\n\n const {\n noData,\n containerHeight,\n useClone,\n isCombineEnabled,\n isDisabledMoveColumn = false,\n isDisabledMoveCard = false,\n withScrollableColumns,\n sprintTitle = \"Sprint 2\",\n projectTitle = \"Web App Project\",\n showActions = true,\n showHeaderInfo = true,\n showAssignedTo = true,\n showLabels = true,\n showDueDate = true,\n showDescription = true,\n showUserInitiator = true,\n showUserResponder = true,\n showActionsTicket = true,\n showChangeButton = true,\n showCloseTicket = true,\n descriptionTitle = \"Descrição: \",\n dueDateTitle = \"Data: \",\n userInitiatorTitle = \"Participante 1: \",\n userResponderTitle = \"Participante 2: \",\n onOpenDialog,\n goView,\n renderActions,\n } = props;\n\n const currentColumns = props.columns ?? columns;\n const currentOrdered = props.ordered ?? ordered;\n\n const renderColumns =\n Object.keys(currentColumns).length > 0\n ? Object.keys(currentColumns)\n : (currentOrdered ?? []);\n\n useSWR(\n [\"/api/projects/scrum-board\"],\n () => apiGetScrumBoards<GetScrumBoardsResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateOrdered(Object.keys(data));\n updateColumns(data);\n },\n }\n );\n\n useSWR(\n [\"/api/projects/scrum-board/members\"],\n () => apiGetProjectMembers<GetProjectMembersResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateBoardMembers(data.participantMembers);\n updateAllMembers(data.allMembers);\n },\n }\n );\n\n const onDialogClose = async () => {\n closeDialog();\n await sleep(200);\n resetView();\n };\n\n const onDragEnd = (result: DropResult) => {\n if (result.combine) {\n if (result.type === \"COLUMN\") {\n const shallow = [...ordered];\n shallow.splice(result.source.index, 1);\n updateOrdered(shallow);\n return;\n }\n\n const column = columns[result.source.droppableId];\n const withQuoteRemoved = [...column];\n withQuoteRemoved.splice(result.source.index, 1);\n const newColumns = {\n ...columns,\n [result.source.droppableId]: withQuoteRemoved,\n };\n updateColumns(newColumns);\n return;\n }\n\n if (!result.destination) {\n return;\n }\n\n const source = result.source;\n const destination = result.destination;\n\n if (\n source.droppableId === destination.droppableId &&\n source.index === destination.index\n ) {\n return;\n }\n\n if (result.type === \"COLUMN\") {\n const newOrdered = reoderArray(ordered, source.index, destination.index);\n updateOrdered(newOrdered);\n return;\n }\n\n const data = reorderDragable<Record<string, Ticket[]>>({\n quoteMap: columns,\n source,\n destination,\n });\n\n updateColumns(data.quoteMap);\n };\n\n return (\n <>\n {noData ? (\n <div className=\"flex flex-col items-center gap-4\">\n <FileNotFound />\n <span className=\"font-semibold\">No data found!</span>\n </div>\n ) : (\n <>\n <AdaptiveCard className=\"h-full\" bodyClass=\"h-full flex flex-col\">\n <ScrumBoardHeader\n boardMembers={boardMembers}\n sprintTitle={sprintTitle}\n projectTitle={projectTitle}\n showActions={showActions}\n showHeaderInfo={showHeaderInfo}\n />\n <DragDropContext onDragEnd={(result) => onDragEnd(result)}>\n <Droppable\n droppableId=\"board\"\n type=\"COLUMN\"\n direction=\"horizontal\"\n ignoreContainerClipping={containerHeight}\n isCombineEnabled={isCombineEnabled}\n >\n {(provided) => (\n <div\n ref={provided.innerRef}\n className=\"scrumboard flex flex-col flex-auto w-full mb-2\"\n {...provided.droppableProps}\n >\n <div className=\"scrumboard-body flex max-w-full overflow-x-auto h-full mt-4 gap-4\">\n {renderColumns.map((key, index) => (\n <BoardColumn\n key={key}\n index={index}\n title={key}\n contents={currentColumns[key]}\n isScrollable={withScrollableColumns}\n isCombineEnabled={isCombineEnabled}\n isDisabledMoveColumn={isDisabledMoveColumn}\n isDisabledMoveCard={isDisabledMoveCard}\n useClone={useClone}\n />\n ))}\n {provided.placeholder}\n </div>\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </AdaptiveCard>\n <Dialog\n isOpen={dialogOpen}\n width={dialogView === \"TICKET\" ? 700 : 520}\n closable={dialogView !== \"TICKET\"}\n onClose={onDialogClose}\n onRequestClose={onDialogClose}\n >\n <Suspense\n fallback={\n <div className=\"my-4 text-center\">\n <Spinner />\n </div>\n }\n >\n {dialogView === \"TICKET\" && (\n <TicketContent\n onTicketClose={onDialogClose}\n showAssignedTo={showAssignedTo}\n showLabels={showLabels}\n showDueDate={showDueDate}\n showDescription={showDescription}\n showUserInitiator={showUserInitiator}\n showUserResponder={showUserResponder}\n showActionsTicket={showActionsTicket}\n showChangeButton={showChangeButton}\n showCloseTicket={showCloseTicket}\n descriptionTitle={descriptionTitle}\n dueDateTitle={dueDateTitle}\n userInitiatorTitle={userInitiatorTitle}\n userResponderTitle={userResponderTitle}\n onOpenDialog={onOpenDialog}\n goView={goView}\n columns={currentColumns}\n renderActions={renderActions}\n />\n )}\n {dialogView === \"NEW_TICKET\" && <AddNewTicketContent />}\n {dialogView === \"NEW_COLUMN\" && <AddNewColumnContent />}\n {dialogView === \"ADD_MEMBER\" && <AddNewMemberContent />}\n </Suspense>\n </Dialog>\n </>\n )}\n </>\n );\n};\n\nexport default Board;\n"],"names":["TicketContent","lazy","AddNewTicketContent","AddNewMemberContent","AddNewColumnContent","Board","props","columns","ordered","boardMembers","updateOrdered","updateColumns","updateBoardMembers","updateAllMembers","closeDialog","resetView","dialogView","dialogOpen","useScrumBoardStore","noData","containerHeight","useClone","isCombineEnabled","isDisabledMoveColumn","isDisabledMoveCard","withScrollableColumns","sprintTitle","projectTitle","showActions","showHeaderInfo","showAssignedTo","showLabels","showDueDate","showDescription","showUserInitiator","showUserResponder","showActionsTicket","showChangeButton","showCloseTicket","descriptionTitle","dueDateTitle","userInitiatorTitle","userResponderTitle","onOpenDialog","goView","renderActions","currentColumns","currentOrdered","renderColumns","useSWR","apiGetScrumBoards","data","apiGetProjectMembers","onDialogClose","sleep","onDragEnd","result","shallow","withQuoteRemoved","newColumns","source","destination","newOrdered","reoderArray","reorderDragable","jsx","Fragment","jsxs","FileNotFound","AdaptiveCard","ScrumBoardHeader","DragDropContext","Droppable","provided","key","index","BoardColumn","Dialog","Suspense","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"Board.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/Board.tsx"],"sourcesContent":["import { lazy, Suspense } from \"react\";\nimport Dialog from \"@/components/ui/Dialog\";\nimport Spinner from \"@/components/ui/Spinner\";\nimport AdaptiveCard from \"@/components/shared/AdaptiveCard\";\nimport reorderDragable from \"@/utils/reorderDragable\";\nimport BoardColumn from \"./BoardColumn\";\nimport ScrumBoardHeader from \"./ScrumBoardHeader\";\nimport { useScrumBoardStore } from \"../store/scrumBoardStore\";\nimport sleep from \"@/utils/sleep\";\nimport reoderArray from \"@/utils/reoderArray\";\nimport {\n apiGetScrumBoards,\n apiGetProjectMembers,\n} from \"@/services/ProjectService\";\nimport {\n Droppable,\n DragDropContext,\n DraggableChildrenFn,\n} from \"@hello-pangea/dnd\";\nimport useSWR from \"swr\";\nimport type {\n GetScrumBoardsResponse,\n GetProjectMembersResponse,\n Ticket,\n Columns,\n} from \"../types\";\nimport type { DropResult } from \"@hello-pangea/dnd\";\nimport { FileNotFound } from \"@/assets\";\n\ntype DialogTipo = \"transferir\" | \"aceitar\" | \"concluir\" | \"cancelar\";\n\nexport type BoardProps = {\n noData?: boolean;\n containerHeight?: boolean;\n useClone?: DraggableChildrenFn;\n isCombineEnabled?: boolean;\n isDisabledMoveColumn?: boolean;\n isDisabledMoveCard?: boolean;\n withScrollableColumns?: boolean;\n sprintTitle?: string;\n projectTitle?: string;\n showActions?: boolean;\n showHeaderInfo?: boolean;\n tasks?: Record<string, Ticket[]>;\n columns?: Columns;\n ordered?: string[];\n showAssignedTo?: boolean;\n showLabels?: boolean;\n showDueDate?: boolean;\n showDescription?: boolean;\n showUserInitiator?: boolean;\n showUserResponder?: boolean;\n showActionsTicket?: boolean;\n showChangeButton?: boolean;\n showCloseTicket?: boolean;\n descriptionTitle?: string;\n dueDateTitle?: string;\n userInitiatorTitle?: string;\n userResponderTitle?: string;\n onOpenDialog?: (tipo: DialogTipo, id: number) => void;\n goView?: (id: number) => void;\n renderActions?: (ticket: Ticket) => React.ReactNode;\n};\n\nconst TicketContent = lazy(() => import(\"./TicketContent\"));\nconst AddNewTicketContent = lazy(() => import(\"./AddNewTicketContent\"));\nconst AddNewMemberContent = lazy(() => import(\"./AddNewMemberContent\"));\nconst AddNewColumnContent = lazy(() => import(\"./AddNewColumnContent\"));\n\nconst Board = (props: BoardProps) => {\n const {\n columns,\n ordered,\n boardMembers,\n updateOrdered,\n updateColumns,\n updateBoardMembers,\n updateAllMembers,\n closeDialog,\n resetView,\n dialogView,\n dialogOpen,\n } = useScrumBoardStore();\n\n const {\n noData,\n containerHeight,\n useClone,\n isCombineEnabled,\n isDisabledMoveColumn = false,\n isDisabledMoveCard = false,\n withScrollableColumns,\n sprintTitle = \"Sprint 2\",\n projectTitle = \"Web App Project\",\n showActions = true,\n showHeaderInfo = true,\n showAssignedTo = true,\n showLabels = true,\n showDueDate = true,\n showDescription = true,\n showUserInitiator = true,\n showUserResponder = true,\n showActionsTicket = true,\n showChangeButton = true,\n showCloseTicket = true,\n descriptionTitle = \"Descrição: \",\n dueDateTitle = \"Data: \",\n userInitiatorTitle = \"Participante 1: \",\n userResponderTitle = \"Participante 2: \",\n onOpenDialog,\n goView,\n renderActions,\n } = props;\n\n const currentColumns = props.columns ?? columns;\n const currentOrdered = props.ordered ?? ordered;\n\n const renderColumns =\n Object.keys(currentColumns).length > 0\n ? Object.keys(currentColumns)\n : (currentOrdered ?? []);\n\n useSWR(\n [\"/api/projects/scrum-board\"],\n () => apiGetScrumBoards<GetScrumBoardsResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateOrdered(Object.keys(data));\n updateColumns(data);\n },\n }\n );\n\n useSWR(\n [\"/api/projects/scrum-board/members\"],\n () => apiGetProjectMembers<GetProjectMembersResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateBoardMembers(data.participantMembers);\n updateAllMembers(data.allMembers);\n },\n }\n );\n\n const onDialogClose = async () => {\n closeDialog();\n await sleep(200);\n resetView();\n };\n\n const onDragEnd = (result: DropResult) => {\n if (result.combine) {\n if (result.type === \"COLUMN\") {\n const shallow = [...ordered];\n shallow.splice(result.source.index, 1);\n updateOrdered(shallow);\n return;\n }\n\n const column = columns[result.source.droppableId];\n const withQuoteRemoved = [...column];\n withQuoteRemoved.splice(result.source.index, 1);\n const newColumns = {\n ...columns,\n [result.source.droppableId]: withQuoteRemoved,\n };\n updateColumns(newColumns);\n return;\n }\n\n if (!result.destination) {\n return;\n }\n\n const source = result.source;\n const destination = result.destination;\n\n if (\n source.droppableId === destination.droppableId &&\n source.index === destination.index\n ) {\n return;\n }\n\n if (result.type === \"COLUMN\") {\n const newOrdered = reoderArray(ordered, source.index, destination.index);\n updateOrdered(newOrdered);\n return;\n }\n\n const data = reorderDragable<Record<string, Ticket[]>>({\n quoteMap: columns,\n source,\n destination,\n });\n\n updateColumns(data.quoteMap);\n };\n\n return (\n <>\n {noData ? (\n <div className=\"flex flex-col items-center gap-4\">\n <FileNotFound />\n <span className=\"font-semibold\">No data found!</span>\n </div>\n ) : (\n <>\n <AdaptiveCard className=\"h-full\" bodyClass=\"h-full flex flex-col\">\n <ScrumBoardHeader\n boardMembers={boardMembers}\n sprintTitle={sprintTitle}\n projectTitle={projectTitle}\n showActions={showActions}\n showHeaderInfo={showHeaderInfo}\n />\n <DragDropContext onDragEnd={(result) => onDragEnd(result)}>\n <Droppable\n droppableId=\"board\"\n type=\"COLUMN\"\n direction=\"horizontal\"\n ignoreContainerClipping={containerHeight}\n isCombineEnabled={isCombineEnabled}\n >\n {(provided) => (\n <div\n ref={provided.innerRef}\n className=\"scrumboard flex flex-col flex-auto w-full mb-2\"\n {...provided.droppableProps}\n >\n <div className=\"scrumboard-body flex max-w-full overflow-x-auto h-full mt-4 gap-4\">\n {renderColumns.map((key, index) => (\n <BoardColumn\n key={key}\n index={index}\n title={key}\n contents={currentColumns[key]}\n isScrollable={withScrollableColumns}\n isCombineEnabled={isCombineEnabled}\n isDisabledMoveColumn={isDisabledMoveColumn}\n isDisabledMoveCard={isDisabledMoveCard}\n useClone={useClone}\n />\n ))}\n {provided.placeholder}\n </div>\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </AdaptiveCard>\n <Dialog\n isOpen={dialogOpen}\n width={dialogView === \"TICKET\" ? 700 : 520}\n closable={dialogView !== \"TICKET\"}\n onClose={onDialogClose}\n onRequestClose={onDialogClose}\n >\n <Suspense\n fallback={\n <div className=\"my-4 text-center\">\n <Spinner />\n </div>\n }\n >\n {dialogView === \"TICKET\" && (\n <TicketContent\n onTicketClose={onDialogClose}\n showAssignedTo={showAssignedTo}\n showLabels={showLabels}\n showDueDate={showDueDate}\n showDescription={showDescription}\n showUserInitiator={showUserInitiator}\n showUserResponder={showUserResponder}\n showActionsTicket={showActionsTicket}\n showChangeButton={showChangeButton}\n showCloseTicket={showCloseTicket}\n descriptionTitle={descriptionTitle}\n dueDateTitle={dueDateTitle}\n userInitiatorTitle={userInitiatorTitle}\n userResponderTitle={userResponderTitle}\n onOpenDialog={onOpenDialog}\n goView={goView}\n columns={currentColumns}\n renderActions={renderActions}\n />\n )}\n {dialogView === \"NEW_TICKET\" && <AddNewTicketContent />}\n {dialogView === \"NEW_COLUMN\" && <AddNewColumnContent />}\n {dialogView === \"ADD_MEMBER\" && <AddNewMemberContent />}\n </Suspense>\n </Dialog>\n </>\n )}\n </>\n );\n};\n\nexport default Board;\n"],"names":["TicketContent","lazy","AddNewTicketContent","AddNewMemberContent","AddNewColumnContent","Board","props","columns","ordered","boardMembers","updateOrdered","updateColumns","updateBoardMembers","updateAllMembers","closeDialog","resetView","dialogView","dialogOpen","useScrumBoardStore","noData","containerHeight","useClone","isCombineEnabled","isDisabledMoveColumn","isDisabledMoveCard","withScrollableColumns","sprintTitle","projectTitle","showActions","showHeaderInfo","showAssignedTo","showLabels","showDueDate","showDescription","showUserInitiator","showUserResponder","showActionsTicket","showChangeButton","showCloseTicket","descriptionTitle","dueDateTitle","userInitiatorTitle","userResponderTitle","onOpenDialog","goView","renderActions","currentColumns","currentOrdered","renderColumns","useSWR","apiGetScrumBoards","data","apiGetProjectMembers","onDialogClose","sleep","onDragEnd","result","shallow","withQuoteRemoved","newColumns","source","destination","newOrdered","reoderArray","reorderDragable","jsx","Fragment","jsxs","FileNotFound","AdaptiveCard","ScrumBoardHeader","DragDropContext","Droppable","provided","key","index","BoardColumn","Dialog","Suspense","Spinner"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BoardCard.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/BoardCard.tsx"],"sourcesContent":["import Card from '@/components/ui/Card'\nimport Tag from '@/components/ui/Tag'\nimport UsersAvatarGroup from '@/components/shared/UsersAvatarGroup'\nimport IconText from '@/components/shared/IconText'\nimport { TbPaperclip, TbMessageCircle } from 'react-icons/tb'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport { taskLabelColors } from '../utils'\nimport type { Ticket } from '../types'\nimport type { CardProps } from '@/components/ui/Card'\nimport type { Ref } from 'react'\n\ninterface BoardCardProps extends CardProps {\n data: Ticket\n}\n\nconst BoardCard = (props: BoardCardProps) => {\n const { openDialog, updateDialogView, setSelectedTicketId } =\n useScrumBoardStore()\n\n const { data, ref, ...rest } = props\n\n const { id, name, comments, attachments, members, labels } = data\n\n const onCardClick = () => {\n openDialog()\n updateDialogView('TICKET')\n setSelectedTicketId(id)\n }\n\n return (\n <Card\n ref={ref}\n clickable\n className=\"hover:shadow-lg rounded-lg mb-4 border-0\"\n bodyClass=\"p-4\"\n onClick={() => onCardClick()}\n {...rest}\n >\n <div className=\"mb-2 font-bold heading-text text-base\">{name}</div>\n {labels && labels.length > 0 && (\n <>\n {labels.map((label, index) => (\n <Tag\n key={label + index}\n className={`mr-2 rtl:ml-2 mb-2 ${taskLabelColors[label]}`}\n >\n {label}\n </Tag>\n ))}\n </>\n )}\n <div className=\"flex items-center justify-between mt-3\">\n <UsersAvatarGroup avatarProps={{ size: 25 }} users={members} />\n <div className=\"flex items-center gap-2\">\n {comments && comments.length > 0 && (\n <IconText\n className=\"font-semibold gap-1\"\n icon={<TbMessageCircle className=\"text-base\" />}\n >\n {comments.length}\n </IconText>\n )}\n {attachments && attachments.length > 0 && (\n <IconText\n icon={<TbPaperclip />}\n className=\"text-base gap-1\"\n >\n {attachments.length}\n </IconText>\n )}\n </div>\n </div>\n </Card>\n )\n}\n\nexport default BoardCard\n"],"names":["BoardCard","props","openDialog","updateDialogView","setSelectedTicketId","useScrumBoardStore","data","ref","rest","id","name","comments","attachments","members","labels","onCardClick","jsxs","Card","jsx","label","index","Tag","taskLabelColors","UsersAvatarGroup","IconText","TbMessageCircle","TbPaperclip"],"mappings":";;;;;;;;;;AAeA,MAAMA,IAAY,CAACC,MAA0B;AACzC,QAAM,EAAE,YAAAC,GAAY,kBAAAC,GAAkB,qBAAAC,EAAA,IAClCC,EAAA,GAEE,EAAE,MAAAC,GAAM,KAAAC,GAAK,GAAGC,MAASP,GAEzB,EAAE,IAAAQ,GAAI,MAAAC,GAAM,UAAAC,GAAU,aAAAC,GAAa,SAAAC,GAAS,QAAAC,MAAWR,GAEvDS,IAAc,MAAM;AACtB,IAAAb,EAAA,GACAC,EAAiB,QAAQ,GACzBC,EAAoBK,CAAE;AAAA,EAAA;AAG1B,SACI,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAV;AAAA,MACA,WAAS;AAAA,MACT,WAAU;AAAA,MACV,WAAU;AAAA,MACV,SAAS,MAAMQ,EAAA;AAAA,MACd,GAAGP;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAU,EAAC,OAAA,EAAI,WAAU,yCAAyC,UAAAR,GAAK;AAAA,QAC5DI,KAAUA,EAAO,SAAS,4BAElB,UAAAA,EAAO,IAAI,CAACK,GAAOC,MAChB,gBAAAF;AAAA,UAACG;AAAA,UAAA;AAAA,YAEG,WAAW,sBAAsBC,EAAgBH,CAAK,CAAC;AAAA,YAEtD,UAAAA;AAAA,UAAA;AAAA,UAHIA,IAAQC;AAAA,QAAA,CAKpB,GACL;AAAA,QAEJ,gBAAAJ,EAAC,OAAA,EAAI,WAAU,0CACX,UAAA;AAAA,UAAA,gBAAAE,EAACK,KAAiB,aAAa,EAAE,MAAM,GAAA,GAAM,OAAOV,GAAS;AAAA,UAC7D,gBAAAG,EAAC,OAAA,EAAI,WAAU,2BACV,UAAA;AAAA,YAAAL,KAAYA,EAAS,SAAS,KAC3B,gBAAAO;AAAA,cAACM;AAAA,cAAA;AAAA,gBACG,WAAU;AAAA,gBACV,MAAM,gBAAAN,EAACO,GAAA,EAAgB,WAAU,YAAA,CAAY;AAAA,gBAE5C,UAAAd,EAAS;AAAA,cAAA;AAAA,YAAA;AAAA,YAGjBC,KAAeA,EAAY,SAAS,KACjC,gBAAAM;AAAA,cAACM;AAAA,cAAA;AAAA,gBACG,wBAAOE,GAAA,EAAY;AAAA,gBACnB,WAAU;AAAA,gBAET,UAAAd,EAAY;AAAA,cAAA;AAAA,YAAA;AAAA,UACjB,EAAA,CAER;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"BoardCard.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/BoardCard.tsx"],"sourcesContent":["import Card from '@/components/ui/Card'\nimport Tag from '@/components/ui/Tag'\nimport UsersAvatarGroup from '@/components/shared/UsersAvatarGroup'\nimport IconText from '@/components/shared/IconText'\nimport { TbPaperclip, TbMessageCircle } from 'react-icons/tb'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport { taskLabelColors } from '../utils'\nimport type { Ticket } from '../types'\nimport type { CardProps } from '@/components/ui/Card'\nimport type { Ref } from 'react'\n\ninterface BoardCardProps extends CardProps {\n data: Ticket\n}\n\nconst BoardCard = (props: BoardCardProps) => {\n const { openDialog, updateDialogView, setSelectedTicketId } =\n useScrumBoardStore()\n\n const { data, ref, ...rest } = props\n\n const { id, name, comments, attachments, members, labels } = data\n\n const onCardClick = () => {\n openDialog()\n updateDialogView('TICKET')\n setSelectedTicketId(id)\n }\n\n return (\n <Card\n ref={ref}\n clickable\n className=\"hover:shadow-lg rounded-lg mb-4 border-0\"\n bodyClass=\"p-4\"\n onClick={() => onCardClick()}\n {...rest}\n >\n <div className=\"mb-2 font-bold heading-text text-base\">{name}</div>\n {labels && labels.length > 0 && (\n <>\n {labels.map((label, index) => (\n <Tag\n key={label + index}\n className={`mr-2 rtl:ml-2 mb-2 ${taskLabelColors[label]}`}\n >\n {label}\n </Tag>\n ))}\n </>\n )}\n <div className=\"flex items-center justify-between mt-3\">\n <UsersAvatarGroup avatarProps={{ size: 25 }} users={members} />\n <div className=\"flex items-center gap-2\">\n {comments && comments.length > 0 && (\n <IconText\n className=\"font-semibold gap-1\"\n icon={<TbMessageCircle className=\"text-base\" />}\n >\n {comments.length}\n </IconText>\n )}\n {attachments && attachments.length > 0 && (\n <IconText\n icon={<TbPaperclip />}\n className=\"text-base gap-1\"\n >\n {attachments.length}\n </IconText>\n )}\n </div>\n </div>\n </Card>\n )\n}\n\nexport default BoardCard\n"],"names":["BoardCard","props","openDialog","updateDialogView","setSelectedTicketId","useScrumBoardStore","data","ref","rest","id","name","comments","attachments","members","labels","onCardClick","jsxs","Card","jsx","label","index","Tag","taskLabelColors","UsersAvatarGroup","IconText","TbMessageCircle","TbPaperclip"],"mappings":";;;;;;;;;;AAeA,MAAMA,IAAY,CAACC,MAA0B;AACzC,QAAM,EAAE,YAAAC,GAAY,kBAAAC,GAAkB,qBAAAC,EAAA,IAClCC,EAAA,GAEE,EAAE,MAAAC,GAAM,KAAAC,GAAK,GAAGC,MAASP,GAEzB,EAAE,IAAAQ,GAAI,MAAAC,GAAM,UAAAC,GAAU,aAAAC,GAAa,SAAAC,GAAS,QAAAC,MAAWR,GAEvDS,IAAc,MAAM;AACtB,IAAAb,EAAA,GACAC,EAAiB,QAAQ,GACzBC,EAAoBK,CAAE;AAAA,EAC1B;AAEA,SACI,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAV;AAAA,MACA,WAAS;AAAA,MACT,WAAU;AAAA,MACV,WAAU;AAAA,MACV,SAAS,MAAMQ,EAAA;AAAA,MACd,GAAGP;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAU,EAAC,OAAA,EAAI,WAAU,yCAAyC,UAAAR,GAAK;AAAA,QAC5DI,KAAUA,EAAO,SAAS,4BAElB,UAAAA,EAAO,IAAI,CAACK,GAAOC,MAChB,gBAAAF;AAAA,UAACG;AAAA,UAAA;AAAA,YAEG,WAAW,sBAAsBC,EAAgBH,CAAK,CAAC;AAAA,YAEtD,UAAAA;AAAA,UAAA;AAAA,UAHIA,IAAQC;AAAA,QAAA,CAKpB,GACL;AAAA,QAEJ,gBAAAJ,EAAC,OAAA,EAAI,WAAU,0CACX,UAAA;AAAA,UAAA,gBAAAE,EAACK,KAAiB,aAAa,EAAE,MAAM,GAAA,GAAM,OAAOV,GAAS;AAAA,UAC7D,gBAAAG,EAAC,OAAA,EAAI,WAAU,2BACV,UAAA;AAAA,YAAAL,KAAYA,EAAS,SAAS,KAC3B,gBAAAO;AAAA,cAACM;AAAA,cAAA;AAAA,gBACG,WAAU;AAAA,gBACV,MAAM,gBAAAN,EAACO,GAAA,EAAgB,WAAU,YAAA,CAAY;AAAA,gBAE5C,UAAAd,EAAS;AAAA,cAAA;AAAA,YAAA;AAAA,YAGjBC,KAAeA,EAAY,SAAS,KACjC,gBAAAM;AAAA,cAACM;AAAA,cAAA;AAAA,gBACG,wBAAOE,GAAA,EAAY;AAAA,gBACnB,WAAU;AAAA,gBAET,UAAAd,EAAY;AAAA,cAAA;AAAA,YAAA;AAAA,UACjB,EAAA,CAER;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BoardTitle.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/BoardTitle.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Form } from '@/components/ui/Form'\nimport Input from '@/components/ui/Input'\nimport Dropdown from '@/components/ui/Dropdown'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\nimport EllipsisButton from '@/components/shared/EllipsisButton'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport {\n TbPencil,\n TbCirclePlus,\n TbTrash,\n TbCircleXFilled,\n} from 'react-icons/tb'\nimport { useForm, Controller } from 'react-hook-form'\nimport type { DraggableProvidedDragHandleProps } from '@hello-pangea/dnd'\nimport type { Columns } from '../types'\n\ntype BoardTitleProps = {\n dragHandleProps?: DraggableProvidedDragHandleProps | null\n title: string\n}\n\ntype RenameFormProps = {\n title: string\n closeRenameForm: () => void\n columns: Columns\n ordered: string[]\n onEnter: (newColumns: Columns, newOrder: string[]) => void\n}\n\ntype FormSchema = {\n title: string\n}\n\nconst RenameForm = ({\n title,\n closeRenameForm,\n columns = {},\n ordered,\n onEnter,\n}: RenameFormProps) => {\n const onFormSubmit = (value: FormSchema) => {\n const newTitle = value.title\n\n if (ordered.some((elm) => elm === newTitle)) {\n closeRenameForm()\n return\n }\n\n const newColumns = {}\n delete Object.assign(newColumns, columns, {\n [newTitle]: columns[title],\n })[title]\n\n const newOrder = ordered.map((elm) => {\n if (elm === title) {\n return newTitle\n }\n return elm\n })\n onEnter(newColumns, newOrder)\n closeRenameForm()\n }\n\n const { control, handleSubmit } = useForm<FormSchema>({\n defaultValues: {\n title,\n },\n })\n\n return (\n <>\n <Form onSubmit={handleSubmit(onFormSubmit)}>\n <Controller\n name=\"title\"\n control={control}\n rules={{ required: true }}\n render={({ field }) => (\n <Input type=\"text\" autoComplete=\"off\" {...field} />\n )}\n />\n </Form>\n </>\n )\n}\n\nconst BoardTitle = (props: BoardTitleProps) => {\n const { dragHandleProps, title } = props\n\n const {\n columns,\n ordered,\n openDialog,\n updateColumns,\n updateDialogView,\n setSelectedBoard,\n updateOrdered,\n } = useScrumBoardStore()\n\n const [renameActive, setRenameActive] = useState(false)\n const [confirmDeleteDialog, setConfirmDeleteDialog] = useState(false)\n\n const onRenameActive = () => {\n setRenameActive(true)\n }\n\n const onRenameDeactivate = () => {\n setRenameActive(false)\n }\n\n const onConfirmDeleteClose = () => {\n setConfirmDeleteDialog(false)\n }\n\n const onBoardDelete = () => {\n setConfirmDeleteDialog(true)\n }\n\n const onAddNewTicket = () => {\n openDialog()\n updateDialogView('NEW_TICKET')\n setSelectedBoard(title)\n }\n\n const onDelete = () => {\n const newOrder = ordered.filter((elm) => elm !== title)\n const newColumns: Columns = {}\n Object.assign(newColumns, columns)\n delete newColumns[title]\n updateOrdered(newOrder)\n }\n\n const handleEnter = (newColumns: Columns, newOrder: string[]) => {\n updateColumns(newColumns)\n updateOrdered(newOrder)\n }\n\n return (\n <div\n className=\"board-title px-5 py-4 flex justify-between items-center\"\n {...dragHandleProps}\n >\n {renameActive ? (\n <>\n <RenameForm\n title={title}\n closeRenameForm={onRenameDeactivate}\n columns={columns as Columns}\n ordered={ordered}\n onEnter={handleEnter}\n />\n <TbCircleXFilled\n className=\"cursor-pointer text-lg\"\n onClick={onRenameDeactivate}\n />\n </>\n ) : (\n <>\n <h6>{title}</h6>\n </>\n )}\n <ConfirmDialog\n isOpen={confirmDeleteDialog}\n type=\"danger\"\n title=\"Delete Board\"\n onClose={onConfirmDeleteClose}\n onRequestClose={onConfirmDeleteClose}\n onCancel={onConfirmDeleteClose}\n onConfirm={onDelete}\n >\n <p>\n Are you sure you want to delete this board? All the tickets\n under this board will be deleted as well. This action cannot\n be undone.\n </p>\n </ConfirmDialog>\n </div>\n )\n}\n\nexport default BoardTitle"],"names":["RenameForm","title","closeRenameForm","columns","ordered","onEnter","onFormSubmit","value","newTitle","elm","newColumns","newOrder","control","handleSubmit","useForm","jsx","Form","Controller","field","Input","BoardTitle","props","dragHandleProps","openDialog","updateColumns","updateDialogView","setSelectedBoard","updateOrdered","useScrumBoardStore","renameActive","setRenameActive","useState","confirmDeleteDialog","setConfirmDeleteDialog","onRenameActive","onRenameDeactivate","onConfirmDeleteClose","onBoardDelete","onAddNewTicket","jsxs","Fragment","TbCircleXFilled","ConfirmDialog"],"mappings":"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"}
1
+ {"version":3,"file":"BoardTitle.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/BoardTitle.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Form } from '@/components/ui/Form'\nimport Input from '@/components/ui/Input'\nimport Dropdown from '@/components/ui/Dropdown'\nimport ConfirmDialog from '@/components/shared/ConfirmDialog'\nimport EllipsisButton from '@/components/shared/EllipsisButton'\nimport { useScrumBoardStore } from '../store/scrumBoardStore'\nimport {\n TbPencil,\n TbCirclePlus,\n TbTrash,\n TbCircleXFilled,\n} from 'react-icons/tb'\nimport { useForm, Controller } from 'react-hook-form'\nimport type { DraggableProvidedDragHandleProps } from '@hello-pangea/dnd'\nimport type { Columns } from '../types'\n\ntype BoardTitleProps = {\n dragHandleProps?: DraggableProvidedDragHandleProps | null\n title: string\n}\n\ntype RenameFormProps = {\n title: string\n closeRenameForm: () => void\n columns: Columns\n ordered: string[]\n onEnter: (newColumns: Columns, newOrder: string[]) => void\n}\n\ntype FormSchema = {\n title: string\n}\n\nconst RenameForm = ({\n title,\n closeRenameForm,\n columns = {},\n ordered,\n onEnter,\n}: RenameFormProps) => {\n const onFormSubmit = (value: FormSchema) => {\n const newTitle = value.title\n\n if (ordered.some((elm) => elm === newTitle)) {\n closeRenameForm()\n return\n }\n\n const newColumns = {}\n delete Object.assign(newColumns, columns, {\n [newTitle]: columns[title],\n })[title]\n\n const newOrder = ordered.map((elm) => {\n if (elm === title) {\n return newTitle\n }\n return elm\n })\n onEnter(newColumns, newOrder)\n closeRenameForm()\n }\n\n const { control, handleSubmit } = useForm<FormSchema>({\n defaultValues: {\n title,\n },\n })\n\n return (\n <>\n <Form onSubmit={handleSubmit(onFormSubmit)}>\n <Controller\n name=\"title\"\n control={control}\n rules={{ required: true }}\n render={({ field }) => (\n <Input type=\"text\" autoComplete=\"off\" {...field} />\n )}\n />\n </Form>\n </>\n )\n}\n\nconst BoardTitle = (props: BoardTitleProps) => {\n const { dragHandleProps, title } = props\n\n const {\n columns,\n ordered,\n openDialog,\n updateColumns,\n updateDialogView,\n setSelectedBoard,\n updateOrdered,\n } = useScrumBoardStore()\n\n const [renameActive, setRenameActive] = useState(false)\n const [confirmDeleteDialog, setConfirmDeleteDialog] = useState(false)\n\n const onRenameActive = () => {\n setRenameActive(true)\n }\n\n const onRenameDeactivate = () => {\n setRenameActive(false)\n }\n\n const onConfirmDeleteClose = () => {\n setConfirmDeleteDialog(false)\n }\n\n const onBoardDelete = () => {\n setConfirmDeleteDialog(true)\n }\n\n const onAddNewTicket = () => {\n openDialog()\n updateDialogView('NEW_TICKET')\n setSelectedBoard(title)\n }\n\n const onDelete = () => {\n const newOrder = ordered.filter((elm) => elm !== title)\n const newColumns: Columns = {}\n Object.assign(newColumns, columns)\n delete newColumns[title]\n updateOrdered(newOrder)\n }\n\n const handleEnter = (newColumns: Columns, newOrder: string[]) => {\n updateColumns(newColumns)\n updateOrdered(newOrder)\n }\n\n return (\n <div\n className=\"board-title px-5 py-4 flex justify-between items-center\"\n {...dragHandleProps}\n >\n {renameActive ? (\n <>\n <RenameForm\n title={title}\n closeRenameForm={onRenameDeactivate}\n columns={columns as Columns}\n ordered={ordered}\n onEnter={handleEnter}\n />\n <TbCircleXFilled\n className=\"cursor-pointer text-lg\"\n onClick={onRenameDeactivate}\n />\n </>\n ) : (\n <>\n <h6>{title}</h6>\n </>\n )}\n <ConfirmDialog\n isOpen={confirmDeleteDialog}\n type=\"danger\"\n title=\"Delete Board\"\n onClose={onConfirmDeleteClose}\n onRequestClose={onConfirmDeleteClose}\n onCancel={onConfirmDeleteClose}\n onConfirm={onDelete}\n >\n <p>\n Are you sure you want to delete this board? All the tickets\n under this board will be deleted as well. This action cannot\n be undone.\n </p>\n </ConfirmDialog>\n </div>\n )\n}\n\nexport default BoardTitle"],"names":["RenameForm","title","closeRenameForm","columns","ordered","onEnter","onFormSubmit","value","newTitle","elm","newColumns","newOrder","control","handleSubmit","useForm","jsx","Form","Controller","field","Input","BoardTitle","props","dragHandleProps","openDialog","updateColumns","updateDialogView","setSelectedBoard","updateOrdered","useScrumBoardStore","renameActive","setRenameActive","useState","confirmDeleteDialog","setConfirmDeleteDialog","onRenameActive","onRenameDeactivate","onConfirmDeleteClose","onBoardDelete","onAddNewTicket","jsxs","Fragment","TbCircleXFilled","ConfirmDialog"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrumBoardHeader.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/ScrumBoardHeader.tsx"],"sourcesContent":["import Button from \"@/components/ui/Button\";\nimport UsersAvatarGroup from \"@/components/shared/UsersAvatarGroup\";\nimport { useScrumBoardStore } from \"../store/scrumBoardStore\";\nimport { TbUserPlus, TbSettings, TbPlus } from \"react-icons/tb\";\nimport { useNavigate } from \"react-router-dom\";\nimport type { Member } from \"../types\";\n\nconst ScrumBoardHeader = ({\n boardMembers = [],\n sprintTitle = \"Sprint 2\",\n projectTitle = \"Web App Project\",\n showActions = true,\n showAddMemberButton = true,\n showSettingsButton = true,\n showAddColumnButton = true,\n showHeaderInfo = true,\n}: {\n boardMembers: Member[];\n sprintTitle?: string;\n projectTitle?: string;\n showActions?: boolean;\n showAddMemberButton?: boolean;\n showSettingsButton?: boolean;\n showAddColumnButton?: boolean;\n showHeaderInfo?: boolean;\n}) => {\n const navigate = useNavigate();\n\n const { updateDialogView, openDialog } = useScrumBoardStore();\n\n const onAddMember = () => {\n updateDialogView(\"ADD_MEMBER\");\n openDialog();\n };\n\n const handleAddNewColumn = () => {\n updateDialogView(\"NEW_COLUMN\");\n openDialog();\n };\n\n return (\n <div className=\"flex flex-col md:flex-row md:items-center justify-between gap-4 mb-6\">\n {showHeaderInfo && (\n <div>\n {sprintTitle && <h3>{sprintTitle}</h3>}\n {projectTitle && <p className=\"font-semibold\">{projectTitle}</p>}\n </div>\n )}\n\n {showActions && (\n <div className=\"flex flex-col lg:flex-row justify-between lg:items-center gap-4\">\n <div className=\"flex flex-col md:flex-row md:items-center gap-4\">\n <UsersAvatarGroup\n className=\"flex items-center\"\n avatarProps={{ size: 35 }}\n users={boardMembers}\n />\n <div className=\"flex items-center gap-2\">\n {showAddMemberButton && (\n <Button size=\"sm\" icon={<TbUserPlus />} onClick={onAddMember} />\n )}\n {showSettingsButton && (\n <Button\n size=\"sm\"\n icon={<TbSettings />}\n onClick={() => navigate(\"/app/account/settings/profile\")}\n />\n )}\n {showAddColumnButton && (\n <Button\n size=\"sm\"\n icon={<TbPlus />}\n onClick={handleAddNewColumn}\n >\n <span>New Board</span>\n </Button>\n )}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ScrumBoardHeader;\n"],"names":["ScrumBoardHeader","boardMembers","sprintTitle","projectTitle","showActions","showAddMemberButton","showSettingsButton","showAddColumnButton","showHeaderInfo","navigate","useNavigate","updateDialogView","openDialog","useScrumBoardStore","jsxs","jsx","UsersAvatarGroup","Button","TbUserPlus","TbSettings","TbPlus"],"mappings":";;;;;;;AAOA,MAAMA,IAAmB,CAAC;AAAA,EACxB,cAAAC,IAAe,CAAA;AAAA,EACf,aAAAC,IAAc;AAAA,EACd,cAAAC,IAAe;AAAA,EACf,aAAAC,IAAc;AAAA,EACd,qBAAAC,IAAsB;AAAA,EACtB,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC,IAAiB;AACnB,MASM;AACJ,QAAMC,IAAWC,EAAA,GAEX,EAAE,kBAAAC,GAAkB,YAAAC,EAAA,IAAeC,EAAA;AAYzC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,wEACZ,UAAA;AAAA,IAAAN,uBACE,OAAA,EACE,UAAA;AAAA,MAAAN,KAAe,gBAAAa,EAAC,QAAI,UAAAb,EAAA,CAAY;AAAA,MAChCC,KAAgB,gBAAAY,EAAC,KAAA,EAAE,WAAU,iBAAiB,UAAAZ,EAAA,CAAa;AAAA,IAAA,GAC9D;AAAA,IAGDC,uBACE,OAAA,EAAI,WAAU,mEACb,UAAA,gBAAAU,EAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,aAAa,EAAE,MAAM,GAAA;AAAA,UACrB,OAAOf;AAAA,QAAA;AAAA,MAAA;AAAA,MAET,gBAAAa,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,QAAAT,KACC,gBAAAU,EAACE,KAAO,MAAK,MAAK,MAAM,gBAAAF,EAACG,GAAA,CAAA,CAAW,GAAI,SA7BlC,MAAM;AACxB,UAAAP,EAAiB,YAAY,GAC7BC,EAAA;AAAA,QAAW,EA2BkD,CAAa;AAAA,QAE/DN,KACC,gBAAAS;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,wBAAOE,GAAA,EAAW;AAAA,YAClB,SAAS,MAAMV,EAAS,+BAA+B;AAAA,UAAA;AAAA,QAAA;AAAA,QAG1DF,KACC,gBAAAQ;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,wBAAOG,GAAA,EAAO;AAAA,YACd,SArCW,MAAM;AAC/B,cAAAT,EAAiB,YAAY,GAC7BC,EAAA;AAAA,YAAW;AAAA,YAqCG,UAAA,gBAAAG,EAAC,UAAK,UAAA,YAAA,CAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"ScrumBoardHeader.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/ScrumBoardHeader.tsx"],"sourcesContent":["import Button from \"@/components/ui/Button\";\nimport UsersAvatarGroup from \"@/components/shared/UsersAvatarGroup\";\nimport { useScrumBoardStore } from \"../store/scrumBoardStore\";\nimport { TbUserPlus, TbSettings, TbPlus } from \"react-icons/tb\";\nimport { useNavigate } from \"react-router-dom\";\nimport type { Member } from \"../types\";\n\nconst ScrumBoardHeader = ({\n boardMembers = [],\n sprintTitle = \"Sprint 2\",\n projectTitle = \"Web App Project\",\n showActions = true,\n showAddMemberButton = true,\n showSettingsButton = true,\n showAddColumnButton = true,\n showHeaderInfo = true,\n}: {\n boardMembers: Member[];\n sprintTitle?: string;\n projectTitle?: string;\n showActions?: boolean;\n showAddMemberButton?: boolean;\n showSettingsButton?: boolean;\n showAddColumnButton?: boolean;\n showHeaderInfo?: boolean;\n}) => {\n const navigate = useNavigate();\n\n const { updateDialogView, openDialog } = useScrumBoardStore();\n\n const onAddMember = () => {\n updateDialogView(\"ADD_MEMBER\");\n openDialog();\n };\n\n const handleAddNewColumn = () => {\n updateDialogView(\"NEW_COLUMN\");\n openDialog();\n };\n\n return (\n <div className=\"flex flex-col md:flex-row md:items-center justify-between gap-4 mb-6\">\n {showHeaderInfo && (\n <div>\n {sprintTitle && <h3>{sprintTitle}</h3>}\n {projectTitle && <p className=\"font-semibold\">{projectTitle}</p>}\n </div>\n )}\n\n {showActions && (\n <div className=\"flex flex-col lg:flex-row justify-between lg:items-center gap-4\">\n <div className=\"flex flex-col md:flex-row md:items-center gap-4\">\n <UsersAvatarGroup\n className=\"flex items-center\"\n avatarProps={{ size: 35 }}\n users={boardMembers}\n />\n <div className=\"flex items-center gap-2\">\n {showAddMemberButton && (\n <Button size=\"sm\" icon={<TbUserPlus />} onClick={onAddMember} />\n )}\n {showSettingsButton && (\n <Button\n size=\"sm\"\n icon={<TbSettings />}\n onClick={() => navigate(\"/app/account/settings/profile\")}\n />\n )}\n {showAddColumnButton && (\n <Button\n size=\"sm\"\n icon={<TbPlus />}\n onClick={handleAddNewColumn}\n >\n <span>New Board</span>\n </Button>\n )}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ScrumBoardHeader;\n"],"names":["ScrumBoardHeader","boardMembers","sprintTitle","projectTitle","showActions","showAddMemberButton","showSettingsButton","showAddColumnButton","showHeaderInfo","navigate","useNavigate","updateDialogView","openDialog","useScrumBoardStore","jsxs","jsx","UsersAvatarGroup","Button","TbUserPlus","TbSettings","TbPlus"],"mappings":";;;;;;;AAOA,MAAMA,IAAmB,CAAC;AAAA,EACxB,cAAAC,IAAe,CAAA;AAAA,EACf,aAAAC,IAAc;AAAA,EACd,cAAAC,IAAe;AAAA,EACf,aAAAC,IAAc;AAAA,EACd,qBAAAC,IAAsB;AAAA,EACtB,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC,IAAiB;AACnB,MASM;AACJ,QAAMC,IAAWC,EAAA,GAEX,EAAE,kBAAAC,GAAkB,YAAAC,EAAA,IAAeC,EAAA;AAYzC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,wEACZ,UAAA;AAAA,IAAAN,uBACE,OAAA,EACE,UAAA;AAAA,MAAAN,KAAe,gBAAAa,EAAC,QAAI,UAAAb,EAAA,CAAY;AAAA,MAChCC,KAAgB,gBAAAY,EAAC,KAAA,EAAE,WAAU,iBAAiB,UAAAZ,EAAA,CAAa;AAAA,IAAA,GAC9D;AAAA,IAGDC,uBACE,OAAA,EAAI,WAAU,mEACb,UAAA,gBAAAU,EAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,aAAa,EAAE,MAAM,GAAA;AAAA,UACrB,OAAOf;AAAA,QAAA;AAAA,MAAA;AAAA,MAET,gBAAAa,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,QAAAT,KACC,gBAAAU,EAACE,KAAO,MAAK,MAAK,MAAM,gBAAAF,EAACG,GAAA,CAAA,CAAW,GAAI,SA7BlC,MAAM;AACxB,UAAAP,EAAiB,YAAY,GAC7BC,EAAA;AAAA,QACF,EA0B+D,CAAa;AAAA,QAE/DN,KACC,gBAAAS;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,wBAAOE,GAAA,EAAW;AAAA,YAClB,SAAS,MAAMV,EAAS,+BAA+B;AAAA,UAAA;AAAA,QAAA;AAAA,QAG1DF,KACC,gBAAAQ;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,wBAAOG,GAAA,EAAO;AAAA,YACd,SArCW,MAAM;AAC/B,cAAAT,EAAiB,YAAY,GAC7BC,EAAA;AAAA,YACF;AAAA,YAoCgB,UAAA,gBAAAG,EAAC,UAAK,UAAA,YAAA,CAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TicketContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/TicketContent.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from \"react\";\nimport { useScrumBoardStore } from \"../store/scrumBoardStore\";\nimport Spinner from \"@/components/ui/Spinner\";\nimport Avatar from \"@/components/ui/Avatar\";\nimport Tooltip from \"@/components/ui/Tooltip\";\nimport Card from \"@/components/ui/Card\";\nimport Button from \"@/components/ui/Button\";\nimport Input from \"@/components/ui/Input\";\nimport Dropdown from \"@/components/ui/Dropdown\";\nimport CloseButton from \"@/components/ui/CloseButton\";\nimport Tag from \"@/components/ui/Tag\";\nimport Tabs from \"@/components/ui/Tabs\";\nimport Badge from \"@/components/ui/Badge\";\nimport ScrollBar from \"@/components/ui/ScrollBar\";\nimport NoMedia from \"@/assets/svg/NoMedia\";\nimport UsersAvatarGroup from \"@/components/shared/UsersAvatarGroup\";\nimport dayjs from \"dayjs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { TbPlus, TbDownload, TbTrash } from \"react-icons/tb\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { createUID, taskLabelColors, labelList } from \"../utils\";\nimport { Ticket, Comment, Member } from \"../types\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface TransformedComment extends Omit<Comment, \"date\"> {\n date: Date;\n}\n\nconst { TabNav, TabList, TabContent } = Tabs;\n\ntype TicketStatus = \"NOVO\" | \"CONCLUIDO\" | \"CANCELADO\";\ntype DialogTipo = \"transferir\" | \"aceitar\" | \"concluir\" | \"cancelar\";\n\nconst createCommentObject = (message: string): TransformedComment => {\n return {\n id: createUID(10),\n name: \"Angelina Gotelli\",\n src: \"/img/avatars/thumb-1.jpg\",\n message: message,\n date: new Date(),\n };\n};\n\nconst AddMoreMember = () => {\n return (\n <Tooltip title=\"Add More\" wrapperClass=\"flex\">\n <Button\n icon={<TbPlus />}\n customColorClass={() =>\n \"border-2 border-dashed hover:ring-0 h-[30px] w-[30px] text-sm\"\n }\n size=\"sm\"\n shape=\"circle\"\n />\n </Tooltip>\n );\n};\n\ninterface TicketContentProps {\n onTicketClose: () => void;\n showAssignedTo?: boolean;\n showLabels?: boolean;\n showDueDate?: boolean;\n showDescription?: boolean;\n showUserInitiator?: boolean;\n showUserResponder?: boolean;\n showStatus?: boolean;\n showActions?: boolean;\n showActionsTicket?: boolean;\n showCloseTicket?: boolean;\n showChangeButton?: boolean;\n descriptionTitle?: string;\n dueDateTitle?: string;\n userInitiatorTitle?: string;\n userResponderTitle?: string;\n statusTitle?: string;\n onOpenDialog?: (tipo: DialogTipo, id: number) => void;\n goView?: (id: number) => void;\n columns: Record<string, Ticket[]>;\n renderActions?: (ticket: Ticket) => React.ReactNode;\n}\n\nconst TicketContent = ({\n onTicketClose,\n showAssignedTo = true,\n showLabels = true,\n showDueDate = true,\n showDescription = true,\n showUserInitiator = true,\n showUserResponder = true,\n showStatus = true,\n showActionsTicket = true,\n showCloseTicket = true,\n showChangeButton = true,\n descriptionTitle = \"Descrição\",\n dueDateTitle = \"Data\",\n userInitiatorTitle = \"Participante 1\",\n userResponderTitle = \"Participante 2\",\n statusTitle = \"Status\",\n onOpenDialog,\n goView,\n columns,\n renderActions,\n}: TicketContentProps) => {\n const navigate = useNavigate();\n const { updateColumns, ticketId, boardMembers } = useScrumBoardStore();\n\n const [ticketData, setTicketData] = useState<\n Partial<Omit<Ticket, \"comments\"> & { comments: TransformedComment[] }>\n >({});\n const [loading, setLoading] = useState(false);\n\n const commentInput = useRef<HTMLInputElement>(null);\n\n const getTicketDetail = async () => {\n setLoading(true);\n let ticketDetail = {};\n for (const key in columns) {\n if (Object.hasOwnProperty.call(columns, key)) {\n const board = columns[key];\n const result = board.find((ticket) => ticket.id === ticketId);\n if (result) {\n ticketDetail = result;\n }\n }\n }\n setTicketData(ticketDetail);\n setLoading(false);\n };\n\n useEffect(() => {\n if (isEmpty(ticketData)) {\n getTicketDetail();\n } else {\n onUpdateColumn();\n }\n }, [ticketData, ticketData]);\n\n const submitComment = () => {\n if (commentInput.current) {\n const message = commentInput.current.value;\n const comment = createCommentObject(message);\n const comments = cloneDeep(ticketData.comments);\n comments?.push(comment);\n setTicketData((prevState) => ({\n ...prevState,\n ...{ comments: comments },\n }));\n commentInput.current.value = \"\";\n }\n };\n\n const handleTicketClose = () => {\n onTicketClose?.();\n };\n\n const onUpdateColumn = () => {\n const data = cloneDeep(columns);\n for (const key in data) {\n if (Object.hasOwnProperty.call(data, key)) {\n const board = data[key];\n board.forEach((ticket, index) => {\n if (ticket.id === ticketId) {\n data[key][index] = ticketData as Ticket;\n }\n });\n }\n }\n updateColumns(data);\n };\n\n const onAddMemberClick = (id: string) => {\n const newMember = boardMembers.find((member) => member.id === id);\n const members = cloneDeep(ticketData.members);\n members?.push(newMember as Member);\n setTicketData((prevState) => ({\n ...prevState,\n ...{ members: members },\n }));\n };\n\n const onAddLabelClick = (label: string) => {\n const labels = cloneDeep(ticketData.labels);\n labels?.push(label);\n setTicketData((prevState) => ({ ...prevState, ...{ labels: labels } }));\n };\n\n const statusColors: Record<TicketStatus, string> = {\n NOVO: \"dark:bg-green-200 dark:text-gray-900\",\n CONCLUIDO: \"dark:bg-green-200 dark:text-gray-900\",\n CANCELADO: \"bg-rose-200 dark:bg-rose-200 dark:text-gray-900\",\n };\n\n const handleNavigate = (path: string) => {\n navigate(path);\n };\n\n return (\n <>\n {loading ? (\n <div className=\"flex justify-center items-center min-h-[300px]\">\n <Spinner size={40} />\n </div>\n ) : (\n <>\n <div className=\"flex gap-2 mb-10\">\n <div className=\"w-full\">\n <div className=\"flex justify-between\">\n <h4>{ticketData.name}</h4>\n <div>\n <CloseButton onClick={handleTicketClose} />\n </div>\n </div>\n </div>\n </div>\n <ScrollBar className=\"max-h-[700px] overflow-y-auto\">\n <div className=\"flex flex-col gap-6\">\n {showAssignedTo && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n Assigned to:\n </div>\n <div className=\"flex items-center gap-1\">\n <UsersAvatarGroup\n className=\"gap-1\"\n avatarProps={{\n className: \"cursor-pointer\",\n }}\n avatarGroupProps={{ maxCount: 4 }}\n chained={false}\n users={ticketData.members}\n />\n {boardMembers.length !== ticketData.members?.length && (\n <Dropdown renderTitle={<AddMoreMember />}>\n {boardMembers.map(\n (member) =>\n !ticketData.members?.some(\n (m) => m.id === member.id\n ) && (\n <Dropdown.Item\n key={member.name}\n eventKey={member.id}\n onSelect={onAddMemberClick}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center\">\n <Avatar\n shape=\"circle\"\n size={22}\n src={member.img}\n />\n <span className=\"ml-2 rtl:mr-2\">\n {member.name}\n </span>\n </div>\n </div>\n </Dropdown.Item>\n )\n )}\n </Dropdown>\n )}\n </div>\n </div>\n )}\n {showLabels && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n Label:\n </div>\n <div className=\"flex items-center gap-1\">\n {ticketData.labels?.map((label) => (\n <Tag key={label} className={taskLabelColors[label]}>\n {label}\n </Tag>\n ))}\n <Dropdown\n renderTitle={\n <Tag\n className=\"border-dashed cursor-pointer border-2 bg-transparent dark:bg-transparent border-gray-300 dark:border-gray-500 hover:border-primary hover:text-primary\"\n prefix={<TbPlus />}\n >\n Add Label\n </Tag>\n }\n placement=\"bottom-end\"\n >\n {labelList.map(\n (label) =>\n !ticketData.labels?.includes(label) && (\n <Dropdown.Item\n key={label}\n eventKey={label}\n onSelect={onAddLabelClick}\n >\n <div className=\"flex items-center\">\n <Badge\n innerClass={`${taskLabelColors[label]}`}\n />\n <span className=\"ml-2 rtl:mr-2\">{label}</span>\n </div>\n </Dropdown.Item>\n )\n )}\n </Dropdown>\n </div>\n </div>\n )}\n {showUserInitiator && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {userInitiatorTitle}\n </div>\n <span className=\"font-semibold\">\n {ticketData.userInitiator}\n </span>\n </div>\n )}\n {showUserResponder && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {userResponderTitle}\n </div>\n <span className=\"font-semibold\">\n {ticketData.userResponder}\n </span>\n </div>\n )}\n {showDueDate && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {dueDateTitle}\n </div>\n <span className=\"font-semibold\">{ticketData.dueDate}</span>\n </div>\n )}\n {showDescription && (\n <div className=\"flex\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {descriptionTitle}\n </div>\n <div className=\"flex\">\n <p>{ticketData.description}</p>\n </div>\n </div>\n )}\n {showStatus && (\n <div className=\"flex\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {statusTitle}\n </div>\n <div className=\"flex\">\n <Tag\n className={`${statusColors?.[ticketData.status as TicketStatus] ?? \"default-color\"}`}\n >\n {ticketData.status}\n </Tag>\n </div>\n </div>\n )}\n </div>\n {ticketData.attachments && ticketData.attachments.length > 0 && (\n <Tabs className=\"mt-6\" defaultValue=\"comments\">\n <TabList>\n <TabNav value=\"comments\">Comments</TabNav>\n <TabNav value=\"attachments\">Attachments</TabNav>\n </TabList>\n <div className=\"p-4\">\n <TabContent value=\"comments\">\n <div className=\"w-full\">\n {ticketData.comments &&\n ticketData?.comments?.length > 0 && (\n <>\n {ticketData.comments.map((comment) => (\n <div key={comment.id} className=\"mb-3 flex\">\n <div className=\"mt-2\">\n <Avatar shape=\"circle\" src={comment.src} />\n </div>\n <div className=\"ml-2 rtl:mr-2 p-3 rounded w-100\">\n <div className=\"flex items-center mb-2\">\n <span className=\"font-semibold text-gray-900 dark:text-gray-100\">\n {comment.name}\n </span>\n <span className=\"mx-1\"> | </span>\n <span>\n {dayjs(comment.date).format(\n \"DD MMMM YYYY\"\n )}\n </span>\n </div>\n <p className=\"mb-0\">{comment.message}</p>\n </div>\n </div>\n ))}\n </>\n )}\n <div className=\"mb-3 flex gap-2\">\n <Avatar shape=\"circle\" src=\"/img/avatars/thumb-1.jpg\" />\n <div className=\"w-full relative\">\n <Input\n ref={commentInput}\n textArea\n placeholder=\"Write comment\"\n />\n <div className=\"absolute bottom-4 right-4\">\n <div\n className=\"cursor-pointer font-semibold text-primary \"\n onClick={() => submitComment()}\n >\n Send\n </div>\n </div>\n </div>\n </div>\n </div>\n </TabContent>\n <TabContent value=\"attachments\">\n {ticketData.attachments &&\n ticketData?.attachments?.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 mt-2\">\n {ticketData.attachments.map((file) => (\n <Card\n key={file.id}\n bodyClass=\"px-3 pt-3 pb-1\"\n className=\"bg-gray-100 dark:bg-gray-700 shadow-none\"\n bordered={false}\n >\n <img\n className=\"max-w-full rounded-lg\"\n alt={file.name}\n src={file.src}\n />\n <div className=\"mt-1 flex justify-between items-center\">\n <div>\n <div className=\"font-semibold text-gray-900 dark:text-gray-100\">\n {file.name}\n </div>\n <span className=\"text-xs\">{file.size}</span>\n </div>\n <div className=\"flex items-center\">\n <Tooltip title=\"Download\">\n <Button\n variant=\"plain\"\n size=\"xs\"\n icon={<TbDownload />}\n />\n </Tooltip>\n <Tooltip title=\"Delete\">\n <Button\n variant=\"plain\"\n size=\"xs\"\n icon={<TbTrash />}\n />\n </Tooltip>\n </div>\n </div>\n </Card>\n ))}\n </div>\n ) : (\n <div className=\"flex flex-col gap-2 items-center justify-center\">\n <NoMedia height={150} width={150} />\n <p className=\"font-semibold\">No attachments</p>\n </div>\n )}\n </TabContent>\n </div>\n </Tabs>\n )}\n </ScrollBar>\n {showActionsTicket && (\n <div className=\"text-left mt-4\">\n {showCloseTicket && (\n <div className=\"inline-flex items-center\">\n <Button\n className=\"mr-2 rtl:ml-2\"\n size=\"sm\"\n variant=\"plain\"\n onClick={() => handleTicketClose()}\n >\n Cancel\n </Button>\n </div>\n )}\n {showChangeButton && (\n <Button\n variant=\"solid\"\n size=\"sm\"\n onClick={() => handleTicketClose()}\n >\n Change\n </Button>\n )}\n {renderActions ? renderActions(ticketData as Ticket) : null}\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default TicketContent;\n"],"names":["TabNav","TabList","TabContent","Tabs","createCommentObject","message","createUID","AddMoreMember","jsx","Tooltip","Button","TbPlus","TicketContent","onTicketClose","showAssignedTo","showLabels","showDueDate","showDescription","showUserInitiator","showUserResponder","showStatus","showActionsTicket","showCloseTicket","showChangeButton","descriptionTitle","dueDateTitle","userInitiatorTitle","userResponderTitle","statusTitle","onOpenDialog","goView","columns","renderActions","navigate","useNavigate","updateColumns","ticketId","boardMembers","useScrumBoardStore","ticketData","setTicketData","useState","loading","setLoading","commentInput","useRef","getTicketDetail","ticketDetail","key","result","ticket","useEffect","isEmpty","onUpdateColumn","submitComment","comment","comments","cloneDeep","prevState","handleTicketClose","data","index","onAddMemberClick","id","newMember","member","members","onAddLabelClick","label","labels","statusColors","handleNavigate","path","Fragment","Spinner","jsxs","CloseButton","ScrollBar","UsersAvatarGroup","_a","Dropdown","m","Avatar","_b","Tag","taskLabelColors","labelList","Badge","_c","dayjs","Input","_d","file","Card","TbDownload","TbTrash","NoMedia"],"mappings":"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"}
1
+ {"version":3,"file":"TicketContent.js","sources":["../../../../../../../lib/@ecme/views/concepts/projects/ScrumBoard/components/TicketContent.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from \"react\";\nimport { useScrumBoardStore } from \"../store/scrumBoardStore\";\nimport Spinner from \"@/components/ui/Spinner\";\nimport Avatar from \"@/components/ui/Avatar\";\nimport Tooltip from \"@/components/ui/Tooltip\";\nimport Card from \"@/components/ui/Card\";\nimport Button from \"@/components/ui/Button\";\nimport Input from \"@/components/ui/Input\";\nimport Dropdown from \"@/components/ui/Dropdown\";\nimport CloseButton from \"@/components/ui/CloseButton\";\nimport Tag from \"@/components/ui/Tag\";\nimport Tabs from \"@/components/ui/Tabs\";\nimport Badge from \"@/components/ui/Badge\";\nimport ScrollBar from \"@/components/ui/ScrollBar\";\nimport NoMedia from \"@/assets/svg/NoMedia\";\nimport UsersAvatarGroup from \"@/components/shared/UsersAvatarGroup\";\nimport dayjs from \"dayjs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { TbPlus, TbDownload, TbTrash } from \"react-icons/tb\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { createUID, taskLabelColors, labelList } from \"../utils\";\nimport { Ticket, Comment, Member } from \"../types\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface TransformedComment extends Omit<Comment, \"date\"> {\n date: Date;\n}\n\nconst { TabNav, TabList, TabContent } = Tabs;\n\ntype TicketStatus = \"NOVO\" | \"CONCLUIDO\" | \"CANCELADO\";\ntype DialogTipo = \"transferir\" | \"aceitar\" | \"concluir\" | \"cancelar\";\n\nconst createCommentObject = (message: string): TransformedComment => {\n return {\n id: createUID(10),\n name: \"Angelina Gotelli\",\n src: \"/img/avatars/thumb-1.jpg\",\n message: message,\n date: new Date(),\n };\n};\n\nconst AddMoreMember = () => {\n return (\n <Tooltip title=\"Add More\" wrapperClass=\"flex\">\n <Button\n icon={<TbPlus />}\n customColorClass={() =>\n \"border-2 border-dashed hover:ring-0 h-[30px] w-[30px] text-sm\"\n }\n size=\"sm\"\n shape=\"circle\"\n />\n </Tooltip>\n );\n};\n\ninterface TicketContentProps {\n onTicketClose: () => void;\n showAssignedTo?: boolean;\n showLabels?: boolean;\n showDueDate?: boolean;\n showDescription?: boolean;\n showUserInitiator?: boolean;\n showUserResponder?: boolean;\n showStatus?: boolean;\n showActions?: boolean;\n showActionsTicket?: boolean;\n showCloseTicket?: boolean;\n showChangeButton?: boolean;\n descriptionTitle?: string;\n dueDateTitle?: string;\n userInitiatorTitle?: string;\n userResponderTitle?: string;\n statusTitle?: string;\n onOpenDialog?: (tipo: DialogTipo, id: number) => void;\n goView?: (id: number) => void;\n columns: Record<string, Ticket[]>;\n renderActions?: (ticket: Ticket) => React.ReactNode;\n}\n\nconst TicketContent = ({\n onTicketClose,\n showAssignedTo = true,\n showLabels = true,\n showDueDate = true,\n showDescription = true,\n showUserInitiator = true,\n showUserResponder = true,\n showStatus = true,\n showActionsTicket = true,\n showCloseTicket = true,\n showChangeButton = true,\n descriptionTitle = \"Descrição\",\n dueDateTitle = \"Data\",\n userInitiatorTitle = \"Participante 1\",\n userResponderTitle = \"Participante 2\",\n statusTitle = \"Status\",\n onOpenDialog,\n goView,\n columns,\n renderActions,\n}: TicketContentProps) => {\n const navigate = useNavigate();\n const { updateColumns, ticketId, boardMembers } = useScrumBoardStore();\n\n const [ticketData, setTicketData] = useState<\n Partial<Omit<Ticket, \"comments\"> & { comments: TransformedComment[] }>\n >({});\n const [loading, setLoading] = useState(false);\n\n const commentInput = useRef<HTMLInputElement>(null);\n\n const getTicketDetail = async () => {\n setLoading(true);\n let ticketDetail = {};\n for (const key in columns) {\n if (Object.hasOwnProperty.call(columns, key)) {\n const board = columns[key];\n const result = board.find((ticket) => ticket.id === ticketId);\n if (result) {\n ticketDetail = result;\n }\n }\n }\n setTicketData(ticketDetail);\n setLoading(false);\n };\n\n useEffect(() => {\n if (isEmpty(ticketData)) {\n getTicketDetail();\n } else {\n onUpdateColumn();\n }\n }, [ticketData, ticketData]);\n\n const submitComment = () => {\n if (commentInput.current) {\n const message = commentInput.current.value;\n const comment = createCommentObject(message);\n const comments = cloneDeep(ticketData.comments);\n comments?.push(comment);\n setTicketData((prevState) => ({\n ...prevState,\n ...{ comments: comments },\n }));\n commentInput.current.value = \"\";\n }\n };\n\n const handleTicketClose = () => {\n onTicketClose?.();\n };\n\n const onUpdateColumn = () => {\n const data = cloneDeep(columns);\n for (const key in data) {\n if (Object.hasOwnProperty.call(data, key)) {\n const board = data[key];\n board.forEach((ticket, index) => {\n if (ticket.id === ticketId) {\n data[key][index] = ticketData as Ticket;\n }\n });\n }\n }\n updateColumns(data);\n };\n\n const onAddMemberClick = (id: string) => {\n const newMember = boardMembers.find((member) => member.id === id);\n const members = cloneDeep(ticketData.members);\n members?.push(newMember as Member);\n setTicketData((prevState) => ({\n ...prevState,\n ...{ members: members },\n }));\n };\n\n const onAddLabelClick = (label: string) => {\n const labels = cloneDeep(ticketData.labels);\n labels?.push(label);\n setTicketData((prevState) => ({ ...prevState, ...{ labels: labels } }));\n };\n\n const statusColors: Record<TicketStatus, string> = {\n NOVO: \"dark:bg-green-200 dark:text-gray-900\",\n CONCLUIDO: \"dark:bg-green-200 dark:text-gray-900\",\n CANCELADO: \"bg-rose-200 dark:bg-rose-200 dark:text-gray-900\",\n };\n\n const handleNavigate = (path: string) => {\n navigate(path);\n };\n\n return (\n <>\n {loading ? (\n <div className=\"flex justify-center items-center min-h-[300px]\">\n <Spinner size={40} />\n </div>\n ) : (\n <>\n <div className=\"flex gap-2 mb-10\">\n <div className=\"w-full\">\n <div className=\"flex justify-between\">\n <h4>{ticketData.name}</h4>\n <div>\n <CloseButton onClick={handleTicketClose} />\n </div>\n </div>\n </div>\n </div>\n <ScrollBar className=\"max-h-[700px] overflow-y-auto\">\n <div className=\"flex flex-col gap-6\">\n {showAssignedTo && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n Assigned to:\n </div>\n <div className=\"flex items-center gap-1\">\n <UsersAvatarGroup\n className=\"gap-1\"\n avatarProps={{\n className: \"cursor-pointer\",\n }}\n avatarGroupProps={{ maxCount: 4 }}\n chained={false}\n users={ticketData.members}\n />\n {boardMembers.length !== ticketData.members?.length && (\n <Dropdown renderTitle={<AddMoreMember />}>\n {boardMembers.map(\n (member) =>\n !ticketData.members?.some(\n (m) => m.id === member.id\n ) && (\n <Dropdown.Item\n key={member.name}\n eventKey={member.id}\n onSelect={onAddMemberClick}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center\">\n <Avatar\n shape=\"circle\"\n size={22}\n src={member.img}\n />\n <span className=\"ml-2 rtl:mr-2\">\n {member.name}\n </span>\n </div>\n </div>\n </Dropdown.Item>\n )\n )}\n </Dropdown>\n )}\n </div>\n </div>\n )}\n {showLabels && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n Label:\n </div>\n <div className=\"flex items-center gap-1\">\n {ticketData.labels?.map((label) => (\n <Tag key={label} className={taskLabelColors[label]}>\n {label}\n </Tag>\n ))}\n <Dropdown\n renderTitle={\n <Tag\n className=\"border-dashed cursor-pointer border-2 bg-transparent dark:bg-transparent border-gray-300 dark:border-gray-500 hover:border-primary hover:text-primary\"\n prefix={<TbPlus />}\n >\n Add Label\n </Tag>\n }\n placement=\"bottom-end\"\n >\n {labelList.map(\n (label) =>\n !ticketData.labels?.includes(label) && (\n <Dropdown.Item\n key={label}\n eventKey={label}\n onSelect={onAddLabelClick}\n >\n <div className=\"flex items-center\">\n <Badge\n innerClass={`${taskLabelColors[label]}`}\n />\n <span className=\"ml-2 rtl:mr-2\">{label}</span>\n </div>\n </Dropdown.Item>\n )\n )}\n </Dropdown>\n </div>\n </div>\n )}\n {showUserInitiator && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {userInitiatorTitle}\n </div>\n <span className=\"font-semibold\">\n {ticketData.userInitiator}\n </span>\n </div>\n )}\n {showUserResponder && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {userResponderTitle}\n </div>\n <span className=\"font-semibold\">\n {ticketData.userResponder}\n </span>\n </div>\n )}\n {showDueDate && (\n <div className=\"flex items-center min-h-[30px]\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {dueDateTitle}\n </div>\n <span className=\"font-semibold\">{ticketData.dueDate}</span>\n </div>\n )}\n {showDescription && (\n <div className=\"flex\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {descriptionTitle}\n </div>\n <div className=\"flex\">\n <p>{ticketData.description}</p>\n </div>\n </div>\n )}\n {showStatus && (\n <div className=\"flex\">\n <div className=\"font-semibold text-gray-900 dark:text-gray-100 min-w-[150px]\">\n {statusTitle}\n </div>\n <div className=\"flex\">\n <Tag\n className={`${statusColors?.[ticketData.status as TicketStatus] ?? \"default-color\"}`}\n >\n {ticketData.status}\n </Tag>\n </div>\n </div>\n )}\n </div>\n {ticketData.attachments && ticketData.attachments.length > 0 && (\n <Tabs className=\"mt-6\" defaultValue=\"comments\">\n <TabList>\n <TabNav value=\"comments\">Comments</TabNav>\n <TabNav value=\"attachments\">Attachments</TabNav>\n </TabList>\n <div className=\"p-4\">\n <TabContent value=\"comments\">\n <div className=\"w-full\">\n {ticketData.comments &&\n ticketData?.comments?.length > 0 && (\n <>\n {ticketData.comments.map((comment) => (\n <div key={comment.id} className=\"mb-3 flex\">\n <div className=\"mt-2\">\n <Avatar shape=\"circle\" src={comment.src} />\n </div>\n <div className=\"ml-2 rtl:mr-2 p-3 rounded w-100\">\n <div className=\"flex items-center mb-2\">\n <span className=\"font-semibold text-gray-900 dark:text-gray-100\">\n {comment.name}\n </span>\n <span className=\"mx-1\"> | </span>\n <span>\n {dayjs(comment.date).format(\n \"DD MMMM YYYY\"\n )}\n </span>\n </div>\n <p className=\"mb-0\">{comment.message}</p>\n </div>\n </div>\n ))}\n </>\n )}\n <div className=\"mb-3 flex gap-2\">\n <Avatar shape=\"circle\" src=\"/img/avatars/thumb-1.jpg\" />\n <div className=\"w-full relative\">\n <Input\n ref={commentInput}\n textArea\n placeholder=\"Write comment\"\n />\n <div className=\"absolute bottom-4 right-4\">\n <div\n className=\"cursor-pointer font-semibold text-primary \"\n onClick={() => submitComment()}\n >\n Send\n </div>\n </div>\n </div>\n </div>\n </div>\n </TabContent>\n <TabContent value=\"attachments\">\n {ticketData.attachments &&\n ticketData?.attachments?.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 mt-2\">\n {ticketData.attachments.map((file) => (\n <Card\n key={file.id}\n bodyClass=\"px-3 pt-3 pb-1\"\n className=\"bg-gray-100 dark:bg-gray-700 shadow-none\"\n bordered={false}\n >\n <img\n className=\"max-w-full rounded-lg\"\n alt={file.name}\n src={file.src}\n />\n <div className=\"mt-1 flex justify-between items-center\">\n <div>\n <div className=\"font-semibold text-gray-900 dark:text-gray-100\">\n {file.name}\n </div>\n <span className=\"text-xs\">{file.size}</span>\n </div>\n <div className=\"flex items-center\">\n <Tooltip title=\"Download\">\n <Button\n variant=\"plain\"\n size=\"xs\"\n icon={<TbDownload />}\n />\n </Tooltip>\n <Tooltip title=\"Delete\">\n <Button\n variant=\"plain\"\n size=\"xs\"\n icon={<TbTrash />}\n />\n </Tooltip>\n </div>\n </div>\n </Card>\n ))}\n </div>\n ) : (\n <div className=\"flex flex-col gap-2 items-center justify-center\">\n <NoMedia height={150} width={150} />\n <p className=\"font-semibold\">No attachments</p>\n </div>\n )}\n </TabContent>\n </div>\n </Tabs>\n )}\n </ScrollBar>\n {showActionsTicket && (\n <div className=\"text-left mt-4\">\n {showCloseTicket && (\n <div className=\"inline-flex items-center\">\n <Button\n className=\"mr-2 rtl:ml-2\"\n size=\"sm\"\n variant=\"plain\"\n onClick={() => handleTicketClose()}\n >\n Cancel\n </Button>\n </div>\n )}\n {showChangeButton && (\n <Button\n variant=\"solid\"\n size=\"sm\"\n onClick={() => handleTicketClose()}\n >\n Change\n </Button>\n )}\n {renderActions ? renderActions(ticketData as Ticket) : null}\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default TicketContent;\n"],"names":["TabNav","TabList","TabContent","Tabs","createCommentObject","message","createUID","AddMoreMember","jsx","Tooltip","Button","TbPlus","TicketContent","onTicketClose","showAssignedTo","showLabels","showDueDate","showDescription","showUserInitiator","showUserResponder","showStatus","showActionsTicket","showCloseTicket","showChangeButton","descriptionTitle","dueDateTitle","userInitiatorTitle","userResponderTitle","statusTitle","onOpenDialog","goView","columns","renderActions","navigate","useNavigate","updateColumns","ticketId","boardMembers","useScrumBoardStore","ticketData","setTicketData","useState","loading","setLoading","commentInput","useRef","getTicketDetail","ticketDetail","key","result","ticket","useEffect","isEmpty","onUpdateColumn","submitComment","comment","comments","cloneDeep","prevState","handleTicketClose","data","index","onAddMemberClick","id","newMember","member","members","onAddLabelClick","label","labels","statusColors","handleNavigate","path","Fragment","Spinner","jsxs","CloseButton","ScrollBar","UsersAvatarGroup","_a","Dropdown","m","Avatar","_b","Tag","taskLabelColors","labelList","Badge","_c","dayjs","Input","_d","file","Card","TbDownload","TbTrash","NoMedia"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tasks.js","sources":["../../../../../../lib/@ecme/views/concepts/projects/Tasks/Tasks.tsx"],"sourcesContent":["import useSWR from 'swr'\nimport AdaptiveCard from '@/components/shared/AdaptiveCard'\nimport { useTasksStore } from './store/tasksStore'\nimport {\n apiGetProjectTasks,\n apiGetProjectMembers,\n} from '@/services/ProjectService'\nimport TasksHeader from './components/TasksHeader'\nimport TaskList from './components/TaskList'\nimport type { GetTasksResponse, GetProjectMembersResponse } from './types'\n\nconst Tasks = () => {\n const {\n updateOrdered,\n updateGroups,\n updateBoardMembers,\n updateAllMembers,\n } = useTasksStore()\n\n useSWR(\n ['/api/projects/tasks'],\n () => apiGetProjectTasks<GetTasksResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateOrdered(Object.keys(data))\n updateGroups(data)\n },\n },\n )\n\n useSWR(\n ['/api/projects/task/members'],\n () => apiGetProjectMembers<GetProjectMembersResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateBoardMembers(data.participantMembers)\n updateAllMembers(data.allMembers)\n },\n },\n )\n\n return (\n <AdaptiveCard>\n <TasksHeader />\n <div className=\"my-8\">\n <TaskList />\n </div>\n </AdaptiveCard>\n )\n}\n\nexport default Tasks\n"],"names":["Tasks","updateOrdered","updateGroups","updateBoardMembers","updateAllMembers","useTasksStore","useSWR","apiGetProjectTasks","data","apiGetProjectMembers","AdaptiveCard","jsx","TasksHeader","TaskList"],"mappings":";;;;;;;AAWA,MAAMA,IAAQ,MAAM;AAChB,QAAM;AAAA,IACF,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACAC,EAAA;AAEJ,SAAAC;AAAA,IACI,CAAC,qBAAqB;AAAA,IACtB,MAAMC,EAAA;AAAA,IACN;AAAA,MACI,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,WAAW,CAACC,MAAS;AACjB,QAAAP,EAAc,OAAO,KAAKO,CAAI,CAAC,GAC/BN,EAAaM,CAAI;AAAA,MAAA;AAAA,IACrB;AAAA,EACJ,GAGJF;AAAA,IACI,CAAC,4BAA4B;AAAA,IAC7B,MAAMG,EAAA;AAAA,IACN;AAAA,MACI,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,WAAW,CAACD,MAAS;AACjB,QAAAL,EAAmBK,EAAK,kBAAkB,GAC1CJ,EAAiBI,EAAK,UAAU;AAAA,MAAA;AAAA,IACpC;AAAA,EACJ,qBAICE,GAAA,EACG,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAY;AAAA,sBACZ,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAD,EAACE,KAAS,EAAA,CACd;AAAA,EAAA,GACJ;AAER;"}
1
+ {"version":3,"file":"Tasks.js","sources":["../../../../../../lib/@ecme/views/concepts/projects/Tasks/Tasks.tsx"],"sourcesContent":["import useSWR from 'swr'\nimport AdaptiveCard from '@/components/shared/AdaptiveCard'\nimport { useTasksStore } from './store/tasksStore'\nimport {\n apiGetProjectTasks,\n apiGetProjectMembers,\n} from '@/services/ProjectService'\nimport TasksHeader from './components/TasksHeader'\nimport TaskList from './components/TaskList'\nimport type { GetTasksResponse, GetProjectMembersResponse } from './types'\n\nconst Tasks = () => {\n const {\n updateOrdered,\n updateGroups,\n updateBoardMembers,\n updateAllMembers,\n } = useTasksStore()\n\n useSWR(\n ['/api/projects/tasks'],\n () => apiGetProjectTasks<GetTasksResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateOrdered(Object.keys(data))\n updateGroups(data)\n },\n },\n )\n\n useSWR(\n ['/api/projects/task/members'],\n () => apiGetProjectMembers<GetProjectMembersResponse>(),\n {\n revalidateOnFocus: false,\n revalidateIfStale: false,\n revalidateOnReconnect: false,\n onSuccess: (data) => {\n updateBoardMembers(data.participantMembers)\n updateAllMembers(data.allMembers)\n },\n },\n )\n\n return (\n <AdaptiveCard>\n <TasksHeader />\n <div className=\"my-8\">\n <TaskList />\n </div>\n </AdaptiveCard>\n )\n}\n\nexport default Tasks\n"],"names":["Tasks","updateOrdered","updateGroups","updateBoardMembers","updateAllMembers","useTasksStore","useSWR","apiGetProjectTasks","data","apiGetProjectMembers","AdaptiveCard","jsx","TasksHeader","TaskList"],"mappings":";;;;;;;AAWA,MAAMA,IAAQ,MAAM;AAChB,QAAM;AAAA,IACF,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACAC,EAAA;AAEJ,SAAAC;AAAA,IACI,CAAC,qBAAqB;AAAA,IACtB,MAAMC,EAAA;AAAA,IACN;AAAA,MACI,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,WAAW,CAACC,MAAS;AACjB,QAAAP,EAAc,OAAO,KAAKO,CAAI,CAAC,GAC/BN,EAAaM,CAAI;AAAA,MACrB;AAAA,IAAA;AAAA,EACJ,GAGJF;AAAA,IACI,CAAC,4BAA4B;AAAA,IAC7B,MAAMG,EAAA;AAAA,IACN;AAAA,MACI,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,WAAW,CAACD,MAAS;AACjB,QAAAL,EAAmBK,EAAK,kBAAkB,GAC1CJ,EAAiBI,EAAK,UAAU;AAAA,MACpC;AAAA,IAAA;AAAA,EACJ,qBAICE,GAAA,EACG,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAY;AAAA,sBACZ,OAAA,EAAI,WAAU,QACX,UAAA,gBAAAD,EAACE,KAAS,EAAA,CACd;AAAA,EAAA,GACJ;AAER;"}