cronofy-elements 1.48.1 → 1.49.1

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 (349) hide show
  1. package/dist/.gitkeep +0 -0
  2. package/dist/CronofyElements.js +2 -0
  3. package/{build/CronofyElements.v1.48.1.js.LICENSE.txt → dist/CronofyElements.js.LICENSE.txt} +0 -0
  4. package/package.json +10 -7
  5. package/.babelrc +0 -20
  6. package/.eslintrc.yaml +0 -43
  7. package/.prettierignore +0 -4
  8. package/.prettierrc +0 -7
  9. package/Makefile +0 -92
  10. package/brainstorm.md +0 -76
  11. package/build/CronofyElements.v1.48.1.js +0 -2
  12. package/build/npm/CronofyElements.js +0 -2
  13. package/compat.config.js +0 -25
  14. package/demo/agenda.ejs +0 -71
  15. package/demo/availability-viewer.ejs +0 -322
  16. package/demo/calendar-sync.ejs +0 -149
  17. package/demo/crossbrowser.ejs +0 -228
  18. package/demo/date-time-picker.ejs +0 -213
  19. package/demo/demo-styles.css +0 -134
  20. package/demo/index.ejs +0 -249
  21. package/demo/integration.ejs +0 -482
  22. package/demo/load-elements.ejs +0 -12
  23. package/demo/nav.ejs +0 -14
  24. package/demo/rules.ejs +0 -121
  25. package/demo/server.js +0 -425
  26. package/demo/slot-picker.ejs +0 -197
  27. package/git.README.md +0 -71
  28. package/notes.style.md +0 -197
  29. package/postcss.config.js +0 -3
  30. package/script/i18n-export +0 -11
  31. package/script/i18n-helpers/split_write.rb +0 -25
  32. package/script/i18n-import +0 -22
  33. package/script/i18n-reference-update +0 -241
  34. package/src/js/components/Agenda/Agenda.js +0 -243
  35. package/src/js/components/Agenda/AllDayEventsList.js +0 -37
  36. package/src/js/components/Agenda/Calendar.js +0 -100
  37. package/src/js/components/Agenda/CalendarHeader.js +0 -187
  38. package/src/js/components/Agenda/Event.js +0 -34
  39. package/src/js/components/Agenda/EventAllDay.js +0 -76
  40. package/src/js/components/Agenda/EventAttendees.js +0 -30
  41. package/src/js/components/Agenda/EventDetail.js +0 -111
  42. package/src/js/components/Agenda/EventMessages.js +0 -24
  43. package/src/js/components/Agenda/EventMeta.js +0 -48
  44. package/src/js/components/Agenda/EventTime.js +0 -34
  45. package/src/js/components/Agenda/EventWrapper.js +0 -271
  46. package/src/js/components/Agenda/Location.js +0 -29
  47. package/src/js/components/Agenda/Message.js +0 -22
  48. package/src/js/components/Agenda/TimedEventsList.js +0 -29
  49. package/src/js/components/AvailabilityRules/AddButton.js +0 -60
  50. package/src/js/components/AvailabilityRules/AvailabilityRules.js +0 -45
  51. package/src/js/components/AvailabilityRules/Calendar.js +0 -31
  52. package/src/js/components/AvailabilityRules/CalendarListItem.js +0 -53
  53. package/src/js/components/AvailabilityRules/CalendarProfiles.js +0 -67
  54. package/src/js/components/AvailabilityRules/CalendarSelector.js +0 -104
  55. package/src/js/components/AvailabilityRules/Calendars.js +0 -145
  56. package/src/js/components/AvailabilityRules/Checkmark.js +0 -51
  57. package/src/js/components/AvailabilityRules/DayLabels.js +0 -91
  58. package/src/js/components/AvailabilityRules/Footer.js +0 -109
  59. package/src/js/components/AvailabilityRules/Legend.js +0 -57
  60. package/src/js/components/AvailabilityRules/Loading.js +0 -53
  61. package/src/js/components/AvailabilityRules/RemoveButton.js +0 -57
  62. package/src/js/components/AvailabilityRules/Slot.js +0 -195
  63. package/src/js/components/AvailabilityRules/SlotDisplay.js +0 -27
  64. package/src/js/components/AvailabilityRules/Slots.js +0 -81
  65. package/src/js/components/AvailabilityRules/SlotsDisplay.js +0 -68
  66. package/src/js/components/AvailabilityRules/TimeExpander.js +0 -119
  67. package/src/js/components/AvailabilityRules/TimeLabels.js +0 -89
  68. package/src/js/components/AvailabilityRules/TimeZoneDisplay.js +0 -41
  69. package/src/js/components/AvailabilityRules/ToggleIcon.js +0 -41
  70. package/src/js/components/AvailabilityRules/Tooltip.js +0 -63
  71. package/src/js/components/AvailabilityRules/UnknownCalendar.js +0 -33
  72. package/src/js/components/AvailabilityRules/Week.js +0 -115
  73. package/src/js/components/AvailabilityRules/WeekGrid.js +0 -80
  74. package/src/js/components/AvailabilityRules/Wrapper.js +0 -414
  75. package/src/js/components/AvailabilityRules/contexts/drag-context.js +0 -15
  76. package/src/js/components/AvailabilityRules/scss/_base.buttons.scss +0 -58
  77. package/src/js/components/AvailabilityRules/scss/_base.theme.scss +0 -4
  78. package/src/js/components/AvailabilityRules/scss/_components.timezoneselector.scss +0 -74
  79. package/src/js/components/AvailabilityRules/scss/_generic.reset.scss +0 -13
  80. package/src/js/components/AvailabilityRules/scss/_settings.colours.scss +0 -12
  81. package/src/js/components/AvailabilityRules/scss/availabilityrules.scss +0 -5
  82. package/src/js/components/AvailabilityRules/utils/tz-utils.js +0 -44
  83. package/src/js/components/AvailabilityViewer/AvailabilityViewer.js +0 -524
  84. package/src/js/components/AvailabilityViewer/ColumnHeader.js +0 -35
  85. package/src/js/components/AvailabilityViewer/DayColumn.js +0 -36
  86. package/src/js/components/AvailabilityViewer/DayColumnDisplay.js +0 -33
  87. package/src/js/components/AvailabilityViewer/DayColumnWrapper.js +0 -29
  88. package/src/js/components/AvailabilityViewer/DayLabels.js +0 -41
  89. package/src/js/components/AvailabilityViewer/EmptyColumn.js +0 -29
  90. package/src/js/components/AvailabilityViewer/Footer.js +0 -36
  91. package/src/js/components/AvailabilityViewer/GridFreeSelect.js +0 -33
  92. package/src/js/components/AvailabilityViewer/HoverSlot.js +0 -35
  93. package/src/js/components/AvailabilityViewer/HoverTooltip.js +0 -34
  94. package/src/js/components/AvailabilityViewer/LabelColumn.js +0 -53
  95. package/src/js/components/AvailabilityViewer/LabelItem.js +0 -73
  96. package/src/js/components/AvailabilityViewer/Legend.js +0 -79
  97. package/src/js/components/AvailabilityViewer/Loading.js +0 -57
  98. package/src/js/components/AvailabilityViewer/MonthLabels.js +0 -43
  99. package/src/js/components/AvailabilityViewer/Navigation.js +0 -138
  100. package/src/js/components/AvailabilityViewer/Overlay.js +0 -60
  101. package/src/js/components/AvailabilityViewer/Preloading.js +0 -66
  102. package/src/js/components/AvailabilityViewer/SelectedSlot.js +0 -106
  103. package/src/js/components/AvailabilityViewer/SelectedSlots.js +0 -72
  104. package/src/js/components/AvailabilityViewer/SelectionMask.js +0 -44
  105. package/src/js/components/AvailabilityViewer/Slot.js +0 -237
  106. package/src/js/components/AvailabilityViewer/SlotFreeSelect.js +0 -115
  107. package/src/js/components/AvailabilityViewer/Slots.js +0 -57
  108. package/src/js/components/AvailabilityViewer/TimeExpander.js +0 -93
  109. package/src/js/components/AvailabilityViewer/TimeLines.js +0 -74
  110. package/src/js/components/AvailabilityViewer/TimeSelector.js +0 -243
  111. package/src/js/components/AvailabilityViewer/TimeSelectorTrigger.js +0 -42
  112. package/src/js/components/AvailabilityViewer/TimeZoneDisplay.js +0 -28
  113. package/src/js/components/AvailabilityViewer/ToggleIcon.js +0 -41
  114. package/src/js/components/AvailabilityViewer/Tooltip.js +0 -65
  115. package/src/js/components/AvailabilityViewer/Week.js +0 -255
  116. package/src/js/components/AvailabilityViewer/WeekWrapper.js +0 -132
  117. package/src/js/components/AvailabilityViewer/contexts/page-context.js +0 -17
  118. package/src/js/components/AvailabilityViewer/contexts/page-reducer.js +0 -28
  119. package/src/js/components/AvailabilityViewer/contexts/selection-context.js +0 -25
  120. package/src/js/components/AvailabilityViewer/contexts/selection-reducer.js +0 -18
  121. package/src/js/components/CalendarSync/Active.js +0 -57
  122. package/src/js/components/CalendarSync/AddToggle.js +0 -72
  123. package/src/js/components/CalendarSync/CalendarSync.js +0 -215
  124. package/src/js/components/CalendarSync/EditToggle.js +0 -71
  125. package/src/js/components/CalendarSync/Footer.js +0 -31
  126. package/src/js/components/CalendarSync/Inactive.js +0 -66
  127. package/src/js/components/CalendarSync/Loading.js +0 -52
  128. package/src/js/components/CalendarSync/Pending.js +0 -74
  129. package/src/js/components/CalendarSync/ProfileStatus.js +0 -33
  130. package/src/js/components/CalendarSync/Profiles.js +0 -109
  131. package/src/js/components/CalendarSync/ProviderLogo.js +0 -28
  132. package/src/js/components/CalendarSync/Providers.js +0 -80
  133. package/src/js/components/CalendarSync/RemoveLink.js +0 -96
  134. package/src/js/components/CalendarSync/SelectProvider.js +0 -25
  135. package/src/js/components/CalendarSync/contexts/status-reducer.js +0 -74
  136. package/src/js/components/DateTimePicker/Calendar.js +0 -127
  137. package/src/js/components/DateTimePicker/CalendarHeader.js +0 -80
  138. package/src/js/components/DateTimePicker/Confirm.js +0 -106
  139. package/src/js/components/DateTimePicker/DateTimePicker.js +0 -131
  140. package/src/js/components/DateTimePicker/DayButton.js +0 -38
  141. package/src/js/components/DateTimePicker/DayHeadings.js +0 -33
  142. package/src/js/components/DateTimePicker/Details.js +0 -33
  143. package/src/js/components/DateTimePicker/Error.js +0 -39
  144. package/src/js/components/DateTimePicker/Loading.js +0 -20
  145. package/src/js/components/DateTimePicker/LoadingCalendar.js +0 -21
  146. package/src/js/components/DateTimePicker/NoSlotsFound.js +0 -16
  147. package/src/js/components/DateTimePicker/SequencedSlotButton.js +0 -97
  148. package/src/js/components/DateTimePicker/SlotButton.js +0 -55
  149. package/src/js/components/DateTimePicker/SlotsList.js +0 -45
  150. package/src/js/components/DateTimePicker/Wrapper.js +0 -281
  151. package/src/js/components/DateTimePicker/contexts/status-context.js +0 -19
  152. package/src/js/components/DateTimePicker/contexts/status-reducer.js +0 -276
  153. package/src/js/components/DateTimePicker/contexts/theme-context.js +0 -33
  154. package/src/js/components/DateTimePicker/helpers/theming.js +0 -49
  155. package/src/js/components/DateTimePicker/scss/_base.buttons.scss +0 -58
  156. package/src/js/components/DateTimePicker/scss/_base.layout.scss +0 -28
  157. package/src/js/components/DateTimePicker/scss/_base.theme.scss +0 -17
  158. package/src/js/components/DateTimePicker/scss/_components.calendargrid.scss +0 -78
  159. package/src/js/components/DateTimePicker/scss/_components.calendarheader.scss +0 -71
  160. package/src/js/components/DateTimePicker/scss/_components.confirm.scss +0 -40
  161. package/src/js/components/DateTimePicker/scss/_components.details.scss +0 -20
  162. package/src/js/components/DateTimePicker/scss/_components.error.scss +0 -34
  163. package/src/js/components/DateTimePicker/scss/_components.loading.scss +0 -36
  164. package/src/js/components/DateTimePicker/scss/_components.slotslist.scss +0 -43
  165. package/src/js/components/DateTimePicker/scss/_components.timezoneselector.scss +0 -73
  166. package/src/js/components/DateTimePicker/scss/_generic.reset.scss +0 -18
  167. package/src/js/components/DateTimePicker/scss/_settings.colours.scss +0 -17
  168. package/src/js/components/DateTimePicker/scss/datetimepicker.scss +0 -5
  169. package/src/js/components/DateTimePicker/utils/calendar-keyboard.js +0 -109
  170. package/src/js/components/DateTimePicker/utils/calendar.js +0 -125
  171. package/src/js/components/DateTimePicker/utils/slots.js +0 -288
  172. package/src/js/components/SlotPicker/Confirm.js +0 -160
  173. package/src/js/components/SlotPicker/Days.js +0 -58
  174. package/src/js/components/SlotPicker/Slot.js +0 -72
  175. package/src/js/components/SlotPicker/SlotPicker.js +0 -292
  176. package/src/js/components/SlotPicker/Slots.js +0 -66
  177. package/src/js/components/SlotPicker/TimeSlots.js +0 -91
  178. package/src/js/components/generic/Button.js +0 -26
  179. package/src/js/components/generic/Container.js +0 -33
  180. package/src/js/components/generic/Error.js +0 -77
  181. package/src/js/components/generic/Loading.js +0 -51
  182. package/src/js/components/generic/LoadingSpinner.js +0 -30
  183. package/src/js/components/generic/ShadowScrollbars.js +0 -70
  184. package/src/js/components/generic/TimeZoneSelector.js +0 -158
  185. package/src/js/components/generic/TransitionSlide.js +0 -72
  186. package/src/js/contexts/i18n-context.js +0 -25
  187. package/src/js/contexts/log-context.js +0 -18
  188. package/src/js/contexts/tz-context.js +0 -18
  189. package/src/js/env.example.js +0 -8
  190. package/src/js/helpers/colors.js +0 -33
  191. package/src/js/helpers/comparators.AvailabilityViewer.js +0 -27
  192. package/src/js/helpers/connections.js +0 -370
  193. package/src/js/helpers/events.js +0 -166
  194. package/src/js/helpers/functional.js +0 -4
  195. package/src/js/helpers/generator.js +0 -107
  196. package/src/js/helpers/i18n.js +0 -153
  197. package/src/js/helpers/init.Agenda.js +0 -55
  198. package/src/js/helpers/init.AvailabilityRules.js +0 -195
  199. package/src/js/helpers/init.AvailabilityViewer.js +0 -215
  200. package/src/js/helpers/init.CalendarSync.js +0 -83
  201. package/src/js/helpers/init.DateTimePicker.js +0 -219
  202. package/src/js/helpers/init.SlotPicker.js +0 -89
  203. package/src/js/helpers/init.js +0 -308
  204. package/src/js/helpers/logging.js +0 -78
  205. package/src/js/helpers/mocks.js +0 -871
  206. package/src/js/helpers/slots.js +0 -340
  207. package/src/js/helpers/slots.rules.js +0 -220
  208. package/src/js/helpers/theming.js +0 -93
  209. package/src/js/helpers/translations.js +0 -42
  210. package/src/js/helpers/tz-list.js +0 -136
  211. package/src/js/helpers/utils.AvailabilityRules.js +0 -110
  212. package/src/js/helpers/utils.AvailabilityViewer.js +0 -789
  213. package/src/js/helpers/utils.CalendarSync.js +0 -199
  214. package/src/js/helpers/utils.js +0 -76
  215. package/src/js/hooks/useWindowSize.js +0 -20
  216. package/src/js/main.js +0 -133
  217. package/src/js/next.js +0 -37
  218. package/src/js/styles/_settings.utils.scss +0 -82
  219. package/src/js/styles/colors.js +0 -13
  220. package/src/js/styles/global.js +0 -49
  221. package/src/js/styles/utils.js +0 -81
  222. package/src/js/translations/de/agenda.json +0 -12
  223. package/src/js/translations/de/availability_rules.json +0 -18
  224. package/src/js/translations/de/availability_viewer.json +0 -14
  225. package/src/js/translations/de/calendar_sync.json +0 -14
  226. package/src/js/translations/de/core.json +0 -15
  227. package/src/js/translations/de/date_time_picker.json +0 -14
  228. package/src/js/translations/de/slot_picker.json +0 -9
  229. package/src/js/translations/de/time_zones.json +0 -135
  230. package/src/js/translations/en/agenda.json +0 -12
  231. package/src/js/translations/en/availability_rules.json +0 -18
  232. package/src/js/translations/en/availability_viewer.json +0 -14
  233. package/src/js/translations/en/calendar_sync.json +0 -14
  234. package/src/js/translations/en/core.json +0 -23
  235. package/src/js/translations/en/date_time_picker.json +0 -15
  236. package/src/js/translations/en/slot_picker.json +0 -9
  237. package/src/js/translations/en/time_zones.json +0 -17
  238. package/src/js/translations/es/agenda.json +0 -12
  239. package/src/js/translations/es/availability_rules.json +0 -18
  240. package/src/js/translations/es/availability_viewer.json +0 -14
  241. package/src/js/translations/es/calendar_sync.json +0 -14
  242. package/src/js/translations/es/core.json +0 -15
  243. package/src/js/translations/es/date_time_picker.json +0 -14
  244. package/src/js/translations/es/slot_picker.json +0 -9
  245. package/src/js/translations/es/time_zones.json +0 -203
  246. package/src/js/translations/fr/agenda.json +0 -12
  247. package/src/js/translations/fr/availability_rules.json +0 -18
  248. package/src/js/translations/fr/availability_viewer.json +0 -14
  249. package/src/js/translations/fr/calendar_sync.json +0 -14
  250. package/src/js/translations/fr/core.json +0 -15
  251. package/src/js/translations/fr/date_time_picker.json +0 -14
  252. package/src/js/translations/fr/slot_picker.json +0 -9
  253. package/src/js/translations/fr/time_zones.json +0 -161
  254. package/src/js/translations/fr-CA/agenda.json +0 -12
  255. package/src/js/translations/fr-CA/availability_rules.json +0 -18
  256. package/src/js/translations/fr-CA/availability_viewer.json +0 -14
  257. package/src/js/translations/fr-CA/calendar_sync.json +0 -14
  258. package/src/js/translations/fr-CA/core.json +0 -23
  259. package/src/js/translations/fr-CA/date_time_picker.json +0 -14
  260. package/src/js/translations/fr-CA/slot_picker.json +0 -9
  261. package/src/js/translations/fr-CA/time_zones.json +0 -163
  262. package/src/js/translations/it/agenda.json +0 -12
  263. package/src/js/translations/it/availability_rules.json +0 -18
  264. package/src/js/translations/it/availability_viewer.json +0 -14
  265. package/src/js/translations/it/calendar_sync.json +0 -14
  266. package/src/js/translations/it/core.json +0 -15
  267. package/src/js/translations/it/date_time_picker.json +0 -14
  268. package/src/js/translations/it/slot_picker.json +0 -9
  269. package/src/js/translations/it/time_zones.json +0 -126
  270. package/src/js/translations/ja/agenda.json +0 -12
  271. package/src/js/translations/ja/availability_rules.json +0 -18
  272. package/src/js/translations/ja/availability_viewer.json +0 -14
  273. package/src/js/translations/ja/calendar_sync.json +0 -14
  274. package/src/js/translations/ja/core.json +0 -15
  275. package/src/js/translations/ja/date_formats.json +0 -5
  276. package/src/js/translations/ja/date_time_picker.json +0 -14
  277. package/src/js/translations/ja/slot_picker.json +0 -9
  278. package/src/js/translations/ja/time_zones.json +0 -435
  279. package/src/js/translations/nl/agenda.json +0 -12
  280. package/src/js/translations/nl/availability_rules.json +0 -18
  281. package/src/js/translations/nl/availability_viewer.json +0 -14
  282. package/src/js/translations/nl/calendar_sync.json +0 -14
  283. package/src/js/translations/nl/core.json +0 -15
  284. package/src/js/translations/nl/date_time_picker.json +0 -14
  285. package/src/js/translations/nl/slot_picker.json +0 -9
  286. package/src/js/translations/nl/time_zones.json +0 -118
  287. package/src/js/translations/ru/agenda.json +0 -12
  288. package/src/js/translations/ru/availability_rules.json +0 -18
  289. package/src/js/translations/ru/availability_viewer.json +0 -14
  290. package/src/js/translations/ru/calendar_sync.json +0 -14
  291. package/src/js/translations/ru/core.json +0 -15
  292. package/src/js/translations/ru/date_time_picker.json +0 -14
  293. package/src/js/translations/ru/slot_picker.json +0 -9
  294. package/src/js/translations/ru/time_zones.json +0 -435
  295. package/src/js/translations/sv/agenda.json +0 -12
  296. package/src/js/translations/sv/availability_rules.json +0 -18
  297. package/src/js/translations/sv/availability_viewer.json +0 -14
  298. package/src/js/translations/sv/calendar_sync.json +0 -14
  299. package/src/js/translations/sv/core.json +0 -15
  300. package/src/js/translations/sv/date_time_picker.json +0 -14
  301. package/src/js/translations/sv/slot_picker.json +0 -9
  302. package/src/js/translations/sv/time_zones.json +0 -136
  303. package/tests/AvailabilityRules/AvailabilityRules.test.js +0 -39
  304. package/tests/AvailabilityRules/__snapshots__/AvailabilityRules.test.js.snap +0 -1045
  305. package/tests/AvailabilityViewer/Navigation.test.js +0 -130
  306. package/tests/AvailabilityViewer/contexts/page-reducer.test.js +0 -87
  307. package/tests/AvailabilityViewer/reducer.test.js +0 -73
  308. package/tests/CalendarSync/Active.test.js +0 -25
  309. package/tests/CalendarSync/AddToggle.test.js +0 -57
  310. package/tests/CalendarSync/EditToggle.test.js +0 -57
  311. package/tests/CalendarSync/Inactive.test.js +0 -26
  312. package/tests/CalendarSync/Pending.test.js +0 -25
  313. package/tests/CalendarSync/ProviderLogo.test.js +0 -95
  314. package/tests/CalendarSync/__snapshots__/Active.test.js.snap +0 -61
  315. package/tests/CalendarSync/__snapshots__/Inactive.test.js.snap +0 -78
  316. package/tests/CalendarSync/__snapshots__/Pending.test.js.snap +0 -90
  317. package/tests/CalendarSync/__snapshots__/ProviderLogo.test.js.snap +0 -267
  318. package/tests/CalendarSync/init.CalendarSync.test.js +0 -302
  319. package/tests/CalendarSync/mocks/theme.js +0 -14
  320. package/tests/CalendarSync/status-reducer.test.js +0 -435
  321. package/tests/DateTimePicker/SequencedSlotButton.test.js +0 -157
  322. package/tests/DateTimePicker/SlotButton.test.js +0 -118
  323. package/tests/DateTimePicker/contexts/status-reducer.test.js +0 -1036
  324. package/tests/DateTimePicker/dummy-data.js +0 -883
  325. package/tests/DateTimePicker/utils.test.js +0 -515
  326. package/tests/colors.test.js +0 -70
  327. package/tests/components/TimezoneSelector.test.js +0 -124
  328. package/tests/components/main.test.js +0 -203
  329. package/tests/components/rtl-utils.js +0 -32
  330. package/tests/connections.test.js +0 -684
  331. package/tests/events.test.js +0 -472
  332. package/tests/generator.test.js +0 -74
  333. package/tests/i18n.test.js +0 -255
  334. package/tests/init.Agenda.test.js +0 -122
  335. package/tests/init.AvailabilityRules.test.js +0 -279
  336. package/tests/init.AvailabilityViewer.test.js +0 -740
  337. package/tests/init.SlotPicker.test.js +0 -166
  338. package/tests/init.test.js +0 -231
  339. package/tests/logging.test.js +0 -235
  340. package/tests/mocks/i18n.js +0 -3
  341. package/tests/mocks/theme.js +0 -3
  342. package/tests/setupJest.js +0 -8
  343. package/tests/slots.rules.test.js +0 -195
  344. package/tests/slots.test.js +0 -278
  345. package/tests/utils.AvailabilityRules.test.js +0 -221
  346. package/tests/utils.AvailabilityViewer.test.js +0 -1800
  347. package/tests/utils.CalendarSync.test.js +0 -277
  348. package/tests/utils.test.js +0 -119
  349. package/webpack.config.js +0 -114
