@selfcommunity/react-ui 0.11.0-alpha.60 → 0.11.0-alpha.61

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 (571) hide show
  1. package/lib/cjs/assets/courses/clapping.d.ts +1 -0
  2. package/lib/cjs/assets/courses/clapping.js +4 -0
  3. package/lib/cjs/components/BottomNavigation/BottomNavigation.js +17 -2
  4. package/lib/cjs/components/CategoryAutocomplete/CategoryAutocomplete.js +6 -8
  5. package/lib/cjs/components/CommentObject/CommentObject.d.ts +5 -0
  6. package/lib/cjs/components/CommentObject/CommentObject.js +2 -2
  7. package/lib/cjs/components/CommentObjectReply/CommentObjectReply.d.ts +24 -2
  8. package/lib/cjs/components/CommentObjectReply/CommentObjectReply.js +17 -4
  9. package/lib/cjs/components/Composer/Content/ContentLesson/ContentLesson.d.ts +38 -0
  10. package/lib/cjs/components/Composer/Content/ContentLesson/ContentLesson.js +67 -0
  11. package/lib/cjs/components/Composer/Content/ContentLesson/index.d.ts +3 -0
  12. package/lib/cjs/components/Composer/Content/ContentLesson/index.js +5 -0
  13. package/lib/cjs/components/Composer/Layer/AudienceLayer/AudienceLayer.js +2 -2
  14. package/lib/cjs/components/ComposerIconButton/ComposerIconButton.d.ts +9 -3
  15. package/lib/cjs/components/ComposerIconButton/ComposerIconButton.js +38 -9
  16. package/lib/cjs/components/Course/Course.d.ts +92 -0
  17. package/lib/cjs/components/Course/Course.js +185 -0
  18. package/lib/cjs/components/Course/CreatePlaceholder.d.ts +39 -0
  19. package/lib/cjs/components/Course/CreatePlaceholder.js +59 -0
  20. package/lib/cjs/components/Course/Skeleton.d.ts +51 -0
  21. package/lib/cjs/components/Course/Skeleton.js +77 -0
  22. package/lib/cjs/components/Course/constants.d.ts +1 -0
  23. package/lib/cjs/components/Course/constants.js +4 -0
  24. package/lib/cjs/components/Course/index.d.ts +4 -0
  25. package/lib/cjs/components/Course/index.js +8 -0
  26. package/lib/cjs/components/CourseCompletedDialog/CourseCompletedDialog.d.ts +9 -0
  27. package/lib/cjs/components/CourseCompletedDialog/CourseCompletedDialog.js +40 -0
  28. package/lib/cjs/components/CourseCompletedDialog/index.d.ts +3 -0
  29. package/lib/cjs/components/CourseCompletedDialog/index.js +5 -0
  30. package/lib/cjs/components/CourseContentMenu/CourseContentMenu.d.ts +25 -0
  31. package/lib/cjs/components/CourseContentMenu/CourseContentMenu.js +47 -0
  32. package/lib/cjs/components/CourseContentMenu/constants.d.ts +1 -0
  33. package/lib/cjs/components/CourseContentMenu/constants.js +4 -0
  34. package/lib/cjs/components/CourseContentMenu/index.d.ts +3 -0
  35. package/lib/cjs/components/CourseContentMenu/index.js +5 -0
  36. package/lib/cjs/components/CourseDashboard/Header/Skeleton.d.ts +1 -0
  37. package/lib/cjs/components/CourseDashboard/Header/Skeleton.js +16 -0
  38. package/lib/cjs/components/CourseDashboard/Header.d.ts +9 -0
  39. package/lib/cjs/components/CourseDashboard/Header.js +44 -0
  40. package/lib/cjs/components/CourseDashboard/Student/ActionButton.d.ts +8 -0
  41. package/lib/cjs/components/CourseDashboard/Student/ActionButton.js +16 -0
  42. package/lib/cjs/components/CourseDashboard/Student/Skeleton.d.ts +1 -0
  43. package/lib/cjs/components/CourseDashboard/Student/Skeleton.js +30 -0
  44. package/lib/cjs/components/CourseDashboard/Student.d.ts +11 -0
  45. package/lib/cjs/components/CourseDashboard/Student.js +203 -0
  46. package/lib/cjs/components/CourseDashboard/Teacher/Comments.d.ts +9 -0
  47. package/lib/cjs/components/CourseDashboard/Teacher/Comments.js +108 -0
  48. package/lib/cjs/components/CourseDashboard/Teacher/Info.d.ts +11 -0
  49. package/lib/cjs/components/CourseDashboard/Teacher/Info.js +19 -0
  50. package/lib/cjs/components/CourseDashboard/Teacher/Skeleton.d.ts +1 -0
  51. package/lib/cjs/components/CourseDashboard/Teacher/Skeleton.js +25 -0
  52. package/lib/cjs/components/CourseDashboard/Teacher/Students.d.ts +10 -0
  53. package/lib/cjs/components/CourseDashboard/Teacher/Students.js +71 -0
  54. package/lib/cjs/components/CourseDashboard/Teacher.d.ts +11 -0
  55. package/lib/cjs/components/CourseDashboard/Teacher.js +62 -0
  56. package/lib/cjs/components/CourseDashboard/constants.d.ts +1 -0
  57. package/lib/cjs/components/CourseDashboard/constants.js +4 -0
  58. package/lib/cjs/components/CourseDashboard/index.d.ts +11 -0
  59. package/lib/cjs/components/CourseDashboard/index.js +11 -0
  60. package/lib/cjs/components/CourseDashboard/types.d.ts +8 -0
  61. package/lib/cjs/components/CourseDashboard/types.js +13 -0
  62. package/lib/cjs/components/CourseForm/CourseForm.d.ts +74 -0
  63. package/lib/cjs/components/CourseForm/CourseForm.js +273 -0
  64. package/lib/cjs/components/CourseForm/Dialog.d.ts +8 -0
  65. package/lib/cjs/components/CourseForm/Dialog.js +19 -0
  66. package/lib/cjs/components/CourseForm/Edit.d.ts +24 -0
  67. package/lib/cjs/components/CourseForm/Edit.js +53 -0
  68. package/lib/cjs/components/CourseForm/Skeleton.d.ts +1 -0
  69. package/lib/cjs/components/CourseForm/Skeleton.js +17 -0
  70. package/lib/cjs/components/CourseForm/UploadCourseCover.d.ts +45 -0
  71. package/lib/cjs/components/CourseForm/UploadCourseCover.js +94 -0
  72. package/lib/cjs/components/CourseForm/constants.d.ts +1 -0
  73. package/lib/cjs/components/CourseForm/constants.js +4 -0
  74. package/lib/cjs/components/CourseForm/index.d.ts +4 -0
  75. package/lib/cjs/components/CourseForm/index.js +8 -0
  76. package/lib/cjs/components/CourseFormDialog/CourseFormDialog.d.ts +48 -0
  77. package/lib/cjs/components/CourseFormDialog/CourseFormDialog.js +67 -0
  78. package/lib/cjs/components/CourseFormDialog/constants.d.ts +1 -0
  79. package/lib/cjs/components/CourseFormDialog/constants.js +4 -0
  80. package/lib/cjs/components/CourseFormDialog/index.d.ts +3 -0
  81. package/lib/cjs/components/CourseFormDialog/index.js +5 -0
  82. package/lib/cjs/components/CourseJoinButton/CourseJoinButton.d.ts +56 -0
  83. package/lib/cjs/components/CourseJoinButton/CourseJoinButton.js +148 -0
  84. package/lib/cjs/components/CourseJoinButton/index.d.ts +3 -0
  85. package/lib/cjs/components/CourseJoinButton/index.js +5 -0
  86. package/lib/cjs/components/CourseParticipantsButton/CourseParticipantsButton.d.ts +53 -0
  87. package/lib/cjs/components/CourseParticipantsButton/CourseParticipantsButton.js +150 -0
  88. package/lib/cjs/components/CourseParticipantsButton/index.d.ts +3 -0
  89. package/lib/cjs/components/CourseParticipantsButton/index.js +5 -0
  90. package/lib/cjs/components/Courses/Courses.d.ts +100 -0
  91. package/lib/cjs/components/Courses/Courses.js +237 -0
  92. package/lib/cjs/components/Courses/Skeleton.d.ts +54 -0
  93. package/lib/cjs/components/Courses/Skeleton.js +45 -0
  94. package/lib/cjs/components/Courses/constants.d.ts +1 -0
  95. package/lib/cjs/components/Courses/constants.js +4 -0
  96. package/lib/cjs/components/Courses/index.d.ts +4 -0
  97. package/lib/cjs/components/Courses/index.js +8 -0
  98. package/lib/cjs/components/Courses/prefetchedCourses.d.ts +81 -0
  99. package/lib/cjs/components/Courses/prefetchedCourses.js +186 -0
  100. package/lib/cjs/components/CreateCourseButton/CreateCourseButton.d.ts +38 -0
  101. package/lib/cjs/components/CreateCourseButton/CreateCourseButton.js +81 -0
  102. package/lib/cjs/components/CreateCourseButton/index.d.ts +3 -0
  103. package/lib/cjs/components/CreateCourseButton/index.js +5 -0
  104. package/lib/cjs/components/EditCourse/Customize.d.ts +9 -0
  105. package/lib/cjs/components/EditCourse/Customize.js +31 -0
  106. package/lib/cjs/components/EditCourse/EditCourse.d.ts +13 -0
  107. package/lib/cjs/components/EditCourse/EditCourse.js +110 -0
  108. package/lib/cjs/components/EditCourse/Lessons/AddButton.d.ts +9 -0
  109. package/lib/cjs/components/EditCourse/Lessons/AddButton.js +29 -0
  110. package/lib/cjs/components/EditCourse/Lessons/ChangeLessonStatus.d.ts +13 -0
  111. package/lib/cjs/components/EditCourse/Lessons/ChangeLessonStatus.js +92 -0
  112. package/lib/cjs/components/EditCourse/Lessons/FieldName.d.ts +15 -0
  113. package/lib/cjs/components/EditCourse/Lessons/FieldName.js +83 -0
  114. package/lib/cjs/components/EditCourse/Lessons/LessonRow.d.ts +15 -0
  115. package/lib/cjs/components/EditCourse/Lessons/LessonRow.js +68 -0
  116. package/lib/cjs/components/EditCourse/Lessons/SectionRow.d.ts +14 -0
  117. package/lib/cjs/components/EditCourse/Lessons/SectionRow.js +158 -0
  118. package/lib/cjs/components/EditCourse/Lessons/Skeleton.d.ts +1 -0
  119. package/lib/cjs/components/EditCourse/Lessons/Skeleton.js +20 -0
  120. package/lib/cjs/components/EditCourse/Lessons.d.ts +11 -0
  121. package/lib/cjs/components/EditCourse/Lessons.js +196 -0
  122. package/lib/cjs/components/EditCourse/MenuRow.d.ts +9 -0
  123. package/lib/cjs/components/EditCourse/MenuRow.js +25 -0
  124. package/lib/cjs/components/EditCourse/Options/Skeleton.d.ts +1 -0
  125. package/lib/cjs/components/EditCourse/Options/Skeleton.js +15 -0
  126. package/lib/cjs/components/EditCourse/Options/SwitchForm.d.ts +11 -0
  127. package/lib/cjs/components/EditCourse/Options/SwitchForm.js +20 -0
  128. package/lib/cjs/components/EditCourse/Options.d.ts +9 -0
  129. package/lib/cjs/components/EditCourse/Options.js +96 -0
  130. package/lib/cjs/components/EditCourse/Requests.d.ts +12 -0
  131. package/lib/cjs/components/EditCourse/Requests.js +97 -0
  132. package/lib/cjs/components/EditCourse/Skeleton.d.ts +8 -0
  133. package/lib/cjs/components/EditCourse/Skeleton.js +28 -0
  134. package/lib/cjs/components/EditCourse/Status.d.ts +9 -0
  135. package/lib/cjs/components/EditCourse/Status.js +33 -0
  136. package/lib/cjs/components/EditCourse/Users/Skeleton.d.ts +1 -0
  137. package/lib/cjs/components/EditCourse/Users/Skeleton.js +15 -0
  138. package/lib/cjs/components/EditCourse/Users.d.ts +11 -0
  139. package/lib/cjs/components/EditCourse/Users.js +140 -0
  140. package/lib/cjs/components/EditCourse/constants.d.ts +1 -0
  141. package/lib/cjs/components/EditCourse/constants.js +4 -0
  142. package/lib/cjs/components/EditCourse/hooks.d.ts +3 -0
  143. package/lib/cjs/components/EditCourse/hooks.js +22 -0
  144. package/lib/cjs/components/EditCourse/index.d.ts +4 -0
  145. package/lib/cjs/components/EditCourse/index.js +8 -0
  146. package/lib/cjs/components/EditCourse/types.d.ts +29 -0
  147. package/lib/cjs/components/EditCourse/types.js +19 -0
  148. package/lib/cjs/components/Editor/Editor.d.ts +37 -0
  149. package/lib/cjs/components/Editor/Editor.js +6 -3
  150. package/lib/cjs/components/Editor/plugins/EmojiPlugin.d.ts +3 -1
  151. package/lib/cjs/components/Editor/plugins/EmojiPlugin.js +4 -10
  152. package/lib/cjs/components/Editor/plugins/MediaPlugin.d.ts +14 -0
  153. package/lib/cjs/components/Editor/plugins/MediaPlugin.js +121 -0
  154. package/lib/cjs/components/Editor/plugins/ToolbarPlugin.d.ts +5 -0
  155. package/lib/cjs/components/Editor/plugins/ToolbarPlugin.js +3 -2
  156. package/lib/cjs/components/Editor/plugins/index.d.ts +2 -1
  157. package/lib/cjs/components/Editor/plugins/index.js +3 -1
  158. package/lib/cjs/components/EventForm/EventForm.js +1 -1
  159. package/lib/cjs/components/LessonAppbar/LessonAppbar.d.ts +42 -0
  160. package/lib/cjs/components/LessonAppbar/LessonAppbar.js +34 -0
  161. package/lib/cjs/components/LessonAppbar/constants.d.ts +1 -0
  162. package/lib/cjs/components/LessonAppbar/constants.js +4 -0
  163. package/lib/cjs/components/LessonAppbar/index.d.ts +3 -0
  164. package/lib/cjs/components/LessonAppbar/index.js +5 -0
  165. package/lib/cjs/components/LessonCommentObject/LessonCommentObject.d.ts +94 -0
  166. package/lib/cjs/components/LessonCommentObject/LessonCommentObject.js +202 -0
  167. package/lib/cjs/components/LessonCommentObject/Skeleton.d.ts +21 -0
  168. package/lib/cjs/components/LessonCommentObject/Skeleton.js +46 -0
  169. package/lib/cjs/components/LessonCommentObject/constants.d.ts +1 -0
  170. package/lib/cjs/components/LessonCommentObject/constants.js +4 -0
  171. package/lib/cjs/components/LessonCommentObject/index.d.ts +4 -0
  172. package/lib/cjs/components/LessonCommentObject/index.js +8 -0
  173. package/lib/cjs/components/LessonCommentObjects/LessonCommentObjects.d.ts +76 -0
  174. package/lib/cjs/components/LessonCommentObjects/LessonCommentObjects.js +185 -0
  175. package/lib/cjs/components/LessonCommentObjects/Skeleton.d.ts +23 -0
  176. package/lib/cjs/components/LessonCommentObjects/Skeleton.js +40 -0
  177. package/lib/cjs/components/LessonCommentObjects/constants.d.ts +1 -0
  178. package/lib/cjs/components/LessonCommentObjects/constants.js +4 -0
  179. package/lib/cjs/components/LessonCommentObjects/index.d.ts +4 -0
  180. package/lib/cjs/components/LessonCommentObjects/index.js +8 -0
  181. package/lib/cjs/components/LessonDrawer/LessonDrawer.d.ts +50 -0
  182. package/lib/cjs/components/LessonDrawer/LessonDrawer.js +37 -0
  183. package/lib/cjs/components/LessonDrawer/constants.d.ts +1 -0
  184. package/lib/cjs/components/LessonDrawer/constants.js +4 -0
  185. package/lib/cjs/components/LessonDrawer/index.d.ts +3 -0
  186. package/lib/cjs/components/LessonDrawer/index.js +5 -0
  187. package/lib/cjs/components/LessonEditForm/LessonEditForm.d.ts +24 -0
  188. package/lib/cjs/components/LessonEditForm/LessonEditForm.js +45 -0
  189. package/lib/cjs/components/LessonEditForm/constants.d.ts +1 -0
  190. package/lib/cjs/components/LessonEditForm/constants.js +4 -0
  191. package/lib/cjs/components/LessonEditForm/index.d.ts +3 -0
  192. package/lib/cjs/components/LessonEditForm/index.js +5 -0
  193. package/lib/cjs/components/LessonObject/LessonObject.d.ts +40 -0
  194. package/lib/cjs/components/LessonObject/LessonObject.js +70 -0
  195. package/lib/cjs/components/LessonObject/constants.d.ts +1 -0
  196. package/lib/cjs/components/LessonObject/constants.js +4 -0
  197. package/lib/cjs/components/LessonObject/index.d.ts +3 -0
  198. package/lib/cjs/components/LessonObject/index.js +5 -0
  199. package/lib/cjs/components/LessonReleaseMenu/LessonReleaseMenu.d.ts +26 -0
  200. package/lib/cjs/components/LessonReleaseMenu/LessonReleaseMenu.js +172 -0
  201. package/lib/cjs/components/LessonReleaseMenu/constants.d.ts +5 -0
  202. package/lib/cjs/components/LessonReleaseMenu/constants.js +9 -0
  203. package/lib/cjs/components/LessonReleaseMenu/index.d.ts +3 -0
  204. package/lib/cjs/components/LessonReleaseMenu/index.js +5 -0
  205. package/lib/cjs/components/NavigationMenuIconButton/DefaultDrawerContent.js +7 -5
  206. package/lib/cjs/components/NavigationToolbar/NavigationToolbar.js +12 -1
  207. package/lib/cjs/components/Notification/Course/Course.d.ts +15 -0
  208. package/lib/cjs/components/Notification/Course/Course.js +89 -0
  209. package/lib/cjs/components/Notification/Course/index.d.ts +3 -0
  210. package/lib/cjs/components/Notification/Course/index.js +5 -0
  211. package/lib/cjs/components/Notification/Course/utils.d.ts +5 -0
  212. package/lib/cjs/components/Notification/Course/utils.js +44 -0
  213. package/lib/cjs/components/Notification/Notification.js +9 -0
  214. package/lib/cjs/components/SnippetNotifications/SnippetNotifications.js +9 -0
  215. package/lib/cjs/components/TagAutocomplete/TagAutocomplete.js +2 -2
  216. package/lib/cjs/components/ToastNotifications/ToastNotifications.js +9 -0
  217. package/lib/cjs/components/UserCreatedCoursesWidget/Skeleton.d.ts +21 -0
  218. package/lib/cjs/components/UserCreatedCoursesWidget/Skeleton.js +43 -0
  219. package/lib/cjs/components/UserCreatedCoursesWidget/UserCreatedCoursesWidget.d.ts +63 -0
  220. package/lib/cjs/components/UserCreatedCoursesWidget/UserCreatedCoursesWidget.js +154 -0
  221. package/lib/cjs/components/UserCreatedCoursesWidget/constants.d.ts +1 -0
  222. package/lib/cjs/components/UserCreatedCoursesWidget/constants.js +4 -0
  223. package/lib/cjs/components/UserCreatedCoursesWidget/index.d.ts +4 -0
  224. package/lib/cjs/components/UserCreatedCoursesWidget/index.js +8 -0
  225. package/lib/cjs/constants/Course.d.ts +6 -0
  226. package/lib/cjs/constants/Course.js +10 -0
  227. package/lib/cjs/constants/PubSub.d.ts +14 -0
  228. package/lib/cjs/constants/PubSub.js +16 -1
  229. package/lib/cjs/index.d.ts +23 -2
  230. package/lib/cjs/index.js +60 -5
  231. package/lib/cjs/shared/AccordionLessons/AccordionLessons.d.ts +8 -0
  232. package/lib/cjs/shared/AccordionLessons/AccordionLessons.js +65 -0
  233. package/lib/cjs/shared/AccordionLessons/Skeleton.d.ts +1 -0
  234. package/lib/cjs/shared/AccordionLessons/Skeleton.js +21 -0
  235. package/lib/cjs/shared/AccordionLessons/constants.d.ts +1 -0
  236. package/lib/cjs/shared/AccordionLessons/constants.js +4 -0
  237. package/lib/cjs/shared/AccordionLessons/index.d.ts +4 -0
  238. package/lib/cjs/shared/AccordionLessons/index.js +8 -0
  239. package/lib/cjs/shared/AddUsersButton/AddUsersButton.d.ts +29 -0
  240. package/lib/cjs/shared/AddUsersButton/AddUsersButton.js +136 -0
  241. package/lib/cjs/shared/AddUsersButton/index.d.ts +3 -0
  242. package/lib/cjs/shared/AddUsersButton/index.js +5 -0
  243. package/lib/cjs/shared/CourseTypePopover/CourseTypePopover.d.ts +9 -0
  244. package/lib/cjs/shared/CourseTypePopover/CourseTypePopover.js +48 -0
  245. package/lib/cjs/shared/CourseTypePopover/index.d.ts +3 -0
  246. package/lib/cjs/shared/CourseTypePopover/index.js +5 -0
  247. package/lib/cjs/shared/CourseUsersTable/ChangeUsersStatus.d.ts +9 -0
  248. package/lib/cjs/shared/CourseUsersTable/ChangeUsersStatus.js +58 -0
  249. package/lib/cjs/shared/CourseUsersTable/CourseUsersTable.d.ts +21 -0
  250. package/lib/cjs/shared/CourseUsersTable/CourseUsersTable.js +155 -0
  251. package/lib/cjs/shared/CourseUsersTable/RemoveButton.d.ts +10 -0
  252. package/lib/cjs/shared/CourseUsersTable/RemoveButton.js +51 -0
  253. package/lib/cjs/shared/CourseUsersTable/RequestButton.d.ts +10 -0
  254. package/lib/cjs/shared/CourseUsersTable/RequestButton.js +79 -0
  255. package/lib/cjs/shared/CourseUsersTable/RowSkeleton.d.ts +8 -0
  256. package/lib/cjs/shared/CourseUsersTable/RowSkeleton.js +14 -0
  257. package/lib/cjs/shared/CourseUsersTable/SeeProgressButton.d.ts +9 -0
  258. package/lib/cjs/shared/CourseUsersTable/SeeProgressButton.js +56 -0
  259. package/lib/cjs/shared/CourseUsersTable/Skeleton.d.ts +1 -0
  260. package/lib/cjs/shared/CourseUsersTable/Skeleton.js +19 -0
  261. package/lib/cjs/shared/CourseUsersTable/constants.d.ts +1 -0
  262. package/lib/cjs/shared/CourseUsersTable/constants.js +4 -0
  263. package/lib/cjs/shared/CourseUsersTable/index.d.ts +4 -0
  264. package/lib/cjs/shared/CourseUsersTable/index.js +8 -0
  265. package/lib/cjs/shared/DateTimeAgo/index.d.ts +1 -1
  266. package/lib/cjs/shared/EmptyStatus/EmptyStatus.d.ts +11 -0
  267. package/lib/cjs/shared/EmptyStatus/EmptyStatus.js +26 -0
  268. package/lib/cjs/shared/EmptyStatus/index.d.ts +3 -0
  269. package/lib/cjs/shared/EmptyStatus/index.js +5 -0
  270. package/lib/cjs/shared/LessonCommentActionsMenu/index.d.ts +41 -0
  271. package/lib/cjs/shared/LessonCommentActionsMenu/index.js +197 -0
  272. package/lib/cjs/shared/LessonFilePreview/index.d.ts +12 -0
  273. package/lib/cjs/shared/LessonFilePreview/index.js +29 -0
  274. package/lib/cjs/shared/Media/Link/UrlTextField/index.js +2 -3
  275. package/lib/cjs/types/course.d.ts +40 -0
  276. package/lib/cjs/types/course.js +33 -0
  277. package/lib/cjs/types/index.d.ts +2 -1
  278. package/lib/cjs/types/index.js +6 -1
  279. package/lib/cjs/utils/course.d.ts +14 -0
  280. package/lib/cjs/utils/course.js +39 -0
  281. package/lib/esm/assets/courses/clapping.d.ts +1 -0
  282. package/lib/esm/assets/courses/clapping.js +1 -0
  283. package/lib/esm/components/BottomNavigation/BottomNavigation.js +17 -2
  284. package/lib/esm/components/CategoryAutocomplete/CategoryAutocomplete.js +6 -8
  285. package/lib/esm/components/CommentObject/CommentObject.d.ts +5 -0
  286. package/lib/esm/components/CommentObject/CommentObject.js +2 -2
  287. package/lib/esm/components/CommentObjectReply/CommentObjectReply.d.ts +24 -2
  288. package/lib/esm/components/CommentObjectReply/CommentObjectReply.js +18 -5
  289. package/lib/esm/components/Composer/Content/ContentLesson/ContentLesson.d.ts +38 -0
  290. package/lib/esm/components/Composer/Content/ContentLesson/ContentLesson.js +64 -0
  291. package/lib/esm/components/Composer/Content/ContentLesson/index.d.ts +3 -0
  292. package/lib/esm/components/Composer/Content/ContentLesson/index.js +2 -0
  293. package/lib/esm/components/Composer/Layer/AudienceLayer/AudienceLayer.js +2 -2
  294. package/lib/esm/components/ComposerIconButton/ComposerIconButton.d.ts +9 -3
  295. package/lib/esm/components/ComposerIconButton/ComposerIconButton.js +38 -9
  296. package/lib/esm/components/Course/Course.d.ts +92 -0
  297. package/lib/esm/components/Course/Course.js +182 -0
  298. package/lib/esm/components/Course/CreatePlaceholder.d.ts +39 -0
  299. package/lib/esm/components/Course/CreatePlaceholder.js +56 -0
  300. package/lib/esm/components/Course/Skeleton.d.ts +51 -0
  301. package/lib/esm/components/Course/Skeleton.js +74 -0
  302. package/lib/esm/components/Course/constants.d.ts +1 -0
  303. package/lib/esm/components/Course/constants.js +1 -0
  304. package/lib/esm/components/Course/index.d.ts +4 -0
  305. package/lib/esm/components/Course/index.js +4 -0
  306. package/lib/esm/components/CourseCompletedDialog/CourseCompletedDialog.d.ts +9 -0
  307. package/lib/esm/components/CourseCompletedDialog/CourseCompletedDialog.js +37 -0
  308. package/lib/esm/components/CourseCompletedDialog/index.d.ts +3 -0
  309. package/lib/esm/components/CourseCompletedDialog/index.js +2 -0
  310. package/lib/esm/components/CourseContentMenu/CourseContentMenu.d.ts +25 -0
  311. package/lib/esm/components/CourseContentMenu/CourseContentMenu.js +44 -0
  312. package/lib/esm/components/CourseContentMenu/constants.d.ts +1 -0
  313. package/lib/esm/components/CourseContentMenu/constants.js +1 -0
  314. package/lib/esm/components/CourseContentMenu/index.d.ts +3 -0
  315. package/lib/esm/components/CourseContentMenu/index.js +2 -0
  316. package/lib/esm/components/CourseDashboard/Header/Skeleton.d.ts +1 -0
  317. package/lib/esm/components/CourseDashboard/Header/Skeleton.js +13 -0
  318. package/lib/esm/components/CourseDashboard/Header.d.ts +9 -0
  319. package/lib/esm/components/CourseDashboard/Header.js +41 -0
  320. package/lib/esm/components/CourseDashboard/Student/ActionButton.d.ts +8 -0
  321. package/lib/esm/components/CourseDashboard/Student/ActionButton.js +13 -0
  322. package/lib/esm/components/CourseDashboard/Student/Skeleton.d.ts +1 -0
  323. package/lib/esm/components/CourseDashboard/Student/Skeleton.js +26 -0
  324. package/lib/esm/components/CourseDashboard/Student.d.ts +11 -0
  325. package/lib/esm/components/CourseDashboard/Student.js +201 -0
  326. package/lib/esm/components/CourseDashboard/Teacher/Comments.d.ts +9 -0
  327. package/lib/esm/components/CourseDashboard/Teacher/Comments.js +106 -0
  328. package/lib/esm/components/CourseDashboard/Teacher/Info.d.ts +11 -0
  329. package/lib/esm/components/CourseDashboard/Teacher/Info.js +16 -0
  330. package/lib/esm/components/CourseDashboard/Teacher/Skeleton.d.ts +1 -0
  331. package/lib/esm/components/CourseDashboard/Teacher/Skeleton.js +21 -0
  332. package/lib/esm/components/CourseDashboard/Teacher/Students.d.ts +10 -0
  333. package/lib/esm/components/CourseDashboard/Teacher/Students.js +68 -0
  334. package/lib/esm/components/CourseDashboard/Teacher.d.ts +11 -0
  335. package/lib/esm/components/CourseDashboard/Teacher.js +60 -0
  336. package/lib/esm/components/CourseDashboard/constants.d.ts +1 -0
  337. package/lib/esm/components/CourseDashboard/constants.js +1 -0
  338. package/lib/esm/components/CourseDashboard/index.d.ts +11 -0
  339. package/lib/esm/components/CourseDashboard/index.js +6 -0
  340. package/lib/esm/components/CourseDashboard/types.d.ts +8 -0
  341. package/lib/esm/components/CourseDashboard/types.js +10 -0
  342. package/lib/esm/components/CourseForm/CourseForm.d.ts +74 -0
  343. package/lib/esm/components/CourseForm/CourseForm.js +270 -0
  344. package/lib/esm/components/CourseForm/Dialog.d.ts +8 -0
  345. package/lib/esm/components/CourseForm/Dialog.js +16 -0
  346. package/lib/esm/components/CourseForm/Edit.d.ts +24 -0
  347. package/lib/esm/components/CourseForm/Edit.js +50 -0
  348. package/lib/esm/components/CourseForm/Skeleton.d.ts +1 -0
  349. package/lib/esm/components/CourseForm/Skeleton.js +14 -0
  350. package/lib/esm/components/CourseForm/UploadCourseCover.d.ts +45 -0
  351. package/lib/esm/components/CourseForm/UploadCourseCover.js +91 -0
  352. package/lib/esm/components/CourseForm/constants.d.ts +1 -0
  353. package/lib/esm/components/CourseForm/constants.js +1 -0
  354. package/lib/esm/components/CourseForm/index.d.ts +4 -0
  355. package/lib/esm/components/CourseForm/index.js +4 -0
  356. package/lib/esm/components/CourseFormDialog/CourseFormDialog.d.ts +48 -0
  357. package/lib/esm/components/CourseFormDialog/CourseFormDialog.js +64 -0
  358. package/lib/esm/components/CourseFormDialog/constants.d.ts +1 -0
  359. package/lib/esm/components/CourseFormDialog/constants.js +1 -0
  360. package/lib/esm/components/CourseFormDialog/index.d.ts +3 -0
  361. package/lib/esm/components/CourseFormDialog/index.js +2 -0
  362. package/lib/esm/components/CourseJoinButton/CourseJoinButton.d.ts +56 -0
  363. package/lib/esm/components/CourseJoinButton/CourseJoinButton.js +145 -0
  364. package/lib/esm/components/CourseJoinButton/index.d.ts +3 -0
  365. package/lib/esm/components/CourseJoinButton/index.js +2 -0
  366. package/lib/esm/components/CourseParticipantsButton/CourseParticipantsButton.d.ts +53 -0
  367. package/lib/esm/components/CourseParticipantsButton/CourseParticipantsButton.js +147 -0
  368. package/lib/esm/components/CourseParticipantsButton/index.d.ts +3 -0
  369. package/lib/esm/components/CourseParticipantsButton/index.js +2 -0
  370. package/lib/esm/components/Courses/Courses.d.ts +100 -0
  371. package/lib/esm/components/Courses/Courses.js +233 -0
  372. package/lib/esm/components/Courses/Skeleton.d.ts +54 -0
  373. package/lib/esm/components/Courses/Skeleton.js +42 -0
  374. package/lib/esm/components/Courses/constants.d.ts +1 -0
  375. package/lib/esm/components/Courses/constants.js +1 -0
  376. package/lib/esm/components/Courses/index.d.ts +4 -0
  377. package/lib/esm/components/Courses/index.js +4 -0
  378. package/lib/esm/components/Courses/prefetchedCourses.d.ts +81 -0
  379. package/lib/esm/components/Courses/prefetchedCourses.js +183 -0
  380. package/lib/esm/components/CreateCourseButton/CreateCourseButton.d.ts +38 -0
  381. package/lib/esm/components/CreateCourseButton/CreateCourseButton.js +78 -0
  382. package/lib/esm/components/CreateCourseButton/index.d.ts +3 -0
  383. package/lib/esm/components/CreateCourseButton/index.js +2 -0
  384. package/lib/esm/components/EditCourse/Customize.d.ts +9 -0
  385. package/lib/esm/components/EditCourse/Customize.js +28 -0
  386. package/lib/esm/components/EditCourse/EditCourse.d.ts +13 -0
  387. package/lib/esm/components/EditCourse/EditCourse.js +107 -0
  388. package/lib/esm/components/EditCourse/Lessons/AddButton.d.ts +9 -0
  389. package/lib/esm/components/EditCourse/Lessons/AddButton.js +27 -0
  390. package/lib/esm/components/EditCourse/Lessons/ChangeLessonStatus.d.ts +13 -0
  391. package/lib/esm/components/EditCourse/Lessons/ChangeLessonStatus.js +89 -0
  392. package/lib/esm/components/EditCourse/Lessons/FieldName.d.ts +15 -0
  393. package/lib/esm/components/EditCourse/Lessons/FieldName.js +80 -0
  394. package/lib/esm/components/EditCourse/Lessons/LessonRow.d.ts +15 -0
  395. package/lib/esm/components/EditCourse/Lessons/LessonRow.js +65 -0
  396. package/lib/esm/components/EditCourse/Lessons/SectionRow.d.ts +14 -0
  397. package/lib/esm/components/EditCourse/Lessons/SectionRow.js +155 -0
  398. package/lib/esm/components/EditCourse/Lessons/Skeleton.d.ts +1 -0
  399. package/lib/esm/components/EditCourse/Lessons/Skeleton.js +17 -0
  400. package/lib/esm/components/EditCourse/Lessons.d.ts +11 -0
  401. package/lib/esm/components/EditCourse/Lessons.js +193 -0
  402. package/lib/esm/components/EditCourse/MenuRow.d.ts +9 -0
  403. package/lib/esm/components/EditCourse/MenuRow.js +22 -0
  404. package/lib/esm/components/EditCourse/Options/Skeleton.d.ts +1 -0
  405. package/lib/esm/components/EditCourse/Options/Skeleton.js +12 -0
  406. package/lib/esm/components/EditCourse/Options/SwitchForm.d.ts +11 -0
  407. package/lib/esm/components/EditCourse/Options/SwitchForm.js +18 -0
  408. package/lib/esm/components/EditCourse/Options.d.ts +9 -0
  409. package/lib/esm/components/EditCourse/Options.js +93 -0
  410. package/lib/esm/components/EditCourse/Requests.d.ts +12 -0
  411. package/lib/esm/components/EditCourse/Requests.js +94 -0
  412. package/lib/esm/components/EditCourse/Skeleton.d.ts +8 -0
  413. package/lib/esm/components/EditCourse/Skeleton.js +25 -0
  414. package/lib/esm/components/EditCourse/Status.d.ts +9 -0
  415. package/lib/esm/components/EditCourse/Status.js +29 -0
  416. package/lib/esm/components/EditCourse/Users/Skeleton.d.ts +1 -0
  417. package/lib/esm/components/EditCourse/Users/Skeleton.js +12 -0
  418. package/lib/esm/components/EditCourse/Users.d.ts +11 -0
  419. package/lib/esm/components/EditCourse/Users.js +137 -0
  420. package/lib/esm/components/EditCourse/constants.d.ts +1 -0
  421. package/lib/esm/components/EditCourse/constants.js +1 -0
  422. package/lib/esm/components/EditCourse/hooks.d.ts +3 -0
  423. package/lib/esm/components/EditCourse/hooks.js +17 -0
  424. package/lib/esm/components/EditCourse/index.d.ts +4 -0
  425. package/lib/esm/components/EditCourse/index.js +4 -0
  426. package/lib/esm/components/EditCourse/types.d.ts +29 -0
  427. package/lib/esm/components/EditCourse/types.js +16 -0
  428. package/lib/esm/components/Editor/Editor.d.ts +37 -0
  429. package/lib/esm/components/Editor/Editor.js +7 -4
  430. package/lib/esm/components/Editor/plugins/EmojiPlugin.d.ts +3 -1
  431. package/lib/esm/components/Editor/plugins/EmojiPlugin.js +4 -10
  432. package/lib/esm/components/Editor/plugins/MediaPlugin.d.ts +14 -0
  433. package/lib/esm/components/Editor/plugins/MediaPlugin.js +117 -0
  434. package/lib/esm/components/Editor/plugins/ToolbarPlugin.d.ts +5 -0
  435. package/lib/esm/components/Editor/plugins/ToolbarPlugin.js +3 -2
  436. package/lib/esm/components/Editor/plugins/index.d.ts +2 -1
  437. package/lib/esm/components/Editor/plugins/index.js +2 -1
  438. package/lib/esm/components/EventForm/EventForm.js +1 -1
  439. package/lib/esm/components/LessonAppbar/LessonAppbar.d.ts +42 -0
  440. package/lib/esm/components/LessonAppbar/LessonAppbar.js +31 -0
  441. package/lib/esm/components/LessonAppbar/constants.d.ts +1 -0
  442. package/lib/esm/components/LessonAppbar/constants.js +1 -0
  443. package/lib/esm/components/LessonAppbar/index.d.ts +3 -0
  444. package/lib/esm/components/LessonAppbar/index.js +2 -0
  445. package/lib/esm/components/LessonCommentObject/LessonCommentObject.d.ts +94 -0
  446. package/lib/esm/components/LessonCommentObject/LessonCommentObject.js +199 -0
  447. package/lib/esm/components/LessonCommentObject/Skeleton.d.ts +21 -0
  448. package/lib/esm/components/LessonCommentObject/Skeleton.js +43 -0
  449. package/lib/esm/components/LessonCommentObject/constants.d.ts +1 -0
  450. package/lib/esm/components/LessonCommentObject/constants.js +1 -0
  451. package/lib/esm/components/LessonCommentObject/index.d.ts +4 -0
  452. package/lib/esm/components/LessonCommentObject/index.js +4 -0
  453. package/lib/esm/components/LessonCommentObjects/LessonCommentObjects.d.ts +76 -0
  454. package/lib/esm/components/LessonCommentObjects/LessonCommentObjects.js +182 -0
  455. package/lib/esm/components/LessonCommentObjects/Skeleton.d.ts +23 -0
  456. package/lib/esm/components/LessonCommentObjects/Skeleton.js +37 -0
  457. package/lib/esm/components/LessonCommentObjects/constants.d.ts +1 -0
  458. package/lib/esm/components/LessonCommentObjects/constants.js +1 -0
  459. package/lib/esm/components/LessonCommentObjects/index.d.ts +4 -0
  460. package/lib/esm/components/LessonCommentObjects/index.js +4 -0
  461. package/lib/esm/components/LessonDrawer/LessonDrawer.d.ts +50 -0
  462. package/lib/esm/components/LessonDrawer/LessonDrawer.js +34 -0
  463. package/lib/esm/components/LessonDrawer/constants.d.ts +1 -0
  464. package/lib/esm/components/LessonDrawer/constants.js +1 -0
  465. package/lib/esm/components/LessonDrawer/index.d.ts +3 -0
  466. package/lib/esm/components/LessonDrawer/index.js +2 -0
  467. package/lib/esm/components/LessonEditForm/LessonEditForm.d.ts +24 -0
  468. package/lib/esm/components/LessonEditForm/LessonEditForm.js +42 -0
  469. package/lib/esm/components/LessonEditForm/constants.d.ts +1 -0
  470. package/lib/esm/components/LessonEditForm/constants.js +1 -0
  471. package/lib/esm/components/LessonEditForm/index.d.ts +3 -0
  472. package/lib/esm/components/LessonEditForm/index.js +2 -0
  473. package/lib/esm/components/LessonObject/LessonObject.d.ts +40 -0
  474. package/lib/esm/components/LessonObject/LessonObject.js +67 -0
  475. package/lib/esm/components/LessonObject/constants.d.ts +1 -0
  476. package/lib/esm/components/LessonObject/constants.js +1 -0
  477. package/lib/esm/components/LessonObject/index.d.ts +3 -0
  478. package/lib/esm/components/LessonObject/index.js +2 -0
  479. package/lib/esm/components/LessonReleaseMenu/LessonReleaseMenu.d.ts +26 -0
  480. package/lib/esm/components/LessonReleaseMenu/LessonReleaseMenu.js +169 -0
  481. package/lib/esm/components/LessonReleaseMenu/constants.d.ts +5 -0
  482. package/lib/esm/components/LessonReleaseMenu/constants.js +6 -0
  483. package/lib/esm/components/LessonReleaseMenu/index.d.ts +3 -0
  484. package/lib/esm/components/LessonReleaseMenu/index.js +2 -0
  485. package/lib/esm/components/NavigationMenuIconButton/DefaultDrawerContent.js +9 -7
  486. package/lib/esm/components/NavigationToolbar/NavigationToolbar.js +12 -1
  487. package/lib/esm/components/Notification/Course/Course.d.ts +15 -0
  488. package/lib/esm/components/Notification/Course/Course.js +86 -0
  489. package/lib/esm/components/Notification/Course/index.d.ts +3 -0
  490. package/lib/esm/components/Notification/Course/index.js +2 -0
  491. package/lib/esm/components/Notification/Course/utils.d.ts +5 -0
  492. package/lib/esm/components/Notification/Course/utils.js +39 -0
  493. package/lib/esm/components/Notification/Notification.js +9 -0
  494. package/lib/esm/components/SnippetNotifications/SnippetNotifications.js +9 -0
  495. package/lib/esm/components/TagAutocomplete/TagAutocomplete.js +2 -2
  496. package/lib/esm/components/ToastNotifications/ToastNotifications.js +9 -0
  497. package/lib/esm/components/UserCreatedCoursesWidget/Skeleton.d.ts +21 -0
  498. package/lib/esm/components/UserCreatedCoursesWidget/Skeleton.js +39 -0
  499. package/lib/esm/components/UserCreatedCoursesWidget/UserCreatedCoursesWidget.d.ts +63 -0
  500. package/lib/esm/components/UserCreatedCoursesWidget/UserCreatedCoursesWidget.js +151 -0
  501. package/lib/esm/components/UserCreatedCoursesWidget/constants.d.ts +1 -0
  502. package/lib/esm/components/UserCreatedCoursesWidget/constants.js +1 -0
  503. package/lib/esm/components/UserCreatedCoursesWidget/index.d.ts +4 -0
  504. package/lib/esm/components/UserCreatedCoursesWidget/index.js +4 -0
  505. package/lib/esm/constants/Course.d.ts +6 -0
  506. package/lib/esm/constants/Course.js +7 -0
  507. package/lib/esm/constants/PubSub.d.ts +14 -0
  508. package/lib/esm/constants/PubSub.js +15 -0
  509. package/lib/esm/index.d.ts +23 -2
  510. package/lib/esm/index.js +26 -5
  511. package/lib/esm/shared/AccordionLessons/AccordionLessons.d.ts +8 -0
  512. package/lib/esm/shared/AccordionLessons/AccordionLessons.js +61 -0
  513. package/lib/esm/shared/AccordionLessons/Skeleton.d.ts +1 -0
  514. package/lib/esm/shared/AccordionLessons/Skeleton.js +18 -0
  515. package/lib/esm/shared/AccordionLessons/constants.d.ts +1 -0
  516. package/lib/esm/shared/AccordionLessons/constants.js +1 -0
  517. package/lib/esm/shared/AccordionLessons/index.d.ts +4 -0
  518. package/lib/esm/shared/AccordionLessons/index.js +4 -0
  519. package/lib/esm/shared/AddUsersButton/AddUsersButton.d.ts +29 -0
  520. package/lib/esm/shared/AddUsersButton/AddUsersButton.js +134 -0
  521. package/lib/esm/shared/AddUsersButton/index.d.ts +3 -0
  522. package/lib/esm/shared/AddUsersButton/index.js +2 -0
  523. package/lib/esm/shared/CourseTypePopover/CourseTypePopover.d.ts +9 -0
  524. package/lib/esm/shared/CourseTypePopover/CourseTypePopover.js +45 -0
  525. package/lib/esm/shared/CourseTypePopover/index.d.ts +3 -0
  526. package/lib/esm/shared/CourseTypePopover/index.js +2 -0
  527. package/lib/esm/shared/CourseUsersTable/ChangeUsersStatus.d.ts +9 -0
  528. package/lib/esm/shared/CourseUsersTable/ChangeUsersStatus.js +56 -0
  529. package/lib/esm/shared/CourseUsersTable/CourseUsersTable.d.ts +21 -0
  530. package/lib/esm/shared/CourseUsersTable/CourseUsersTable.js +152 -0
  531. package/lib/esm/shared/CourseUsersTable/RemoveButton.d.ts +10 -0
  532. package/lib/esm/shared/CourseUsersTable/RemoveButton.js +48 -0
  533. package/lib/esm/shared/CourseUsersTable/RequestButton.d.ts +10 -0
  534. package/lib/esm/shared/CourseUsersTable/RequestButton.js +76 -0
  535. package/lib/esm/shared/CourseUsersTable/RowSkeleton.d.ts +8 -0
  536. package/lib/esm/shared/CourseUsersTable/RowSkeleton.js +11 -0
  537. package/lib/esm/shared/CourseUsersTable/SeeProgressButton.d.ts +9 -0
  538. package/lib/esm/shared/CourseUsersTable/SeeProgressButton.js +53 -0
  539. package/lib/esm/shared/CourseUsersTable/Skeleton.d.ts +1 -0
  540. package/lib/esm/shared/CourseUsersTable/Skeleton.js +15 -0
  541. package/lib/esm/shared/CourseUsersTable/constants.d.ts +1 -0
  542. package/lib/esm/shared/CourseUsersTable/constants.js +1 -0
  543. package/lib/esm/shared/CourseUsersTable/index.d.ts +4 -0
  544. package/lib/esm/shared/CourseUsersTable/index.js +4 -0
  545. package/lib/esm/shared/DateTimeAgo/index.d.ts +1 -1
  546. package/lib/esm/shared/EmptyStatus/EmptyStatus.d.ts +11 -0
  547. package/lib/esm/shared/EmptyStatus/EmptyStatus.js +23 -0
  548. package/lib/esm/shared/EmptyStatus/index.d.ts +3 -0
  549. package/lib/esm/shared/EmptyStatus/index.js +2 -0
  550. package/lib/esm/shared/LessonCommentActionsMenu/index.d.ts +41 -0
  551. package/lib/esm/shared/LessonCommentActionsMenu/index.js +194 -0
  552. package/lib/esm/shared/LessonFilePreview/index.d.ts +12 -0
  553. package/lib/esm/shared/LessonFilePreview/index.js +25 -0
  554. package/lib/esm/shared/Media/Link/UrlTextField/index.js +3 -4
  555. package/lib/esm/types/course.d.ts +40 -0
  556. package/lib/esm/types/course.js +30 -0
  557. package/lib/esm/types/index.d.ts +2 -1
  558. package/lib/esm/types/index.js +2 -1
  559. package/lib/esm/utils/course.d.ts +14 -0
  560. package/lib/esm/utils/course.js +32 -0
  561. package/lib/umd/578.js +2 -0
  562. package/lib/umd/60a7fdeaadfe844bc015.woff2 +0 -0
  563. package/lib/umd/assets/icons.svg +9 -3
  564. package/lib/umd/{c3528e120c4e831db2ae.woff → b6dbec3d5816ff8baef1.woff} +0 -0
  565. package/lib/umd/{a221d3aba0f6753cfbb7.ttf → ba74e493633796d551d1.ttf} +0 -0
  566. package/lib/umd/{2aa155858f48b8f3911a.eot → c473ce30406a3dad83e1.eot} +0 -0
  567. package/lib/umd/react-ui.js +1 -1
  568. package/package.json +9 -8
  569. package/lib/umd/239.js +0 -2
  570. package/lib/umd/36f3af7f155d916c26ff.woff2 +0 -0
  571. /package/lib/umd/{239.js.LICENSE.txt → 578.js.LICENSE.txt} +0 -0
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUrlLesson = exports.getDripDelayAndUnit = exports.isCourseCompleted = exports.isCourseNew = void 0;
4
+ const types_1 = require("@selfcommunity/types");
5
+ function isCourseNew(course) {
6
+ if (course && course.join_status === types_1.SCCourseJoinStatusType.JOINED) {
7
+ const createdAtDate = new Date(course.created_at);
8
+ const twoWeeksAgo = new Date();
9
+ twoWeeksAgo.setDate(twoWeeksAgo.getDate() - 14);
10
+ return createdAtDate >= twoWeeksAgo;
11
+ }
12
+ return false;
13
+ }
14
+ exports.isCourseNew = isCourseNew;
15
+ function isCourseCompleted(course) {
16
+ return (course === null || course === void 0 ? void 0 : course.user_completion_rate) === 100;
17
+ }
18
+ exports.isCourseCompleted = isCourseCompleted;
19
+ var unitType;
20
+ (function (unitType) {
21
+ unitType["DAYS"] = "days";
22
+ unitType["WEEKS"] = "weeks";
23
+ })(unitType || (unitType = {}));
24
+ function getDripDelayAndUnit(value) {
25
+ if (value > 7 && value % 7 === 0) {
26
+ return { delay: value / 7, _unit: unitType.WEEKS };
27
+ }
28
+ return { delay: value, _unit: unitType.DAYS };
29
+ }
30
+ exports.getDripDelayAndUnit = getDripDelayAndUnit;
31
+ function getUrlLesson(course, lesson, section) {
32
+ return {
33
+ id: course.id,
34
+ slug: course.slug,
35
+ section_id: section ? section.id : lesson.section_id,
36
+ lesson_id: lesson.id
37
+ };
38
+ }
39
+ exports.getUrlLesson = getUrlLesson;
@@ -0,0 +1 @@
1
+ export declare const CLAPPING = "data:image/jpeg;base64,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";
@@ -0,0 +1 @@
1
+ export const CLAPPING = 'data:image/jpeg;base64,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';
@@ -73,6 +73,11 @@ export default function BottomNavigation(inProps) {
73
73
  features.includes(SCFeatureName.EVENT) &&
74
74
  SCPreferences.CONFIGURATIONS_EVENTS_ENABLED in preferences &&
75
75
  preferences[SCPreferences.CONFIGURATIONS_EVENTS_ENABLED].value, [preferences, features]);
