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,195 +0,0 @@
1
- import * as slotsRulesHelpers from "../src/js/helpers/slots.rules";
2
-
3
- describe("Slots Rules helpers", () => {
4
- // getWeekDays
5
- it("returns array of week days", () => {
6
- const result = slotsRulesHelpers.getWeekDays();
7
- const expectedResult = [
8
- "sunday",
9
- "monday",
10
- "tuesday",
11
- "wednesday",
12
- "thursday",
13
- "friday",
14
- "saturday",
15
- ];
16
- expect(result).toEqual(expectedResult);
17
- });
18
- it("returns array of week days, starting on a monday", () => {
19
- const result = slotsRulesHelpers.getWeekDays("monday");
20
- const expectedResult = [
21
- "monday",
22
- "tuesday",
23
- "wednesday",
24
- "thursday",
25
- "friday",
26
- "saturday",
27
- "sunday",
28
- ];
29
- expect(result).toEqual(expectedResult);
30
- });
31
- it("returns array of week days, starting on a tuesday", () => {
32
- const result = slotsRulesHelpers.getWeekDays("tuesday");
33
- const expectedResult = [
34
- "tuesday",
35
- "wednesday",
36
- "thursday",
37
- "friday",
38
- "saturday",
39
- "sunday",
40
- "monday",
41
- ];
42
- expect(result).toEqual(expectedResult);
43
- });
44
- it("returns array of week days, starting on a wednesday", () => {
45
- const result = slotsRulesHelpers.getWeekDays("wednesday");
46
- const expectedResult = [
47
- "wednesday",
48
- "thursday",
49
- "friday",
50
- "saturday",
51
- "sunday",
52
- "monday",
53
- "tuesday",
54
- ];
55
- expect(result).toEqual(expectedResult);
56
- });
57
- it("returns array of week days, starting on a thursday", () => {
58
- const result = slotsRulesHelpers.getWeekDays("thursday");
59
- const expectedResult = [
60
- "thursday",
61
- "friday",
62
- "saturday",
63
- "sunday",
64
- "monday",
65
- "tuesday",
66
- "wednesday",
67
- ];
68
- expect(result).toEqual(expectedResult);
69
- });
70
- it("returns array of week days, starting on a friday", () => {
71
- const result = slotsRulesHelpers.getWeekDays("friday");
72
- const expectedResult = [
73
- "friday",
74
- "saturday",
75
- "sunday",
76
- "monday",
77
- "tuesday",
78
- "wednesday",
79
- "thursday",
80
- ];
81
- expect(result).toEqual(expectedResult);
82
- });
83
- it("returns array of week days, starting on a saturday", () => {
84
- const result = slotsRulesHelpers.getWeekDays("saturday");
85
- const expectedResult = [
86
- "saturday",
87
- "sunday",
88
- "monday",
89
- "tuesday",
90
- "wednesday",
91
- "thursday",
92
- "friday",
93
- ];
94
- expect(result).toEqual(expectedResult);
95
- });
96
- it("returns array of week days, starting on a sunday", () => {
97
- const result = slotsRulesHelpers.getWeekDays("sunday");
98
- const expectedResult = [
99
- "sunday",
100
- "monday",
101
- "tuesday",
102
- "wednesday",
103
- "thursday",
104
- "friday",
105
- "saturday",
106
- ];
107
- expect(result).toEqual(expectedResult);
108
- });
109
-
110
- it("Generates blank slots (60 mins)", () => {
111
- const options = [60, "sunday", { f: jest.fn() }];
112
- const result = slotsRulesHelpers.generateEmptyRulesSlots(...options);
113
-
114
- const resultKeys = Object.keys(result);
115
- const firstKey = resultKeys[0];
116
- const lastKey = resultKeys[resultKeys.length - 1];
117
-
118
- expect(resultKeys.length).toEqual(168);
119
-
120
- expect(firstKey).toEqual("00_00");
121
- expect(lastKey).toEqual("06_23");
122
-
123
- expect(result[firstKey].start).toEqual("00:00");
124
- expect(result[firstKey].end).toEqual("01:00");
125
- expect(result[firstKey].day).toEqual("sunday");
126
-
127
- expect(result[lastKey].start).toEqual("23:00");
128
- expect(result[lastKey].end).toEqual("24:00");
129
- expect(result[lastKey].day).toEqual("saturday");
130
- });
131
-
132
- it("Generates blank slots (30 mins)", () => {
133
- const options = [30, "sunday", { f: jest.fn() }];
134
- const result = slotsRulesHelpers.generateEmptyRulesSlots(...options);
135
-
136
- const resultKeys = Object.keys(result);
137
- const firstKey = resultKeys[0];
138
- const lastKey = resultKeys[resultKeys.length - 1];
139
-
140
- expect(resultKeys.length).toEqual(336);
141
-
142
- expect(firstKey).toEqual("00_00");
143
- expect(lastKey).toEqual("06_47");
144
-
145
- expect(result[firstKey].start).toEqual("00:00");
146
- expect(result[firstKey].end).toEqual("00:30");
147
- expect(result[firstKey].day).toEqual("sunday");
148
-
149
- expect(result[lastKey].start).toEqual("23:30");
150
- expect(result[lastKey].end).toEqual("24:00");
151
- expect(result[lastKey].day).toEqual("saturday");
152
- });
153
-
154
- it("Generates blank slots (15 mins)", () => {
155
- const options = [15, "sunday", { f: jest.fn() }];
156
- const result = slotsRulesHelpers.generateEmptyRulesSlots(...options);
157
-
158
- const resultKeys = Object.keys(result);
159
- const firstKey = resultKeys[0];
160
- const lastKey = resultKeys[resultKeys.length - 1];
161
-
162
- expect(resultKeys.length).toEqual(672);
163
-
164
- expect(firstKey).toEqual("00_00");
165
- expect(lastKey).toEqual("06_95");
166
-
167
- expect(result[firstKey].start).toEqual("00:00");
168
- expect(result[firstKey].end).toEqual("00:15");
169
- expect(result[firstKey].day).toEqual("sunday");
170
-
171
- expect(result[lastKey].start).toEqual("23:45");
172
- expect(result[lastKey].end).toEqual("24:00");
173
- expect(result[lastKey].day).toEqual("saturday");
174
- });
175
-
176
- it("Generates blank slots (for non-sunday week-starts)", () => {
177
- const options_1 = [60, "monday", { f: jest.fn() }];
178
- const result_1 = slotsRulesHelpers.generateEmptyRulesSlots(...options_1);
179
-
180
- expect(result_1["00_00"].day).toEqual("monday");
181
- expect(result_1["06_23"].day).toEqual("sunday");
182
-
183
- const options_2 = [60, "tuesday", { f: jest.fn() }];
184
- const result_2 = slotsRulesHelpers.generateEmptyRulesSlots(...options_2);
185
-
186
- expect(result_2["00_00"].day).toEqual("tuesday");
187
- expect(result_2["06_23"].day).toEqual("monday");
188
-
189
- const options_3 = [60, "wednesday", { f: jest.fn() }];
190
- const result_3 = slotsRulesHelpers.generateEmptyRulesSlots(...options_3);
191
-
192
- expect(result_3["00_00"].day).toEqual("wednesday");
193
- expect(result_3["06_23"].day).toEqual("tuesday");
194
- });
195
- });
@@ -1,278 +0,0 @@
1
- import * as slotsHelpers from "../src/js/helpers/slots";
2
- import moment from "moment-timezone";
3
-
4
- describe("Slots helpers", () => {
5
- // getDaysFromAvailablePeriods
6
- it("returns a map of days to query_periods", () => {
7
- const mockData = [
8
- {
9
- start: "2018-11-08T15:40:00Z",
10
- end: "2018-11-08T17:00:00Z",
11
- },
12
- {
13
- start: "2018-11-09T09:00:00Z",
14
- end: "2018-11-09T10:00:00Z",
15
- },
16
- {
17
- start: "2018-11-09T10:30:00Z",
18
- end: "2018-11-09T11:30:00Z",
19
- },
20
- {
21
- start: "2018-11-10T09:00:00Z",
22
- end: "2018-11-10T10:00:00Z",
23
- },
24
- {
25
- start: "2018-11-10T10:30:00Z",
26
- end: "2018-11-10T11:30:00Z",
27
- },
28
- {
29
- start: "2018-11-10T12:00:00Z",
30
- end: "2018-11-10T14:30:00Z",
31
- },
32
- ];
33
-
34
- // Timezone labels should be shown native to the given TZID
35
- const expectedResult = {
36
- "2018-11-08": {
37
- label: "Thursday 8th November",
38
- value: "2018-11-08",
39
- slots: [
40
- {
41
- label: "10:40AM - 12:00PM",
42
- value: {
43
- end: "2018-11-08T17:00:00Z",
44
- start: "2018-11-08T15:40:00Z",
45
- },
46
- },
47
- ],
48
- },
49
- "2018-11-09": {
50
- label: "Friday 9th November",
51
- value: "2018-11-09",
52
- slots: [
53
- {
54
- label: "4:00AM - 5:00AM",
55
- value: {
56
- start: "2018-11-09T09:00:00Z",
57
- end: "2018-11-09T10:00:00Z",
58
- },
59
- },
60
- {
61
- label: "5:30AM - 6:30AM",
62
- value: {
63
- start: "2018-11-09T10:30:00Z",
64
- end: "2018-11-09T11:30:00Z",
65
- },
66
- },
67
- ],
68
- },
69
- "2018-11-10": {
70
- label: "Saturday 10th November",
71
- value: "2018-11-10",
72
- slots: [
73
- {
74
- label: "4:00AM - 5:00AM",
75
- value: {
76
- start: "2018-11-10T09:00:00Z",
77
- end: "2018-11-10T10:00:00Z",
78
- },
79
- },
80
- {
81
- label: "5:30AM - 6:30AM",
82
- value: {
83
- start: "2018-11-10T10:30:00Z",
84
- end: "2018-11-10T11:30:00Z",
85
- },
86
- },
87
- {
88
- label: "7:00AM - 9:30AM",
89
- value: {
90
- start: "2018-11-10T12:00:00Z",
91
- end: "2018-11-10T14:30:00Z",
92
- },
93
- },
94
- ],
95
- },
96
- };
97
-
98
- const days = slotsHelpers.getDaysFromAvailablePeriods(
99
- mockData,
100
- "en-US",
101
- "America/New_York"
102
- );
103
-
104
- expect(days).toEqual(expectedResult);
105
- });
106
-
107
- // slotsFromPeriod
108
- it("returns slots in a given period", () => {
109
- const mockData = {
110
- start: "2018-11-08T15:40:00Z",
111
- end: "2018-11-08T17:00:00Z",
112
- };
113
- const expectedResult = [
114
- {
115
- end: "2018-11-08T15:55:00Z",
116
- participants: [],
117
- start: "2018-11-08T15:40:00Z",
118
- },
119
- {
120
- end: "2018-11-08T16:10:00Z",
121
- participants: [],
122
- start: "2018-11-08T15:55:00Z",
123
- },
124
- {
125
- end: "2018-11-08T16:25:00Z",
126
- participants: [],
127
- start: "2018-11-08T16:10:00Z",
128
- },
129
- {
130
- end: "2018-11-08T16:40:00Z",
131
- participants: [],
132
- start: "2018-11-08T16:25:00Z",
133
- },
134
- {
135
- end: "2018-11-08T16:55:00Z",
136
- participants: [],
137
- start: "2018-11-08T16:40:00Z",
138
- },
139
- ];
140
-
141
- const slots = slotsHelpers.slotsFromPeriod(mockData, 15);
142
-
143
- expect(slots).toEqual(expectedResult);
144
- });
145
-
146
- // roundToNextHour
147
- it("rounds up to next hour", () => {
148
- // rounds up
149
- expect(
150
- slotsHelpers
151
- .roundToNextHour(moment("2018-11-08T15:40:00"))
152
- .format(`YYYY-MM-DDTHH:mm[:00]`)
153
- ).toEqual("2018-11-08T16:00:00");
154
- // ...but only if it needs to
155
- expect(
156
- slotsHelpers
157
- .roundToNextHour(moment("2018-11-08T15:00:00"))
158
- .format(`YYYY-MM-DDTHH:mm[:00]`)
159
- ).toEqual("2018-11-08T15:00:00");
160
- });
161
-
162
- // roundToNextHalfHour
163
- it("rounds up to next half-hour", () => {
164
- // rounds up
165
- expect(
166
- slotsHelpers
167
- .roundToNextHalfHour(moment("2018-11-08T15:40:00"))
168
- .format(`YYYY-MM-DDTHH:mm[:00]`)
169
- ).toEqual("2018-11-08T16:00:00");
170
- expect(
171
- slotsHelpers
172
- .roundToNextHalfHour(moment("2018-11-08T15:12:00"))
173
- .format(`YYYY-MM-DDTHH:mm[:00]`)
174
- ).toEqual("2018-11-08T15:30:00");
175
- expect(
176
- slotsHelpers
177
- .roundToNextHalfHour(moment("2018-11-08T15:34:00"))
178
- .format(`YYYY-MM-DDTHH:mm[:00]`)
179
- ).toEqual("2018-11-08T16:00:00");
180
- // ...but only if it needs to
181
- expect(
182
- slotsHelpers
183
- .roundToNextHalfHour(moment("2018-11-08T15:00:00"))
184
- .format(`YYYY-MM-DDTHH:mm[:00]`)
185
- ).toEqual("2018-11-08T15:00:00");
186
- expect(
187
- slotsHelpers
188
- .roundToNextHalfHour(moment("2018-11-08T15:30:00"))
189
- .format(`YYYY-MM-DDTHH:mm[:00]`)
190
- ).toEqual("2018-11-08T15:30:00");
191
- });
192
-
193
- // roundToNextQuarterHour
194
- it("rounds up to next quarter-hour", () => {
195
- // rounds up
196
- expect(
197
- slotsHelpers
198
- .roundToNextQuarterHour(moment("2018-11-08T15:40:00"))
199
- .format(`YYYY-MM-DDTHH:mm[:00]`)
200
- ).toEqual("2018-11-08T15:45:00");
201
- expect(
202
- slotsHelpers
203
- .roundToNextQuarterHour(moment("2018-11-08T15:12:00"))
204
- .format(`YYYY-MM-DDTHH:mm[:00]`)
205
- ).toEqual("2018-11-08T15:15:00");
206
- expect(
207
- slotsHelpers
208
- .roundToNextQuarterHour(moment("2018-11-08T15:34:00"))
209
- .format(`YYYY-MM-DDTHH:mm[:00]`)
210
- ).toEqual("2018-11-08T15:45:00");
211
- // ...but only if it needs to
212
- expect(
213
- slotsHelpers
214
- .roundToNextQuarterHour(moment("2018-11-08T15:00:00"))
215
- .format(`YYYY-MM-DDTHH:mm[:00]`)
216
- ).toEqual("2018-11-08T15:00:00");
217
- expect(
218
- slotsHelpers
219
- .roundToNextQuarterHour(moment("2018-11-08T15:30:00"))
220
- .format(`YYYY-MM-DDTHH:mm[:00]`)
221
- ).toEqual("2018-11-08T15:30:00");
222
- expect(
223
- slotsHelpers
224
- .roundToNextQuarterHour(moment("2018-11-08T15:45:00"))
225
- .format(`YYYY-MM-DDTHH:mm[:00]`)
226
- ).toEqual("2018-11-08T15:45:00");
227
- });
228
-
229
- // roundPeriod
230
- it("rounds to the correct duration", () => {
231
- const mockData = {
232
- start: "2018-11-08T15:10:00Z",
233
- end: "2018-11-08T17:00:00Z",
234
- };
235
-
236
- const hour = jest.fn();
237
- hour.mockReturnValue(moment("2018-11-08T16:00:00Z"));
238
- const half = jest.fn();
239
- half.mockReturnValue(moment("2018-11-08T15:30:00Z"));
240
- const quarter = jest.fn();
241
- quarter.mockReturnValue(moment("2018-11-08T15:15:00Z"));
242
-
243
- slotsHelpers.roundPeriod(mockData, 15, hour, half, quarter);
244
- expect(hour).toHaveBeenCalledTimes(0);
245
- expect(half).toHaveBeenCalledTimes(0);
246
- expect(quarter).toHaveBeenCalledTimes(1);
247
-
248
- slotsHelpers.roundPeriod(mockData, 30, hour, half, quarter);
249
- expect(hour).toHaveBeenCalledTimes(0);
250
- expect(half).toHaveBeenCalledTimes(1);
251
- expect(quarter).toHaveBeenCalledTimes(1);
252
-
253
- slotsHelpers.roundPeriod(mockData, 60, hour, half, quarter);
254
- expect(hour).toHaveBeenCalledTimes(1);
255
- expect(half).toHaveBeenCalledTimes(1);
256
- expect(quarter).toHaveBeenCalledTimes(1);
257
- });
258
-
259
- // parsePeriodsIntoSlots
260
- it("parses periods into slots", () => {
261
- const periods = [
262
- {
263
- start: "2018-11-08T15:40:00Z",
264
- end: "2018-11-08T17:00:00Z",
265
- },
266
- {
267
- start: "2018-11-09T09:00:00Z",
268
- end: "2018-11-09T10:00:00Z",
269
- },
270
- ];
271
- const slots = slotsHelpers.parsePeriodsIntoSlots(periods, 30);
272
- expect(slots.length).toEqual(4);
273
- expect(slots[0].start).toEqual("2018-11-08T16:00:00Z");
274
- expect(slots[0].end).toEqual("2018-11-08T16:30:00Z");
275
- expect(slots[1].start).toEqual("2018-11-08T16:30:00Z");
276
- expect(slots[1].end).toEqual("2018-11-08T17:00:00Z");
277
- });
278
- });
@@ -1,221 +0,0 @@
1
- import * as utils from "../src/js/helpers/utils.AvailabilityRules";
2
-
3
- describe("Utilities: AvailabilityRules", () => {
4
- // buildSlotID
5
- it("builds a correct slot ID", () => {
6
- // Correctly pads single-digit numbers
7
- expect(utils.buildSlotID(1, 2)).toEqual("01_02");
8
- // Correctly pads (or doesn't pad) double-digit numbers
9
- expect(utils.buildSlotID(12, 42)).toEqual("12_42");
10
- // Works with strings
11
- expect(utils.buildSlotID("1", "02")).toEqual("01_02");
12
- });
13
-
14
- // calculateSlotsPerDay
15
- it("correctly calculates slots per day", () => {
16
- // Handles normal results
17
- expect(utils.calculateSlotsPerDay(60, "18:00", "20:00")).toEqual(2);
18
- // Correctly rounds (down) potential floating-point issues
19
- expect(utils.calculateSlotsPerDay(60, "18:30", "20:00")).toEqual(1);
20
- // Never returns negative values
21
- expect(utils.calculateSlotsPerDay(60, "20:00", "18:00")).toEqual(2);
22
- });
23
-
24
- // parseExtras
25
- it("correctly returns extras when none are explicitly set", () => {
26
- const expectedOutput = {
27
- limits: {
28
- duration: 60,
29
- end: "17:30",
30
- slotsOffset: 9,
31
- start: "09:00",
32
- tzid: moment.tz.guess(),
33
- slotsPerDay: 8,
34
- },
35
- slotHeight: { height: 40 },
36
- keyboardSupport: false,
37
- };
38
- expect(utils.parseExtras()).toEqual(expectedOutput);
39
- });
40
-
41
- // parseExtras
42
- it("correctly parses extras", () => {
43
- const input = {
44
- config: {
45
- duration: 30,
46
- start_time: "08:00",
47
- keyboardSupport: "basic",
48
- },
49
- tzid: "America/Chicago",
50
- };
51
- const expectedOutput = {
52
- limits: {
53
- duration: 30,
54
- end: "17:30",
55
- slotsOffset: 16,
56
- start: "08:00",
57
- tzid: "America/Chicago",
58
- slotsPerDay: 19,
59
- },
60
- slotHeight: { height: 26 },
61
- keyboardSupport: "basic",
62
- };
63
- expect(utils.parseExtras(input)).toEqual(expectedOutput);
64
- });
65
-
66
- // parseAccountOptions
67
- it("correctly returns default account options", () => {
68
- const explicit_rule_id = { availability_rule_id: "DEFAULT" };
69
- const expectedOutput = {
70
- availability_rule_id: "DEFAULT",
71
- tzid: "Etc/UTC",
72
- };
73
- expect(utils.parseAccountOptions(explicit_rule_id)).toEqual(expectedOutput);
74
- });
75
-
76
- // parseAccountOptions
77
- it("correctly parses account options", () => {
78
- const input = {
79
- availability_rule_id: "RULE_ID",
80
- unused_option: "UNUSED",
81
- };
82
- const expectedOutput = {
83
- availability_rule_id: "RULE_ID",
84
- tzid: "Etc/UTC",
85
- };
86
- expect(utils.parseAccountOptions(input)).toEqual(expectedOutput);
87
- });
88
-
89
- // buildRuleTemplate
90
- it("builds a rules template", () => {
91
- const tzid = "TEST_TIMEZONE";
92
- const default_weekly_periods = [
93
- {
94
- day: "monday",
95
- end_time: "17:00",
96
- start_time: "09:00",
97
- },
98
- {
99
- day: "tuesday",
100
- end_time: "17:00",
101
- start_time: "09:00",
102
- },
103
- {
104
- day: "wednesday",
105
- end_time: "17:00",
106
- start_time: "09:00",
107
- },
108
- {
109
- day: "thursday",
110
- end_time: "17:00",
111
- start_time: "09:00",
112
- },
113
- {
114
- day: "friday",
115
- end_time: "17:00",
116
- start_time: "09:00",
117
- },
118
- ];
119
- const expectedOutput = {
120
- availability_rule: {
121
- availability_rule_id: "default",
122
- calendar_ids: [],
123
- tzid: "TEST_TIMEZONE",
124
- weekly_periods: [
125
- {
126
- day: "monday",
127
- end_time: "17:00",
128
- start_time: "09:00",
129
- },
130
- {
131
- day: "tuesday",
132
- end_time: "17:00",
133
- start_time: "09:00",
134
- },
135
- {
136
- day: "wednesday",
137
- end_time: "17:00",
138
- start_time: "09:00",
139
- },
140
- {
141
- day: "thursday",
142
- end_time: "17:00",
143
- start_time: "09:00",
144
- },
145
- {
146
- day: "friday",
147
- end_time: "17:00",
148
- start_time: "09:00",
149
- },
150
- ],
151
- },
152
- };
153
- expect(utils.buildRuleTemplate(default_weekly_periods, tzid)).toEqual(expectedOutput);
154
- });
155
-
156
- // buildRuleTemplate
157
- it("builds a rules template when no tzid is provided", () => {
158
- const default_weekly_periods = [
159
- {
160
- day: "monday",
161
- end_time: "17:00",
162
- start_time: "09:00",
163
- },
164
- {
165
- day: "tuesday",
166
- end_time: "17:00",
167
- start_time: "09:00",
168
- },
169
- {
170
- day: "wednesday",
171
- end_time: "17:00",
172
- start_time: "09:00",
173
- },
174
- {
175
- day: "thursday",
176
- end_time: "17:00",
177
- start_time: "09:00",
178
- },
179
- {
180
- day: "friday",
181
- end_time: "17:00",
182
- start_time: "09:00",
183
- },
184
- ];
185
- const expectedOutput = {
186
- availability_rule: {
187
- availability_rule_id: "default",
188
- calendar_ids: [],
189
- tzid: moment.tz.guess(),
190
- weekly_periods: [
191
- {
192
- day: "monday",
193
- end_time: "17:00",
194
- start_time: "09:00",
195
- },
196
- {
197
- day: "tuesday",
198
- end_time: "17:00",
199
- start_time: "09:00",
200
- },
201
- {
202
- day: "wednesday",
203
- end_time: "17:00",
204
- start_time: "09:00",
205
- },
206
- {
207
- day: "thursday",
208
- end_time: "17:00",
209
- start_time: "09:00",
210
- },
211
- {
212
- day: "friday",
213
- end_time: "17:00",
214
- start_time: "09:00",
215
- },
216
- ],
217
- },
218
- };
219
- expect(utils.buildRuleTemplate(default_weekly_periods)).toEqual(expectedOutput);
220
- });
221
- });