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,255 +0,0 @@
1
- import * as i18n from "../src/js/helpers/i18n";
2
- import moment from "moment";
3
-
4
- describe("i18n", () => {
5
- // getNavigatorLanguage
6
- it("extracts the locale from the navigator", () => {
7
- // gets the first locale if array is set
8
- expect(i18n.getNavigatorLanguage({ languages: ["en"] })).toEqual("en");
9
- // ...otherwise checks userLanguage
10
- expect(i18n.getNavigatorLanguage({ userLanguage: "en" })).toEqual("en");
11
- // ...otherwise checks language
12
- expect(i18n.getNavigatorLanguage({ language: "en" })).toEqual("en");
13
- // ...otherwise checks browserLanguage
14
- expect(i18n.getNavigatorLanguage({ browserLanguage: "en" })).toEqual("en");
15
- // falls back to "en"
16
- expect(i18n.getNavigatorLanguage(false)).toEqual("en");
17
- });
18
-
19
- // i18n
20
- it("picks the correct phrase by slug and locale", () => {
21
- const testPhrases = {
22
- en: {
23
- core: { test: "Testing" },
24
- alternate_context: {
25
- test: "Alternate test",
26
- extra: "An extra thing",
27
- },
28
- },
29
- de: {
30
- core: { test: "Testen" },
31
- alternate_context: {
32
- extra: "Eine extra Sache",
33
- },
34
- },
35
- };
36
-
37
- const english = i18n.i18n("core", "test", "en", testPhrases);
38
- expect(english).toEqual("Testing");
39
-
40
- const german = i18n.i18n("core", "test", "de", testPhrases);
41
- expect(german).toEqual("Testen");
42
-
43
- const alternateContext = i18n.i18n("alternate_context", "extra", "en", testPhrases);
44
- expect(alternateContext).toEqual("An extra thing");
45
-
46
- const alternateContextDe = i18n.i18n("alternate_context", "extra", "de", testPhrases);
47
- expect(alternateContextDe).toEqual("Eine extra Sache");
48
- });
49
-
50
- it("handles missing locales without breaking", () => {
51
- const testPhrases = {
52
- en: {
53
- core: { test: "Testing" },
54
- alternate_context: {
55
- test: "Alternate test",
56
- extra: "An extra thing",
57
- },
58
- },
59
- de: {
60
- core: { test: "Testen" },
61
- alternate_context: {
62
- extra: "Eine extra Sache",
63
- },
64
- },
65
- };
66
-
67
- const context = "core";
68
-
69
- const noLocale = i18n.i18n(context, "test", "gibberish", testPhrases);
70
- expect(noLocale).toEqual("Testing");
71
- });
72
-
73
- it("handles missing context without breaking", () => {
74
- const testPhrases = {
75
- en: {
76
- core: { test: "Testing" },
77
- alternate_context: {
78
- test: "Alternate test",
79
- extra: "An extra thing",
80
- },
81
- },
82
- de: {
83
- core: { test: "Testen" },
84
- alternate_context: {
85
- extra: "Eine extra Sache",
86
- },
87
- },
88
- };
89
-
90
- const alternateContext = i18n.i18n("alternate_context", "test", "en", testPhrases);
91
- expect(alternateContext).toEqual("Alternate test");
92
-
93
- const alternateContextDe = i18n.i18n("missing_context", "test", "de", testPhrases);
94
- expect(alternateContextDe).toEqual("Testen");
95
- });
96
-
97
- it("handles missing phrases without breaking", () => {
98
- // If there's no translation found, i18n() will output a `warn`.
99
- // We're mocking that here for 2 reasons:
100
- // 1. Keep the test's terminal output clean.
101
- // 2. Test if the warn has been called (without having to test a native browser function).
102
- console.warn = jest.fn();
103
-
104
- const testPhrases = {
105
- en: {
106
- core: { test: "Testing" },
107
- alternate_context: {
108
- test: "Alternate test",
109
- extra: "An extra thing",
110
- },
111
- },
112
- de: {
113
- core: { test: "Testen" },
114
- alternate_context: {
115
- extra: "Eine extra Sache",
116
- },
117
- },
118
- };
119
- const alternateContextDe2 = i18n.i18n(
120
- "alternate_context",
121
- "this_slug_does_not_exist",
122
- "de",
123
- testPhrases
124
- );
125
- expect(alternateContextDe2).toEqual("This slug does not exist");
126
- expect(console.warn).toHaveBeenCalledTimes(1);
127
-
128
- const alternateContextFr = i18n.i18n(
129
- "alternate_context",
130
- "this_slug_does_not_exist",
131
- "fr",
132
- testPhrases
133
- );
134
- expect(alternateContextFr).toEqual("This slug does not exist");
135
- expect(console.warn).toHaveBeenCalledTimes(2);
136
-
137
- const incorrectSlug = i18n.i18n("core", "this_slug_does_not_exist");
138
- expect(incorrectSlug).toEqual("This slug does not exist");
139
- expect(console.warn).toHaveBeenCalledTimes(3);
140
- });
141
-
142
- it("fallsback to the base language when the locale is a dialect without a translation", () => {
143
- const testPhrases = {
144
- en: {
145
- core: { stairs: "stairs", choux_bun: "choux bun" },
146
- },
147
- "en-COCKNEY": {
148
- core: { stairs: "apples and pears" },
149
- },
150
- };
151
-
152
- const dialectExists = i18n.i18n("core", "stairs", "en-COCKNEY", testPhrases);
153
- expect(dialectExists).toEqual("apples and pears");
154
-
155
- const fallbackRequired = i18n.i18n("core", "choux_bun", "en-COCKNEY", testPhrases);
156
- expect(fallbackRequired).toEqual("choux bun");
157
- });
158
- });
159
-
160
- describe("i18n.dateToSlotStringWithoutTzShift", () => {
161
- const testTime = moment("2021-08-12T10:00:00Z");
162
-
163
- it("EN formats the time into a reasonable format", () => {
164
- const translations = i18n.i18nConstructor({ locale: "en", tzid: "UTC" });
165
-
166
- const formatted = translations.dateToSlotStringWithoutTzShift(testTime);
167
- expect(formatted).toEqual("Thursday 12th August");
168
- });
169
-
170
- it("translates the elements in the EN format", () => {
171
- const translations = i18n.i18nConstructor({ locale: "de", tzid: "UTC" });
172
-
173
- const formatted = translations.dateToSlotStringWithoutTzShift(testTime);
174
- expect(formatted).toEqual("Donnerstag 12. August");
175
- });
176
-
177
- describe("when constructed using some locale_modifiers for the current locale", () => {
178
- it("returns the modified variant of the date format", () => {
179
- const translations = i18n.i18nConstructor({
180
- locale: "ja",
181
- localeModifiers: { ja: { dates: "western" } },
182
- tzid: "UTC",
183
- });
184
-
185
- const formatted = translations.dateToSlotStringWithoutTzShift(testTime);
186
- expect(formatted).toEqual("2021年 8月 12日 (木)");
187
- });
188
- });
189
-
190
- describe("when constructed using some locale_modifiers for another locale", () => {
191
- it("returns the modified variant of the date format", () => {
192
- const translations = i18n.i18nConstructor({
193
- locale: "en",
194
- localeModifiers: { ja: { dates: "western" } },
195
- tzid: "UTC",
196
- });
197
-
198
- const formatted = translations.dateToSlotStringWithoutTzShift(testTime);
199
- expect(formatted).toEqual("Thursday 12th August");
200
- });
201
- });
202
-
203
- describe("when constructed with invalid locale_modifiers", () => {
204
- it("returns a the default date format", () => {
205
- const translations = i18n.i18nConstructor({
206
- locale: "ja",
207
- localeModifiers: { ja: { dates: "asterley" } },
208
- tzid: "UTC",
209
- });
210
-
211
- const formatted = translations.dateToSlotStringWithoutTzShift(testTime);
212
- expect(formatted).toEqual("木曜日 12日 8月");
213
- });
214
- });
215
- });
216
-
217
- describe("i18n.timeToSlotString", () => {
218
- const testTime = moment("2021-08-12T15:00:00Z");
219
-
220
- describe("in a locale that favours 12 hour time", () => {
221
- it("returns a the default date format", () => {
222
- const translations = i18n.i18nConstructor({
223
- locale: "en-US",
224
- tzid: "UTC",
225
- });
226
-
227
- const formatted = translations.timeToSlotString(testTime);
228
- expect(formatted).toEqual("3:00PM");
229
- });
230
- });
231
-
232
- describe("in a locale that favours 24 hour time", () => {
233
- it("returns a the default date format", () => {
234
- const translations = i18n.i18nConstructor({
235
- locale: "fr",
236
- tzid: "UTC",
237
- });
238
-
239
- const formatted = translations.timeToSlotString(testTime);
240
- expect(formatted).toEqual("15:00");
241
- });
242
- });
243
-
244
- describe("in timezone offset from UTC", () => {
245
- it("returns a the default date format", () => {
246
- const translations = i18n.i18nConstructor({
247
- locale: "en-US",
248
- tzid: "America/Chicago",
249
- });
250
-
251
- const formatted = translations.timeToSlotString(testTime);
252
- expect(formatted).toEqual("10:00AM");
253
- });
254
- });
255
- });
@@ -1,122 +0,0 @@
1
- import { parseAgendaOptions } from "../src/js/helpers/init.Agenda";
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
- beforeEach(() => {
9
- console.error.mockClear();
10
- console.warn.mockClear();
11
- });
12
-
13
- describe("Parsing Agenda options", () => {
14
- it("works when all options are declared", () => {
15
- const input = {
16
- data_center: "de",
17
- target_id: "TARGET",
18
- element_token: "TOKEN",
19
- };
20
- const expectedOutput = {
21
- config: { logs: "warn", mode: "default" },
22
- data_center: "de",
23
- domains: {
24
- apiDomain: "https://api-de.cronofy.com",
25
- appDomain: "https://app-de.cronofy.com",
26
- },
27
- target: "TARGET",
28
- token: "TOKEN",
29
- };
30
- const result = parseAgendaOptions(input);
31
- expect(result.data_center).toEqual(expectedOutput.data_center);
32
- expect(result.domains).toEqual(expectedOutput.domains);
33
- expect(result.target).toEqual(expectedOutput.target);
34
- expect(result.token).toEqual(expectedOutput.token);
35
- expect(result.config).toEqual(expectedOutput.config);
36
- expect(console.error).toHaveBeenCalledTimes(0);
37
- expect(console.warn).toHaveBeenCalledTimes(0);
38
- });
39
-
40
- it("supports valid modes", () => {
41
- const input = {
42
- config: { mode: "free_busy" },
43
- target_id: "TARGET",
44
- element_token: "TOKEN",
45
- };
46
- const expectedConfig = { logs: "warn", mode: "free_busy" };
47
-
48
- const result = parseAgendaOptions(input);
49
- expect(result.config).toEqual(expectedConfig);
50
- expect(result.config.mode).toEqual("free_busy");
51
- expect(console.error).toHaveBeenCalledTimes(0);
52
- expect(console.warn).toHaveBeenCalledTimes(0);
53
- });
54
-
55
- it("errors when given an invalid mode", () => {
56
- const input = {
57
- config: { mode: "INVALID_MODE" },
58
- target_id: "TARGET",
59
- element_token: "TOKEN",
60
- };
61
-
62
- const result = parseAgendaOptions(input);
63
- expect(result).toEqual(false);
64
- expect(console.error).toHaveBeenCalledTimes(1);
65
- expect(console.warn).toHaveBeenCalledTimes(0);
66
- });
67
-
68
- it("fails if there is no token declared", () => {
69
- expect(parseAgendaOptions({ target_id: "TARGET" })).toEqual(false);
70
- expect(console.error).toHaveBeenCalledTimes(1);
71
- });
72
-
73
- it("continues if there is no token declared, but we're in demo mode", () => {
74
- const expectedOutput = {
75
- demo: true,
76
- domains: {
77
- apiDomain: "https://api.cronofy.com",
78
- appDomain: "https://app.cronofy.com",
79
- },
80
- target: "cronofy-element-agenda",
81
- token: false,
82
- };
83
- const result = parseAgendaOptions({ demo: true });
84
- expect(result.demo).toEqual(expectedOutput.demo);
85
- expect(result.token).toEqual(expectedOutput.token);
86
- expect(console.warn).toHaveBeenCalledTimes(2);
87
- expect(console.error).toHaveBeenCalledTimes(0);
88
- });
89
-
90
- it("applies the default target if there is no target option", () => {
91
- const expectedOutput = {
92
- target: "cronofy-element-agenda",
93
- token: "TOKEN",
94
- domains: {
95
- apiDomain: "https://api.cronofy.com",
96
- appDomain: "https://app.cronofy.com",
97
- },
98
- };
99
- const result = parseAgendaOptions({ element_token: "TOKEN" });
100
- expect(result.target).toEqual(expectedOutput.target);
101
- expect(console.warn).toHaveBeenCalledTimes(1);
102
- expect(console.error).toHaveBeenCalledTimes(0);
103
- });
104
-
105
- it("applies the default api_domain if there is no api_domain option", () => {
106
- const expectedOutput = {
107
- domains: {
108
- apiDomain: "https://api.cronofy.com",
109
- appDomain: "https://app.cronofy.com",
110
- },
111
- target: "TARGET",
112
- token: "TOKEN",
113
- };
114
- const result = parseAgendaOptions({
115
- element_token: "TOKEN",
116
- target_id: "TARGET",
117
- });
118
- expect(result.domains).toEqual(expectedOutput.domains);
119
- expect(console.warn).toHaveBeenCalledTimes(0);
120
- expect(console.error).toHaveBeenCalledTimes(0);
121
- });
122
- });
@@ -1,279 +0,0 @@
1
- import moment from "moment-timezone";
2
- import { parseAvailabilityRulesOptions } from "../src/js/helpers/init.AvailabilityRules";
3
-
4
- // The parsers rely on console warning and errors to
5
- // comunicate problems to the users
6
- console.error = jest.fn();
7
- console.warn = jest.fn();
8
-
9
- beforeEach(() => {
10
- console.error.mockClear();
11
- console.warn.mockClear();
12
- });
13
-
14
- describe("Parsing AvailabilityRules options", () => {
15
- const sniffedTimezone = moment.tz.guess();
16
-
17
- it("works when all options are declared", () => {
18
- const input = {
19
- config: {
20
- logs: "info",
21
- week_start_day: "monday",
22
- default_weekly_periods: [
23
- {
24
- day: "monday",
25
- end_time: "17:00",
26
- start_time: "09:00",
27
- },
28
- {
29
- day: "tuesday",
30
- end_time: "17:00",
31
- start_time: "09:00",
32
- },
33
- {
34
- day: "wednesday",
35
- end_time: "17:00",
36
- start_time: "09:00",
37
- },
38
- ],
39
- auto_create_rules: false,
40
- },
41
- data_center: "de",
42
- target_id: "TARGET",
43
- element_token: "TOKEN",
44
- availability_rule_id: "RULE_ID",
45
- tzid: sniffedTimezone,
46
- };
47
- const expectedOutput = {
48
- availability_rule_id: "RULE_ID",
49
- config: {
50
- logs: "info",
51
- startDay: "monday",
52
- defaultWeeklyPeriods: [
53
- {
54
- day: "monday",
55
- end_time: "17:00",
56
- start_time: "09:00",
57
- },
58
- {
59
- day: "tuesday",
60
- end_time: "17:00",
61
- start_time: "09:00",
62
- },
63
- {
64
- day: "wednesday",
65
- end_time: "17:00",
66
- start_time: "09:00",
67
- },
68
- ],
69
- autoCreateRulesMode: false,
70
- keyboardSupport: false,
71
- },
72
- data_center: "de",
73
- domains: {
74
- apiDomain: "https://api-de.cronofy.com",
75
- appDomain: "https://app-de.cronofy.com",
76
- },
77
- error: false,
78
- target: "TARGET",
79
- token: "TOKEN",
80
- tzid: sniffedTimezone,
81
- };
82
- const result = parseAvailabilityRulesOptions(input);
83
- expect(result.availability_rule_id).toEqual(expectedOutput.availability_rule_id);
84
- expect(result.config).toEqual(expectedOutput.config);
85
- expect(result.data_center).toEqual(expectedOutput.data_center);
86
- expect(result.domains).toEqual(expectedOutput.domains);
87
- expect(result.error).toEqual(expectedOutput.error);
88
- expect(result.target).toEqual(expectedOutput.target);
89
- expect(result.token).toEqual(expectedOutput.token);
90
- expect(result.tzid).toEqual(expectedOutput.tzid);
91
- expect(console.error).toHaveBeenCalledTimes(0);
92
- expect(console.warn).toHaveBeenCalledTimes(0);
93
- });
94
-
95
- it("shows a warning if there is no availability_rule_id present when all other options are declared", () => {
96
- const input = {
97
- element_token: "TOKEN",
98
- target_id: "TARGET",
99
- tzid: sniffedTimezone,
100
- };
101
- parseAvailabilityRulesOptions(input);
102
- expect(console.error).toHaveBeenCalledTimes(0);
103
- expect(console.warn).toHaveBeenCalledTimes(1);
104
- });
105
-
106
- it("applies the default weekly periods when there is no default declared by the user", () => {
107
- const input = {
108
- target_id: "TARGET",
109
- element_token: "TOKEN",
110
- availability_rule_id: "RULE_ID",
111
- tzid: sniffedTimezone,
112
- config: {},
113
- };
114
- const expectedOutput = {
115
- defaultWeeklyPeriods: [
116
- {
117
- day: "monday",
118
- end_time: "17:00",
119
- start_time: "09:00",
120
- },
121
- {
122
- day: "tuesday",
123
- end_time: "17:00",
124
- start_time: "09:00",
125
- },
126
- {
127
- day: "wednesday",
128
- end_time: "17:00",
129
- start_time: "09:00",
130
- },
131
- {
132
- day: "thursday",
133
- end_time: "17:00",
134
- start_time: "09:00",
135
- },
136
- {
137
- day: "friday",
138
- end_time: "17:00",
139
- start_time: "09:00",
140
- },
141
- ],
142
- };
143
- const result = parseAvailabilityRulesOptions(input);
144
- expect(result.config.defaultWeeklyPeriods).toEqual(expectedOutput.defaultWeeklyPeriods);
145
- expect(console.error).toHaveBeenCalledTimes(0);
146
- });
147
-
148
- it("fails if there is no token declared", () => {
149
- expect(parseAvailabilityRulesOptions()).toEqual(false);
150
- expect(console.error).toHaveBeenCalledTimes(1);
151
- });
152
-
153
- it("continues if there is no token declared, but we're in demo mode", () => {
154
- const expectedOutput = {
155
- availability_rule_id: "RULE_ID",
156
- config: {},
157
- demo: true,
158
- domains: {
159
- apiDomain: "https://api.cronofy.com",
160
- appDomain: "https://app.cronofy.com",
161
- },
162
- error: false,
163
- target: "cronofy-element-availability-rules",
164
- token: false,
165
- tzid: sniffedTimezone,
166
- };
167
- const result = parseAvailabilityRulesOptions({
168
- demo: true,
169
- availability_rule_id: "RULE_ID",
170
- tzid: sniffedTimezone,
171
- });
172
- expect(result.demo).toEqual(expectedOutput.demo);
173
- expect(result.token).toEqual(expectedOutput.token);
174
- expect(console.warn).toHaveBeenCalledTimes(2);
175
- expect(console.error).toHaveBeenCalledTimes(0);
176
- });
177
-
178
- it("applies the default target if there is no target option", () => {
179
- const expectedOutput = {
180
- availability_rule_id: "RULE_ID",
181
- config: {},
182
- domains: {
183
- apiDomain: "https://api.cronofy.com",
184
- appDomain: "https://app.cronofy.com",
185
- },
186
- error: false,
187
- target: "cronofy-element-availability-rules",
188
- token: "TOKEN",
189
- tzid: sniffedTimezone,
190
- };
191
- const result = parseAvailabilityRulesOptions({
192
- element_token: "TOKEN",
193
- availability_rule_id: "RULE_ID",
194
- tzid: sniffedTimezone,
195
- });
196
- expect(result.target).toEqual(expectedOutput.target);
197
- expect(console.warn).toHaveBeenCalledTimes(1);
198
- expect(console.error).toHaveBeenCalledTimes(0);
199
- });
200
-
201
- it("applies the default domains if there is no data_center option", () => {
202
- const expectedOutput = {
203
- availability_rule_id: "RULE_ID",
204
- config: {},
205
- domains: {
206
- apiDomain: "https://api.cronofy.com",
207
- appDomain: "https://app.cronofy.com",
208
- },
209
- error: false,
210
- target: "TARGET",
211
- token: "TOKEN",
212
- tzid: sniffedTimezone,
213
- };
214
- const result = parseAvailabilityRulesOptions({
215
- availability_rule_id: "RULE_ID",
216
- element_token: "TOKEN",
217
- target_id: "TARGET",
218
- tzid: sniffedTimezone,
219
- });
220
- expect(result.domains).toEqual(expectedOutput.domains);
221
- expect(console.warn).toHaveBeenCalledTimes(0);
222
- expect(console.error).toHaveBeenCalledTimes(0);
223
- });
224
-
225
- it("creates correct domains if there is a data_center option", () => {
226
- const expectedOutput = {
227
- availability_rule_id: "RULE_ID",
228
- config: {},
229
- data_center: "de",
230
- domains: {
231
- apiDomain: "https://api-de.cronofy.com",
232
- appDomain: "https://app-de.cronofy.com",
233
- },
234
- error: false,
235
- target: "TARGET",
236
- token: "TOKEN",
237
- tzid: sniffedTimezone,
238
- };
239
- const result = parseAvailabilityRulesOptions({
240
- availability_rule_id: "RULE_ID",
241
- data_center: "de",
242
- element_token: "TOKEN",
243
- target_id: "TARGET",
244
- tzid: sniffedTimezone,
245
- });
246
- expect(result.domains).toEqual(expectedOutput.domains);
247
- expect(console.warn).toHaveBeenCalledTimes(0);
248
- expect(console.error).toHaveBeenCalledTimes(0);
249
- });
250
-
251
- it("correctly parses the keyboard_support option", () => {
252
- const input = {
253
- target_id: "TARGET",
254
- element_token: "TOKEN",
255
- availability_rule_id: "RULE_ID",
256
- config: {
257
- keyboard_support: "basic",
258
- },
259
- };
260
- const expectedOutput = {
261
- config: {
262
- keyboardSupport: "basic",
263
- },
264
- };
265
- const result = parseAvailabilityRulesOptions(input);
266
- expect(result.config.keyboardSupport).toEqual(expectedOutput.config.keyboardSupport);
267
- });
268
-
269
- it("shows an error if there is an invalid keyboard_support option present", () => {
270
- const input = {
271
- config: {
272
- keyboard_support: "invalid-option",
273
- },
274
- };
275
- parseAvailabilityRulesOptions(input);
276
- expect(console.error).toHaveBeenCalledTimes(1);
277
- expect(console.warn).toHaveBeenCalledTimes(0);
278
- });
279
- });