76
+ const coursesEnabled = useMemo(() => preferences &&
77
+ features &&
78
+ features.includes(SCFeatureName.TAGGING) &&
79
+ SCPreferences.CONFIGURATIONS_COURSES_ENABLED in preferences &&
80
+ preferences[SCPreferences.CONFIGURATIONS_COURSES_ENABLED].value, [preferences, features]);
76
81
  const exploreStreamEnabled = preferences[SCPreferences.CONFIGURATIONS_EXPLORE_STREAM_ENABLED].value;
77
82
  const postOnlyStaffEnabled = preferences[SCPreferences.CONFIGURATIONS_POST_ONLY_STAFF_ENABLED].value;
78
83
  const contentAvailable = preferences[SCPreferences.CONFIGURATIONS_CONTENT_AVAILABILITY].value;
@@ -82,16 +87,26 @@ export default function BottomNavigation(inProps) {
82
87
  ? children
83
88
  : [
84
89
  _jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scUserContext.user ? scRoutingContext.url(SCRoutes.HOME_ROUTE_NAME, {}) : '/', value: scUserContext.user ? scRoutingContext.url(SCRoutes.HOME_ROUTE_NAME, {}) : '/', icon: _jsx(Icon, { children: "home" }) }, "home"),
85
- (scUserContext.user || contentAvailable) && exploreStreamEnabled ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.EXPLORE_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.EXPLORE_ROUTE_NAME, {}), icon: _jsx(Icon, { children: "explore" }) }, "explore")) : null,
90
+ // (scUserContext.user || contentAvailable) && exploreStreamEnabled ? (
91
+ // <BottomNavigationAction
92
+ // key="explore"
93
+ // className={classes.action}
94
+ // component={Link}
95
+ // to={scRoutingContext.url(SCRoutes.EXPLORE_ROUTE_NAME, {})}
96
+ // value={scRoutingContext.url(SCRoutes.EXPLORE_ROUTE_NAME, {})}
97
+ // icon={<Icon>explore</Icon>}
98
+ // />
99
+ // ) : null,
86
100
  (!postOnlyStaffEnabled || (UserUtils.isStaff(scUserContext.user) && postOnlyStaffEnabled)) &&
