@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
@@ -4,6 +4,7 @@ import { ComposerProps } from '../Composer';
4
4
  import { EventFormDialogProps } from '../EventFormDialog';
5
5
  import { GroupFormProps } from '../GroupForm';
6
6
  import { CreateLiveStreamDialogProps } from '../CreateLiveStreamDialog';
7
+ import { CourseFormDialogProps } from '../CourseFormDialog';
7
8
  export interface ComposerIconButtonProps extends IconButtonProps {
8
9
  /**
9
10
  * Composer Props
@@ -20,18 +21,23 @@ export interface ComposerIconButtonProps extends IconButtonProps {
20
21
  * @default empty object
21
22
  */
22
23
  PopperProps?: PopperProps;
24
+ /**
25
+ * Props to spread to CreateCourse component
26
+ * @default empty object
27
+ */
28
+ CourseFormDialogComponentProps?: CourseFormDialogProps;
23
29
  /**
24
30
  * Props to spread to CreateGroup component
25
31
  * @default empty object
26
32
  */
27
33
  GroupFormProps?: GroupFormProps;
28
34
  /**
29
- * Props to spread to CreateGroup component
35
+ * Props to spread to CreateEvent component
30
36
  * @default empty object
31
37
  */
32
38
  EventFormDialogComponentProps?: EventFormDialogProps;
33
39
  /**
34
- * Props to spread to CreateGroup component
40
+ * Props to spread to CreateLiveStream component
35
41
  * @default empty object
36
42
  */
37
43
  CreateLiveStreamDialogComponentProps?: CreateLiveStreamDialogProps;
@@ -58,5 +64,5 @@ export interface ComposerIconButtonProps extends IconButtonProps {
58
64
 
59
65
  * @param inProps
60
66
  */
61
- declare const _default: React.ForwardRefExoticComponent<Pick<ComposerIconButtonProps, "id" | "role" | "className" | "style" | "classes" | "form" | "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "sx" | "component" | "name" | "onClose" | "type" | "autoFocus" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "action" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "PopperProps" | "ComposerProps" | "GroupFormProps" | "EventFormDialogComponentProps" | "CreateLiveStreamDialogComponentProps"> & React.RefAttributes<HTMLButtonElement>>;
67
+ declare const _default: React.ForwardRefExoticComponent<Pick<ComposerIconButtonProps, "id" | "role" | "className" | "style" | "classes" | "form" | "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "sx" | "component" | "name" | "onClose" | "type" | "autoFocus" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "action" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "PopperProps" | "ComposerProps" | "CourseFormDialogComponentProps" | "GroupFormProps" | "EventFormDialogComponentProps" | "CreateLiveStreamDialogComponentProps"> & React.RefAttributes<HTMLButtonElement>>;
62
68
  export default _default;
@@ -14,6 +14,7 @@ const classnames_1 = tslib_1.__importDefault(require("classnames"));
14
14
  const GroupForm_1 = tslib_1.__importDefault(require("../GroupForm"));
15
15
  const CreateLiveStreamDialog_1 = tslib_1.__importDefault(require("../CreateLiveStreamDialog"));
16
16
  const types_1 = require("@selfcommunity/types");
17
+ const CourseFormDialog_1 = tslib_1.__importDefault(require("../CourseFormDialog"));
17
18
  const PREFIX = 'SCComposerIconButton';
18
19
  const classes = {
19
20
  root: `${PREFIX}-root`,
@@ -51,16 +52,17 @@ const MenuRoot = (0, material_1.styled)(material_1.Menu, {
51
52
  * @param inProps
52
53
  */
53
54
  exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps, ref) {
54
- var _a, _b, _c;
55
+ var _a, _b, _c, _d;
55
56
  // PROPS
56
57
  const props = (0, material_1.useThemeProps)({
57
58
  props: inProps,
58
59
  name: PREFIX
59
60
  });
60
- const { className = null, ComposerProps = {}, onClick, onClose, PopperProps = {}, GroupFormProps = {}, EventFormDialogComponentProps = {}, CreateLiveStreamDialogComponentProps = {} } = props, rest = tslib_1.__rest(props, ["className", "ComposerProps", "onClick", "onClose", "PopperProps", "GroupFormProps", "EventFormDialogComponentProps", "CreateLiveStreamDialogComponentProps"]);
61
+ const { className = null, ComposerProps = {}, onClick, onClose, PopperProps = {}, CourseFormDialogComponentProps = {}, GroupFormProps = {}, EventFormDialogComponentProps = {}, CreateLiveStreamDialogComponentProps = {} } = props, rest = tslib_1.__rest(props, ["className", "ComposerProps", "onClick", "onClose", "PopperProps", "CourseFormDialogComponentProps", "GroupFormProps", "EventFormDialogComponentProps", "CreateLiveStreamDialogComponentProps"]);
61
62
  // STATE
62
63
  const [openComposer, setOpenComposer] = (0, react_1.useState)(false);
63
64
  const [openPopper, setOpenPopper] = (0, react_1.useState)(false);
65
+ const [openCreateCourse, setOpenCreateCourse] = (0, react_1.useState)(false);
64
66
  const [openCreateGroup, setOpenCreateGroup] = (0, react_1.useState)(false);
65
67
  const [openCreateEvent, setOpenCreateEvent] = (0, react_1.useState)(false);
66
68
  const [openCreateLiveStream, setOpenCreateLiveStream] = (0, react_1.useState)(false);
@@ -86,9 +88,10 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
86
88
  const isMobile = (0, material_1.useMediaQuery)(theme.breakpoints.down('md'));
87
89
  const { preferences } = (0, react_core_1.useSCPreferences)();
88
90
  // MEMOS
89
- const canCreateGroup = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_group; }, [(_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission]);
90
- const canCreateEvent = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_event; }, [(_b = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _b === void 0 ? void 0 : _b.permission]);
91
- const canCreateLive = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream; }, [(_c = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _c === void 0 ? void 0 : _c.permission]);
91
+ const canCreateCourse = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_course; }, [(_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission]);
92
+ const canCreateGroup = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_group; }, [(_b = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _b === void 0 ? void 0 : _b.permission]);
93
+ const canCreateEvent = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_event; }, [(_c = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _c === void 0 ? void 0 : _c.permission]);
94
+ const canCreateLive = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream; }, [(_d = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _d === void 0 ? void 0 : _d.permission]);
92
95
  const isCommunityOwner = (0, react_1.useMemo)(() => { var _a; return ((_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.id) === 1; }, [scUserContext.user]);
93
96
  const isFreeTrialTier = (0, react_1.useMemo)(() => preferences &&
94
97
  react_core_1.SCPreferences.CONFIGURATIONS_SUBSCRIPTION_TIER in preferences &&
@@ -100,6 +103,19 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
100
103
  }, [listItem]);
