cronofy-elements 1.48.2 → 1.49.2

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.2.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.2.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 -423
  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 -61
  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,515 +0,0 @@
1
- import * as utils from "../../src/js/components/DateTimePicker/utils/slots";
2
- import {
3
- rawSlots,
4
- testSequencedSlotsObject,
5
- testSequencedSlotsObjectWithTitle,
6
- testSequencedSlotsArray,
7
- testSequencedQuery,
8
- testSequencedQueryWithTitle,
9
- } from "./dummy-data";
10
- import moment from "moment-timezone";
11
-
12
- describe("DateTimePicker utils", () => {
13
- it("Gets months from single period", () => {
14
- const singleMonthPeriod = {
15
- start: "2021-06-11T00:00:00Z",
16
- end: "2021-06-12T23:00:00Z",
17
- };
18
- const singleMonthPeriodResult = utils.getMonthsCoveredByPeriod(
19
- singleMonthPeriod,
20
- "Etc/UTC"
21
- );
22
- expect(singleMonthPeriodResult.length).toBe(1);
23
- expect(singleMonthPeriodResult[0]).toBe("2021-06");
24
-
25
- const twoMonthPeriod = {
26
- start: "2021-06-11T00:00:00Z",
27
- end: "2021-07-12T23:00:00Z",
28
- };
29
- const twoMonthPeriodResult = utils.getMonthsCoveredByPeriod(twoMonthPeriod, "Etc/UTC");
30
- expect(twoMonthPeriodResult.length).toBe(2);
31
- expect(twoMonthPeriodResult[0]).toBe("2021-06");
32
- expect(twoMonthPeriodResult[1]).toBe("2021-07");
33
-
34
- const multiMonthPeriod = {
35
- start: "2021-06-11T00:00:00Z",
36
- end: "2021-10-12T23:00:00Z",
37
- };
38
- const multiMonthPeriodResult = utils.getMonthsCoveredByPeriod(multiMonthPeriod, "Etc/UTC");
39
- expect(multiMonthPeriodResult.length).toBe(5);
40
- expect(multiMonthPeriodResult[0]).toBe("2021-06");
41
- expect(multiMonthPeriodResult[1]).toBe("2021-07");
42
- expect(multiMonthPeriodResult[2]).toBe("2021-08");
43
- expect(multiMonthPeriodResult[3]).toBe("2021-09");
44
- expect(multiMonthPeriodResult[4]).toBe("2021-10");
45
- });
46
-
47
- it("Gets months from full query_period", () => {
48
- const periods = [
49
- {
50
- start: "2021-06-11T00:00:00Z",
51
- end: "2021-06-12T23:00:00Z",
52
- },
53
- {
54
- start: "2021-06-13T00:00:00Z",
55
- end: "2021-07-14T23:00:00Z",
56
- },
57
- ];
58
-
59
- const result = utils.getMonthsFromQuery(periods, "Etc/UTC");
60
- expect(result.length).toBe(2);
61
- expect(result[0]).toBe("2021-06");
62
- expect(result[1]).toBe("2021-07");
63
- });
64
-
65
- it("Trims a period to be within a specific start and end time", () => {
66
- const startLimit = "2021-06-01T00:00:00Z";
67
- const endLimit = "2021-06-30T23:59:00Z";
68
-
69
- // Trims both ends if both overlap
70
- const fullyOverlappingPeriod = {
71
- start: "2021-05-11T00:00:00Z",
72
- end: "2021-07-14T23:00:00Z",
73
- };
74
- const trimmedFullyOverlappingPeriod = utils.trimPeriod(
75
- fullyOverlappingPeriod,
76
- startLimit,
77
- endLimit
78
- );
79
- expect(trimmedFullyOverlappingPeriod.start).toBe(startLimit);
80
- expect(trimmedFullyOverlappingPeriod.end).toBe(endLimit);
81
-
82
- // Only trims end if only end overlaps
83
- const partOverlappingPeriod_1 = {
84
- start: "2021-06-11T00:00:00Z",
85
- end: "2021-07-14T23:00:00Z",
86
- };
87
- const trimmedPartOverlappingPeriod_1 = utils.trimPeriod(
88
- partOverlappingPeriod_1,
89
- startLimit,
90
- endLimit
91
- );
92
- expect(trimmedPartOverlappingPeriod_1.start).toBe(partOverlappingPeriod_1.start);
93
- expect(trimmedPartOverlappingPeriod_1.end).toBe(endLimit);
94
-
95
- // Only trims start if only start overlaps
96
- const partOverlappingPeriod_2 = {
97
- start: "2021-05-11T00:00:00Z",
98
- end: "2021-06-14T23:00:00Z",
99
- };
100
- const trimmedPartOverlappingPeriod_2 = utils.trimPeriod(
101
- partOverlappingPeriod_2,
102
- startLimit,
103
- endLimit
104
- );
105
- expect(trimmedPartOverlappingPeriod_2.start).toBe(startLimit);
106
- expect(trimmedPartOverlappingPeriod_2.end).toBe(partOverlappingPeriod_2.end);
107
-
108
- // Does no trimming if there is no overlap
109
- const nonOverlappingPeriod = {
110
- start: "2021-06-11T00:00:00Z",
111
- end: "2021-06-14T23:00:00Z",
112
- };
113
- const trimmedNonOverlappingPeriod = utils.trimPeriod(
114
- nonOverlappingPeriod,
115
- startLimit,
116
- endLimit
117
- );
118
- expect(trimmedNonOverlappingPeriod.start).toBe(nonOverlappingPeriod.start);
119
- expect(trimmedNonOverlappingPeriod.end).toBe(nonOverlappingPeriod.end);
120
- });
121
-
122
- it("gets tz-aware start and end times for a given month", () => {
123
- const month__UTC = utils.getMonthBounds("2021-07", "Etc/UTC");
124
- expect(month__UTC.start).toBe("2021-07-01T00:00:00Z");
125
- expect(month__UTC.end).toBe("2021-07-31T23:59:00Z");
126
-
127
- const month__London = utils.getMonthBounds("2021-07", "Europe/London");
128
- expect(month__London.start).toBe("2021-06-30T23:00:00Z");
129
- expect(month__London.end).toBe("2021-07-31T22:59:00Z");
130
-
131
- const month__Fiji = utils.getMonthBounds("2021-07", "Pacific/Fiji");
132
- expect(month__Fiji.start).toBe("2021-06-30T12:00:00Z");
133
- expect(month__Fiji.end).toBe("2021-07-31T11:59:00Z");
134
-
135
- const month__New_Salem = utils.getMonthBounds("2021-07", "America/North_Dakota/New_Salem");
136
- expect(month__New_Salem.start).toBe("2021-07-01T05:00:00Z");
137
- expect(month__New_Salem.end).toBe("2021-08-01T04:59:00Z");
138
- });
139
-
140
- it("gets slots for a single day", () => {
141
- const exampleSlots = { ...rawSlots };
142
- const slotsByDay = utils.getSlotsByDay(exampleSlots, "2021-06-18", "Europe/London");
143
- expect(slotsByDay.length).toBe(3);
144
- });
145
-
146
- it("adds sequenced slots to object", () => {
147
- const exampleSlots = [...testSequencedSlotsArray];
148
- const slotsObject = utils.addSequencedSlotsToObject(
149
- {},
150
- exampleSlots,
151
- testSequencedQuery.sequence
152
- );
153
- expect(slotsObject).toStrictEqual(testSequencedSlotsObject);
154
- });
155
-
156
- it("adds sequenced slots to object with sequence title", () => {
157
- const exampleSlots = [...testSequencedSlotsArray];
158
- const slotsObject = utils.addSequencedSlotsToObject(
159
- {},
160
- exampleSlots,
161
- testSequencedQueryWithTitle.sequence
162
- );
163
- expect(slotsObject).toStrictEqual(testSequencedSlotsObjectWithTitle);
164
- });
165
-
166
- describe("Parses the timezone list correctly", () => {
167
- it("gets timezone list", () => {
168
- const timezones = ["Europe/London", "Asia/Kathmandu", "Pacific/Fiji"];
169
-
170
- const result = [
171
- {
172
- tzid: "Europe/London",
173
- offset: moment.tz("Europe/London").format("Z"),
174
- offsetMins: moment.tz("Europe/London").utcOffset(),
175
- name: "London",
176
- abbr: moment.tz("Europe/London").zoneAbbr(),
177
- },
178
- {
179
- tzid: "Asia/Kathmandu",
180
- offset: moment.tz("Asia/Kathmandu").format("Z"),
181
- offsetMins: moment.tz("Asia/Kathmandu").utcOffset(),
182
- name: "Kathmandu",
183
- abbr: moment.tz("Asia/Kathmandu").zoneAbbr(),
184
- },
185
- {
186
- tzid: "Pacific/Fiji",
187
- offset: moment.tz("Pacific/Fiji").format("Z"),
188
- offsetMins: moment.tz("Pacific/Fiji").utcOffset(),
189
- name: "Fiji",
190
- abbr: moment.tz("Pacific/Fiji").zoneAbbr(),
191
- },
192
- ];
193
- result.sort((tzA, tzB) => tzA.offsetMins - tzB.offsetMins);
194
-
195
- const tzid = "Europe/London";
196
-
197
- const tzList = utils.parseTzList(timezones, tzid);
198
-
199
- expect(tzList.length).toBe(3);
200
- expect(tzList).toEqual(result);
201
- });
202
-
203
- it("gets timezone list with a tzid that isn't in the list", () => {
204
- const timezones = [
205
- "Europe/London",
206
- "Asia/Kathmandu",
207
- "Pacific/Fiji",
208
- "Africa/Dar_es_Salaam",
209
- ];
210
-
211
- const result = [
212
- {
213
- tzid: "Europe/London",
214
- offset: moment.tz("Europe/London").format("Z"),
215
- offsetMins: moment.tz("Europe/London").utcOffset(),
216
- name: "London",
217
- abbr: moment.tz("Europe/London").zoneAbbr(),
218
- },
219
- {
220
- tzid: "Asia/Kathmandu",
221
- offset: moment.tz("Asia/Kathmandu").format("Z"),
222
- offsetMins: moment.tz("Asia/Kathmandu").utcOffset(),
223
- name: "Kathmandu",
224
- abbr: moment.tz("Asia/Kathmandu").zoneAbbr(),
225
- },
226
- {
227
- tzid: "Africa/Libreville",
228
- offset: moment.tz("Africa/Libreville").format("Z"),
229
- offsetMins: moment.tz("Africa/Libreville").utcOffset(),
230
- name: "Libreville",
231
- abbr: moment.tz("Africa/Libreville").zoneAbbr(),
232
- },
233
- {
234
- tzid: "Pacific/Fiji",
235
- offset: moment.tz("Pacific/Fiji").format("Z"),
236
- offsetMins: moment.tz("Pacific/Fiji").utcOffset(),
237
- name: "Fiji",
238
- abbr: moment.tz("Pacific/Fiji").zoneAbbr(),
239
- },
240
- {
241
- tzid: "Africa/Dar_es_Salaam",
242
- offset: moment.tz("Africa/Dar_es_Salaam").format("Z"),
243
- offsetMins: moment.tz("Africa/Dar_es_Salaam").utcOffset(),
244
- name: "Dar es Salaam",
245
- abbr: moment.tz("Africa/Dar_es_Salaam").zoneAbbr(),
246
- },
247
- ];
248
- result.sort((tzA, tzB) => tzA.offsetMins - tzB.offsetMins);
249
-
250
- const tzid = "Africa/Libreville";
251
-
252
- const tzList = utils.parseTzList(timezones, tzid);
253
-
254
- expect(tzList.length).toBe(5);
255
- expect(tzList).toEqual(result);
256
- });
257
-
258
- it("gets initial selected tzid", () => {
259
- const tzList = [
260
- {
261
- tzid: "Europe/London",
262
- offset: moment.tz("Europe/London").format("Z"),
263
- offsetMins: moment.tz("Europe/London").utcOffset(),
264
- name: "London",
265
- abbr: moment.tz("Europe/London").zoneAbbr(),
266
- },
267
- {
268
- tzid: "Asia/Kathmandu",
269
- offset: moment.tz("Asia/Kathmandu").format("Z"),
270
- offsetMins: moment.tz("Asia/Kathmandu").utcOffset(),
271
- name: "Kathmandu",
272
- abbr: moment.tz("Asia/Kathmandu").zoneAbbr(),
273
- },
274
- {
275
- tzid: "Pacific/Fiji",
276
- offset: moment.tz("Pacific/Fiji").format("Z"),
277
- offsetMins: moment.tz("Pacific/Fiji").utcOffset(),
278
- name: "Fiji",
279
- abbr: moment.tz("Pacific/Fiji").zoneAbbr(),
280
- },
281
- ];
282
- const tzid = "Europe/London";
283
-
284
- const result = {
285
- tzid: "Europe/London",
286
- offset: moment.tz("Europe/London").format("Z"),
287
- offsetMins: moment.tz("Europe/London").utcOffset(),
288
- name: "London",
289
- abbr: moment.tz("Europe/London").zoneAbbr(),
290
- };
291
- const selectedTzid = utils.getInitialSelectedTzid(tzList, tzid);
292
-
293
- expect(selectedTzid).toEqual(result);
294
- });
295
- });
296
-
297
- describe("getMonthObjectsFromQuery", () => {
298
- const tzid = "Etc/UTC";
299
-
300
- it("returns the currentMonth when query_periods is empty", () => {
301
- const query_periods = [];
302
-
303
- const query = {
304
- query_periods,
305
- };
306
-
307
- const expected = [
308
- {
309
- month: moment.tz().format("YYYY-MM"),
310
- current: true,
311
- },
312
- ];
313
-
314
- const actual = utils.getMonthObjectsFromQuery(query, tzid);
315
-
316
- expect(actual).toEqual(expected);
317
- });
318
-
319
- describe("when query_periods is populated", () => {
320
- const query_periods = [
321
- {
322
- start: "2021-06-11T00:00:00Z",
323
- end: "2021-06-12T23:00:00Z",
324
- },
325
- {
326
- start: "2021-06-13T00:00:00Z",
327
- end: "2021-07-14T23:00:00Z",
328
- },
329
- ];
330
-
331
- it("returns list based on query_periods", () => {
332
- const query = {
333
- query_periods,
334
- };
335
-
336
- const expected = [
337
- {
338
- month: "2021-06",
339
- current: true,
340
- loading: true,
341
- query: {
342
- query_periods: [
343
- {
344
- end: "2021-06-12T23:00:00Z",
345
- start: "2021-06-11T00:00:00Z",
346
- },
347
- {
348
- end: "2021-06-30T23:59:00Z",
349
- start: "2021-06-13T00:00:00Z",
350
- },
351
- ],
352
- max_results: 512,
353
- },
354
- },
355
- {
356
- month: "2021-07",
357
- current: false,
358
- loading: true,
359
- query: {
360
- query_periods: [
361
- {
362
- end: "2021-07-14T23:00:00Z",
363
- start: "2021-07-01T00:00:00Z",
364
- },
365
- ],
366
- max_results: 512,
367
- },
368
- },
369
- ];
370
-
371
- const actual = utils.getMonthObjectsFromQuery(query, tzid);
372
-
373
- expect(actual).toEqual(expected);
374
- });
375
-
376
- it("correctly sets max_results", () => {
377
- const query = {
378
- query_periods,
379
- max_results: 15,
380
- };
381
-
382
- const expected = [
383
- {
384
- month: "2021-06",
385
- current: true,
386
- loading: true,
387
- query: {
388
- query_periods: [
389
- {
390
- end: "2021-06-12T23:00:00Z",
391
- start: "2021-06-11T00:00:00Z",
392
- },
393
- {
394
- end: "2021-06-30T23:59:00Z",
395
- start: "2021-06-13T00:00:00Z",
396
- },
397
- ],
398
- max_results: 15,
399
- },
400
- },
401
- {
402
- month: "2021-07",
403
- current: false,
404
- loading: true,
405
- query: {
406
- query_periods: [
407
- {
408
- end: "2021-07-14T23:00:00Z",
409
- start: "2021-07-01T00:00:00Z",
410
- },
411
- ],
412
- max_results: 15,
413
- },
414
- },
415
- ];
416
-
417
- const actual = utils.getMonthObjectsFromQuery(query, tzid);
418
-
419
- expect(actual).toEqual(expected);
420
- });
421
-
422
- it("defaults max_results to 512", () => {
423
- const query = {
424
- query_periods,
425
- };
426
-
427
- const expected = [
428
- {
429
- month: "2021-06",
430
- current: true,
431
- loading: true,
432
- query: {
433
- query_periods: [
434
- {
435
- end: "2021-06-12T23:00:00Z",
436
- start: "2021-06-11T00:00:00Z",
437
- },
438
- {
439
- end: "2021-06-30T23:59:00Z",
440
- start: "2021-06-13T00:00:00Z",
441
- },
442
- ],
443
- max_results: 512,
444
- },
445
- },
446
- {
447
- month: "2021-07",
448
- current: false,
449
- loading: true,
450
- query: {
451
- query_periods: [
452
- {
453
- end: "2021-07-14T23:00:00Z",
454
- start: "2021-07-01T00:00:00Z",
455
- },
456
- ],
457
- max_results: 512,
458
- },
459
- },
460
- ];
461
-
462
- const actual = utils.getMonthObjectsFromQuery(query, tzid);
463
-
464
- expect(actual).toEqual(expected);
465
- });
466
-
467
- it("returns with the correct month set to current when selectedDay is set", () => {
468
- const selectedDay = "2021-07";
469
-
470
- const query = {
471
- query_periods,
472
- };
473
-
474
- const expected = [
475
- {
476
- month: "2021-06",
477
- current: false,
478
- loading: true,
479
- query: {
480
- query_periods: [
481
- {
482
- end: "2021-06-12T23:00:00Z",
483
- start: "2021-06-11T00:00:00Z",
484
- },
485
- {
486
- end: "2021-06-30T23:59:00Z",
487
- start: "2021-06-13T00:00:00Z",
488
- },
489
- ],
490
- max_results: 512,
491
- },
492
- },
493
- {
494
- month: "2021-07",
495
- current: true,
496
- loading: true,
497
- query: {
498
- query_periods: [
499
- {
500
- end: "2021-07-14T23:00:00Z",
501
- start: "2021-07-01T00:00:00Z",
502
- },
503
- ],
504
- max_results: 512,
505
- },
506
- },
507
- ];
508
-
509
- const actual = utils.getMonthObjectsFromQuery(query, tzid, selectedDay);
510
-
511
- expect(actual).toEqual(expected);
512
- });
513
- });
514
- });
515
- });
@@ -1,70 +0,0 @@
1
- import * as colors from "../src/js/helpers/colors";
2
-
3
- describe("Colors", () => {
4
- // hexToRGB
5
- it("converts a hex code into an RGB value", () => {
6
- expect(colors.hexToRGB("ff00ee")).toEqual([255, 0, 238]);
7
- expect(colors.hexToRGB("000000")).toEqual([0, 0, 0]);
8
- expect(colors.hexToRGB("ffffff")).toEqual([255, 255, 255]);
9
- });
10
-
11
- // normalize
12
- it("normalizes values to within 0 and 255", () => {
13
- expect(colors.normalize(-24)).toEqual(0);
14
- expect(colors.normalize(24)).toEqual(24);
15
- expect(colors.normalize(260)).toEqual(255);
16
- expect(colors.normalize(1)).toEqual(1);
17
- expect(colors.normalize(255)).toEqual(255);
18
- });
19
-
20
- // shift
21
- it("shifts a color by a given amount", () => {
22
- expect(colors.shift("aaaaaa", 10)).toEqual("#b4b4b4");
23
- expect(colors.shift("#aabbcc", 10)).toEqual("#b4c5d6");
24
- expect(colors.shift("#aabbcc", 255)).toEqual("#ffffff");
25
- expect(colors.shift("aabbcc", -255)).toEqual("#000000");
26
- });
27
-
28
- // getCalendarColors
29
- it("gets the colors for a calendar when no calendar-colors have been set", () => {
30
- const themeColors = {
31
- black: "#4d4d4d",
32
- greyLight: "#e4ebf2",
33
- white: "#FFFFFF",
34
- };
35
- const calendarColors = {
36
- ...themeColors,
37
- calendars: [],
38
- dark: "#7d9ec0",
39
- main: "#e4ebf2",
40
- mid: "#c2d2e1",
41
- text: "#4d4d4d",
42
- };
43
- expect(colors.getCalendarColors(themeColors, 1)).toEqual(calendarColors);
44
- });
45
- // getCalendarColors
46
- it("gets the colors for a calendar when calendar-colors are provided", () => {
47
- const themeColors = {
48
- black: "#4d4d4d",
49
- calendars: ["#ff0000", "#00ff00"],
50
- greyLight: "#e4ebf2",
51
- white: "#ffffff",
52
- };
53
- const calendarColors_0 = {
54
- ...themeColors,
55
- dark: "#600",
56
- main: "#ff0000",
57
- mid: "#c00",
58
- text: "#ffffff",
59
- };
60
- const calendarColors_1 = {
61
- ...themeColors,
62
- dark: "#060",
63
- main: "#00ff00",
64
- mid: "#0c0",
65
- text: "#4d4d4d",
66
- };
67
- expect(colors.getCalendarColors(themeColors, 0)).toEqual(calendarColors_0);
68
- expect(colors.getCalendarColors(themeColors, 1)).toEqual(calendarColors_1);
69
- });
70
- });