87
101
  ((groupsEnabled && !eventsEnabled) || (!groupsEnabled && eventsEnabled)) &&
88
102
  !exploreStreamEnabled ? (_jsx(BottomNavigationAction, { className: classNames(classes.composer, classes.action), component: ComposerIconButton, disableRipple: true }, "composer")) : null,
103
+ coursesEnabled && (scUserContext.user || contentAvailable) ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.COURSES_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.COURSES_ROUTE_NAME, {}), icon: _jsx(Icon, { children: "courses" }) }, "courses")) : null,
89
104
  groupsEnabled && scUserContext.user ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.GROUPS_SUBSCRIBED_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.GROUPS_SUBSCRIBED_ROUTE_NAME, {}), icon: _jsx(Icon, { children: "groups" }) }, "groups")) : null,
90
105
  (!postOnlyStaffEnabled || (UserUtils.isStaff(scUserContext.user) && postOnlyStaffEnabled)) &&
91
106
  groupsEnabled &&
92
107
  eventsEnabled &&
93
108
  !exploreStreamEnabled ? (_jsx(BottomNavigationAction, { className: classNames(classes.composer, classes.action), component: ComposerIconButton, disableRipple: true }, "composer")) : null,
94
- eventsEnabled ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.EVENT_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.EVENTS_ROUTE_NAME, {}), icon: _jsx(Icon, { children: "CalendarIcon" }) }, "events")) : null,
109
+ eventsEnabled && (scUserContext.user || contentAvailable) ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.EVENT_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.EVENTS_ROUTE_NAME, {}), icon: _jsx(Icon, { children: "CalendarIcon" }) }, "events")) : null,
95
110
  scUserContext.user && !groupsEnabled && !eventsEnabled ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.USER_NOTIFICATIONS_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.USER_NOTIFICATIONS_ROUTE_NAME, {}), icon: _jsx(Badge, Object.assign({ badgeContent: scUserContext.user.unseen_notification_banners_counter + scUserContext.user.unseen_interactions_counter, color: "secondary" }, { children: _jsx(Icon, { children: "notifications_active" }) })) }, "notifications")) : null,