101
104
  // EFFECTS
102
105
  (0, react_1.useEffect)(() => {
106
+ if (canCreateCourse) {
107
+ setListItem((prev) => [
108
+ ...prev,
109
+ {
110
+ icon: 'courses',
111
+ text: 'ui.composerIconButton.list.course',
112
+ onClick: () => {
113
+ setOpenCreateCourse(true);
114
+ setOpenPopper(false);
115
+ }
116
+ }
117
+ ]);
118
+ }
103
119
  if (canCreateGroup) {
104
120
  setListItem((prev) => [
105
121
  ...prev,
@@ -139,7 +155,7 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
139
155
  }
140
156
  ]);
141
157
  }
142
- }, [canCreateGroup, setListItem]);
158
+ }, [canCreateCourse, canCreateGroup, canCreateEvent, canCreateLiveStream, setListItem, setOpenPopper, setOpenCreateCourse, setOpenCreateGroup, setOpenCreateEvent, setOpenCreateLiveStream]);
143
159
  // HANDLERS
144
160
  const handleClick = (0, react_1.useCallback)((event) => {
145
161
  if (scUserContext.user) {
@@ -150,7 +166,7 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
150
166
  });
151
167
  }
152
168
  else {
153
- if (canCreateGroup || canCreateEvent || canCreateLiveStream) {
169
+ if (canCreateCourse || canCreateGroup || canCreateEvent || canCreateLiveStream) {
154
170
  setOpenPopper(true);
155
171
  }
156
172
  else {
@@ -162,7 +178,17 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
162
178
  scContext.settings.handleAnonymousAction();
163
179
  }
164
180
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
165
- }, [onClick, scContext.settings, scUserContext.user]);
181
+ }, [
182
+ onClick,
183
+ scContext.settings,
184
+ scUserContext.user,
185
+ canCreateCourse,
186
+ canCreateGroup,
187
+ canCreateEvent,
188
+ canCreateLiveStream,
189
+ setOpenPopper,
190
+ setOpenComposer
191
+ ]);
166
192
  const handleCloseComposer = (0, react_1.useCallback)(() => {
167
193
  setOpenComposer(false);
168
194
  onClose === null || onClose === void 0 ? void 0 : onClose();
@@ -170,6 +196,9 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
170
196
  const handleCloseMenu = (0, react_1.useCallback)(() => {
171
197
  setOpenPopper(false);
172
198
  }, [setOpenPopper]);
199
+ const handleCloseCreateCourse = (0, react_1.useCallback)(() => {
200
+ setOpenCreateCourse(false);
201
+ }, [setOpenCreateCourse]);
173
202
  const handleCloseCreateGroup = (0, react_1.useCallback)(() => {
174
203
  setOpenCreateGroup(false);
175
204
  }, [setOpenCreateGroup]);
@@ -190,5 +219,5 @@ exports.default = react_1.default.forwardRef(function ComposerIconButton(inProps
190
219
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className), onClick: handleClick, ref: (innerRef) => {
191
220
  popperRef.current = innerRef;
192
221
  return ref;
193
- } }, rest, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "add_circle_outline" }) })), openComposer && (0, jsx_runtime_1.jsx)(Composer_1.default, Object.assign({ open: true, fullWidth: true, onClose: handleCloseComposer, onSuccess: handleSuccess }, ComposerProps)), openPopper && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isMobile ? ((0, jsx_runtime_1.jsx)(material_1.SwipeableDrawer, Object.assign({ open: true, onClose: handleCloseMenu, onOpen: () => null, anchor: "bottom", disableSwipeToOpen: true }, { children: renderContent }))) : ((0, jsx_runtime_1.jsx)(MenuRoot, Object.assign({ open: true, anchorEl: popperRef.current, role: undefined, className: classes.menuRoot, onClose: handleCloseMenu }, PopperProps, { children: renderContent }))) })), openCreateGroup && (0, jsx_runtime_1.jsx)(GroupForm_1.default, Object.assign({ open: true, onClose: handleCloseCreateGroup }, GroupFormProps)), openCreateEvent && (0, jsx_runtime_1.jsx)(EventFormDialog_1.default, Object.assign({ open: true, onClose: handleCloseCreateEvent }, EventFormDialogComponentProps)), openCreateLiveStream && (0, jsx_runtime_1.jsx)(CreateLiveStreamDialog_1.default, Object.assign({ open: true, onClose: handleCloseCreateLiveStream }, CreateLiveStreamDialogComponentProps))] }));
222
+ } }, rest, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "add_circle_outline" }) })), openComposer && (0, jsx_runtime_1.jsx)(Composer_1.default, Object.assign({ open: true, fullWidth: true, onClose: handleCloseComposer, onSuccess: handleSuccess }, ComposerProps)), openPopper && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isMobile ? ((0, jsx_runtime_1.jsx)(material_1.SwipeableDrawer, Object.assign({ open: true, onClose: handleCloseMenu, onOpen: () => null, anchor: "bottom", disableSwipeToOpen: true }, { children: renderContent }))) : ((0, jsx_runtime_1.jsx)(MenuRoot, Object.assign({ open: true, anchorEl: popperRef.current, role: undefined, className: classes.menuRoot, onClose: handleCloseMenu }, PopperProps, { children: renderContent }))) })), openCreateCourse && (0, jsx_runtime_1.jsx)(CourseFormDialog_1.default, Object.assign({ open: true, onClose: handleCloseCreateCourse }, CourseFormDialogComponentProps)), openCreateGroup && (0, jsx_runtime_1.jsx)(GroupForm_1.default, Object.assign({ open: true, onClose: handleCloseCreateGroup }, GroupFormProps)), openCreateEvent && (0, jsx_runtime_1.jsx)(EventFormDialog_1.default, Object.assign({ open: true, onClose: handleCloseCreateEvent }, EventFormDialogComponentProps)), openCreateLiveStream && (0, jsx_runtime_1.jsx)(CreateLiveStreamDialog_1.default, Object.assign({ open: true, onClose: handleCloseCreateLiveStream }, CreateLiveStreamDialogComponentProps))] }));
194
223
  });
