cronofy-elements 1.48.0 → 1.49.0

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.0.js.LICENSE.txt → dist/CronofyElements.js.LICENSE.txt} +0 -0
  4. package/package.json +8 -5
  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.0.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 -316
  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 -520
  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,277 +0,0 @@
1
- import React from "react";
2
- import * as utils from "../src/js/helpers/utils.CalendarSync";
3
-
4
- describe("Utilities: CalendarSync", () => {
5
- // parseAuthOptions
6
- it("correctly parses authorization options", () => {
7
- const expectedOutput = {
8
- option_1: "REDIRECT_URI",
9
- option_2: "CLIENT_ID",
10
- option_3: "SCOPE",
11
- };
12
- expect(utils.parseAuthOptions(expectedOutput)).toEqual(expectedOutput);
13
- });
14
-
15
- // buildAuthUrl
16
- it("builds a valid provider authorization URL", () => {
17
- const input = {
18
- authOptions: {
19
- option_1: "REDIRECT_URI",
20
- option_2: "CLIENT_ID",
21
- option_3: "SCOPE",
22
- },
23
- provider: "PROVIDER",
24
- appDomain: "http://local.cronofy.com",
25
- };
26
- const result =
27
- "http://local.cronofy.com/oauth/authorize?response_type=code&provider_name=PROVIDER&option_1=REDIRECT_URI&option_2=CLIENT_ID&option_3=SCOPE";
28
- expect(utils.buildAuthUrl(input)).toEqual(result);
29
- });
30
-
31
- it("builds a valid provider authorization URL in singleProfile mode", () => {
32
- const input = {
33
- authOptions: {
34
- option_1: "REDIRECT_URI",
35
- option_2: "CLIENT_ID",
36
- option_3: "SCOPE",
37
- },
38
- provider: "PROVIDER",
39
- appDomain: "http://local.cronofy.com",
40
- singleProfile: true,
41
- };
42
- const result =
43
- "http://local.cronofy.com/oauth/authorize?response_type=code&provider_name=PROVIDER&avoid_linking=true&option_1=REDIRECT_URI&option_2=CLIENT_ID&option_3=SCOPE";
44
- expect(utils.buildAuthUrl(input)).toEqual(result);
45
- });
46
-
47
- it("builds a valid provider authorization URL without options", () => {
48
- const input = {
49
- provider: "PROVIDER",
50
- appDomain: "http://local.cronofy.com",
51
- };
52
- const result =
53
- "http://local.cronofy.com/oauth/authorize?response_type=code&provider_name=PROVIDER";
54
- expect(utils.buildAuthUrl(input)).toEqual(result);
55
- });
56
-
57
- // buildProviderData
58
- it("correctly parses provider data", () => {
59
- const buildAuthUrl = jest.fn(() => "AUTH_URL");
60
- const input = [
61
- "SLUG",
62
- "NAME",
63
- {
64
- option_1: "REDIRECT_URI",
65
- option_2: "CLIENT_ID",
66
- option_3: "SCOPE",
67
- },
68
- false,
69
- "https://app.cronofy.com",
70
- false,
71
- buildAuthUrl,
72
- ];
73
- const expectedOutput = {
74
- authlink: "AUTH_URL",
75
- name: "NAME",
76
- slug: "SLUG",
77
- };
78
- expect(utils.buildProviderData(...input)).toEqual(expectedOutput);
79
- expect(buildAuthUrl).toHaveBeenCalledTimes(1);
80
- });
81
-
82
- // setupProviderData
83
- it("correctly sets up provider data", () => {
84
- const buildProviderData = jest.fn(() => ({
85
- authlink: "AUTH_URL",
86
- name: "NAME",
87
- slug: "SLUG",
88
- }));
89
- const input = [
90
- {
91
- option_1: "REDIRECT_URI",
92
- option_2: "CLIENT_ID",
93
- option_3: "SCOPE",
94
- },
95
- "https://app.cronofy.com",
96
- false,
97
- false,
98
- buildProviderData,
99
- ];
100
- const expectedOutput = [
101
- {
102
- authlink: "AUTH_URL",
103
- name: "NAME",
104
- slug: "SLUG",
105
- },
106
- {
107
- authlink: "AUTH_URL",
108
- name: "NAME",
109
- slug: "SLUG",
110
- },
111
- {
112
- authlink: "AUTH_URL",
113
- name: "NAME",
114
- slug: "SLUG",
115
- },
116
- {
117
- authlink: "AUTH_URL",
118
- name: "NAME",
119
- slug: "SLUG",
120
- },
121
- {
122
- authlink: "AUTH_URL",
123
- name: "NAME",
124
- slug: "SLUG",
125
- },
126
- ];
127
- const result = utils.setupProviderData(...input);
128
- expect(result).toEqual(expectedOutput);
129
- expect(result.length).toBe(5);
130
- expect(buildProviderData).toHaveBeenCalledTimes(5);
131
- expect(buildProviderData.mock.calls[0][0]).toBe("google");
132
- expect(buildProviderData.mock.calls[0][1]).toBe("Google");
133
- expect(buildProviderData.mock.calls[1][0]).toBe("apple");
134
- expect(buildProviderData.mock.calls[1][1]).toBe("iCloud");
135
- expect(buildProviderData.mock.calls[2][0]).toBe("office365");
136
- expect(buildProviderData.mock.calls[2][1]).toBe("Office 365");
137
- expect(buildProviderData.mock.calls[3][0]).toBe("exchange");
138
- expect(buildProviderData.mock.calls[3][1]).toBe("Exchange");
139
- expect(buildProviderData.mock.calls[4][0]).toBe("live_connect");
140
- expect(buildProviderData.mock.calls[4][1]).toBe("Outlook.com");
141
- });
142
-
143
- // getProviderIcon
144
- it("returns the correct icons", () => {
145
- // Google
146
- const expectedOutputGoogle = (
147
- <path d="M19.674 8.682h-9.318v3.863h5.364c-.5 2.455-2.591 3.864-5.364 3.864A5.897 5.897 0 0 1 4.447 10.5a5.897 5.897 0 0 1 5.91-5.91c1.408 0 2.68.5 3.68 1.32L16.948 3C15.174 1.455 12.902.5 10.357.5c-5.546 0-10 4.455-10 10s4.454 10 10 10c5 0 9.545-3.636 9.545-10 0-.59-.091-1.227-.228-1.818z" />
148
- );
149
- expect(utils.getProviderIcon("google")).toEqual(expectedOutputGoogle);
150
-
151
- // Apple
152
- const expectedOutputApple = (
153
- <path d="M17.1 16.018c-.298.69-.652 1.326-1.061 1.91-.559.796-1.016 1.347-1.369 1.654-.546.502-1.131.76-1.758.774-.45 0-.993-.128-1.625-.388-.633-.258-1.216-.386-1.748-.386-.559 0-1.158.128-1.799.386-.641.26-1.158.395-1.554.409-.6.025-1.2-.24-1.798-.795-.382-.333-.86-.904-1.431-1.713-.614-.863-1.118-1.864-1.513-3.006-.424-1.233-.636-2.427-.636-3.582 0-1.324.286-2.466.86-3.423a5.04 5.04 0 0 1 1.799-1.82 4.84 4.84 0 0 1 2.432-.687c.478 0 1.104.148 1.882.438.776.291 1.274.439 1.492.439.164 0 .717-.173 1.655-.517.887-.32 1.636-.452 2.25-.4 1.662.135 2.91.79 3.741 1.97-1.487.901-2.222 2.163-2.207 3.781.013 1.26.47 2.31 1.37 3.143a4.5 4.5 0 0 0 1.368.897c-.11.319-.226.623-.35.916zM13.29 1.017c0 .988-.361 1.91-1.08 2.764-.87 1.016-1.92 1.602-3.058 1.51a3.076 3.076 0 0 1-.023-.375c0-.948.413-1.963 1.146-2.793.366-.42.832-.77 1.396-1.049.564-.274 1.097-.426 1.598-.452.014.132.02.264.02.395z" />
154
- );
155
- expect(utils.getProviderIcon("apple")).toEqual(expectedOutputApple);
156
-
157
- // Office 365
158
- const expectedOutputOffice365 = (
159
- <path d="M11.51 2.976c.031.192.039 14.085.01 14.388l-7.085-1.688V5.883L.788 4.458c-.007.005-.014.007-.02.011-.006.004-.013.01-.013.016-.004.036-.009.073-.009.11v11.863c.054.067.124.075.185.098l10.41 3.896c.12.045.229.067.362.028 1.904-.553 3.81-1.099 5.714-1.647l.095-.031V2.122l-1.632-.454c-1.381-.38-2.764-.758-4.144-1.142a.59.59 0 0 0-.386.014C7.937 1.8 4.523 3.058 1.11 4.316a.463.463 0 0 0-.19.113l10.59-1.453z" />
160
- );
161
- expect(utils.getProviderIcon("office365")).toEqual(expectedOutputOffice365);
162
-
163
- // Exchange
164
- const expectedOutputExchange = (
165
- <path d="M11.772.701L.234 3.01v15.384l11.538 2.308v-20zm.77 4.616V6.71h.312c.078 0 .144-.006.144.072l1.01.985c.078.079.078.163 0 .24l-.385.385c-.078.079-.162.079-.24 0l-.457-.456h-.385v2.692c.691.616 1.313 1.067 1.082 1.298-.078.153-.544-.078-1.082-.385v2.765h.144c1.232-.923 2.242-2.614 2.549-2.308.384.307-2.074 3.558-2.38 3.558h-.313v1.298h6.683c.538 0 1.01-.472 1.01-1.01V6.326c0-.538-.472-1.01-1.01-1.01H12.54zm-4.688.312v1.683l-2.62.168v1.923l2.38-.096v1.707h-2.38v1.995l2.764.144v1.707l-4.375-.385v-8.39l4.23-.456zm8.149 1.082h2.62c.153 0 .216.063.216.216v2.476c0 .078.006.144-.072.144l-.985 1.01c-.079.078-.163.078-.24 0l-.385-.313c-.079-.078-.079-.162 0-.24l.456-.457v-1.61h-1.37c-1.232.922-2.241 2.614-2.548 2.307-.385-.306 2.001-3.455 2.308-3.533zm-.53 3.557c.61-.045 3.462 2.14 3.462 2.356v1.61h-.096v1.01c0 .154-.063.217-.216.217h-2.476c-.078 0-.144.006-.144-.072l-1.01-.986c-.078-.078-.078-.162 0-.24l.385-.385c.078-.078.162-.078.24 0l.457.457h1.61v-1.37c-.922-1.232-2.614-2.242-2.307-2.548a.141.141 0 0 1 .096-.049z" />
166
- );
167
- expect(utils.getProviderIcon("exchange")).toEqual(expectedOutputExchange);
168
-
169
- // Outlook.com
170
- const expectedOutputOutlook = (
171
- <path d="M11.591.54h1.385v4.633c2.4.004 4.797-.007 7.195 0 .472-.024 1.119.113 1.11.708.087 2.93.002 5.867.041 8.8.01.519-.007 1.336-.713 1.343-2.541.088-5.09.007-7.633.035v4.4H11.54c-3.53-.64-7.069-1.231-10.603-1.852C.934 13.203.934 7.799.934 2.397 4.487 1.776 8.041 1.173 11.591.54zm1.385 5.327v2.56c.906.845 1.8 1.705 2.72 2.536 1.528-1.434 3.053-2.87 4.586-4.299.255-.19.347-.488.391-.792-2.566-.011-5.13-.002-7.697-.005zm3.447 5.302c-.257.213-.512.54-.89.47-.917-.697-1.69-1.568-2.554-2.332-.005 2.018-.003 4.037-.003 6.057h7.644c-.002-2.715.005-5.431-.002-8.146-1.4 1.315-2.803 2.629-4.195 3.951zM5.9 6.715c-2.223.795-2.626 3.778-1.797 5.717.63 1.681 2.948 2.355 4.331 1.172 1.501-1.314 1.608-3.69.853-5.427-.554-1.263-2.08-1.955-3.387-1.462zm.225 1.392c.616-.294 1.387.005 1.677.614.463.917.46 2.036.157 3.004-.215.688-.968 1.256-1.697.985-.91-.288-1.186-1.367-1.196-2.212-.011-.876.19-1.967 1.059-2.39z" />
172
- );
173
- expect(utils.getProviderIcon("live_connect")).toEqual(expectedOutputOutlook);
174
- });
175
-
176
- it("returns the correct icons with fills", () => {
177
- // Google
178
- const expectedOutputGoogle = (
179
- <React.Fragment>
180
- <defs>
181
- <path d="M19.674 8.682h-9.318v3.863h5.364c-.5 2.455-2.591 3.864-5.364 3.864A5.897 5.897 0 0 1 4.447 10.5a5.897 5.897 0 0 1 5.91-5.91c1.408 0 2.68.5 3.68 1.32L16.948 3C15.174 1.455 12.902.5 10.357.5c-5.546 0-10 4.455-10 10s4.454 10 10 10c5 0 9.545-3.636 9.545-10 0-.59-.091-1.227-.228-1.818z" />
182
- <path
183
- d="M19.318 8.182H10v3.863h5.364c-.5 2.455-2.591 3.864-5.364 3.864A5.897 5.897 0 0 1 4.09 10 5.897 5.897 0 0 1 10 4.09c1.41 0 2.682.5 3.682 1.32L16.59 2.5C14.818.955 12.545 0 10 0 4.455 0 0 4.455 0 10s4.455 10 10 10c5 0 9.545-3.636 9.545-10 0-.59-.09-1.227-.227-1.818z"
184
- id="google_a"
185
- />
186
- <path
187
- d="M19.318 8.182H10v3.863h5.364c-.5 2.455-2.591 3.864-5.364 3.864A5.897 5.897 0 0 1 4.09 10 5.897 5.897 0 0 1 10 4.09c1.41 0 2.682.5 3.682 1.32L16.59 2.5C14.818.955 12.545 0 10 0 4.455 0 0 4.455 0 10s4.455 10 10 10c5 0 9.545-3.636 9.545-10 0-.59-.09-1.227-.227-1.818z"
188
- id="google_c"
189
- />
190
- <path
191
- d="M19.318 8.182H10v3.863h5.364c-.5 2.455-2.591 3.864-5.364 3.864A5.897 5.897 0 0 1 4.09 10 5.897 5.897 0 0 1 10 4.09c1.41 0 2.682.5 3.682 1.32L16.59 2.5C14.818.955 12.545 0 10 0 4.455 0 0 4.455 0 10s4.455 10 10 10c5 0 9.545-3.636 9.545-10 0-.59-.09-1.227-.227-1.818z"
192
- id="google_e"
193
- />
194
- <path
195
- d="M19.318 8.182H10v3.863h5.364c-.5 2.455-2.591 3.864-5.364 3.864A5.897 5.897 0 0 1 4.09 10 5.897 5.897 0 0 1 10 4.09c1.41 0 2.682.5 3.682 1.32L16.59 2.5C14.818.955 12.545 0 10 0 4.455 0 0 4.455 0 10s4.455 10 10 10c5 0 9.545-3.636 9.545-10 0-.59-.09-1.227-.227-1.818z"
196
- id="google_g"
197
- />
198
- </defs>
199
- <g fill="none" fillRule="evenodd">
200
- <g transform="translate(0 .498)">
201
- <mask fill="#fff" id="google_b">
202
- <use xlinkHref="#google_a" />
203
- </mask>
204
- <path d="M-.91 15.91V4.09L6.819 10z" fill="#FBBC05" mask="url(#google_b)" />
205
- </g>
206
- <g transform="translate(0 .498)">
207
- <mask fill="#fff" id="google_d">
208
- <use xlinkHref="#google_c" />
209
- </mask>
210
- <path
211
- d="M-.91 4.09L6.819 10 10 7.227l10.91-1.772V-.91H-.91z"
212
- fill="#EA4335"
213
- fillRule="nonzero"
214
- mask="url(#google_d)"
215
- />
216
- </g>
217
- <g transform="translate(0 .498)">
218
- <mask fill="#fff" id="google_f">
219
- <use xlinkHref="#google_e" />
220
- </mask>
221
- <path
222
- d="M-.91 15.91L12.728 5.454l3.591.454L20.91-.909v21.818H-.909z"
223
- fill="#34A853"
224
- fillRule="nonzero"
225
- mask="url(#google_f)"
226
- />
227
- </g>
228
- <g transform="translate(0 .498)">
229
- <mask fill="#fff" id="google_h">
230
- <use xlinkHref="#google_g" />
231
- </mask>
232
- <path
233
- d="M20.91 20.91L6.817 10 5 8.636l15.91-4.545z"
234
- fill="#4285F4"
235
- fillRule="nonzero"
236
- mask="url(#google_h)"
237
- />
238
- </g>
239
- </g>
240
- </React.Fragment>
241
- );
242
- expect(utils.getProviderIcon("google", true)).toEqual(expectedOutputGoogle);
243
-
244
- // Apple
245
- const expectedOutputApple = (
246
- <path d="M17.1 16.018c-.298.69-.652 1.326-1.061 1.91-.559.796-1.016 1.347-1.369 1.654-.546.502-1.131.76-1.758.774-.45 0-.993-.128-1.625-.388-.633-.258-1.216-.386-1.748-.386-.559 0-1.158.128-1.799.386-.641.26-1.158.395-1.554.409-.6.025-1.2-.24-1.798-.795-.382-.333-.86-.904-1.431-1.713-.614-.863-1.118-1.864-1.513-3.006-.424-1.233-.636-2.427-.636-3.582 0-1.324.286-2.466.86-3.423a5.04 5.04 0 0 1 1.799-1.82 4.84 4.84 0 0 1 2.432-.687c.478 0 1.104.148 1.882.438.776.291 1.274.439 1.492.439.164 0 .717-.173 1.655-.517.887-.32 1.636-.452 2.25-.4 1.662.135 2.91.79 3.741 1.97-1.487.901-2.222 2.163-2.207 3.781.013 1.26.47 2.31 1.37 3.143a4.5 4.5 0 0 0 1.368.897c-.11.319-.226.623-.35.916zM13.29 1.017c0 .988-.361 1.91-1.08 2.764-.87 1.016-1.92 1.602-3.058 1.51a3.076 3.076 0 0 1-.023-.375c0-.948.413-1.963 1.146-2.793.366-.42.832-.77 1.396-1.049.564-.274 1.097-.426 1.598-.452.014.132.02.264.02.395z" />
247
- );
248
- expect(utils.getProviderIcon("apple", true)).toEqual(expectedOutputApple);
249
-
250
- // Office 365
251
- const expectedOutputOffice365 = (
252
- <path
253
- d="M11.51 2.976c.031.192.039 14.085.01 14.388l-7.085-1.688V5.883L.788 4.458c-.007.005-.014.007-.02.011-.006.004-.013.01-.013.016-.004.036-.009.073-.009.11v11.863c.054.067.124.075.185.098l10.41 3.896c.12.045.229.067.362.028 1.904-.553 3.81-1.099 5.714-1.647l.095-.031V2.122l-1.632-.454c-1.381-.38-2.764-.758-4.144-1.142a.59.59 0 0 0-.386.014C7.937 1.8 4.523 3.058 1.11 4.316a.463.463 0 0 0-.19.113l10.59-1.453z"
254
- fill="#DC3E15"
255
- />
256
- );
257
- expect(utils.getProviderIcon("office365", true)).toEqual(expectedOutputOffice365);
258
-
259
- // Exchange
260
- const expectedOutputExchange = (
261
- <path
262
- d="M11.772.701L.234 3.01v15.384l11.538 2.308v-20zm.77 4.616V6.71h.312c.078 0 .144-.006.144.072l1.01.985c.078.079.078.163 0 .24l-.385.385c-.078.079-.162.079-.24 0l-.457-.456h-.385v2.692c.691.616 1.313 1.067 1.082 1.298-.078.153-.544-.078-1.082-.385v2.765h.144c1.232-.923 2.242-2.614 2.549-2.308.384.307-2.074 3.558-2.38 3.558h-.313v1.298h6.683c.538 0 1.01-.472 1.01-1.01V6.326c0-.538-.472-1.01-1.01-1.01H12.54zm-4.688.312v1.683l-2.62.168v1.923l2.38-.096v1.707h-2.38v1.995l2.764.144v1.707l-4.375-.385v-8.39l4.23-.456zm8.149 1.082h2.62c.153 0 .216.063.216.216v2.476c0 .078.006.144-.072.144l-.985 1.01c-.079.078-.163.078-.24 0l-.385-.313c-.079-.078-.079-.162 0-.24l.456-.457v-1.61h-1.37c-1.232.922-2.241 2.614-2.548 2.307-.385-.306 2.001-3.455 2.308-3.533zm-.53 3.557c.61-.045 3.462 2.14 3.462 2.356v1.61h-.096v1.01c0 .154-.063.217-.216.217h-2.476c-.078 0-.144.006-.144-.072l-1.01-.986c-.078-.078-.078-.162 0-.24l.385-.385c.078-.078.162-.078.24 0l.457.457h1.61v-1.37c-.922-1.232-2.614-2.242-2.307-2.548a.141.141 0 0 1 .096-.049z"
263
- fill="#0071C5"
264
- />
265
- );
266
- expect(utils.getProviderIcon("exchange", true)).toEqual(expectedOutputExchange);
267
-
268
- // Outlook.com
269
- const expectedOutputOutlook = (
270
- <path
271
- d="M11.591.54h1.385v4.633c2.4.004 4.797-.007 7.195 0 .472-.024 1.119.113 1.11.708.087 2.93.002 5.867.041 8.8.01.519-.007 1.336-.713 1.343-2.541.088-5.09.007-7.633.035v4.4H11.54c-3.53-.64-7.069-1.231-10.603-1.852C.934 13.203.934 7.799.934 2.397 4.487 1.776 8.041 1.173 11.591.54zm1.385 5.327v2.56c.906.845 1.8 1.705 2.72 2.536 1.528-1.434 3.053-2.87 4.586-4.299.255-.19.347-.488.391-.792-2.566-.011-5.13-.002-7.697-.005zm3.447 5.302c-.257.213-.512.54-.89.47-.917-.697-1.69-1.568-2.554-2.332-.005 2.018-.003 4.037-.003 6.057h7.644c-.002-2.715.005-5.431-.002-8.146-1.4 1.315-2.803 2.629-4.195 3.951zM5.9 6.715c-2.223.795-2.626 3.778-1.797 5.717.63 1.681 2.948 2.355 4.331 1.172 1.501-1.314 1.608-3.69.853-5.427-.554-1.263-2.08-1.955-3.387-1.462zm.225 1.392c.616-.294 1.387.005 1.677.614.463.917.46 2.036.157 3.004-.215.688-.968 1.256-1.697.985-.91-.288-1.186-1.367-1.196-2.212-.011-.876.19-1.967 1.059-2.39z"
272
- fill="#0071C5"
273
- />
274
- );
275
- expect(utils.getProviderIcon("live_connect", true)).toEqual(expectedOutputOutlook);
276
- });
277
- });
@@ -1,119 +0,0 @@
1
- import * as utils from "../src/js/helpers/utils";
2
-
3
- describe("Utilities", () => {
4
- // objectToArray
5
- it("converts an object into a mapable array of key/value objects", () => {
6
- const testObject = {
7
- thing: "something",
8
- number: 1234,
9
- bool: false,
10
- };
11
- const testArray = utils.objectToArray(testObject);
12
- // Returns an iterable array
13
- expect(Array.isArray(testArray)).toBe(true);
14
- expect(testArray.length).toEqual(3);
15
- // Turns the object-key into a value with a key of "key"
16
- expect(testArray[0].key).toEqual("thing");
17
- // Turns the object-value into a value with a key of "value"
18
- expect(testArray[0].value).toEqual("something");
19
- // Handles numbers
20
- expect(testArray[1].value).toEqual(1234);
21
- // Handles booleans
22
- expect(testArray[2].value).toBe(false);
23
-
24
- // Works without keys
25
- const testArrayWithoutKeys = utils.objectToArray(testObject, false);
26
- expect(Array.isArray(testArrayWithoutKeys)).toBe(true);
27
- expect(testArrayWithoutKeys.length).toEqual(3);
28
- expect(testArrayWithoutKeys[0]).toEqual("something");
29
- expect(testArrayWithoutKeys[1]).toEqual(1234);
30
- expect(testArrayWithoutKeys[2]).toEqual(false);
31
- expect(utils.objectToArray({})).toEqual([]);
32
- });
33
-
34
- // truncateString
35
- it("truncates a string", () => {
36
- const sampleString = `Lorem ipsum dolor sit, amet consectetur adipisicing elit. Incidunt officia accusamus aut error provident
37
- inventore mollitia earum suscipit iure illo cupiditate, officiis cum sint architecto nostrum quisquam
38
- sunt ea aspernatur. Lorem ipsum dolor sit amet consectetur adipisicing elit. Eaque labore beatae,
39
- facilis architecto repellendus deleniti quo porro fugit praesentium unde vero libero maxime temporibus
40
- saepe dolorum nam quis iure assumenda!`;
41
- const defaultTruncation = `Lorem ipsum dolor sit, amet consectetur adipisicing elit. Incidunt officia accusamus aut error provident
42
- inventore mollitia earum suscipit iure illo cupiditate, officiis cum sint architecto nostrum quisquam
43
- sunt ea a...`;
44
- const midTruncation = `Lorem ipsum dolor sit, amet consectetur adipisicing elit. Incidunt officia accusamus aut error provi...`;
45
- const shortTruncation = `Lorem ipsu...`;
46
- expect(utils.truncateString(sampleString)).toEqual(defaultTruncation);
47
- expect(utils.truncateString(sampleString, 500)).toEqual(sampleString);
48
- expect(utils.truncateString(sampleString, 100)).toEqual(midTruncation);
49
- expect(utils.truncateString(sampleString, 10)).toEqual(shortTruncation);
50
- });
51
-
52
- // uniqueItems
53
- it("returns only unique array items", () => {
54
- const busyNumbers = [1, 1, 2, 3, 3, 4, 4, 4, 4, 5, 6, 7, 7];
55
- const uniqueNumbers = [1, 2, 3, 4, 5, 6, 7];
56
- expect(utils.uniqueItems(busyNumbers.sort())).toEqual(uniqueNumbers.sort());
57
-
58
- const busyUnsortedNumbers = [4, 3, 1, 2, 1, 3, 3, 4, 4, 5, 6, 7, 7];
59
- const uniqueUnsortedNumbers = [1, 2, 3, 4, 5, 6, 7];
60
- expect(utils.uniqueItems(busyUnsortedNumbers.sort())).toEqual(uniqueUnsortedNumbers.sort());
61
-
62
- const busyStrings = [
63
- "thing",
64
- "another",
65
- "thing",
66
- "to test",
67
- "thing",
68
- "set of",
69
- "set of",
70
- "to test",
71
- "thing",
72
- "another",
73
- "another",
74
- "another",
75
- "things",
76
- "to test",
77
- ];
78
- const uniqueStrings = ["thing", "another", "set of", "things", "to test"];
79
- expect(utils.uniqueItems(busyStrings.sort())).toEqual(uniqueStrings.sort());
80
- });
81
-
82
- // objectIsEmpty
83
- it("checks if an object is empty", () => {
84
- expect(utils.objectIsEmpty({})).toBe(true);
85
- expect(utils.objectIsEmpty({ thing: "something" })).toBe(false);
86
- });
87
-
88
- // capitalizeFirstLetter
89
- it("capitalizes the first letter of a string", () => {
90
- expect(utils.capitalizeFirstLetter("abcdefg")).toEqual("Abcdefg");
91
- expect(utils.capitalizeFirstLetter("abc defg")).toEqual("Abc defg");
92
- });
93
-
94
- // replaceUnderscores
95
- it("replaces underscores with spaces", () => {
96
- expect(utils.replaceUnderscores("abcdefg")).toEqual("abcdefg");
97
- expect(utils.replaceUnderscores("abc_defg")).toEqual("abc defg");
98
- });
99
-
100
- // turnSlugIntoString
101
- it("parses a snake-case slug into sentence case", () => {
102
- expect(utils.turnSlugIntoString("abc_defg")).toEqual("Abc defg");
103
- });
104
-
105
- // humanizeTzName
106
- it("humanizes a timezone id into a readable name", () => {
107
- expect(utils.humanizeTzName("Africa/Dar_es_Salaam")).toEqual("Dar es Salaam");
108
- });
109
-
110
- //humanizeTzName
111
- it("humanizes a double stacked timezone id into a readable name", () => {
112
- expect(utils.humanizeTzName("America/Argentina/ComodRivadavia")).toEqual("ComodRivadavia");
113
- });
114
-
115
- //humanizeTzName
116
- it("humanizes a numeric timezone id into a readable name", () => {
117
- expect(utils.humanizeTzName("Etc/GMT+12")).toEqual("GMT+12");
118
- });
119
- });
package/webpack.config.js DELETED
@@ -1,114 +0,0 @@
1
- const webpack = require("webpack");
2
- const path = require("path");
3
- const { GitRevisionPlugin } = require("git-revision-webpack-plugin");
4
- const gitRevisionPlugin = new GitRevisionPlugin();
5
- const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
6
- const MomentTimezoneDataPlugin = require("moment-timezone-data-webpack-plugin");
7
- const TerserPlugin = require("terser-webpack-plugin");
8
-
9
- const deprecationNotice = `CronofyComponents has been deprecated. Please use CronofyElements instead. Full details can be found on the Cronofy Elements documention page: https://docs.cronofy.com/developers/ui-elements/`;
10
-
11
- module.exports = (env, argv) => ({
12
- entry:
13
- argv.mode === "development"
14
- ? {
15
- CronofyElements: "./src/js/main.js",
16
- //CronofyElementsNext: "./src/js/next.js"
17
- }
18
- : "./src/js/main.js",
19
- output: {
20
- path: path.resolve(__dirname, "build"),
21
- filename:
22
- argv.mode === "development"
23
- ? `[name].dev.js`
24
- : `CronofyElements.${gitRevisionPlugin.version()}.js`,
25
- library: "CronofyElements",
26
- libraryTarget: "umd",
27
- umdNamedDefine: true,
28
- },
29
- optimization: {
30
- minimize: true,
31
- minimizer: [new TerserPlugin()],
32
- },
33
- module: {
34
- rules: [
35
- {
36
- test: /\.js$/,
37
- exclude: /@babel(?:\/|\\{1,2})runtime|core-js|node_modules/,
38
- use: [
39
- "babel-loader",
40
- {
41
- loader: "babel-loader",
42
- options: {
43
- presets: [
44
- "@babel/preset-react",
45
- [
46
- "@emotion/babel-preset-css-prop",
47
- {
48
- sourceMap: argv.mode === "development",
49
- },
50
- ],
51
- [
52
- "@babel/preset-env",
53
- {
54
- useBuiltIns: "entry",
55
- corejs: "3.0.0",
56
- targets: { ie: "11" },
57
- },
58
- ],
59
- ],
60
- plugins: [
61
- "@babel/plugin-proposal-class-properties",
62
- "@babel/plugin-proposal-object-rest-spread",
63
- ],
64
- },
65
- },
66
- "eslint-loader",
67
- ],
68
- },
69
- {
70
- test: /\.[s]?css$/,
71
- use: [
72
- "style-loader",
73
- {
74
- loader: "css-loader", // translates CSS into CommonJS
75
- options: {
76
- sourceMap: true,
77
- },
78
- },
79
- {
80
- loader: "postcss-loader",
81
- options: {
82
- sourceMap: true,
83
- },
84
- },
85
- {
86
- loader: "sass-loader", // compiles Sass to CSS
87
- options: {
88
- sourceMap: true,
89
- },
90
- },
91
- ],
92
- },
93
- ],
94
- },
95
- plugins: [
96
- new webpack.BannerPlugin({
97
- banner: `const CronofyComponents = {
98
- Agenda:function(){console.error("${deprecationNotice}");},
99
- SlotPicker:function(){console.error("${deprecationNotice}");},
100
- AvailabilityViewer:function(){console.error("${deprecationNotice}");}
101
- };`,
102
- raw: true,
103
- }),
104
- new BundleAnalyzerPlugin({
105
- analyzerMode: argv.analyze ? "server" : "disabled", // server | static | disabled
106
- analyzerPort: 8181,
107
- defaultSizes: "stat",
108
- }),
109
- new MomentTimezoneDataPlugin({
110
- startYear: new Date().getFullYear() - 2,
111
- endYear: new Date().getFullYear() + 5,
112
- }),
113
- ],
114
- });