96
111
  privateMessagingEnabled && scUserContext.user ? (_jsx(BottomNavigationAction, { className: classes.action, component: Link, to: scRoutingContext.url(SCRoutes.USER_PRIVATE_MESSAGES_ROUTE_NAME, {}), value: scRoutingContext.url(SCRoutes.USER_PRIVATE_MESSAGES_ROUTE_NAME, {}), icon: _jsx(Badge, Object.assign({ badgeContent: 0, color: "secondary" }, { children: _jsx(Icon, { children: "email" }) })) }, "messages")) : null
97
112
  ] })));
@@ -1,6 +1,6 @@
1
1
  import { __rest } from "tslib";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { useEffect, useState } from 'react';
3
+ import { Fragment, useEffect, useState } from 'react';
4
4
  import { FormattedMessage } from 'react-intl';
5
5
  import Autocomplete from '@mui/material/Autocomplete';
6
6
  import TextField from '@mui/material/TextField';
@@ -19,7 +19,7 @@ const classes = {
19
19
  const Root = styled(Autocomplete, {
20
20
  name: PREFIX,
21
21
  slot: 'Root',
22
- overridesResolver: (props, styles) => styles.root
22
+ overridesResolver: (_props, styles) => styles.root
23
23
  })(() => ({}));
24
24
  /**
25
25
  * > API documentation for the Community-JS Category Autocomplete component. Learn about the available props and the CSS API.
@@ -55,8 +55,6 @@ const CategoryAutocomplete = (inProps) => {
55
55
  } } = props, rest = __rest(props, ["onChange", "multiple", "defaultValue", "limitCountCategories", "checkboxSelect", "disabled", "endpointQueryParams", "TextFieldProps"]);
56
56
  // State
57
57
  const [open, setOpen] = useState(false);
58
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
59
- // @ts-ignore
60
58
  const [value, setValue] = useState(typeof defaultValue === 'string' ? null : defaultValue);
61
59
  // HOOKS
62
60
  const { categories, isLoading } = useSCFetchCategories({ endpointQueryParams });
@@ -64,7 +62,7 @@ const CategoryAutocomplete = (inProps) => {
64
62
  if (value === null) {
65
63
  return;
66
64
  }
67
- onChange && onChange(value);
65
+ onChange === null || onChange === void 0 ? void 0 : onChange(value);
68
66
  }, [value]);
69
67
  useEffect(() => {
70
68
  if (!isLoading && typeof defaultValue === 'string') {
@@ -78,7 +76,7 @@ const CategoryAutocomplete = (inProps) => {
78
76
  const handleClose = () => {
79
77
  setOpen(false);
80
78
  };
81
- const handleChange = (event, value) => {
79
+ const handleChange = (_event, value) => {
82
80
  let newValue = null;
83
81
  if (multiple && limitCountCategories > 0) {
84
82
  const [...rest] = value;
@@ -95,9 +93,9 @@ const CategoryAutocomplete = (inProps) => {
95
93
  }, renderOption: (props, option, { selected, inputValue }) => {
96
94
  const matches = match(option.name, inputValue);
97
95
  const parts = parse(option.name, matches);
98
- return (_jsxs("li", Object.assign({}, props, { children: [checkboxSelect && _jsx(Checkbox, { style: { marginRight: 8 }, checked: selected }), _jsx(Chip, { label: _jsx(React.Fragment, { children: parts.map((part, index) => (_jsx("span", Object.assign({ style: { fontWeight: part.highlight ? 700 : 400 } }, { children: part.text }), index))) }) })] })));
96
+ return (_jsxs("li", Object.assign({}, props, { children: [checkboxSelect && _jsx(Checkbox, { style: { marginRight: 8 }, checked: selected }), _jsx(Chip, { label: _jsx(Fragment, { children: parts.map((part, index) => (_jsx("span", Object.assign({ style: { fontWeight: part.highlight ? 700 : 400 } }, { children: part.text }), index))) }) })] })));
99
97
  }, renderInput: (params) => {
100
- return (_jsx(TextField, Object.assign({}, params, TextFieldProps, { margin: "dense", InputProps: Object.assign(Object.assign({}, params.InputProps), { autoComplete: 'categories', endAdornment: (_jsxs(React.Fragment, { children: [isLoading ? _jsx(CircularProgress, { color: "inherit", size: 20 }) : null, params.InputProps.endAdornment] })) }) })));
98
+ return (_jsx(TextField, Object.assign({}, params, TextFieldProps, { margin: "dense", InputProps: Object.assign(Object.assign({}, params.InputProps), { autoComplete: 'categories', endAdornment: (_jsxs(Fragment, { children: [isLoading ? _jsx(CircularProgress, { color: "inherit", size: 20 }) : null, params.InputProps.endAdornment] })) }) })));
101
99
  } }, rest)));
102
100
  };
103
101
  export default CategoryAutocomplete;
@@ -105,6 +105,11 @@ export interface CommentObjectProps {
105
105
  * @default CacheStrategies.CACHE_FIRST
106
106
  */
107
107
  cacheStrategy?: CacheStrategies;
108
+ /**
109
+ * Prop to show comment actions section (below text)
110
+ * @default true
111
+ */
112
+ showActions?: boolean;
108
113
  /**
109
114
  * Other props
110
115
  */
@@ -95,7 +95,7 @@ export default function CommentObject(inProps) {
95
95
  props: inProps,
96
96
  name: PREFIX
97
97
  });
