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,740 +0,0 @@
1
- import moment from "moment-timezone";
2
- import { parseAvailabilityViewerOptions } from "../src/js/helpers/init.AvailabilityViewer";
3
- import { parseGridTime } from "../src/js/helpers/init";
4
-
5
- // The parsers rely on console warning and errors to
6
- // comunicate problems to the users
7
- console.error = jest.fn();
8
- console.warn = jest.fn();
9
-
10
- beforeEach(() => {
11
- console.error.mockClear();
12
- console.warn.mockClear();
13
- });
14
-
15
- const generic_query_periods = [
16
- {
17
- start: moment().toISOString(),
18
- end: moment().add(1, "days").toISOString(),
19
- },
20
- ];
21
-
22
- describe("Parsing AvailabilityViewer options", () => {
23
- const sniffedTimezone = moment.tz.guess();
24
-
25
- it("works when all options are declared", () => {
26
- const input = {
27
- availability_query: {
28
- query_periods: generic_query_periods,
29
- required_duration: "TEST",
30
- },
31
- config: {
32
- allow_expansion: true,
33
- bounds_control: true,
34
- start_time: "01:00",
35
- end_time: "02:00",
36
- interval: 60,
37
- week_start_day: "monday",
38
- },
39
- data_center: "DATA_CENTER",
40
- element_token: "TOKEN",
41
- target_id: "TARGET",
42
- tzid: sniffedTimezone,
43
- };
44
- const expectedOutput = {
45
- config: {
46
- allowExpansion: true,
47
- boundsControl: true,
48
- end_time: "02:00",
49
- interval: 60,
50
- logs: "warn",
51
- mode: "confirm",
52
- slot_selection: "available",
53
- startDay: "monday",
54
- start_time: "01:00",
55
- },
56
- customtzid: true,
57
- data_center: "DATA_CENTER",
58
- domains: {
59
- apiDomain: "https://api-DATA_CENTER.cronofy.com",
60
- appDomain: "https://app-DATA_CENTER.cronofy.com",
61
- },
62
- error: false,
63
- query: {
64
- query_periods: generic_query_periods,
65
- required_duration: "TEST",
66
- },
67
- target: "TARGET",
68
- token: "TOKEN",
69
- tzid: sniffedTimezone,
70
- };
71
- const result = parseAvailabilityViewerOptions(input);
72
- expect(result.config).toEqual(expectedOutput.config);
73
- expect(result.customtzid).toEqual(expectedOutput.customtzid);
74
- expect(result.data_center).toEqual(expectedOutput.data_center);
75
- expect(result.domains).toEqual(expectedOutput.domains);
76
- expect(result.error).toEqual(expectedOutput.error);
77
- expect(result.query).toEqual(expectedOutput.query);
78
- expect(result.target).toEqual(expectedOutput.target);
79
- expect(result.token).toEqual(expectedOutput.token);
80
- expect(result.tzid).toEqual(expectedOutput.tzid);
81
- expect(console.error).toHaveBeenCalledTimes(0);
82
- expect(console.warn).toHaveBeenCalledTimes(0);
83
- });
84
-
85
- it("returns an error if there is no query present when all other required options are declared", () => {
86
- const input = {
87
- element_token: "TOKEN",
88
- target_id: "TARGET",
89
- tzid: sniffedTimezone,
90
- config: { start_time: "01:00", end_time: "02:00" },
91
- };
92
-
93
- const output = parseAvailabilityViewerOptions(input);
94
-
95
- expect(console.error).toHaveBeenCalledTimes(1);
96
- expect(console.warn).toHaveBeenCalledTimes(0);
97
- });
98
-
99
- it("fails if there is no token declared", () => {
100
- expect(parseAvailabilityViewerOptions()).toEqual(false);
101
- expect(console.error).toHaveBeenCalledTimes(1);
102
- });
103
-
104
- it("continues if there is no token declared, but we're in demo mode", () => {
105
- const output = parseAvailabilityViewerOptions({
106
- demo: true,
107
- availability_query: {
108
- query_periods: generic_query_periods,
109
- required_duration: "TEST",
110
- },
111
- config: { start_time: "01:00", end_time: "02:00" },
112
- });
113
-
114
- expect(output.query).toEqual({
115
- query_periods: generic_query_periods,
116
- required_duration: "TEST",
117
- });
118
- expect(output.token).toEqual(false);
119
- expect(output.target).toEqual("cronofy-element-availability-viewer");
120
- expect(output.tzid).toEqual(sniffedTimezone);
121
-
122
- expect(console.warn).toHaveBeenCalledTimes(2);
123
- expect(console.error).toHaveBeenCalledTimes(0);
124
- });
125
-
126
- it("applies the default target if there is no target option", () => {
127
- const output = parseAvailabilityViewerOptions({
128
- element_token: "TOKEN",
129
- availability_query: {
130
- query_periods: generic_query_periods,
131
- required_duration: "TEST",
132
- },
133
- config: { start_time: "01:00", end_time: "02:00" },
134
- });
135
- expect(output.token).toEqual("TOKEN");
136
- expect(output.query).toEqual({
137
- query_periods: generic_query_periods,
138
- required_duration: "TEST",
139
- });
140
- expect(output.target).toEqual("cronofy-element-availability-viewer");
141
- expect(console.warn).toHaveBeenCalledTimes(1);
142
- expect(console.error).toHaveBeenCalledTimes(0);
143
- });
144
-
145
- it("applies the default domains if there is no data_center option", () => {
146
- const expectedDomains = {
147
- apiDomain: "https://api.cronofy.com",
148
- appDomain: "https://app.cronofy.com",
149
- };
150
-
151
- const output = parseAvailabilityViewerOptions({
152
- element_token: "TOKEN",
153
- target_id: "TARGET",
154
- availability_query: {
155
- query_periods: generic_query_periods,
156
- required_duration: "TEST",
157
- },
158
- config: { start_time: "01:00", end_time: "02:00" },
159
- });
160
- expect(output.token).toEqual("TOKEN");
161
- expect(output.target).toEqual("TARGET");
162
- expect(output.query).toEqual({
163
- query_periods: generic_query_periods,
164
- required_duration: "TEST",
165
- });
166
- expect(output.domains).toEqual(expectedDomains);
167
- expect(console.warn).toHaveBeenCalledTimes(0);
168
- expect(console.error).toHaveBeenCalledTimes(0);
169
- });
170
-
171
- it("creates correct domains if there is a data_center option", () => {
172
- const expectedDomains = {
173
- apiDomain: "https://api-de.cronofy.com",
174
- appDomain: "https://app-de.cronofy.com",
175
- };
176
-
177
- const output = parseAvailabilityViewerOptions({
178
- data_center: "de",
179
- element_token: "TOKEN",
180
- target_id: "TARGET",
181
- availability_query: {
182
- query_periods: generic_query_periods,
183
- required_duration: "TEST",
184
- },
185
- config: { start_time: "01:00", end_time: "02:00" },
186
- });
187
- expect(output.token).toEqual("TOKEN");
188
- expect(output.target).toEqual("TARGET");
189
- expect(output.query).toEqual({
190
- query_periods: generic_query_periods,
191
- required_duration: "TEST",
192
- });
193
- expect(output.domains).toEqual(expectedDomains);
194
- expect(console.warn).toHaveBeenCalledTimes(0);
195
- expect(console.error).toHaveBeenCalledTimes(0);
196
- });
197
-
198
- it("correctly parses the config.mode", () => {
199
- const output = parseAvailabilityViewerOptions({
200
- data_center: "de",
201
- element_token: "TOKEN",
202
- target_id: "TARGET",
203
- config: {
204
- mode: "multi_select",
205
- start_time: "01:00",
206
- end_time: "02:00",
207
- },
208
- availability_query: {
209
- query_periods: generic_query_periods,
210
- required_duration: "TEST",
211
- },
212
- });
213
-
214
- expect(output.token).toEqual("TOKEN");
215
- expect(output.target).toEqual("TARGET");
216
- expect(output.query).toEqual({
217
- query_periods: generic_query_periods,
218
- required_duration: "TEST",
219
- });
220
- expect(output.config.mode).toEqual("multi_select");
221
- expect(console.warn).toHaveBeenCalledTimes(0);
222
- expect(console.error).toHaveBeenCalledTimes(0);
223
- });
224
-
225
- it("correctly parses an empty config.mode", () => {
226
- const output = parseAvailabilityViewerOptions({
227
- element_token: "TOKEN",
228
- target_id: "TARGET",
229
- availability_query: {
230
- query_periods: generic_query_periods,
231
- required_duration: "TEST",
232
- },
233
- config: { start_time: "01:00", end_time: "02:00" },
234
- });
235
-
236
- expect(output.token).toEqual("TOKEN");
237
- expect(output.target).toEqual("TARGET");
238
- expect(output.query).toEqual({
239
- query_periods: generic_query_periods,
240
- required_duration: "TEST",
241
- });
242
- expect(output.config.mode).toEqual("confirm");
243
- expect(console.warn).toHaveBeenCalledTimes(0);
244
- expect(console.error).toHaveBeenCalledTimes(0);
245
- });
246
-
247
- it("correctly parses the config.customBounds", () => {
248
- const output = parseAvailabilityViewerOptions({
249
- data_center: "de",
250
- element_token: "TOKEN",
251
- target_id: "TARGET",
252
- config: {
253
- bounds_control: true,
254
- start_time: "01:00",
255
- end_time: "02:00",
256
- },
257
- availability_query: {
258
- query_periods: generic_query_periods,
259
- required_duration: "TEST",
260
- },
261
- });
262
-
263
- expect(output.token).toEqual("TOKEN");
264
- expect(output.target).toEqual("TARGET");
265
- expect(output.query).toEqual({
266
- query_periods: generic_query_periods,
267
- required_duration: "TEST",
268
- });
269
- expect(output.config.boundsControl).toEqual(true);
270
- expect(console.warn).toHaveBeenCalledTimes(0);
271
- expect(console.error).toHaveBeenCalledTimes(0);
272
- });
273
-
274
- it("correctly parses an empty config.customBounds", () => {
275
- const output = parseAvailabilityViewerOptions({
276
- element_token: "TOKEN",
277
- target_id: "TARGET",
278
- availability_query: {
279
- query_periods: generic_query_periods,
280
- required_duration: "TEST",
281
- },
282
- config: { start_time: "01:00", end_time: "02:00" },
283
- });
284
-
285
- expect(output.token).toEqual("TOKEN");
286
- expect(output.target).toEqual("TARGET");
287
- expect(output.query).toEqual({
288
- query_periods: generic_query_periods,
289
- required_duration: "TEST",
290
- });
291
- expect(output.config.boundsControl).toEqual(false);
292
- expect(console.warn).toHaveBeenCalledTimes(0);
293
- expect(console.error).toHaveBeenCalledTimes(0);
294
- });
295
-
296
- it("correctly parses default config.slotSelection", () => {
297
- const defaultOutput = parseAvailabilityViewerOptions({
298
- element_token: "TOKEN",
299
- target_id: "TARGET",
300
- config: {
301
- slot_selection: "availability",
302
- start_time: "01:00",
303
- end_time: "02:00",
304
- },
305
- availability_query: {
306
- query_periods: generic_query_periods,
307
- required_duration: "TEST",
308
- },
309
- });
310
-
311
- expect(defaultOutput.config.slot_selection).toEqual("availability");
312
- expect(console.warn).toHaveBeenCalledTimes(0);
313
- expect(console.error).toHaveBeenCalledTimes(0);
314
- });
315
-
316
- it("correctly parses empty config.slotSelection", () => {
317
- const withoutSelection = parseAvailabilityViewerOptions({
318
- element_token: "TOKEN",
319
- target_id: "TARGET",
320
- availability_query: {
321
- query_periods: generic_query_periods,
322
- required_duration: "TEST",
323
- },
324
- config: {
325
- start_time: "01:00",
326
- end_time: "02:00",
327
- },
328
- });
329
-
330
- expect(withoutSelection.config.slot_selection).toEqual("available");
331
- expect(console.warn).toHaveBeenCalledTimes(0);
332
- expect(console.error).toHaveBeenCalledTimes(0);
333
- });
334
-
335
- it("correctly parses config.slotSelection", () => {
336
- const withSelection = parseAvailabilityViewerOptions({
337
- element_token: "TOKEN",
338
- target_id: "TARGET",
339
- config: {
340
- slot_selection: "restricted",
341
- start_time: "01:00",
342
- end_time: "02:00",
343
- },
344
- availability_query: {
345
- query_periods: generic_query_periods,
346
- required_duration: "TEST",
347
- },
348
- });
349
-
350
- expect(withSelection.config.slot_selection).toEqual("restricted");
351
- expect(console.warn).toHaveBeenCalledTimes(0);
352
- expect(console.error).toHaveBeenCalledTimes(0);
353
- });
354
-
355
- it("correctly parses tzid option", () => {
356
- const input = {
357
- data_center: "DATA_CENTER",
358
- availability_query: {
359
- query_periods: generic_query_periods,
360
- required_duration: "TEST",
361
- },
362
- config: {
363
- start_time: "01:00",
364
- end_time: "02:00",
365
- },
366
- target_id: "TARGET",
367
- element_token: "TOKEN",
368
- tzid: sniffedTimezone,
369
- };
370
- const result = parseAvailabilityViewerOptions(input);
371
-
372
- expect(result.customtzid).toEqual(true);
373
- expect(result.tzid).toEqual(sniffedTimezone);
374
- });
375
-
376
- it("correctly falls back when given an invalid tzid option", () => {
377
- const input = {
378
- data_center: "DATA_CENTER",
379
- availability_query: {
380
- query_periods: generic_query_periods,
381
- required_duration: "TEST",
382
- },
383
- config: {
384
- start_time: "01:00",
385
- end_time: "02:00",
386
- },
387
- target_id: "TARGET",
388
- element_token: "TOKEN",
389
- tzid: "A_NON_IANA_TZID",
390
- };
391
- const result = parseAvailabilityViewerOptions(input);
392
-
393
- expect(result.customtzid).toEqual(true);
394
- expect(result.tzid).toEqual(sniffedTimezone);
395
- expect(console.warn).toHaveBeenCalledTimes(1);
396
- });
397
-
398
- it("correctly adds a fallback tzid option", () => {
399
- const input = {
400
- data_center: "DATA_CENTER",
401
- availability_query: {
402
- query_periods: generic_query_periods,
403
- required_duration: "TEST",
404
- },
405
- config: {
406
- start_time: "01:00",
407
- end_time: "02:00",
408
- },
409
- target_id: "TARGET",
410
- element_token: "TOKEN",
411
- };
412
- const result = parseAvailabilityViewerOptions(input);
413
-
414
- expect(result.customtzid).toEqual(false);
415
- expect(result.tzid).toEqual(sniffedTimezone);
416
- });
417
-
418
- it("correctly adds fallback config.start_time and config.end_time", () => {
419
- const input = {
420
- data_center: "DATA_CENTER",
421
- availability_query: {
422
- query_periods: generic_query_periods,
423
- required_duration: "TEST",
424
- },
425
- target_id: "TARGET",
426
- element_token: "TOKEN",
427
- };
428
- const result = parseAvailabilityViewerOptions(input);
429
-
430
- expect(result.config.start_time).toEqual("09:00");
431
- expect(result.config.end_time).toEqual("17:00");
432
- expect(console.warn).toHaveBeenCalledTimes(0);
433
- expect(console.error).toHaveBeenCalledTimes(0);
434
- });
435
-
436
- it("correctly fallbacks when config.start_time is invalid", () => {
437
- const input = {
438
- data_center: "DATA_CENTER",
439
- availability_query: {
440
- query_periods: generic_query_periods,
441
- required_duration: "TEST",
442
- },
443
- config: {
444
- start_time: "A string that is not a time",
445
- end_time: "13:00",
446
- },
447
- target_id: "TARGET",
448
- element_token: "TOKEN",
449
- };
450
- const result = parseAvailabilityViewerOptions(input);
451
-
452
- expect(result.config.start_time).toEqual("09:00");
453
- expect(result.config.end_time).toEqual("13:00");
454
- expect(console.warn).toHaveBeenCalledTimes(1);
455
- expect(console.warn.mock.calls[0][0]).toContain(
456
- "config.start_time: using default value of 09:00"
457
- );
458
- expect(console.error).toHaveBeenCalledTimes(0);
459
- });
460
-
461
- it("correctly fallbacks when config.end_time is invalid", () => {
462
- const input = {
463
- data_center: "DATA_CENTER",
464
- availability_query: {
465
- query_periods: generic_query_periods,
466
- required_duration: "TEST",
467
- },
468
- config: {
469
- start_time: "08:00",
470
- end_time: 1234,
471
- },
472
- target_id: "TARGET",
473
- element_token: "TOKEN",
474
- };
475
- const result = parseAvailabilityViewerOptions(input);
476
-
477
- expect(result.config.start_time).toEqual("08:00");
478
- expect(result.config.end_time).toEqual("17:00");
479
- expect(console.warn).toHaveBeenCalledTimes(1);
480
- expect(console.warn.mock.calls[0][0]).toContain(
481
- "config.end_time: using default value of 17:00"
482
- );
483
- expect(console.error).toHaveBeenCalledTimes(0);
484
- });
485
-
486
- it("correctly rounds config.start_time to valid interval", () => {
487
- const input = {
488
- data_center: "DATA_CENTER",
489
- availability_query: {
490
- query_periods: generic_query_periods,
491
- required_duration: "TEST",
492
- },
493
- config: {
494
- start_time: "08:25",
495
- },
496
- target_id: "TARGET",
497
- element_token: "TOKEN",
498
- };
499
- const result = parseAvailabilityViewerOptions(input);
500
-
501
- expect(result.config.start_time).toEqual("08:15");
502
- expect(console.warn).toHaveBeenCalledTimes(1);
503
- expect(console.warn.mock.calls[0][0]).toContain(
504
- "config.start_time: rounded from 08:25 to 08:15"
505
- );
506
- });
507
-
508
- it("correctly rounds config.start_time to valid interval", () => {
509
- const input = {
510
- data_center: "DATA_CENTER",
511
- availability_query: {
512
- query_periods: generic_query_periods,
513
- required_duration: "TEST",
514
- },
515
- target_id: "TARGET",
516
- element_token: "TOKEN",
517
- };
518
-
519
- const config_1 = {
520
- config: {
521
- end_time: "17:25",
522
- },
523
- };
524
- const result_1 = parseAvailabilityViewerOptions({
525
- ...input,
526
- ...config_1,
527
- });
528
-
529
- expect(result_1.config.end_time).toEqual("17:30");
530
- expect(console.warn).toHaveBeenCalledTimes(1);
531
- expect(console.warn.mock.calls[0][0]).toContain(
532
- "config.end_time: rounded from 17:25 to 17:30"
533
- );
534
-
535
- console.warn.mockClear();
536
-
537
- const config_2 = {
538
- config: {
539
- start_time: "08:38",
540
- },
541
- };
542
- const result_2 = parseAvailabilityViewerOptions({
543
- ...input,
544
- ...config_2,
545
- });
546
-
547
- expect(result_2.config.start_time).toEqual("08:30");
548
- expect(console.warn).toHaveBeenCalledTimes(1);
549
- expect(console.warn.mock.calls[0][0]).toContain(
550
- "config.start_time: rounded from 08:38 to 08:30"
551
- );
552
- });
553
-
554
- it("adjusts config.interval to match config.start_time when needed", () => {
555
- const input = {
556
- data_center: "DATA_CENTER",
557
- availability_query: {
558
- query_periods: generic_query_periods,
559
- required_duration: "TEST",
560
- },
561
- target_id: "TARGET",
562
- element_token: "TOKEN",
563
- };
564
-
565
- const config_1 = {
566
- config: {
567
- start_time: "08:30",
568
- interval: 60,
569
- },
570
- };
571
- const result_1 = parseAvailabilityViewerOptions({
572
- ...input,
573
- ...config_1,
574
- });
575
-
576
- expect(result_1.config.interval).toEqual(30);
577
- expect(console.warn).toHaveBeenCalledTimes(1);
578
- expect(console.warn.mock.calls[0][0]).toContain(
579
- "config.interval of 60 minutes has been shortened to 30 minutes for optimal tessellation of results in the grid."
580
- );
581
-
582
- console.warn.mockClear();
583
-
584
- const config_2 = {
585
- config: {
586
- start_time: "08:15",
587
- interval: 60,
588
- },
589
- };
590
- const result_2 = parseAvailabilityViewerOptions({
591
- ...input,
592
- ...config_2,
593
- });
594
-
595
- expect(result_2.config.interval).toEqual(15);
596
- expect(console.warn).toHaveBeenCalledTimes(1);
597
- expect(console.warn.mock.calls[0][0]).toContain(
598
- "config.interval of 60 minutes has been shortened to 15 minutes for optimal tessellation of results in the grid."
599
- );
600
-
601
- console.warn.mockClear();
602
-
603
- const config_3 = {
604
- config: {
605
- start_time: "08:45",
606
- interval: 60,
607
- },
608
- };
609
- const result_3 = parseAvailabilityViewerOptions({
610
- ...input,
611
- ...config_3,
612
- });
613
-
614
- expect(result_3.config.interval).toEqual(15);
615
- expect(console.warn).toHaveBeenCalledTimes(1);
616
- expect(console.warn.mock.calls[0][0]).toContain(
617
- "config.interval of 60 minutes has been shortened to 15 minutes for optimal tessellation of results in the grid."
618
- );
619
- });
620
-
621
- it("fails if start_time is after end_time", () => {
622
- const input = {
623
- data_center: "DATA_CENTER",
624
- availability_query: {
625
- query_periods: generic_query_periods,
626
- required_duration: "TEST",
627
- },
628
- target_id: "TARGET",
629
- element_token: "TOKEN",
630
- config: {
631
- start_time: "08:00",
632
- end_time: "06:00",
633
- interval: 60,
634
- },
635
- };
636
- const result = parseAvailabilityViewerOptions(input);
637
-
638
- expect(result).toEqual(false);
639
- expect(console.error).toHaveBeenCalledTimes(1);
640
- expect(console.error.mock.calls[0][0]).toContain("must be earlier than");
641
- });
642
-
643
- it("converts midnight end_time to 24:00", () => {
644
- const input = {
645
- data_center: "DATA_CENTER",
646
- availability_query: {
647
- query_periods: generic_query_periods,
648
- required_duration: "TEST",
649
- },
650
- target_id: "TARGET",
651
- element_token: "TOKEN",
652
- config: {
653
- start_time: "08:00",
654
- end_time: "00:00",
655
- interval: 60,
656
- },
657
- };
658
- const result = parseAvailabilityViewerOptions(input);
659
-
660
- expect(result.config.end_time).toEqual("24:00");
661
- });
662
-
663
- it("correctly parses grid times", () => {
664
- const simpleTime = parseGridTime("08:00");
665
- expect(simpleTime.time).toBe("08:00");
666
- expect(simpleTime.offset).toBe(0);
667
- expect(simpleTime.message).toBe(false);
668
-
669
- const offsetTime = parseGridTime("08:30");
670
- expect(offsetTime.time).toBe("08:30");
671
- expect(offsetTime.offset).toBe(30);
672
- expect(offsetTime.message).toBe(false);
673
-
674
- const invalidTime = parseGridTime("INVALID");
675
- expect(invalidTime.time).toBe("09:00");
676
- expect(invalidTime.offset).toBe(0);
677
- expect(invalidTime.message).toContain("using default value");
678
-
679
- const roundedDown = parseGridTime("08:42");
680
- expect(roundedDown.time).toBe("08:30");
681
- expect(roundedDown.offset).toBe(30);
682
- expect(roundedDown.message).toContain("rounded");
683
-
684
- const roundedUp = parseGridTime("08:42", "", true);
685
- expect(roundedUp.time).toBe("08:45");
686
- expect(roundedUp.offset).toBe(45);
687
- expect(roundedUp.message).toContain("rounded");
688
-
689
- const noLeadingZeroTime = parseGridTime("8:00");
690
- expect(noLeadingZeroTime.time).toBe("09:00");
691
- expect(noLeadingZeroTime.offset).toBe(0);
692
- expect(noLeadingZeroTime.message).toContain("using default value");
693
-
694
- const emptyTime = parseGridTime();
695
- expect(emptyTime.time).toBe("09:00");
696
- expect(emptyTime.offset).toBe(0);
697
- expect(emptyTime.message).toBe(false);
698
-
699
- const customFallbackTime = parseGridTime("INVALID", "06:00");
700
- expect(customFallbackTime.time).toBe("06:00");
701
- expect(customFallbackTime.offset).toBe(0);
702
- expect(customFallbackTime.message).toContain("using default value");
703
- });
704
-
705
- it("correctly adds config.allowExpansion", () => {
706
- const input = {
707
- data_center: "DATA_CENTER",
708
- availability_query: {
709
- query_periods: generic_query_periods,
710
- required_duration: "TEST",
711
- },
712
- target_id: "TARGET",
713
- element_token: "TOKEN",
714
- };
715
- const result = parseAvailabilityViewerOptions(input);
716
-
717
- expect(result.config).toHaveProperty("allowExpansion");
718
- expect(result.config.allowExpansion).toBe(false);
719
- });
720
-
721
- it("correctly parses config.allow_expansion", () => {
722
- const input = {
723
- data_center: "DATA_CENTER",
724
- availability_query: {
725
- query_periods: generic_query_periods,
726
- required_duration: "TEST",
727
- },
728
- target_id: "TARGET",
729
- element_token: "TOKEN",
730
- config: {
731
- allow_expansion: true,
732
- },
733
- };
734
- const result = parseAvailabilityViewerOptions(input);
735
-
736
- expect(result.config).toHaveProperty("allowExpansion");
737
- expect(result.config).not.toHaveProperty("allow_expansion");
738
- expect(result.config.allowExpansion).toBe(true);
739
- });
740
- });