@@ -0,0 +1,92 @@
1
+ import { SCCourseType } from '@selfcommunity/types';
2
+ import React from 'react';
3
+ import { SCCourseTemplateType } from '../../types/course';
4
+ import { CourseParticipantsButtonProps } from '../CourseParticipantsButton';
5
+ import { WidgetProps } from '../Widget';
6
+ import { CourseSkeletonProps } from './Skeleton';
7
+ export interface CourseProps extends WidgetProps {
8
+ /**
9
+ * Course Object
10
+ * @default null
11
+ */
12
+ course?: SCCourseType;
13
+ /**
14
+ * Id of the course for filter the feed
15
+ * @default null
16
+ */
17
+ courseId?: number;
18
+ /**
19
+ * Course template type
20
+ * @default 'preview'
21
+ */
22
+ template?: SCCourseTemplateType;
23
+ /**
24
+ * It shows a different snippet type
25
+ */
26
+ userProfileSnippet?: boolean;
27
+ /**
28
+ * Actions
29
+ * @default null
30
+ */
31
+ actions?: React.ReactNode;
32
+ /**
33
+ * Props to spread to CourseParticipantsButton component
34
+ * @default {}
35
+ */
36
+ CourseParticipantsButtonComponentProps?: CourseParticipantsButtonProps;
37
+ /**
38
+ * Props to spread to CourseSkeleton component
39
+ * @default {}
40
+ */
41
+ CourseSkeletonComponentProps?: CourseSkeletonProps;
42
+ /**
43
+ * Any other properties
44
+ */
45
+ [p: string]: any;
46
+ }
47
+ /**
48
+ * > API documentation for the Community-JS Course component. Learn about the available props and the CSS API.
49
+ *
50
+ *
51
+ * This component renders a course item.
52
+ * Take a look at our <strong>demo</strong> component [here](/docs/sdk/community-js/react-ui/Components/Course)
53
+
54
+ #### Import
55
+
56
+ ```jsx
57
+ import {course} from '@selfcommunity/react-ui';
58
+ ```
59
+
60
+ #### Component Name
61
+
62
+ The name `SCCourse` can be used when providing style overrides in the theme.
63
+
64
+
65
+ #### CSS
66
+
67
+ |Rule Name|Global class|Description|
68
+ |---|---|---|
69
+ |root|.SCCourses-root|Styles applied to the root element.|
70
+ |chip|.SCCourses-chip|Styles applied to the chip element.|
71
+ |previewRoot|.SCCourses-preview-root|Styles applied to the root element in the preview template.|
72
+ |previewActions|.SCCourses-preview-actions|Styles applied to the actions section in the preview template.|
73
+ |previewAvatar|.SCCourses-preview-avatar|Styles applied to the avatar in the preview template.|
74
+ |previewCategory|.SCCourses-preview-category|Styles applied to the category element in the preview template.|
75
+ |previewCompletedStatus|.SCCourses-preview-completed-status|Styles applied to indicate the completed status in the preview template.|
76
+ |previewContent|.SCCourses-preview-content|Styles applied to the content section in the preview template.|
77
+ |previewCreator|.SCCourses-preview-creator|Styles applied to the creator element in the preview template.|
78
+ |previewImage|.SCCourses-preview-image|Styles applied to the image in the preview template.|
79
+ |previewImageWrapper|.SCCourses-preview-image-wrapper|Styles applied to the wrapper of the image in the preview template.|
80
+ |previewInfo|.SCCourses-preview-info|Styles applied to the info section in the preview template.|
81
+ |previewName|.SCCourses-preview-name|Styles applied to the name element in the preview template.|
82
+ |previewNameWrapper|.SCCourses-preview-name-wrapper|Styles applied to the name wrapper in the preview template.|
83
+ |previewProgress|.SCCourses-preview-progress|Styles applied to indicate the progress section in the preview template.|
84
+ |previewProgressBar|.SCCourses-preview-progress-bar|Styles applied to the progress bar in the preview template.|
85
+ |snippetRoot|.SCCourses-snippet-root|Styles applied to the root element in the snippet template.|
86
+ |snippetAvatar|.SCCourses-snippet-avatar|Styles applied to the avatar element in the snippet template.|
87
+ |snippetImage|.SCCourses-snippet-image|Styles applied to the image element in the snippet template.|
88
+
89
+ *
90
+ * @param inProps
91
+ */
92
+ export default function Course(inProps: CourseProps): JSX.Element;
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const material_1 = require("@mui/material");
6
+ const styles_1 = require("@mui/material/styles");
7
+ const system_1 = require("@mui/system");
8
+ const react_core_1 = require("@selfcommunity/react-core");
9
+ const types_1 = require("@selfcommunity/types");
10
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
11
+ const react_1 = require("react");
12
+ const react_intl_1 = require("react-intl");
13
+ const course_1 = require("../../types/course");
14
+ const CourseParticipantsButton_1 = tslib_1.__importDefault(require("../CourseParticipantsButton"));
15
+ const Widget_1 = tslib_1.__importDefault(require("../Widget"));
16
+ const constants_1 = require("./constants");
17
+ const Skeleton_1 = tslib_1.__importDefault(require("./Skeleton"));
18
+ const course_2 = require("../../utils/course");
19
+ const UserAvatar_1 = tslib_1.__importDefault(require("../../shared/UserAvatar"));
20
+ const BaseItemButton_1 = tslib_1.__importDefault(require("../../shared/BaseItemButton"));
21
+ const classes = {
22
+ root: `${constants_1.PREFIX}-root`,
23
+ chip: `${constants_1.PREFIX}-chip`,
24
+ previewRoot: `${constants_1.PREFIX}-preview-root`,
25
+ previewActions: `${constants_1.PREFIX}-preview-actions`,
26
+ previewAvatar: `${constants_1.PREFIX}-preview-avatar`,
27
+ previewCategory: `${constants_1.PREFIX}-preview-category`,
28
+ previewCompletedStatus: `${constants_1.PREFIX}-preview-completed-status`,
29
+ previewContent: `${constants_1.PREFIX}-preview-content`,
30
+ previewCreator: `${constants_1.PREFIX}-preview-creator`,
31
+ previewImage: `${constants_1.PREFIX}-preview-image`,
32
+ previewImageWrapper: `${constants_1.PREFIX}-preview-image-wrapper`,
33
+ previewInfo: `${constants_1.PREFIX}-preview-info`,
34
+ previewName: `${constants_1.PREFIX}-preview-name`,
35
+ previewNameWrapper: `${constants_1.PREFIX}-preview-name-wrapper`,
36
+ previewProgress: `${constants_1.PREFIX}-preview-progress`,
37
+ previewProgressBar: `${constants_1.PREFIX}-preview-progress-bar`,
38
+ snippetRoot: `${constants_1.PREFIX}-snippet-root`,
39
+ snippetAvatar: `${constants_1.PREFIX}-snippet-avatar`,
40
+ snippetAvatarUserProfile: `${constants_1.PREFIX}-snippet-avatar-user-profile-view`,
41
+ snippetImage: `${constants_1.PREFIX}-snippet-image`
42
+ };
43
+ const Root = (0, styles_1.styled)(Widget_1.default, {
44
+ name: constants_1.PREFIX,
45
+ slot: 'Root',
46
+ overridesResolver: (_props, styles) => styles.root
47
+ })(() => ({}));
48
+ const PreviewRoot = (0, styles_1.styled)(material_1.Box, {
49
+ name: constants_1.PREFIX,
50
+ slot: 'PreviewRoot',
51
+ overridesResolver: (_props, styles) => styles.previewRoot
52
+ })(() => ({}));
53
+ const SnippetRoot = (0, styles_1.styled)(BaseItemButton_1.default, {
54
+ name: constants_1.PREFIX,
55
+ slot: 'SnippetRoot',
56
+ overridesResolver: (_props, styles) => styles.snippetRoot
57
+ })(() => ({}));
58
+ /**
59
+ * > API documentation for the Community-JS Course component. Learn about the available props and the CSS API.
60
+ *
61
+ *
62
+ * This component renders a course item.
63
+ * Take a look at our <strong>demo</strong> component [here](/docs/sdk/community-js/react-ui/Components/Course)
64
+
65
+ #### Import
66
+
67
+ ```jsx
68
+ import {course} from '@selfcommunity/react-ui';
69
+ ```
70
+
71
+ #### Component Name
72
+
73
+ The name `SCCourse` can be used when providing style overrides in the theme.
74
+
75
+
76
+ #### CSS
77
+
78
+ |Rule Name|Global class|Description|
79
+ |---|---|---|
80
+ |root|.SCCourses-root|Styles applied to the root element.|
81
+ |chip|.SCCourses-chip|Styles applied to the chip element.|
82
+ |previewRoot|.SCCourses-preview-root|Styles applied to the root element in the preview template.|
83
+ |previewActions|.SCCourses-preview-actions|Styles applied to the actions section in the preview template.|
84
+ |previewAvatar|.SCCourses-preview-avatar|Styles applied to the avatar in the preview template.|
85
+ |previewCategory|.SCCourses-preview-category|Styles applied to the category element in the preview template.|
86
+ |previewCompletedStatus|.SCCourses-preview-completed-status|Styles applied to indicate the completed status in the preview template.|
87
+ |previewContent|.SCCourses-preview-content|Styles applied to the content section in the preview template.|
88
+ |previewCreator|.SCCourses-preview-creator|Styles applied to the creator element in the preview template.|
89
+ |previewImage|.SCCourses-preview-image|Styles applied to the image in the preview template.|
90
+ |previewImageWrapper|.SCCourses-preview-image-wrapper|Styles applied to the wrapper of the image in the preview template.|
91
+ |previewInfo|.SCCourses-preview-info|Styles applied to the info section in the preview template.|
92
+ |previewName|.SCCourses-preview-name|Styles applied to the name element in the preview template.|
93
+ |previewNameWrapper|.SCCourses-preview-name-wrapper|Styles applied to the name wrapper in the preview template.|
94
+ |previewProgress|.SCCourses-preview-progress|Styles applied to indicate the progress section in the preview template.|
95
+ |previewProgressBar|.SCCourses-preview-progress-bar|Styles applied to the progress bar in the preview template.|
96
+ |snippetRoot|.SCCourses-snippet-root|Styles applied to the root element in the snippet template.|
97
+ |snippetAvatar|.SCCourses-snippet-avatar|Styles applied to the avatar element in the snippet template.|
98
+ |snippetImage|.SCCourses-snippet-image|Styles applied to the image element in the snippet template.|
99
+
100
+ *
101
+ * @param inProps
102
+ */
103
+ function Course(inProps) {
104
+ var _a, _b, _c, _d, _e, _f, _g;
105
+ // PROPS
106
+ const props = (0, system_1.useThemeProps)({
107
+ props: inProps,
108
+ name: constants_1.PREFIX
109
+ });
110
+ const { id = `course_object_${props.courseId ? props.courseId : props.course ? props.course.id : ''}`, courseId = null, course = null, className = null, template = course_1.SCCourseTemplateType.PREVIEW, actions, CourseParticipantsButtonComponentProps = {}, CourseSkeletonComponentProps = {}, userProfileSnippet } = props, rest = tslib_1.__rest(props, ["id", "courseId", "course", "className", "template", "actions", "CourseParticipantsButtonComponentProps", "CourseSkeletonComponentProps", "userProfileSnippet"]);
111
+ // STATE
112
+ const { scCourse } = (0, react_core_1.useSCFetchCourse)({ id: courseId, course });
113
+ const theme = (0, material_1.useTheme)();
114
+ const isMobile = (0, material_1.useMediaQuery)(theme.breakpoints.between('xs', 'md'));
115
+ const MAX_VISIBLE_CATEGORIES = isMobile ? 3 : 1;
116
+ // CONTEXT
117
+ const scRoutingContext = (0, react_core_1.useSCRouting)();
118
+ const isCourseAdmin = (0, react_1.useMemo)(() => scCourse && (scCourse.join_status === types_1.SCCourseJoinStatusType.CREATOR || scCourse.join_status === types_1.SCCourseJoinStatusType.MANAGER), [scCourse]);
119
+ /**
120
+ * Renders course object
121
+ */
122
+ if (!scCourse) {
123
+ return (0, jsx_runtime_1.jsx)(Skeleton_1.default, Object.assign({ template: template }, CourseSkeletonComponentProps, rest, { actions: actions }));
124
+ }
125
+ const renderProgress = () => {
126
+ if ((0, course_2.isCourseCompleted)(scCourse)) {
127
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.previewCompletedStatus }, { children: [(0, jsx_runtime_1.jsx)(material_1.Icon, Object.assign({ color: "success" }, { children: "circle_checked" })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.completed", id: "ui.course.completed" }) }))] })));
128
+ }
129
+ else if (scCourse.join_status === types_1.SCCourseJoinStatusType.JOINED) {
130
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.course.completion.percentage", defaultMessage: "ui.course.completion.percentage", values: { percentage: `${Math.round(scCourse.user_completion_rate)}%` } }) }), (0, jsx_runtime_1.jsx)(material_1.LinearProgress, { className: classes.previewProgressBar, variant: "determinate", color: "primary", value: scCourse.user_completion_rate })] }));
131
+ }
132
+ else if (isCourseAdmin) {
133
+ return (0, jsx_runtime_1.jsx)(CourseParticipantsButton_1.default, Object.assign({ course: scCourse }, CourseParticipantsButtonComponentProps));
134
+ }
135
+ };
136
+ const chipLabel = (() => {
137
+ if (isCourseAdmin) {
138
+ return scCourse.privacy ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.status.published", id: "ui.course.status.published" })) : ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.status.draft", id: "ui.course.status.draft" }));
139
+ }
140
+ else if ((0, course_2.isCourseCompleted)(scCourse)) {
141
+ return (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.status.completed", id: "ui.course.status.completed" });
142
+ }
143
+ else if (scCourse.join_status === types_1.SCCourseJoinStatusType.JOINED) {
144
+ return (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.status.joined", id: "ui.course.status.joined" });
145
+ }
146
+ else if ((0, course_2.isCourseNew)(scCourse)) {
147
+ return (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.status.new", id: "ui.course.status.new" });
148
+ }
149
+ return null;
150
+ })();
151
+ /**
152
+ * Renders course object
153
+ */
154
+ let contentObj;
155
+ if (template === course_1.SCCourseTemplateType.PREVIEW) {
156
+ contentObj = ((0, jsx_runtime_1.jsxs)(PreviewRoot, Object.assign({ className: classes.previewRoot }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.previewImageWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.CardMedia, { component: "img", image: scCourse.image_medium, alt: scCourse.name, className: classes.previewImage }), (isCourseAdmin || (0, course_2.isCourseCompleted)(scCourse) || (0, course_2.isCourseNew)(scCourse) || scCourse.join_status === types_1.SCCourseJoinStatusType.JOINED) && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", color: (0, course_2.isCourseCompleted)(scCourse) || (isCourseAdmin && scCourse.privacy)
157
+ ? 'primary'
158
+ : isCourseAdmin && !scCourse.privacy
159
+ ? 'default'
160
+ : scCourse.join_status === types_1.SCCourseJoinStatusType.JOINED
161
+ ? 'warning'
162
+ : 'secondary', label: chipLabel, className: classes.chip })), (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({}, (!((_a = scCourse.created_by) === null || _a === void 0 ? void 0 : _a.deleted) && {
163
+ to: scRoutingContext.url(react_core_1.SCRoutes.USER_PROFILE_ROUTE_NAME, scCourse.created_by)
164
+ }), { children: (0, jsx_runtime_1.jsx)(UserAvatar_1.default, Object.assign({ hide: !((_b = scCourse.created_by) === null || _b === void 0 ? void 0 : _b.community_badge), smaller: true }, { children: (0, jsx_runtime_1.jsx)(material_1.Avatar, { alt: scCourse.name, src: (_c = scCourse.created_by) === null || _c === void 0 ? void 0 : _c.avatar, className: classes.previewAvatar }) })) }))] })), (0, jsx_runtime_1.jsxs)(material_1.CardContent, Object.assign({ className: classes.previewContent }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ className: classes.previewCreator }, (!((_d = scCourse.created_by) === null || _d === void 0 ? void 0 : _d.deleted) && {
165
+ to: scRoutingContext.url(react_core_1.SCRoutes.USER_PROFILE_ROUTE_NAME, scCourse.created_by)
166
+ }), { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2" }, { children: (_e = scCourse.created_by) === null || _e === void 0 ? void 0 : _e.username })) })), (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse), className: classes.previewNameWrapper }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h6", className: classes.previewName }, { children: scCourse.name })) })), (0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ className: classes.previewInfo }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft', defaultMessage: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft' }), ' - ', (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: `ui.course.type.${scCourse.type}`, defaultMessage: `ui.course.type.${scCourse.type}` })] })), (0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.previewCategory }, { children: [scCourse.categories.slice(0, MAX_VISIBLE_CATEGORIES).map((category) => ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", label: category.name }, category.id))), scCourse.categories.length > MAX_VISIBLE_CATEGORIES && ((0, jsx_runtime_1.jsx)(material_1.Tooltip, Object.assign({ title: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: scCourse.categories.slice(MAX_VISIBLE_CATEGORIES).map((cat) => ((0, jsx_runtime_1.jsx)(material_1.Box, { children: cat.name }, cat.id))) }) }, { children: (0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", label: `+${scCourse.categories.length - MAX_VISIBLE_CATEGORIES}`, sx: { cursor: 'pointer' } }) })))] })), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.previewProgress }, { children: renderProgress() }))] })), actions !== null && actions !== void 0 ? actions : ((0, jsx_runtime_1.jsx)(material_1.CardActions, Object.assign({ className: classes.previewActions }, { children: (0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ variant: "outlined", size: "small", component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse) }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.see", id: "ui.course.see" }) })) })))] })));
167
+ }
168
+ else {
169
+ contentObj = ((0, jsx_runtime_1.jsx)(SnippetRoot, { ButtonBaseProps: { component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse) }, elevation: 0, className: classes.snippetRoot, image: (0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.snippetImage }, { children: [(0, jsx_runtime_1.jsx)(material_1.Avatar, { variant: "square", alt: scCourse.name, src: scCourse.image_medium, className: userProfileSnippet ? classes.snippetAvatarUserProfile : classes.snippetAvatar }), !userProfileSnippet &&
170
+ (isCourseAdmin || (0, course_2.isCourseCompleted)(scCourse) || (0, course_2.isCourseNew)(scCourse) || scCourse.join_status === types_1.SCCourseJoinStatusType.JOINED) && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", color: (0, course_2.isCourseCompleted)(scCourse) || (isCourseAdmin && scCourse.privacy)
171
+ ? 'primary'
172
+ : isCourseAdmin && !scCourse.privacy
173
+ ? 'default'
174
+ : scCourse.join_status === types_1.SCCourseJoinStatusType.JOINED
175
+ ? 'warning'
176
+ : 'secondary', label: chipLabel, className: classes.chip }))] })), primary: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [!userProfileSnippet && ((0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({}, (!((_f = scCourse.created_by) === null || _f === void 0 ? void 0 : _f.deleted) && {
177
+ to: scRoutingContext.url(react_core_1.SCRoutes.USER_PROFILE_ROUTE_NAME, scCourse.created_by)
178
+ }), { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ component: "span" }, { children: (_g = scCourse.created_by) === null || _g === void 0 ? void 0 : _g.username })) }))), (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse) }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: scCourse.name })) }))] }), secondary: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: userProfileSnippet ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: !scCourse.hide_member_count && ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.course.userProfileSnippet.students", defaultMessage: "ui.course.userProfileSnippet.students", values: { students: scCourse.member_count } })) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft', defaultMessage: scCourse.privacy ? `ui.course.privacy.${scCourse.privacy}` : 'ui.course.privacy.draft' }), ' - ', (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: `ui.course.type.${scCourse.type}`, defaultMessage: `ui.course.type.${scCourse.type}` })] })) }), actions: actions !== null && actions !== void 0 ? actions : ((0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ size: "small", variant: "outlined", component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.COURSE_ROUTE_NAME, scCourse) }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.course.see", id: "ui.course.see" }) }))) }));
179
+ }
180
+ /**
181
+ * Renders root object
182
+ */
183
+ return ((0, jsx_runtime_1.jsx)(Root, Object.assign({ id: id, className: (0, classnames_1.default)(classes.root, className, `${constants_1.PREFIX}-${template}`) }, rest, { children: contentObj })));
184
+ }
185
+ exports.default = Course;
@@ -0,0 +1,39 @@
1
+ import { WidgetProps } from '../Widget';
2
+ import { CreateCourseButtonProps } from '../CreateCourseButton';
3
+ export interface CourseSkeletonProps extends WidgetProps {
4
+ /**
5
+ * Props to spread to CreateCourseButton component
6
+ * @default {}
7
+ */
8
+ CreateCourseButtonComponentProps?: CreateCourseButtonProps;
9
+ /**
10
+ * Overrides or extends the styles applied to the component.
11
+ * @default null
12
+ */
13
+ className?: string;
14
+ }
15
+ /**
16
+ * > API documentation for the Community-JS Course Placeholder component. Learn about the available props and the CSS API.
17
+
18
+ #### Import
19
+
20
+ ```jsx
21
+ import {CourseCreatePlaceholder} from '@selfcommunity/react-ui';
22
+ ```
23
+
24
+ #### Component Name
25
+
26
+ The name `SCCourse-placeholder-root` can be used when providing style overrides in the theme.
27
+
28
+ #### CSS
29
+
30
+ |Rule Name|Global class|Description|
31
+ |---|---|---|
32
+ |root|.SCCourse-create-placeholder-root|Styles applied to the root element.|
33
+ |imageWrapper|.SCCourse-create-placeholder-image|Styles applied to the image wrapper section.|
34
+ |image|.SCCourse-create-placeholder-image|Styles applied to the image element.|
35
+ |icon|.SCCourse-create-placeholder-icon|Styles applied to the course icon element.|
36
+ |actions|.SCCourse-create-placeholder-actions|Styles applied to action section.|
37
+ *
38
+ */
39
+ export default function CourseCreatePlaceholder(inProps: CourseSkeletonProps): JSX.Element;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const material_1 = require("@mui/material");
6
+ const styles_1 = require("@mui/material/styles");
7
+ const system_1 = require("@mui/system");
8
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
9
+ const Widget_1 = tslib_1.__importDefault(require("../Widget"));
10
+ const constants_1 = require("./constants");
11
+ const react_core_1 = require("@selfcommunity/react-core");
12
+ const CreateCourseButton_1 = tslib_1.__importDefault(require("../CreateCourseButton"));
13
+ const classes = {
14
+ root: `${constants_1.PREFIX}-create-placeholder-root`,
15
+ imageWrapper: `${constants_1.PREFIX}-create-placeholder-image-wrapper`,
16
+ image: `${constants_1.PREFIX}-create-placeholder-image`,
17
+ icon: `${constants_1.PREFIX}-create-placeholder-icon`,
18
+ actions: `${constants_1.PREFIX}-create-placeholder-actions`
19
+ };
20
+ const Root = (0, styles_1.styled)(Widget_1.default, {
21
+ name: constants_1.PREFIX,
22
+ slot: 'CreatePlaceholderRoot'
23
+ })(() => ({}));
24
+ /**
25
+ * > API documentation for the Community-JS Course Placeholder component. Learn about the available props and the CSS API.
26
+
27
+ #### Import
28
+
29
+ ```jsx
30
+ import {CourseCreatePlaceholder} from '@selfcommunity/react-ui';
31
+ ```
32
+
33
+ #### Component Name
34
+
35
+ The name `SCCourse-placeholder-root` can be used when providing style overrides in the theme.
36
+
37
+ #### CSS
38
+
39
+ |Rule Name|Global class|Description|
40
+ |---|---|---|
41
+ |root|.SCCourse-create-placeholder-root|Styles applied to the root element.|
42
+ |imageWrapper|.SCCourse-create-placeholder-image|Styles applied to the image wrapper section.|
43
+ |image|.SCCourse-create-placeholder-image|Styles applied to the image element.|
44
+ |icon|.SCCourse-create-placeholder-icon|Styles applied to the course icon element.|
45
+ |actions|.SCCourse-create-placeholder-actions|Styles applied to action section.|
46
+ *
47
+ */
48
+ function CourseCreatePlaceholder(inProps) {
49
+ // PROPS
50
+ const props = (0, system_1.useThemeProps)({
51
+ props: inProps,
52
+ name: constants_1.PREFIX
53
+ });
54
+ const { CreateCourseButtonComponentProps = {}, className } = props, rest = tslib_1.__rest(props, ["CreateCourseButtonComponentProps", "className"]);
55
+ // HOOK
56
+ const { preferences } = (0, react_core_1.useSCPreferences)();
57
+ return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, rest, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ position: "relative", className: classes.imageWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.CardMedia, { component: "img", image: `${preferences[react_core_1.SCPreferences.IMAGES_USER_DEFAULT_COVER].value}`, alt: "placeholder image", className: classes.image }), (0, jsx_runtime_1.jsx)(material_1.Icon, Object.assign({ className: classes.icon, fontSize: "large" }, { children: "courses" }))] })), (0, jsx_runtime_1.jsx)(material_1.CardActions, Object.assign({ className: classes.actions }, { children: (0, jsx_runtime_1.jsx)(CreateCourseButton_1.default, Object.assign({}, CreateCourseButtonComponentProps)) }))] })));
58
+ }
59
+ exports.default = CourseCreatePlaceholder;
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import { SCCourseTemplateType } from '../../types/course';
3
+ import { WidgetProps } from '../Widget';
4
+ import { CourseProps } from './Course';
5
+ export interface CourseSkeletonProps extends WidgetProps {
6
+ /**
7
+ * Overrides or extends the styles applied to the component.
8
+ * @default null
9
+ */
10
+ className?: string;
11
+ /**
12
+ * Course template type
13
+ * @default 'preview'
14
+ */
15
+ template?: SCCourseTemplateType;
16
+ /**
17
+ * Disable skeleton animation
18
+ */
19
+ skeletonsAnimation?: false | 'wave' | 'pulse';
20
+ /**
21
+ * Prop to pass an action to be rendered next to the skeleton
22
+ */
23
+ actions?: React.ReactNode;
24
+ /**
25
+ * CourseProps
26
+ */
27
+ CourseProps?: CourseProps;
28
+ }
29
+ /**
30
+ * > API documentation for the Community-JS Course Skeleton component. Learn about the available props and the CSS API.
31
+
32
+ #### Import
33
+
34
+ ```jsx
35
+ import {CourseSkeleton} from '@selfcommunity/react-ui';
36
+ ```
37
+
38
+ #### Component Name
39
+
40
+ The name `SCCourse-skeleton-root` can be used when providing style overrides in the theme.
41
+
42
+ #### CSS
43
+
44
+ |Rule Name|Global class|Description|
45
+ |---|---|---|
46
+ |root|.SCCourse-skeleton-root|Styles applied to the root element.|
47
+ |image|.SCCourse-skeleton-image|Styles applied to the image element.|
48
+ |action|.SCCourse-skeleton-action|Styles applied to action section.|
49
+ *
50
+ */
51
+ export default function CourseSkeleton(inProps: CourseSkeletonProps): JSX.Element;