98
- const { id = `comment_object_${props.commentObjectId ? props.commentObjectId : props.commentObject ? props.commentObject.id : ''}`, className, commentObjectId, commentObject, feedObjectId, feedObject, feedObjectType = SCContributionType.POST, commentReply, onOpenReply, onDelete, onCollapsed, onRestore, onVote, elevation = 0, truncateContent = false, CommentObjectSkeletonProps = { elevation, WidgetProps: { variant: 'outlined' } }, CommentObjectReplyProps = { elevation, WidgetProps: { variant: 'outlined' } }, linkableCommentDateTime = true, cacheStrategy = CacheStrategies.NETWORK_ONLY, CommentsObjectComponentProps = {} } = props, rest = __rest(props, ["id", "className", "commentObjectId", "commentObject", "feedObjectId", "feedObject", "feedObjectType", "commentReply", "onOpenReply", "onDelete", "onCollapsed", "onRestore", "onVote", "elevation", "truncateContent", "CommentObjectSkeletonProps", "CommentObjectReplyProps", "linkableCommentDateTime", "cacheStrategy", "CommentsObjectComponentProps"]);
98
+ const { id = `comment_object_${props.commentObjectId ? props.commentObjectId : props.commentObject ? props.commentObject.id : ''}`, className, commentObjectId, commentObject, feedObjectId, feedObject, feedObjectType = SCContributionType.POST, commentReply, onOpenReply, onDelete, onCollapsed, onRestore, onVote, elevation = 0, truncateContent = false, CommentObjectSkeletonProps = { elevation, WidgetProps: { variant: 'outlined' } }, CommentObjectReplyProps = { elevation, WidgetProps: { variant: 'outlined' } }, linkableCommentDateTime = true, cacheStrategy = CacheStrategies.NETWORK_ONLY, CommentsObjectComponentProps = {}, showActions = true } = props, rest = __rest(props, ["id", "className", "commentObjectId", "commentObject", "feedObjectId", "feedObject", "feedObjectType", "commentReply", "onOpenReply", "onDelete", "onCollapsed", "onRestore", "onVote", "elevation", "truncateContent", "CommentObjectSkeletonProps", "CommentObjectReplyProps", "linkableCommentDateTime", "cacheStrategy", "CommentsObjectComponentProps", "showActions"]);
99
99
  // CONTEXT