@@ -1,472 +0,0 @@
1
- import * as datetimes from "../src/js/helpers/events";
2
- import moment from "moment";
3
-
4
- describe("Events helpers", () => {
5
- // isAllDayEvent
6
- it("recognises an all-day event", () => {
7
- const allDay = ["2018-09-20", "2018-09-21"];
8
- const timed = ["2018-09-20T09:00:00Z", "2018-09-20T17:00:00Z"];
9
- expect(datetimes.isAllDayEvent(...allDay)).toBe(true);
10
- expect(datetimes.isAllDayEvent(...timed)).toBe(false);
11
- });
12
-
13
- // checkISO8601
14
- it("check if a string matches ISO8601 format", () => {
15
- const ISO8601String = "2018-09-20";
16
- const NotISO8601String = "2018-09-20T17:00:00Z";
17
- expect(datetimes.checkISO8601(ISO8601String)).toBe(true);
18
- expect(datetimes.checkISO8601(NotISO8601String)).toBe(false);
19
- expect(datetimes.checkISO8601("")).toBe(false);
20
- });
21
-
22
- // dayNumbers
23
- it("calculates day numbers", () => {
24
- const multiDayEvent = datetimes.dayNumbers(
25
- moment("2018-09-20"),
26
- moment("2018-09-24"),
27
- moment("2018-09-22")
28
- );
29
- // Total days of event
30
- expect(multiDayEvent.days).toEqual(4);
31
- // Current day number
32
- expect(multiDayEvent.day).toEqual(3);
33
-
34
- const singleDayEvent = datetimes.dayNumbers(
35
- moment("2018-09-20"),
36
- moment("2018-09-21"),
37
- moment("2018-09-20")
38
- );
39
- // Total days of event
40
- expect(singleDayEvent.days).toEqual(1);
41
- // Current day number
42
- expect(singleDayEvent.day).toEqual(1);
43
- });
44
-
45
- // dayNumbersString
46
- it("writes the day info to a sentence", () => {
47
- const multiDayEvent = [moment("2018-09-20"), moment("2018-09-24"), moment("2018-09-22")];
48
- expect(datetimes.dayNumbersString(...multiDayEvent)).toEqual(" - 3/4");
49
-
50
- const singleDayEvent = [moment("2018-09-20"), moment("2018-09-21"), moment("2018-09-20")];
51
- expect(datetimes.dayNumbersString(...singleDayEvent)).toEqual("");
52
- });
53
-
54
- // getMultiDayStatus
55
- // returns 0 if not a multi-day event, 1 if the first day, 2 if the last day, 3 if a middle day
56
- it("works out if today is the start|end|middle of an event", () => {
57
- const eventStart = ["2018-09-20", "2018-09-24", "2018-09-20"];
58
- const eventEnd = ["2018-09-20", "2018-09-24", "2018-09-23"];
59
- const eventMid = ["2018-09-20", "2018-09-24", "2018-09-22"];
60
- const singleDay = ["2018-09-20", "2018-09-21", "2018-09-20"];
61
- const timedEvent = ["2018-10-01T09:00:00Z", "2018-10-01T10:00:00Z", "2018-10-01"];
62
- expect(datetimes.getMultiDayStatus(...eventStart)).toEqual(1);
63
- expect(datetimes.getMultiDayStatus(...eventEnd)).toEqual(2);
64
- expect(datetimes.getMultiDayStatus(...eventMid)).toEqual(3);
65
- expect(datetimes.getMultiDayStatus(...singleDay)).toEqual(0);
66
- expect(datetimes.getMultiDayStatus(...timedEvent)).toEqual(0);
67
- });
68
-
69
- // checkDirection
70
- it("calculates direction to scroll", () => {
71
- const backwards = [moment("2018-09-20"), moment("2018-10-10")];
72
- const forwards = [moment("2018-09-20"), moment("2018-07-18")];
73
- expect(datetimes.checkDirection(...backwards)).toEqual("backwards");
74
- expect(datetimes.checkDirection(...forwards)).toEqual("forwards");
75
- });
76
-
77
- // eventDates
78
- it("calculates the dates that a multi-day event covers", () => {
79
- const exampleMultiDayEvent = {
80
- event_uid: "EXAMPLE_ID",
81
- start: "2018-09-23",
82
- end: "2018-09-26",
83
- };
84
- const multiDayDates = datetimes.eventDates(exampleMultiDayEvent);
85
- // It sets a key for each day
86
- expect(Object.keys(multiDayDates).length).toEqual(3);
87
- // the day-keys have only one sub key (event_uid)
88
- expect(Object.keys(multiDayDates["2018-09-23"]).length).toEqual(1);
89
- expect(Object.keys(multiDayDates["2018-09-24"]).length).toEqual(1);
90
- expect(Object.keys(multiDayDates["2018-09-25"]).length).toEqual(1);
91
- // there is no day-key set for the day *after* the event
92
- expect(typeof multiDayDates["2018-09-26"]).toEqual("undefined");
93
- // the day-keys have the correct event_uid set as the sub key
94
- expect(multiDayDates["2018-09-23"]["EXAMPLE_ID"]).toBe(true);
95
- expect(multiDayDates["2018-09-24"]["EXAMPLE_ID"]).toBe(true);
96
- expect(multiDayDates["2018-09-25"]["EXAMPLE_ID"]).toBe(true);
97
- });
98
-
99
- it("calculates the dates that a single-day all-day event covers", () => {
100
- const exampleOneDayEvent = {
101
- event_uid: "EXAMPLE_ID",
102
- start: "2018-09-24",
103
- end: "2018-09-25",
104
- };
105
- const allDayDates = datetimes.eventDates(exampleOneDayEvent);
106
- expect(Object.keys(allDayDates).length).toEqual(1);
107
- expect(Object.keys(allDayDates["2018-09-24"]).length).toEqual(1);
108
- expect(allDayDates["2018-09-24"]["EXAMPLE_ID"]).toBe(true);
109
- });
110
-
111
- it("calculates the dates that a timed event covers", () => {
112
- const exampleTimedEvent = {
113
- event_uid: "EXAMPLE_ID",
114
- start: "2018-10-01T09:00:00Z",
115
- end: "2018-10-01T10:00:00Z",
116
- };
117
- const timedDates = datetimes.eventDates(exampleTimedEvent);
118
- expect(Object.keys(timedDates).length).toEqual(1);
119
- expect(Object.keys(timedDates["2018-10-01"]).length).toEqual(1);
120
- expect(timedDates["2018-10-01"]["EXAMPLE_ID"]).toBe(true);
121
- });
122
-
123
- // getDayRange
124
- it("adds new date range to existing state object", () => {
125
- // Works on first load
126
- const daysFromNothing = datetimes.getDayRange("2018-09-07", 7);
127
- expect(Object.keys(daysFromNothing).length).toEqual(15);
128
-
129
- // Works with existing state
130
- const existingDays = {
131
- "2018-09-24": {},
132
- "2018-09-25": {},
133
- "2018-09-26": {},
134
- "2018-09-27": {},
135
- "2018-09-28": {},
136
- "2018-09-29": {},
137
- "2018-09-30": {},
138
- "2018-10-01": {},
139
- "2018-10-02": {},
140
- "2018-10-03": {},
141
- "2018-10-04": {},
142
- "2018-10-05": {},
143
- "2018-10-06": {},
144
- "2018-10-07": {},
145
- "2018-10-08": {},
146
- };
147
- const daysUpdated = datetimes.getDayRange("2018-10-09", 7, existingDays);
148
- expect(Object.keys(daysUpdated).length).toEqual(23);
149
- });
150
-
151
- // setEventDayIDs
152
- it("adds event IDs to relevant dates in daysObject", () => {
153
- const daysObject = {
154
- "2018-09-23": {},
155
- "2018-09-24": {},
156
- "2018-09-25": {},
157
- "2018-09-26": {},
158
- "2018-09-27": {},
159
- "2018-09-28": {},
160
- "2018-09-29": {},
161
- "2018-09-30": {},
162
- "2018-10-01": {},
163
- "2018-10-02": {},
164
- "2018-10-03": {},
165
- "2018-10-04": {},
166
- "2018-10-05": {},
167
- "2018-10-06": {},
168
- "2018-10-07": {},
169
- };
170
- const events = [
171
- {
172
- event_uid: "EXAMPLE_ID_1",
173
- start: "2018-09-23",
174
- end: "2018-09-26",
175
- },
176
- {
177
- event_uid: "EXAMPLE_ID_2",
178
- start: "2018-09-24",
179
- end: "2018-09-25",
180
- },
181
- {
182
- event_uid: "EXAMPLE_ID_3",
183
- start: "2018-10-01T09:00:00Z",
184
- end: "2018-10-01T10:00:00Z",
185
- },
186
- ];
187
- const mockEventDates = jest.fn(event => {
188
- switch (event.event_uid) {
189
- case "EXAMPLE_ID_1":
190
- return {
191
- "2018-09-23": { EXAMPLE_ID_1: true },
192
- "2018-09-24": { EXAMPLE_ID_1: true },
193
- "2018-09-25": { EXAMPLE_ID_1: true },
194
- };
195
- break;
196
- case "EXAMPLE_ID_2":
197
- return { "2018-09-24": { EXAMPLE_ID_2: true } };
198
- break;
199
- case "EXAMPLE_ID_3":
200
- return { "2018-10-01": { EXAMPLE_ID_3: true } };
201
- break;
202
- default:
203
- return {};
204
- }
205
- });
206
-
207
- const daysWithIDs = datetimes.setEventDayIDs(events, daysObject, mockEventDates);
208
- expect(Object.keys(daysWithIDs).length).toEqual(15);
209
- expect(Object.keys(daysWithIDs["2018-09-23"]).length).toEqual(1);
210
- expect(Object.keys(daysWithIDs["2018-09-24"]).length).toEqual(2);
211
- expect(Object.keys(daysWithIDs["2018-09-26"]).length).toEqual(0);
212
- });
213
-
214
- // parseEvents
215
- it("adds events to events-object, using uid as the key", () => {
216
- const newEventsArray = [
217
- {
218
- event_uid: "EXAMPLE_ID_1",
219
- start: "2018-09-23",
220
- end: "2018-09-26",
221
- },
222
- {
223
- event_uid: "EXAMPLE_ID_2",
224
- start: "2018-09-24",
225
- end: "2018-09-25",
226
- },
227
- {
228
- event_uid: "EXAMPLE_ID_3",
229
- start: "2018-10-01T09:00:00Z",
230
- end: "2018-10-01T10:00:00Z",
231
- },
232
- ];
233
- const existingEventsObject = {};
234
- const updatedEventsObject = datetimes.parseEventsByID(newEventsArray);
235
- // Adds the correct number of events
236
- expect(Object.keys(updatedEventsObject).length).toEqual(3);
237
- // Uses the correct keys
238
- expect(Object.keys(updatedEventsObject["EXAMPLE_ID_1"]).length).toEqual(3);
239
- expect(updatedEventsObject["EXAMPLE_ID_1"]).toEqual(newEventsArray[0]);
240
- expect(updatedEventsObject["EXAMPLE_ID_2"]).toEqual(newEventsArray[1]);
241
- expect(updatedEventsObject["EXAMPLE_ID_3"]).toEqual(newEventsArray[2]);
242
- });
243
-
244
- // calculateLimit
245
- it("checks if navigation passes the limits", () => {
246
- const sameDay = datetimes.calculateLimit("2018-09-24", "2018-09-24");
247
- expect(sameDay).toEqual(0);
248
-
249
- const futureWithinLimits = datetimes.calculateLimit("2018-10-24", "2018-09-24");
250
- expect(futureWithinLimits).toEqual(0);
251
-
252
- const futureBeyondLimits = datetimes.calculateLimit("2019-10-24", "2018-09-24");
253
- expect(futureBeyondLimits).toEqual(1);
254
-
255
- const pastWithinLimits = datetimes.calculateLimit("2018-09-20", "2018-09-24");
256
- expect(pastWithinLimits).toEqual(0);
257
-
258
- const pastBeyondLimits = datetimes.calculateLimit("2018-08-24", "2018-09-24");
259
- expect(pastBeyondLimits).toEqual(-1);
260
- });
261
-
262
- // sortEventsByType
263
- it("sorts events by type", () => {
264
- const mixedEvents = [
265
- {
266
- summary: "Conference",
267
- start: "2018-11-05",
268
- end: "2018-11-06",
269
- },
270
- {
271
- summary: "Client call",
272
- start: "2018-11-05T09:00:00Z",
273
- end: "2018-11-05T10:00:00Z",
274
- },
275
- {
276
- summary: "Another all-day event",
277
- start: "2018-11-05",
278
- end: "2018-11-06",
279
- },
280
- {
281
- summary: "Meeting",
282
- start: "2018-11-05T12:00:00Z",
283
- end: "2018-11-05T13:00:00Z",
284
- },
285
- ];
286
- const sortedMixedEvents = datetimes.sortEventsByType(mixedEvents);
287
- expect(sortedMixedEvents.allDay.length).toEqual(2);
288
- expect(sortedMixedEvents.allDay[1]).toEqual(mixedEvents[2]);
289
- expect(sortedMixedEvents.timed.length).toEqual(2);
290
- expect(sortedMixedEvents.timed[0]).toEqual(mixedEvents[1]);
291
-
292
- const noTimedEvents = [
293
- {
294
- summary: "Conference",
295
- start: "2018-11-05",
296
- end: "2018-11-06",
297
- },
298
- {
299
- summary: "Another all-day event",
300
- start: "2018-11-05",
301
- end: "2018-11-06",
302
- },
303
- ];
304
- const sortedEvents = datetimes.sortEventsByType(noTimedEvents);
305
- expect(sortedEvents.allDay.length).toEqual(2);
306
- expect(sortedEvents.allDay[1]).toEqual(noTimedEvents[1]);
307
- expect(sortedEvents.timed.length).toEqual(0);
308
-
309
- const noAllDayEvents = [
310
- {
311
- summary: "Client call",
312
- start: "2018-11-05T09:00:00Z",
313
- end: "2018-11-05T10:00:00Z",
314
- },
315
- {
316
- summary: "Meeting",
317
- start: "2018-11-05T12:00:00Z",
318
- end: "2018-11-05T13:00:00Z",
319
- },
320
- ];
321
- const sortedNoAllDayEvents = datetimes.sortEventsByType(noAllDayEvents);
322
- expect(sortedNoAllDayEvents.allDay.length).toEqual(0);
323
- expect(sortedNoAllDayEvents.timed.length).toEqual(2);
324
- expect(sortedNoAllDayEvents.timed[1]).toEqual(noAllDayEvents[1]);
325
-
326
- const MuddledEvents = [
327
- {
328
- summary: "Another all-day event",
329
- start: "2018-11-05",
330
- end: "2018-11-06",
331
- },
332
- {
333
- summary: "Meeting",
334
- start: "2018-11-05T12:00:00Z",
335
- end: "2018-11-05T13:00:00Z",
336
- },
337
- {
338
- summary: "Conference",
339
- start: "2018-11-05",
340
- end: "2018-11-06",
341
- },
342
- {
343
- summary: "Client call",
344
- start: "2018-11-05T09:00:00Z",
345
- end: "2018-11-05T10:00:00Z",
346
- },
347
- {
348
- summary: "Client call #2",
349
- start: "2018-11-05T09:00:00Z",
350
- end: "2018-11-05T10:00:00Z",
351
- },
352
- {
353
- summary: "Client call",
354
- start: "2018-11-05T11:00:00Z",
355
- end: "2018-11-05T11:30:00Z",
356
- },
357
- ];
358
- const sortedMuddledEvents = datetimes.sortEventsByType(MuddledEvents);
359
- expect(sortedMuddledEvents.allDay.length).toEqual(2);
360
- expect(sortedMuddledEvents.timed.length).toEqual(4);
361
- expect(sortedMuddledEvents.timed[0]).toEqual(MuddledEvents[3]);
362
- });
363
-
364
- // getEventByID
365
- it("gets event by ID", () => {
366
- const events = [
367
- {
368
- calendar_id: "cal_0123456",
369
- event_uid: "evt_0123456",
370
- start: "2018-11-05T09:00:00Z",
371
- end: "2018-11-05T17:00:00Z",
372
- },
373
- {
374
- calendar_id: "cal_0123",
375
- event_uid: "evt_0456",
376
- start: "2018-11-05T09:00:00Z",
377
- end: "2018-11-05T10:00:00Z",
378
- },
379
- {
380
- calendar_id: "cal_3456",
381
- event_uid: "evt_0123",
382
- start: "2018-11-05T10:00:00Z",
383
- end: "2018-11-05T12:00:00Z",
384
- },
385
- {
386
- calendar_id: "cal_01234561234",
387
- event_uid: "evt_01234561234",
388
- start: "2018-11-05T12:00:00Z",
389
- end: "2018-11-05T13:00:00Z",
390
- },
391
- ];
392
-
393
- const targetEvent = {
394
- calendar_id: "cal_3456",
395
- event_uid: "evt_0123",
396
- start: "2018-11-05T10:00:00Z",
397
- end: "2018-11-05T12:00:00Z",
398
- };
399
-
400
- expect(datetimes.getEventByID("evt_0123", events)).toEqual(targetEvent);
401
- });
402
-
403
- // getCalColor
404
- it("gets calendar color", () => {
405
- const cals = [
406
- {
407
- name: "NAME THREE",
408
- id: "cal_654_098",
409
- color: 872,
410
- },
411
- {
412
- name: "NAME",
413
- id: "cal_123456",
414
- color: 0,
415
- },
416
- {
417
- name: "NAME TWO",
418
- id: "cal_654321",
419
- color: 1,
420
- },
421
- ];
422
- expect(datetimes.getCalColor("cal_654321", cals)).toEqual(1);
423
- expect(datetimes.getCalColor("cal_654_098", cals)).toEqual(872);
424
- });
425
-
426
- // parseDirection
427
- it("parses a direction into a valid string", () => {
428
- expect(datetimes.parseDirection()).toEqual("forwards");
429
- expect(datetimes.parseDirection("gobbledegook")).toEqual("forwards");
430
- expect(datetimes.parseDirection("forward")).toEqual("forwards");
431
- expect(datetimes.parseDirection("forwards")).toEqual("forwards");
432
-
433
- expect(datetimes.parseDirection("up")).toEqual("upwards");
434
- expect(datetimes.parseDirection("upward")).toEqual("upwards");
435
- expect(datetimes.parseDirection("upwards")).toEqual("upwards");
436
-
437
- expect(datetimes.parseDirection("down")).toEqual("downwards");
438
- expect(datetimes.parseDirection("downward")).toEqual("downwards");
439
- expect(datetimes.parseDirection("downwards")).toEqual("downwards");
440
-
441
- expect(datetimes.parseDirection("back")).toEqual("backwards");
442
- expect(datetimes.parseDirection("backward")).toEqual("backwards");
443
- expect(datetimes.parseDirection("backwards")).toEqual("backwards");
444
- });
445
-
446
- // getCalendarsFromEvents
447
- it("extracts a list of unique calendars from an array of events", () => {
448
- const events = [
449
- {
450
- calendar_id: "1",
451
- },
452
- {
453
- calendar_id: "1",
454
- },
455
- {
456
- calendar_id: "asfg",
457
- },
458
- {
459
- calendar_id: "2",
460
- },
461
- {
462
- calendar_id: "asfg",
463
- },
464
- ];
465
- const calendars = [
466
- { color: 0, id: "1" },
467
- { color: 1, id: "asfg" },
468
- { color: 2, id: "2" },
469
- ];
470
- expect(datetimes.getCalendarsFromEvents(events)).toEqual(calendars);
471
- });
472
- });
@@ -1,74 +0,0 @@
1
- import { generateElementAPI } from "../src/js/helpers/generator";
2
-
3
- // The parsers rely on console warning and errors to
4
- // comunicate problems to the users
5
- console.error = jest.fn();
6
- console.warn = jest.fn();
7
-
8
- jest.mock("react-dom", () => ({
9
- render: jest.fn(),
10
- }));
11
-
12
- beforeEach(() => {
13
- console.error.mockClear();
14
- console.warn.mockClear();
15
- global.document.getElementById = jest.fn(() => true);
16
- });
17
-
18
- describe("Generating generic methods", () => {
19
- it("Adds an update method", () => {
20
- const renderer = jest.fn();
21
- const parser = jest.fn(options => options);
22
- const options = [renderer, {}, parser, "ELEMENT_NAME"];
23
-
24
- const elementAPI = generateElementAPI(...options);
25
-
26
- expect(renderer.mock.calls.length).toBe(1);
27
- expect(typeof elementAPI.update).toBe("function");
28
-
29
- elementAPI.update({});
30
-
31
- expect(console.error).toHaveBeenCalledTimes(0);
32
- expect(console.warn).toHaveBeenCalledTimes(0);
33
- expect(renderer.mock.calls.length).toBe(2);
34
- });
35
-
36
- it("Update method fails with no params", () => {
37
- const renderer = jest.fn();
38
- const parser = jest.fn(options => options);
39
- const options = [renderer, {}, parser, "ELEMENT_NAME"];
40
-
41
- const elementAPI = generateElementAPI(...options);
42
-
43
- expect(renderer.mock.calls.length).toBe(1);
44
-
45
- elementAPI.update();
46
-
47
- expect(console.error).toHaveBeenCalledTimes(0);
48
- expect(console.warn).toHaveBeenCalledTimes(1);
49
-
50
- expect(renderer.mock.calls.length).toBe(1);
51
- });
52
-
53
- it("Adds a refresh method", () => {
54
- const renderer = jest.fn();
55
- const parser = jest.fn(options => options);
56
- const options = [renderer, {}, parser, "ELEMENT_NAME"];
57
-
58
- const elementAPI = generateElementAPI(...options);
59
-
60
- expect(renderer.mock.calls.length).toBe(1);
61
- expect(typeof elementAPI.refresh).toBe("function");
62
-
63
- elementAPI.refresh();
64
-
65
- expect(renderer.mock.calls.length).toBe(2);
66
-
67
- elementAPI.refresh();
68
-
69
- expect(renderer.mock.calls.length).toBe(3);
70
-
71
- expect(console.error).toHaveBeenCalledTimes(0);
72
- expect(console.warn).toHaveBeenCalledTimes(0);
73
- });
74
- });