100
100
  const scContext = useSCContext();
101
101
  const scUserContext = useContext(SCUserContext);
@@ -302,7 +302,7 @@ export default function CommentObject(inProps) {
302
302
  const summaryHtmlTruncated = 'summary_truncated' in comment ? comment.summary_truncated : false;
303
303
  const commentHtml = 'summary_html' in comment && truncateContent && summaryHtmlTruncated ? comment.summary_html : comment.html;
304
304
  const summaryHtml = getCommentContributionHtml(commentHtml, scRoutingContext.url);
305
- return (_jsxs(React.Fragment, { children: [collapsed ? (_jsx(BaseItem, { elevation: 0, className: classes.comment, disableTypography: true, primary: _jsxs(Widget, Object.assign({ className: classNames(classes.content, classes.collapsed), elevation: elevation }, rest, { children: [_jsx(CardContent, Object.assign({ className: classNames({ [classes.deleted]: obj && obj.deleted }) }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.collapsed", defaultMessage: "ui.commentObject.collapsed" }) })), _jsx(Box, Object.assign({ className: classes.commentActionsMenu }, { children: _jsx(IconButton, Object.assign({ onClick: () => setCollapsed(!collapsed) }, { children: _jsx(Icon, { children: "visibility" }) })) }))] })) })) : editComment && editComment.id === comment.id ? (_jsx(Box, Object.assign({ className: classes.comment }, { children: _jsx(CommentObjectReply, Object.assign({ text: comment.html, autoFocus: true, id: `edit-${comment.id}`, onSave: handleSave, onCancel: handleCancel, editable: !isReplying || !isSavingComment }, CommentObjectReplyProps)) }))) : (_jsx(BaseItem, { elevation: 0, className: classes.comment, image: _jsx(Link, Object.assign({}, (!comment.author.deleted && { to: scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, comment.author) }), { onClick: comment.author.deleted ? () => setOpenAlert(true) : null }, { children: _jsx(UserAvatar, Object.assign({ hide: !obj.author.community_badge }, { children: _jsx(Avatar, { alt: obj.author.username, variant: "circular", src: comment.author.avatar, className: classes.avatar }) })) })), disableTypography: true, primary: _jsxs(_Fragment, { children: [_jsxs(Widget, Object.assign({ className: classes.content, elevation: elevation }, rest, { children: [_jsxs(CardContent, Object.assign({ className: classNames({ [classes.deleted]: obj && obj.deleted }) }, { children: [_jsx(Link, Object.assign({ className: classes.author }, (!comment.author.deleted && { to: scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, comment.author) }), { onClick: comment.author.deleted ? () => setOpenAlert(true) : null }, { children: _jsx(Typography, Object.assign({ component: "span" }, { children: comment.author.username })) })), comment.collapsed && (_jsx(Chip, { className: classes.flagChip, color: "error", size: "small", label: _jsx(FormattedMessage, { id: "ui.commentObject.flag", defaultMessage: "ui.commentObject.flag" }) })), _jsx(Typography, { className: classes.textContent, variant: "body2", gutterBottom: true, dangerouslySetInnerHTML: { __html: summaryHtml } }), summaryHtmlTruncated && truncateContent && (_jsx(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.COMMENT_ROUTE_NAME, getRouteData(comment)), className: classes.showMoreContent }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.showMore", defaultMessage: "ui.commentObject.showMore" }) })))] })), scUserContext.user && (_jsx(Box, Object.assign({ className: classes.commentActionsMenu }, { children: _jsx(ContributionActionsMenu, { commentObject: comment, onRestoreContribution: handleRestore, onHideContribution: handleHide, onDeleteContribution: handleDelete, onEditContribution: handleEdit }) })))] })), _jsxs(Box, Object.assign({ component: "span", className: classes.contentSubSection }, { children: [renderTimeAgo(comment), _jsx(Bullet, {}), _jsx(VoteButton, { size: "small", className: classes.vote, contributionId: comment.id, contributionType: SCContributionType.COMMENT, contribution: comment, onVote: handleVoteSuccess }), _jsx(Bullet, {}), renderActionReply(comment), _jsx(VoteAudienceButton, { size: "small", className: classes.voteAudience, contributionId: comment.id, contributionType: SCContributionType.COMMENT, contribution: comment })] }))] }) })), comment.comment_count > 0 && _jsx(Box, Object.assign({ className: classes.nestedComments }, { children: renderLatestComment(comment) })), scUserContext.user && replyComment && (replyComment.id === comment.id || replyComment.parent === comment.id) && !comment.parent && (_jsx(Box, Object.assign({ className: classes.nestedComments }, { children: _jsx(CommentObjectReply, Object.assign({ text: `@${replyComment.author.username}, `, autoFocus: true, id: `reply-${replyComment.id}`, onReply: handleReply, editable: !isReplying }, CommentObjectReplyProps), `reply-${replyComment.id}`) })))] }, comment.id));
305
+ return (_jsxs(React.Fragment, { children: [collapsed ? (_jsx(BaseItem, { elevation: 0, className: classes.comment, disableTypography: true, primary: _jsxs(Widget, Object.assign({ className: classNames(classes.content, classes.collapsed), elevation: elevation }, rest, { children: [_jsx(CardContent, Object.assign({ className: classNames({ [classes.deleted]: obj && obj.deleted }) }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.collapsed", defaultMessage: "ui.commentObject.collapsed" }) })), _jsx(Box, Object.assign({ className: classes.commentActionsMenu }, { children: _jsx(IconButton, Object.assign({ onClick: () => setCollapsed(!collapsed) }, { children: _jsx(Icon, { children: "visibility" }) })) }))] })) })) : editComment && editComment.id === comment.id ? (_jsx(Box, Object.assign({ className: classes.comment }, { children: _jsx(CommentObjectReply, Object.assign({ text: comment.html, autoFocus: true, id: `edit-${comment.id}`, onSave: handleSave, onCancel: handleCancel, editable: !isReplying || !isSavingComment }, CommentObjectReplyProps)) }))) : (_jsx(BaseItem, { elevation: 0, className: classes.comment, image: _jsx(Link, Object.assign({}, (!comment.author.deleted && { to: scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, comment.author) }), { onClick: comment.author.deleted ? () => setOpenAlert(true) : null }, { children: _jsx(UserAvatar, Object.assign({ hide: !obj.author.community_badge }, { children: _jsx(Avatar, { alt: obj.author.username, variant: "circular", src: comment.author.avatar, className: classes.avatar }) })) })), disableTypography: true, primary: _jsxs(_Fragment, { children: [_jsxs(Widget, Object.assign({ className: classes.content, elevation: elevation }, rest, { children: [_jsxs(CardContent, Object.assign({ className: classNames({ [classes.deleted]: obj && obj.deleted }) }, { children: [_jsx(Link, Object.assign({ className: classes.author }, (!comment.author.deleted && { to: scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, comment.author) }), { onClick: comment.author.deleted ? () => setOpenAlert(true) : null }, { children: _jsx(Typography, Object.assign({ component: "span" }, { children: comment.author.username })) })), comment.collapsed && (_jsx(Chip, { className: classes.flagChip, color: "error", size: "small", label: _jsx(FormattedMessage, { id: "ui.commentObject.flag", defaultMessage: "ui.commentObject.flag" }) })), _jsx(Typography, { className: classes.textContent, variant: "body2", gutterBottom: true, dangerouslySetInnerHTML: { __html: summaryHtml } }), summaryHtmlTruncated && truncateContent && (_jsx(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.COMMENT_ROUTE_NAME, getRouteData(comment)), className: classes.showMoreContent }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.showMore", defaultMessage: "ui.commentObject.showMore" }) })))] })), scUserContext.user && (_jsx(Box, Object.assign({ className: classes.commentActionsMenu }, { children: _jsx(ContributionActionsMenu, { commentObject: comment, onRestoreContribution: handleRestore, onHideContribution: handleHide, onDeleteContribution: handleDelete, onEditContribution: handleEdit }) })))] })), showActions && (_jsxs(Box, Object.assign({ component: "span", className: classes.contentSubSection }, { children: [renderTimeAgo(comment), _jsx(Bullet, {}), _jsx(VoteButton, { size: "small", className: classes.vote, contributionId: comment.id, contributionType: SCContributionType.COMMENT, contribution: comment, onVote: handleVoteSuccess }), _jsx(Bullet, {}), renderActionReply(comment), _jsx(VoteAudienceButton, { size: "small", className: classes.voteAudience, contributionId: comment.id, contributionType: SCContributionType.COMMENT, contribution: comment })] })))] }) })), comment.comment_count > 0 && _jsx(Box, Object.assign({ className: classes.nestedComments }, { children: renderLatestComment(comment) })), scUserContext.user && replyComment && (replyComment.id === comment.id || replyComment.parent === comment.id) && !comment.parent && (_jsx(Box, Object.assign({ className: classes.nestedComments }, { children: _jsx(CommentObjectReply, Object.assign({ text: `@${replyComment.author.username}, `, autoFocus: true, id: `reply-${replyComment.id}`, onReply: handleReply, editable: !isReplying }, CommentObjectReplyProps), `reply-${replyComment.id}`) })))] }, comment.id));
306
306
  }
307
307
  /**
308
308
  * Render Latest Comment
@@ -1,4 +1,6 @@
1
1
  import { WidgetProps } from '../Widget';
2
+ import { EditorProps } from '../Editor';
3
+ import { SCMediaType } from '@selfcommunity/types';
2
4
  export interface CommentObjectReplyProps extends WidgetProps {
3
5
  /**
4
6
  * Bind focus on mount
@@ -9,12 +11,12 @@ export interface CommentObjectReplyProps extends WidgetProps {
9
11
  * Callback invoked after reply
10
12
  * @param comment
11
13
  */
12
- onReply?: (comment: any) => void;
14
+ onReply?: (comment: any, medias?: any) => void;
13
15
  /**
14
16
  * Callback invoked after save/edit
15
17
  * @param comment
16
18
  */
17
- onSave?: (comment: any) => void;
19
+ onSave?: (comment: any, medias?: any) => void;
18
20
  /**
19
21
  * Callback invoked after disccard save/edit
20
22
  * @param comment
@@ -30,11 +32,31 @@ export interface CommentObjectReplyProps extends WidgetProps {
30
32
  * @default ''
31
33
  */
32
34
  text?: string;
35
+ /**
36
+ * Initial media content
37
+ * @default ''
38
+ */
39
+ medias?: SCMediaType[];
33
40
  /**
34
41
  * Initial content
35
42
  * @default {variant: 'outlined'}
36
43
  */
37
44
  WidgetProps?: WidgetProps;
45
+ /**
46
+ * Initial content
47
+ * @default {}
48
+ */
49
+ EditorProps?: EditorProps;
50
+ /**
51
+ * Prop to show user avatar
52
+ * @default true
53
+ */
54
+ showAvatar?: boolean;
55
+ /**
56
+ * Prop to show a reply icon instead of the button
57
+ * @default false
58
+ */
59
+ replyIcon?: boolean;
38
60
  /**
39
61
  * Other props
40
62
  */
@@ -4,7 +4,7 @@ import { useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { styled } from '@mui/material/styles';
5
5
  import Widget from '../Widget';
6
6
  import { FormattedMessage } from 'react-intl';
7
- import { Avatar, Stack, useMediaQuery, useTheme } from '@mui/material';
7
+ import { Avatar, Icon, IconButton, Stack, useMediaQuery, useTheme } from '@mui/material';
8
8
  import { useSCUser } from '@selfcommunity/react-core';
9
9
  import Editor from '../Editor';
10
10
  import classNames from 'classnames';
@@ -12,14 +12,17 @@ import { LoadingButton } from '@mui/lab';
12
12
  import BaseItem from '../../shared/BaseItem';
13
13
  import UserAvatar from '../../shared/UserAvatar';
14
14
  import { useThemeProps } from '@mui/system';
15
+ import PreviewComponent from '../../shared/Media/File/PreviewComponent';
15
16
  const PREFIX = 'SCCommentObjectReply';
16
17
  const classes = {
17
18
  root: `${PREFIX}-root`,
18
19
  comment: `${PREFIX}-comment`,
20
+ media: `${PREFIX}-media`,
19
21
  hasValue: `${PREFIX}-has-value`,
20
22
  avatar: `${PREFIX}-avatar`,
21
23
  actions: `${PREFIX}-actions`,
22
24
  buttonReply: `${PREFIX}-button-reply`,
25
+ iconReply: `${PREFIX}-icon-reply`,
23
26
  buttonSave: `${PREFIX}-button-save`,
24
27
  buttonCancel: `${PREFIX}-button-cancel`
25
28
  };
@@ -62,11 +65,13 @@ export default function CommentObjectReply(inProps) {
62
65
  props: inProps,
63
66
  name: PREFIX
64
67
  });
65
- const { id = 'CommentObjectReply', className, elevation = 0, autoFocus = false, onReply, onSave, onCancel, editable = true, text = '', WidgetProps = { variant: 'outlined' } } = props, rest = __rest(props, ["id", "className", "elevation", "autoFocus", "onReply", "onSave", "onCancel", "editable", "text", "WidgetProps"]);
68
+ const { id = 'CommentObjectReply', className, elevation = 0, autoFocus = false, onReply, onSave, onCancel, editable = true, text = '', medias = [], WidgetProps = { variant: 'outlined' }, EditorProps = {}, showAvatar = true, replyIcon = false } = props, rest = __rest(props, ["id", "className", "elevation", "autoFocus", "onReply", "onSave", "onCancel", "editable", "text", "medias", "WidgetProps", "EditorProps", "showAvatar", "replyIcon"]);
66
69
  // CONTEXT
67
70
  const scUserContext = useSCUser();
68
71
  // RETRIEVE OBJECTS
69
72
  const [html, setHtml] = useState(text);
73
+ const [media, setMedia] = useState(medias !== null && medias !== void 0 ? medias : []);
74
+ const [uploadingMedia, setUploadingMedia] = useState(false);
70
75
  // HOOKS
71
76
  const theme = useTheme();
72
77
  const isMobile = useMediaQuery(theme.breakpoints.down('md'));
@@ -91,13 +96,13 @@ export default function CommentObjectReply(inProps) {
91
96
  * Handle Replay
92
97
  */
93
98
  const handleReply = () => {
94
- onReply && onReply(html);
99
+ onReply && onReply(html, media && media.length > 0 ? media : null);
95
100
  };
96
101
  /**
97
102
  * Handle Save
98
103
  */
99
104
  const handleSave = () => {
100
- onSave && onSave(html);
105
+ onSave && onSave(html, media && media.length > 0 ? media : null);
101
106
  };
102
107
  /**
103
108
  * Handle cancel save
@@ -111,6 +116,12 @@ export default function CommentObjectReply(inProps) {
111
116
  const handleChangeText = (value) => {
112
117
  setHtml(value);
113
118
  };
119
+ const handleChangeMedia = (value) => {
120
+ setMedia((prev) => [...prev, value]);
121
+ };
122
+ const handleChangeMedias = (value) => {
123
+ setMedia([...value]);
124
+ };
114
125
  /**
115
126
  * Check if editor is empty
116
127
  */
@@ -119,5 +130,7 @@ export default function CommentObjectReply(inProps) {
119
130
  return _html === '' || _html === '<p class="SCEditor-paragraph"></p>' || _html === '<p class="SCEditor-paragraph"><br></p>';
120
131
  }, [html]);
121
132
  // RENDER
122
- return (_jsx(Root, Object.assign({ id: id }, rest, { disableTypography: true, onClick: handleEditorFocus, elevation: elevation, className: classNames(classes.root, className), image: !scUserContext.user ? (_jsx(Avatar, { variant: "circular", className: classes.avatar })) : (_jsx(UserAvatar, Object.assign({ hide: !scUserContext.user.community_badge }, { children: _jsx(Avatar, { alt: scUserContext.user.username, variant: "circular", src: scUserContext.user.avatar, classes: { root: classes.avatar } }) }))), secondary: _jsxs(Widget, Object.assign({ className: classNames(classes.comment, { [classes.hasValue]: !isEditorEmpty }) }, WidgetProps, { children: [_jsx(Editor, { ref: editor, onChange: handleChangeText, defaultValue: html, editable: editable, uploadImage: true }), !isEditorEmpty && (_jsxs(Stack, Object.assign({ direction: "row", spacing: 2, className: classes.actions }, { children: [onReply && (_jsx(LoadingButton, Object.assign({ variant: "outlined", size: "small", onClick: handleReply, loading: !editable, className: classes.buttonReply }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.replyComment.reply", defaultMessage: "ui.commentObject.replyComment.reply" }) }))), onSave && (_jsxs(_Fragment, { children: [onCancel && (_jsx(LoadingButton, Object.assign({ variant: 'text', size: "small", onClick: handleCancel, disabled: !editable, color: "inherit", className: classes.buttonCancel }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.replyComment.cancel", defaultMessage: "ui.commentObject.replyComment.cancel" }) }))), _jsx(LoadingButton, Object.assign({ variant: "outlined", size: "small", onClick: handleSave, loading: !editable, className: classes.buttonSave }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.replyComment.save", defaultMessage: "ui.commentObject.replyComment.save" }) }))] }))] })))] })) })));
133
+ return (_jsx(Root, Object.assign({ id: id }, rest, { disableTypography: true, onClick: handleEditorFocus, elevation: elevation, className: classNames(classes.root, className), image: showAvatar &&
134
+ (!scUserContext.user ? (_jsx(Avatar, { variant: "circular", className: classes.avatar })) : (_jsx(UserAvatar, Object.assign({ hide: !scUserContext.user.community_badge }, { children: _jsx(Avatar, { alt: scUserContext.user.username, variant: "circular", src: scUserContext.user.avatar, classes: { root: classes.avatar } }) })))), secondary: _jsxs(Widget, Object.assign({ className: classNames(classes.comment, { [classes.hasValue]: !isEditorEmpty }) }, WidgetProps, { children: [media && media.length > 0 && _jsx(PreviewComponent, { value: media, onChange: handleChangeMedias, className: classes.media }), _jsx(Editor, Object.assign({ ref: editor, onChange: handleChangeText, defaultValue: html, editable: editable, uploadImage: true, action: replyIcon &&
135
+ onReply && (_jsx(IconButton, Object.assign({ onClick: handleReply, className: classes.iconReply, disabled: uploadingMedia }, { children: _jsx(Icon, { children: "send" }) }))) }, EditorProps, { MediaPluginProps: { isUploading: setUploadingMedia, onMediaAdd: handleChangeMedia } })), !isEditorEmpty && (_jsxs(Stack, Object.assign({ direction: "row", spacing: 2, className: classes.actions }, { children: [onReply && !replyIcon && (_jsx(LoadingButton, Object.assign({ variant: "outlined", size: "small", onClick: handleReply, loading: !editable, className: classes.buttonReply }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.replyComment.reply", defaultMessage: "ui.commentObject.replyComment.reply" }) }))), onSave && (_jsxs(_Fragment, { children: [onCancel && (_jsx(LoadingButton, Object.assign({ variant: 'text', size: "small", onClick: handleCancel, disabled: !editable, color: "inherit", className: classes.buttonCancel }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.replyComment.cancel", defaultMessage: "ui.commentObject.replyComment.cancel" }) }))), _jsx(LoadingButton, Object.assign({ variant: "outlined", size: "small", onClick: handleSave, loading: !editable, className: classes.buttonSave }, { children: _jsx(FormattedMessage, { id: "ui.commentObject.replyComment.save", defaultMessage: "ui.commentObject.replyComment.save" }) }))] }))] })))] })) })));
123
136
  }
@@ -0,0 +1,38 @@
1
+ import { BoxProps } from '@mui/material';
2
+ import { EditorProps } from '../../../Editor';
3
+ import { SCMediaType } from '@selfcommunity/types';
4
+ export interface ContentLessonProps extends Omit<BoxProps, 'value' | 'onChange'> {
5
+ /**
6
+ * Value of the component
7
+ */
8
+ value?: any;
9
+ /**
10
+ * Widgets to insert into the feed
11
+ * @default empty array
12
+ */
13
+ error?: any;
14
+ /**
15
+ * All the inputs should be disabled?
16
+ * @default false
17
+ */
18
+ disabled?: boolean;
19
+ /**
20
+ * Callback for change html
21
+ * @param value
22
+ * @default empty object
23
+ */
24
+ onChange: (html: string) => void;
25
+ /**
26
+ * Callback for media change
27
+ * @param media
28
+ * @default null
29
+ */
30
+ onMediaChange: (medias: SCMediaType[]) => void;
31
+ /**
32
+ * Props to spread into the editor object
33
+ * @default empty object
34
+ */
35
+ EditorProps?: EditorProps;
36
+ }
37
+ declare const _default: (props: ContentLessonProps) => JSX.Element;
38
+ export default _default;
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { Box, Icon, IconButton, InputAdornment, Typography } from '@mui/material';
4
+ import { styled } from '@mui/material/styles';
5
+ import classNames from 'classnames';
6
+ import Editor from '../../../Editor';
7
+ import { FormattedMessage } from 'react-intl';
8
+ import { PREFIX } from '../../constants';
9
+ import { File, Link } from '../../../../shared/Media';
10
+ import UrlTextField from '../../../../shared/Media/Link/UrlTextField';
11
+ const classes = {
12
+ root: `${PREFIX}-content-lesson-root`,
13
+ generalError: `${PREFIX}-general-error`,
14
+ title: `${PREFIX}-content-lesson-title`,
15
+ medias: `${PREFIX}-content-lesson-medias`,
16
+ editor: `${PREFIX}-content-lesson-editor`,
17
+ link: `${PREFIX}-content-lesson-link`
18
+ };
19
+ const Root = styled(Box, {
20
+ name: PREFIX,
21
+ slot: 'ContentLessonRoot'
22
+ })(({ theme }) => ({}));
23
+ export default (props) => {
24
+ // PROPS
25
+ const { className = null, value, error = {}, disabled = false, onChange, onMediaChange, EditorProps = {} } = props;
26
+ const { error: generalError = null } = Object.assign({}, error);
27
+ const mediaObjectTypes = [File, Link];
28
+ const [medias, setMedias] = useState((value === null || value === void 0 ? void 0 : value.medias) || []);
29
+ const [openLink, setOpenLink] = useState();
30
+ const linkInputRef = useRef(null);
31
+ // HANDLERS
32
+ const handleChangeHtml = useCallback((html) => {
33
+ onChange(html);
34
+ }, [value]);
35
+ const handleChangeMedias = useCallback((value) => {
36
+ setMedias([...value]);
37
+ onMediaChange([...value]);
38
+ }, []);
39
+ const handleChangeMedia = (value) => {
40
+ setMedias((prev) => [...prev, value]);
41
+ onMediaChange([...medias, value]);
42
+ };
43
+ const handleLinkAdd = useCallback((media) => {
44
+ setMedias([...medias, media]);
45
+ setOpenLink(false);
46
+ }, [medias]);
47
+ useEffect(() => {
48
+ if (openLink && linkInputRef.current) {
49
+ linkInputRef.current.scrollIntoView({ behavior: 'smooth' });
50
+ }
51
+ }, [openLink]);
52
+ // RENDER
53
+ return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [generalError && (_jsx(Typography, Object.assign({ className: classes.generalError }, { children: _jsx(FormattedMessage, { id: `ui.composer.error.${generalError}`, defaultMessage: `ui.composer.error.${generalError}` }) }))), _jsx(Editor, Object.assign({}, EditorProps, { editable: !disabled, className: classes.editor, onChange: handleChangeHtml, onMediaChange: handleChangeMedia, defaultValue: value.html, ToolBarProps: {
54
+ customLink: _jsx(Link.triggerButton, { color: "default", onClick: () => setOpenLink(true) }, Link.name),
55
+ uploadImage: false,
56
+ uploadFile: true
57
+ } })), openLink && (_jsx(UrlTextField, { inputRef: linkInputRef, className: classes.link, id: "page", name: "page", label: _jsx(FormattedMessage, { id: "ui.composer.media.link.add.label", defaultMessage: "ui.composer.media.link.add.label" }), fullWidth: true, variant: "outlined", placeholder: "https://", onSuccess: handleLinkAdd, InputProps: {
58
+ endAdornment: (_jsx(InputAdornment, Object.assign({ position: "end" }, { children: _jsx(IconButton, Object.assign({ onClick: () => setOpenLink(false) }, { children: _jsx(Icon, { children: "close" }) })) })))
59
+ } })), medias && medias.length > 0 && (_jsx(Box, Object.assign({ className: classes.medias }, { children: mediaObjectTypes.map((mediaObjectType) => {
60
+ if (mediaObjectType.previewComponent) {
61
+ return _jsx(mediaObjectType.previewComponent, { value: medias, onChange: handleChangeMedias }, mediaObjectType.name);
62
+ }
63
+ }) })))] })));
64
+ };
@@ -0,0 +1,3 @@
1
+ import ContentLesson, { ContentLessonProps } from './ContentLesson';
2
+ export default ContentLesson;
3
+ export { ContentLessonProps };
@@ -0,0 +1,2 @@
1
+ import ContentLesson from './ContentLesson';
2
+ export default ContentLesson;
@@ -76,10 +76,10 @@ const AudienceLayer = React.forwardRef((props, ref) => {
76
76
  ? onSave(value)
77
77
  : onSave((value === null || value === void 0 ? void 0 : value.length) && (value === null || value === void 0 ? void 0 : value.length) > 0 ? value : null);
78
78
  }, [value, onSave, audience]);
79
- const handleChange = useCallback((event, tags) => setValue(tags), []);
79
+ const handleChange = useCallback((_event, tags) => setValue(tags), []);
80
80
  const handleEventChange = useCallback((event) => setValue(event), []);
81
81
  const handleGroupChange = useCallback((group) => setValue(group), []);
82
- const handleChangeAudience = useCallback((event, data) => setAudience(data), []);
82
+ const handleChangeAudience = useCallback((_event, data) => setAudience(data), []);
83
83
  const handleAutocompleteOpen = useCallback(() => setAutocompleteOpen(true), []);
84
84
  const handleAutocompleteClose = useCallback(() => setAutocompleteOpen(false), []);
85
85
  return (_jsxs(Root, Object.assign({ ref: ref, className: classNames(className, classes.root) }, rest, { children: [_jsxs(DialogTitle, Object.assign({ className: classes.title }, { children: [_jsx(IconButton, Object.assign({ onClick: onClose }, { children: _jsx(Icon, { children: "arrow_back" }) })), _jsx(Typography, { children: _jsx(FormattedMessage, { id: "ui.composer.layer.audience.title", defaultMessage: "ui.composer.layer.audience.title" }) }), _jsx(Button, Object.assign({ size: "small", color: "secondary", variant: "contained", onClick: handleSave }, { children: _jsx(FormattedMessage, { id: "ui.composer.layer.save", defaultMessage: "ui.composer.layer.save" }) }))] })), _jsxs(DialogContent, Object.assign({ className: classes.content }, { children: [_jsxs(Tabs, Object.assign({ value: audience, onChange: handleChangeAudience, "aria-label": "audience type" }, { children: [_jsx(Tab, { value: AudienceTypes.AUDIENCE_ALL, icon: _jsx(Icon, { children: "public" }), label: _jsx(FormattedMessage, { id: "ui.composer.layer.audience.all", defaultMessage: "ui.composer.layer.audience.all" }) }), eventsEnabled && (_jsx(Tab, { disabled: (Boolean(value === null || value === void 0 ? void 0 : value.length) && !Object.prototype.hasOwnProperty.call(value, 'recurring')) ||