guestbell-forms 3.0.38 → 3.0.40

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 (336) hide show
  1. package/.env.bat +1 -0
  2. package/.eslintrc.json +21 -14
  3. package/build/components/base/input/BaseInput.d.ts +99 -99
  4. package/build/components/base/input/BaseInput.js +4 -0
  5. package/build/components/base/input/BaseInput.js.map +1 -1
  6. package/build/components/base/input/index.d.ts +1 -1
  7. package/build/components/bookingCalendar/BookingCalendar.d.ts +45 -46
  8. package/build/components/bookingCalendar/BookingCalendar.js +4 -5
  9. package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
  10. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.d.ts +17 -17
  11. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js +12 -12
  12. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map +1 -1
  13. package/build/components/bookingCalendar/bookingCalendarControls/classes.d.ts +9 -9
  14. package/build/components/bookingCalendar/bookingCalendarControls/index.d.ts +2 -2
  15. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.d.ts +13 -13
  16. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js +3 -3
  17. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js.map +1 -1
  18. package/build/components/bookingCalendar/bookingCalendarDatePicker/classes.d.ts +5 -5
  19. package/build/components/bookingCalendar/bookingCalendarDatePicker/index.d.ts +2 -2
  20. package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.d.ts +10 -10
  21. package/build/components/bookingCalendar/bookingCalendarGrid/classes.d.ts +5 -5
  22. package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.d.ts +57 -57
  23. package/build/components/bookingCalendar/bookingCalendarItem/classes.d.ts +4 -4
  24. package/build/components/bookingCalendar/bookingCalendarItem/index.d.ts +2 -2
  25. package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.d.ts +16 -16
  26. package/build/components/bookingCalendar/bookingCalendarLane/classes.d.ts +4 -4
  27. package/build/components/bookingCalendar/bookingCalendarLane/index.d.ts +2 -2
  28. package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.d.ts +7 -7
  29. package/build/components/bookingCalendar/bookingCalendarLaneHeader/classes.d.ts +4 -4
  30. package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.d.ts +1 -1
  31. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.d.ts +11 -11
  32. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js +3 -3
  33. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js.map +1 -1
  34. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.d.ts +4 -5
  35. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js.map +1 -1
  36. package/build/components/bookingCalendar/bookingCalendarLanesHeader/classes.d.ts +5 -5
  37. package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.d.ts +2 -2
  38. package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.d.ts +9 -9
  39. package/build/components/bookingCalendar/bookingCalendarRenderItem/classes.d.ts +6 -6
  40. package/build/components/bookingCalendar/bookingCalendarRenderItem/index.d.ts +1 -1
  41. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.d.ts +38 -37
  42. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js +2 -0
  43. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js.map +1 -1
  44. package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.d.ts +11 -11
  45. package/build/components/bookingCalendar/bookingCalendarTimeAxis/classes.d.ts +5 -5
  46. package/build/components/bookingCalendar/classes.d.ts +11 -11
  47. package/build/components/bookingCalendar/common.d.ts +23 -23
  48. package/build/components/bookingCalendar/common.js +3 -4
  49. package/build/components/bookingCalendar/common.js.map +1 -1
  50. package/build/components/bookingCalendar/index.d.ts +3 -3
  51. package/build/components/bookingCalendar/utils.d.ts +52 -50
  52. package/build/components/bookingCalendar/utils.js.map +1 -1
  53. package/build/components/button/Button.d.ts +81 -81
  54. package/build/components/button/Button.js +1 -0
  55. package/build/components/button/Button.js.map +1 -1
  56. package/build/components/button/index.d.ts +2 -2
  57. package/build/components/checkbox/Checkbox.d.ts +23 -23
  58. package/build/components/checkbox/index.d.ts +2 -2
  59. package/build/components/dropdown/Dropdown.d.ts +44 -44
  60. package/build/components/dropdown/index.d.ts +2 -2
  61. package/build/components/dynamicSubmit/DynamicSubmit.d.ts +54 -54
  62. package/build/components/dynamicSubmit/DynamicSubmit.js.map +1 -1
  63. package/build/components/dynamicSubmit/index.d.ts +2 -2
  64. package/build/components/externalValidationComponent/ExternalValidationComponent.d.ts +15 -15
  65. package/build/components/externalValidationComponent/index.d.ts +2 -2
  66. package/build/components/form/Form.d.ts +47 -47
  67. package/build/components/form/FormContext.d.ts +30 -30
  68. package/build/components/form/FormValidationSummary.d.ts +38 -38
  69. package/build/components/form/FormValidationSummary.js.map +1 -1
  70. package/build/components/form/index.d.ts +5 -5
  71. package/build/components/form/withFormContext.d.ts +3 -3
  72. package/build/components/inputGroup/InputGroup.d.ts +15 -17
  73. package/build/components/inputGroup/index.d.ts +2 -2
  74. package/build/components/inputHeader/InputHeader.d.ts +97 -97
  75. package/build/components/inputHeader/InputHeader.js.map +1 -1
  76. package/build/components/inputHeader/InputHeaderContext.d.ts +24 -24
  77. package/build/components/inputHeader/index.d.ts +2 -2
  78. package/build/components/inputHeader/withInputHeaderContext.d.ts +3 -3
  79. package/build/components/money/Money.d.ts +78 -78
  80. package/build/components/money/Money.js.map +1 -1
  81. package/build/components/money/index.d.ts +2 -2
  82. package/build/components/numberInput/NumberInput.d.ts +28 -28
  83. package/build/components/numberInput/index.d.ts +2 -2
  84. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.d.ts +84 -84
  85. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js +3 -3
  86. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js.map +1 -1
  87. package/build/components/openingHours/openingHoursDay/index.d.ts +2 -2
  88. package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.d.ts +92 -90
  89. package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js.map +1 -1
  90. package/build/components/openingHours/openingHoursSpecial/index.d.ts +2 -2
  91. package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.d.ts +109 -109
  92. package/build/components/openingHours/openingHoursWeek/index.d.ts +2 -2
  93. package/build/components/openingHours/utils/OpeningHoursUtil.d.ts +21 -21
  94. package/build/components/radio/Radio.d.ts +20 -20
  95. package/build/components/radio/index.d.ts +2 -2
  96. package/build/components/radioContainer/RadioContainer.d.ts +17 -16
  97. package/build/components/radioContainer/RadioContainer.js.map +1 -1
  98. package/build/components/radioContainer/index.d.ts +2 -2
  99. package/build/components/select/Select.d.ts +79 -79
  100. package/build/components/select/index.d.ts +2 -2
  101. package/build/components/submit/Submit.d.ts +137 -137
  102. package/build/components/submit/index.d.ts +2 -2
  103. package/build/components/submit/subComponents/SubmitValidationSummary.d.ts +5 -5
  104. package/build/components/tags/Tags.d.ts +92 -92
  105. package/build/components/tags/Tags.js +2 -0
  106. package/build/components/tags/Tags.js.map +1 -1
  107. package/build/components/tags/index.d.ts +2 -2
  108. package/build/components/tags/subComponents/TagsSuggestions.d.ts +34 -34
  109. package/build/components/tags/subComponents/TagsSuggestions.js +2 -2
  110. package/build/components/tags/subComponents/TagsSuggestions.js.map +1 -1
  111. package/build/components/text/Text.d.ts +31 -31
  112. package/build/components/text/index.d.ts +2 -2
  113. package/build/components/textArea/TextArea.d.ts +28 -28
  114. package/build/components/textArea/TextArea.js +1 -0
  115. package/build/components/textArea/TextArea.js.map +1 -1
  116. package/build/components/textArea/index.d.ts +2 -2
  117. package/build/components/themeProvider/ThemeContext.d.ts +9 -9
  118. package/build/components/themeProvider/ThemeProvider.d.ts +8 -7
  119. package/build/components/themeProvider/ThemeProvider.js.map +1 -1
  120. package/build/components/themeProvider/index.d.ts +4 -4
  121. package/build/components/themeProvider/withThemeContext.d.ts +4 -4
  122. package/build/components/time/Time.d.ts +32 -32
  123. package/build/components/time/Time.js +3 -3
  124. package/build/components/time/Time.js.map +1 -1
  125. package/build/components/time/index.d.ts +2 -2
  126. package/build/components/timeSpan/TimeSpan.d.ts +46 -46
  127. package/build/components/timeSpan/TimeSpan.js +6 -6
  128. package/build/components/timeSpan/TimeSpan.js.map +1 -1
  129. package/build/components/timeSpan/index.d.ts +2 -2
  130. package/build/components/utils/Guid.d.ts +2 -2
  131. package/build/components/utils/ShallowEqual.d.ts +16 -16
  132. package/build/components/utils/TimeUtil.d.ts +6 -6
  133. package/build/components/utils/Typescript.d.ts +5 -5
  134. package/build/dist/guestbell-forms.css +157 -171
  135. package/build/dist/guestbell-forms.css.map +1 -1
  136. package/build/dist/guestbell-forms.js +15 -24
  137. package/build/dist/guestbell-forms.js.map +1 -1
  138. package/build/dist/guestbell-forms.min.css +1 -1
  139. package/build/dist/guestbell-forms.min.js +1 -1
  140. package/build/dist/guestbell-forms.min.js.map +1 -1
  141. package/build/dist/report.html +3 -3
  142. package/build/index.d.ts +24 -24
  143. package/build/scss/components/bookingCalendar/bookingCalendar.scss +30 -7
  144. package/build/scss/components/inputHeader/inputHeader.scss +7 -1
  145. package/build/types/ElementOverrideProp.d.ts +3 -3
  146. package/build/types/Theme.d.ts +4 -4
  147. package/build/types/ThemeOverrides.d.ts +45 -45
  148. package/build/validators/EmailValidator.d.ts +4 -4
  149. package/build/validators/LatitudeValidator.d.ts +4 -4
  150. package/build/validators/LongitudeValidator.d.ts +4 -4
  151. package/build/validators/NumberValidator.d.ts +12 -12
  152. package/build/validators/NumberValidator.js +1 -0
  153. package/build/validators/NumberValidator.js.map +1 -1
  154. package/build/validators/UrlValidator.d.ts +4 -4
  155. package/build/validators/base.d.ts +4 -4
  156. package/build/validators/index.d.ts +6 -6
  157. package/package.json +130 -136
  158. package/src/lib/components/base/input/BaseInput.tsx +526 -0
  159. package/src/lib/components/base/input/index.tsx +1 -0
  160. package/src/lib/components/bookingCalendar/BookingCalendar.tsx +327 -0
  161. package/src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx +249 -0
  162. package/src/lib/components/bookingCalendar/bookingCalendarControls/classes.ts +20 -0
  163. package/src/lib/components/bookingCalendar/bookingCalendarControls/index.ts +2 -0
  164. package/src/lib/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.tsx +104 -0
  165. package/src/lib/components/bookingCalendar/bookingCalendarDatePicker/classes.ts +9 -0
  166. package/src/lib/components/bookingCalendar/bookingCalendarDatePicker/index.ts +2 -0
  167. package/src/lib/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.tsx +56 -0
  168. package/src/lib/components/bookingCalendar/bookingCalendarGrid/classes.ts +9 -0
  169. package/src/lib/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.tsx +97 -0
  170. package/src/lib/components/bookingCalendar/bookingCalendarItem/classes.ts +7 -0
  171. package/src/lib/components/bookingCalendar/bookingCalendarItem/index.ts +2 -0
  172. package/src/lib/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.tsx +69 -0
  173. package/src/lib/components/bookingCalendar/bookingCalendarLane/classes.ts +7 -0
  174. package/src/lib/components/bookingCalendar/bookingCalendarLane/index.ts +2 -0
  175. package/src/lib/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.tsx +28 -0
  176. package/src/lib/components/bookingCalendar/bookingCalendarLaneHeader/classes.ts +7 -0
  177. package/src/lib/components/bookingCalendar/bookingCalendarLaneHeader/index.ts +1 -0
  178. package/src/lib/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.tsx +57 -0
  179. package/src/lib/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.tsx +53 -0
  180. package/src/lib/components/bookingCalendar/bookingCalendarLanesHeader/classes.ts +9 -0
  181. package/src/lib/components/bookingCalendar/bookingCalendarLanesHeader/index.ts +2 -0
  182. package/src/lib/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.tsx +57 -0
  183. package/src/lib/components/bookingCalendar/bookingCalendarRenderItem/classes.ts +11 -0
  184. package/src/lib/components/bookingCalendar/bookingCalendarRenderItem/index.ts +1 -0
  185. package/src/lib/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.tsx +217 -0
  186. package/src/lib/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.tsx +53 -0
  187. package/src/lib/components/bookingCalendar/bookingCalendarTimeAxis/classes.ts +9 -0
  188. package/src/lib/components/bookingCalendar/classes.ts +21 -0
  189. package/src/lib/components/bookingCalendar/common.ts +61 -0
  190. package/src/lib/components/bookingCalendar/index.ts +3 -0
  191. package/src/lib/components/bookingCalendar/utils.ts +348 -0
  192. package/src/lib/components/button/Button.tsx +193 -0
  193. package/src/lib/components/button/index.tsx +2 -0
  194. package/src/lib/components/checkbox/Checkbox.tsx +178 -0
  195. package/src/lib/components/checkbox/index.tsx +2 -0
  196. package/src/lib/components/dropdown/Dropdown.tsx +135 -0
  197. package/src/lib/components/dropdown/index.tsx +2 -0
  198. package/src/lib/components/dynamicSubmit/DynamicSubmit.tsx +153 -0
  199. package/src/lib/components/dynamicSubmit/index.tsx +2 -0
  200. package/src/lib/components/externalValidationComponent/ExternalValidationComponent.tsx +78 -0
  201. package/src/lib/components/externalValidationComponent/index.tsx +2 -0
  202. package/src/lib/components/form/Form.tsx +276 -0
  203. package/src/lib/components/form/FormContext.ts +49 -0
  204. package/src/lib/components/form/FormValidationSummary.tsx +122 -0
  205. package/src/lib/components/form/index.tsx +5 -0
  206. package/src/lib/components/form/withFormContext.tsx +20 -0
  207. package/src/lib/components/inputGroup/InputGroup.tsx +60 -0
  208. package/src/lib/components/inputGroup/index.tsx +2 -0
  209. package/src/lib/components/inputHeader/InputHeader.tsx +448 -0
  210. package/src/lib/components/inputHeader/InputHeaderContext.ts +42 -0
  211. package/src/lib/components/inputHeader/index.tsx +2 -0
  212. package/src/lib/components/inputHeader/withInputHeaderContext.tsx +24 -0
  213. package/src/lib/components/money/Money.tsx +298 -0
  214. package/src/lib/components/money/index.tsx +2 -0
  215. package/src/lib/components/numberInput/NumberInput.tsx +186 -0
  216. package/src/lib/components/numberInput/index.tsx +2 -0
  217. package/src/lib/components/openingHours/openingHoursDay/OpeningHoursDay.tsx +394 -0
  218. package/src/lib/components/openingHours/openingHoursDay/index.tsx +2 -0
  219. package/src/lib/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.tsx +227 -0
  220. package/src/lib/components/openingHours/openingHoursSpecial/index.tsx +2 -0
  221. package/src/lib/components/openingHours/openingHoursWeek/OpeningHoursWeek.tsx +283 -0
  222. package/src/lib/components/openingHours/openingHoursWeek/index.tsx +2 -0
  223. package/src/lib/components/openingHours/utils/OpeningHoursUtil.tsx +111 -0
  224. package/src/lib/components/radio/Radio.tsx +87 -0
  225. package/src/lib/components/radio/index.tsx +2 -0
  226. package/src/lib/components/radioContainer/RadioContainer.tsx +50 -0
  227. package/src/lib/components/radioContainer/index.tsx +2 -0
  228. package/src/lib/components/select/Select.tsx +335 -0
  229. package/src/lib/components/select/index.tsx +2 -0
  230. package/src/lib/components/submit/Submit.tsx +117 -0
  231. package/src/lib/components/submit/index.tsx +2 -0
  232. package/src/lib/components/submit/subComponents/SubmitValidationSummary.tsx +55 -0
  233. package/src/lib/components/tags/Tags.tsx +702 -0
  234. package/src/lib/components/tags/index.tsx +2 -0
  235. package/src/lib/components/tags/subComponents/TagsSuggestions.tsx +150 -0
  236. package/src/lib/components/text/Text.tsx +200 -0
  237. package/src/lib/components/text/index.tsx +2 -0
  238. package/src/lib/components/textArea/TextArea.tsx +109 -0
  239. package/src/lib/components/textArea/index.tsx +2 -0
  240. package/src/lib/components/themeProvider/ThemeContext.ts +16 -0
  241. package/src/lib/components/themeProvider/ThemeProvider.tsx +21 -0
  242. package/src/lib/components/themeProvider/index.tsx +4 -0
  243. package/src/lib/components/themeProvider/withThemeContext.tsx +30 -0
  244. package/src/lib/components/time/Time.tsx +296 -0
  245. package/src/lib/components/time/index.tsx +2 -0
  246. package/src/lib/components/timeSpan/TimeSpan.tsx +378 -0
  247. package/src/lib/components/timeSpan/index.tsx +2 -0
  248. package/src/lib/components/utils/Guid.ts +9 -0
  249. package/src/lib/components/utils/ShallowEqual.ts +75 -0
  250. package/src/lib/components/utils/TimeUtil.ts +22 -0
  251. package/src/lib/components/utils/Typescript.ts +11 -0
  252. package/src/lib/declarations/import.d.ts +1 -0
  253. package/src/lib/index.ts +24 -0
  254. package/src/lib/scss/components/base/index.scss +1 -0
  255. package/src/lib/scss/components/base/input/index.scss +1 -0
  256. package/src/lib/scss/components/base/input/input.scss +237 -0
  257. package/src/lib/scss/components/bookingCalendar/bookingCalendar.scss +272 -0
  258. package/src/lib/scss/components/bookingCalendar/index.scss +1 -0
  259. package/src/lib/scss/components/button/buttons.scss +161 -0
  260. package/src/lib/scss/components/button/index.scss +1 -0
  261. package/src/lib/scss/components/checkbox/checkbox.scss +115 -0
  262. package/src/lib/scss/components/checkbox/index.scss +1 -0
  263. package/src/lib/scss/components/dropdown/dropdown.scss +111 -0
  264. package/src/lib/scss/components/dropdown/index.scss +1 -0
  265. package/src/lib/scss/components/dynamicSubmit/dynamicSubmit.scss +1 -0
  266. package/src/lib/scss/components/dynamicSubmit/index.scss +1 -0
  267. package/src/lib/scss/components/form/form.scss +1 -0
  268. package/src/lib/scss/components/form/formValidationSummary.scss +55 -0
  269. package/src/lib/scss/components/form/index.scss +2 -0
  270. package/src/lib/scss/components/index.scss +21 -0
  271. package/src/lib/scss/components/inputGroup/index.scss +1 -0
  272. package/src/lib/scss/components/inputGroup/inputGroup.scss +67 -0
  273. package/src/lib/scss/components/inputHeader/index.scss +1 -0
  274. package/src/lib/scss/components/inputHeader/inputHeader.scss +132 -0
  275. package/src/lib/scss/components/money/index.scss +1 -0
  276. package/src/lib/scss/components/money/money.scss +51 -0
  277. package/src/lib/scss/components/numberInput/index.scss +1 -0
  278. package/src/lib/scss/components/numberInput/numberInput.scss +116 -0
  279. package/src/lib/scss/components/openingHours/index.scss +3 -0
  280. package/src/lib/scss/components/openingHours/openingHoursDay/index.scss +1 -0
  281. package/src/lib/scss/components/openingHours/openingHoursDay/openingHoursDay.scss +127 -0
  282. package/src/lib/scss/components/openingHours/openingHoursSpecial/index.scss +1 -0
  283. package/src/lib/scss/components/openingHours/openingHoursSpecial/openingHoursSpecial.scss +93 -0
  284. package/src/lib/scss/components/openingHours/openingHoursWeek/index.scss +1 -0
  285. package/src/lib/scss/components/openingHours/openingHoursWeek/openingHoursWeek.scss +23 -0
  286. package/src/lib/scss/components/radio/index.scss +1 -0
  287. package/src/lib/scss/components/radio/radio.scss +68 -0
  288. package/src/lib/scss/components/radioContainer/index.scss +1 -0
  289. package/src/lib/scss/components/radioContainer/radioContainer.scss +15 -0
  290. package/src/lib/scss/components/select/index.scss +1 -0
  291. package/src/lib/scss/components/select/select.scss +64 -0
  292. package/src/lib/scss/components/submit/index.scss +1 -0
  293. package/src/lib/scss/components/submit/submitValidationSummary.scss +35 -0
  294. package/src/lib/scss/components/tags/index.scss +1 -0
  295. package/src/lib/scss/components/tags/tags.scss +128 -0
  296. package/src/lib/scss/components/text/index.scss +1 -0
  297. package/src/lib/scss/components/text/text.scss +42 -0
  298. package/src/lib/scss/components/textArea/index.scss +1 -0
  299. package/src/lib/scss/components/textArea/textArea.scss +32 -0
  300. package/src/lib/scss/components/time/index.scss +1 -0
  301. package/src/lib/scss/components/time/time.scss +111 -0
  302. package/src/lib/scss/components/timeSpan/index.scss +1 -0
  303. package/src/lib/scss/components/timeSpan/timeSpan.scss +115 -0
  304. package/src/lib/scss/index.scss +8 -0
  305. package/src/lib/scss/styles/base.scss +7 -0
  306. package/src/lib/scss/styles/index.scss +2 -0
  307. package/src/lib/scss/styles/react-tippy.scss +4 -0
  308. package/src/lib/scss/variables/_buttons.scss +6 -0
  309. package/src/lib/scss/variables/_colors.scss +1 -0
  310. package/src/lib/scss/variables/_common.scss +12 -0
  311. package/src/lib/tsconfig.json +19 -0
  312. package/src/lib/types/ElementOverrideProp.ts +3 -0
  313. package/src/lib/types/Theme.ts +5 -0
  314. package/src/lib/types/ThemeOverrides.ts +46 -0
  315. package/src/lib/validators/EmailValidator.ts +15 -0
  316. package/src/lib/validators/LatitudeValidator.ts +25 -0
  317. package/src/lib/validators/LongitudeValidator.ts +25 -0
  318. package/src/lib/validators/NumberValidator.ts +50 -0
  319. package/src/lib/validators/UrlValidator.ts +20 -0
  320. package/src/lib/validators/base.ts +15 -0
  321. package/src/lib/validators/index.ts +6 -0
  322. package/src/stories/Basic.stories.ts +17 -0
  323. package/src/stories/Basic.tsx +1065 -0
  324. package/src/stories/Schedule.stories.ts +16 -0
  325. package/src/stories/Schedule.tsx +73 -0
  326. package/src/stories/ValidationPage.tsx +417 -0
  327. package/tsconfig.json +9 -22
  328. package/typedoc.json +6 -0
  329. package/webpack/webpack.config.base.js +139 -0
  330. package/webpack/webpack.config.dev.js +78 -0
  331. package/webpack/webpack.config.gh-pages.js +78 -0
  332. package/webpack/webpack.config.js +21 -0
  333. package/webpack/webpack.config.min.js +100 -0
  334. package/.vscode/launch.json +0 -15
  335. package/.vscode/settings.json +0 -27
  336. package/.vscode/tasks.json +0 -12
@@ -0,0 +1,283 @@
1
+ // Libs
2
+ import * as React from 'react';
3
+
4
+ // Misc
5
+ import OpeningHoursUtil, {
6
+ defaultTranslations as defaultLabelTranslations,
7
+ } from '../utils/OpeningHoursUtil';
8
+ import {
9
+ OpeningHoursDayObj,
10
+ OpeningHoursDay,
11
+ defaultDayTranslations,
12
+ } from '../openingHoursDay/OpeningHoursDay';
13
+ import {
14
+ BaseInputProps,
15
+ BaseInputState,
16
+ BaseInput,
17
+ defaultBaseTranslations,
18
+ } from '../../base/input/BaseInput';
19
+ import { Checkbox } from '../../checkbox/Checkbox';
20
+ import { withFormContext } from '../../form/withFormContext';
21
+ import { withThemeContext } from '../../themeProvider/withThemeContext';
22
+
23
+ export enum Weekday {
24
+ Monday = 1,
25
+ Tuesday = 2,
26
+ Wednesday = 3,
27
+ Thursday = 4,
28
+ Friday = 5,
29
+ Saturday = 6,
30
+ Sunday = 0,
31
+ }
32
+
33
+ export interface OpeningHoursWeekDayObj extends OpeningHoursDayObj {
34
+ isStandardDay?: boolean;
35
+ day: Weekday;
36
+ }
37
+
38
+ export interface OpeningHoursWeekProps
39
+ extends BaseInputProps<never, OpeningHoursWeekTranslations> {
40
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
41
+ days: OpeningHoursWeekDayObj[];
42
+ onDaysChange: (days: OpeningHoursWeekDayObj[]) => void;
43
+ standardDay?: OpeningHoursDayObj;
44
+ onStandardDayChange?: (day: OpeningHoursDayObj) => void;
45
+ useCapacity?: boolean;
46
+ }
47
+
48
+ export interface OpeningHoursWeekState extends BaseInputState {}
49
+
50
+ export const defaultWeekTranslations = {
51
+ standardDay: 'Standard day',
52
+ standardDayTooltip: (
53
+ <>
54
+ We recommend to use <b>Standard day</b> if multiple days share the same
55
+ opening hours. Check "Standard day?" checkbox for each of these days to
56
+ make them share standard opening hours.
57
+ </>
58
+ ),
59
+ standardDayAll: 'Apply to all days?',
60
+ standardDayCheckBox: 'Standard day?',
61
+ monday: 'Monday',
62
+ tuesday: 'Tuesday',
63
+ wednesday: 'Wednesday',
64
+ thursday: 'Thursday',
65
+ friday: 'Friday',
66
+ saturday: 'Saturday',
67
+ sunday: 'Sunday',
68
+ ...defaultBaseTranslations,
69
+ ...defaultDayTranslations,
70
+ ...defaultLabelTranslations,
71
+ };
72
+
73
+ export type OpeningHoursWeekTranslations = Partial<
74
+ typeof defaultWeekTranslations
75
+ >;
76
+
77
+ export class OpeningHoursWeekRaw extends BaseInput<
78
+ OpeningHoursWeekProps,
79
+ OpeningHoursWeekState,
80
+ never,
81
+ OpeningHoursWeekTranslations
82
+ > {
83
+ public static defaultProps = Object.assign({}, BaseInput.defaultProps, {
84
+ onChange: undefined,
85
+ type: 'openingHoursWeek',
86
+ placeholder: '',
87
+ collapsible: false,
88
+ });
89
+
90
+ constructor(props: OpeningHoursWeekProps) {
91
+ super(props);
92
+ this.state = { ...this.state };
93
+ this.toggleStandardForAll = this.toggleStandardForAll.bind(this);
94
+ }
95
+
96
+ public componentDidMount() {
97
+ if (!this.props.days || !this.props.days.length) {
98
+ this.props.onDaysChange(this.getInitialState());
99
+ }
100
+ }
101
+
102
+ public componentDidUpdate() {
103
+ if (!this.props.days || !this.props.days.length) {
104
+ this.props.onDaysChange(this.getInitialState());
105
+ }
106
+ }
107
+
108
+ public render() {
109
+ return (
110
+ <div
111
+ className={
112
+ 'openingHoursWeek-input ' +
113
+ this.getValidationClass() +
114
+ ' ' +
115
+ (this.props.className ? this.props.className : '')
116
+ }
117
+ ref={this.containerRef}
118
+ >
119
+ {this.renderContent()}
120
+ </div>
121
+ );
122
+ }
123
+
124
+ private toggleStandardForAll() {
125
+ const allDaysStandard = this.props.days.every(d => d.isStandardDay);
126
+ let days = this.props.days.map(d => ({
127
+ ...d,
128
+ isStandardDay: !allDaysStandard,
129
+ }));
130
+ this.props.onDaysChange(days);
131
+ }
132
+
133
+ private getInitialState() {
134
+ return [
135
+ { day: Weekday.Monday, times: [] },
136
+ { day: Weekday.Tuesday, times: [] },
137
+ { day: Weekday.Wednesday, times: [] },
138
+ { day: Weekday.Thursday, times: [] },
139
+ { day: Weekday.Friday, times: [] },
140
+ { day: Weekday.Saturday, times: [] },
141
+ { day: Weekday.Sunday, times: [] },
142
+ ];
143
+ }
144
+
145
+ private renderContent() {
146
+ const allDaysStandard = this.props.days.every(d => d.isStandardDay);
147
+ const weekTranslations = this.getTranslations(defaultWeekTranslations);
148
+ return (
149
+ <div className={``}>
150
+ {this.props.standardDay && (
151
+ <OpeningHoursDay
152
+ useCapacity={this.props.useCapacity}
153
+ {...(this.props.id && {
154
+ id: this.props.id + '-standard-day',
155
+ })}
156
+ className="openingHoursWeek__standard-day"
157
+ label={
158
+ <span>
159
+ {OpeningHoursUtil.getLabelSuffix(
160
+ this.props.standardDay,
161
+ this.props.translations
162
+ )}
163
+ <span className="float-right openingHoursWeek__is-standard-day">
164
+ {weekTranslations.standardDayAll}
165
+ <Checkbox
166
+ className="label__checkbox"
167
+ checked={allDaysStandard}
168
+ onChecked={this.toggleStandardForAll}
169
+ />
170
+ </span>
171
+ </span>
172
+ }
173
+ openingHours={{
174
+ times: this.props.standardDay.times,
175
+ }}
176
+ onOpeningHoursChange={this.standardDayChanged}
177
+ title={weekTranslations.standardDay}
178
+ tooltip={weekTranslations.standardDayTooltip}
179
+ translations={this.props.translations}
180
+ />
181
+ )}
182
+ {this.props.days.map((day, index) => (
183
+ <OpeningHoursDay
184
+ useCapacity={this.props.useCapacity}
185
+ {...(this.props.id && {
186
+ id: this.props.id + '-opening-hours-day-' + index.toString(),
187
+ })}
188
+ className={''}
189
+ key={index}
190
+ label={
191
+ this.props.standardDay ? (
192
+ <span>
193
+ {OpeningHoursUtil.getLabelSuffix(
194
+ this.props.standardDay && day.isStandardDay
195
+ ? this.props.standardDay
196
+ : day,
197
+ this.props.translations
198
+ )}
199
+ <span className="float-right openingHoursWeek__is-standard-day">
200
+ {weekTranslations.standardDayCheckBox}
201
+ <Checkbox
202
+ className="label__checkbox"
203
+ checked={day.isStandardDay}
204
+ onChecked={this.isStandardDayChecked(index, day)}
205
+ />
206
+ </span>
207
+ </span>
208
+ ) : (
209
+ this.getDayLabel(day.day, weekTranslations)
210
+ )
211
+ }
212
+ openingHours={{
213
+ times:
214
+ this.props.standardDay && day.isStandardDay
215
+ ? this.props.standardDay.times
216
+ : day.times,
217
+ }}
218
+ onOpeningHoursChange={this.onOpeningHoursChange(index, day)}
219
+ title={this.getDayLabel(day.day, weekTranslations)}
220
+ translations={this.props.translations}
221
+ />
222
+ ))}
223
+ <span className="bar" />
224
+ {this.renderDefaultValidation()}
225
+ </div>
226
+ );
227
+ }
228
+
229
+ private getDayLabel(
230
+ day: Weekday,
231
+ translations: OpeningHoursWeekTranslations
232
+ ) {
233
+ switch (day) {
234
+ case Weekday.Monday:
235
+ return translations.monday;
236
+ case Weekday.Tuesday:
237
+ return translations.tuesday;
238
+ case Weekday.Wednesday:
239
+ return translations.wednesday;
240
+ case Weekday.Thursday:
241
+ return translations.thursday;
242
+ case Weekday.Friday:
243
+ return translations.friday;
244
+ case Weekday.Saturday:
245
+ return translations.saturday;
246
+ case Weekday.Sunday:
247
+ return translations.sunday;
248
+ default:
249
+ return '';
250
+ }
251
+ }
252
+
253
+ private onOpeningHoursChange = (index: number, day: OpeningHoursDayObj) => (
254
+ openingHours: OpeningHoursWeekDayObj
255
+ ) => {
256
+ let days = this.props.days.slice(0);
257
+ days[index] = { ...day, ...openingHours, isStandardDay: false };
258
+ this.props.onDaysChange(days);
259
+ };
260
+
261
+ private isStandardDayChecked = (
262
+ index: number,
263
+ day: OpeningHoursWeekDayObj
264
+ ) => checked => {
265
+ let days = this.props.days.slice(0);
266
+ days[index] = { ...day, isStandardDay: checked.target.checked };
267
+ this.props.onDaysChange(days);
268
+ };
269
+
270
+ private standardDayChanged = (openingHours: OpeningHoursDayObj) => {
271
+ this.props.onStandardDayChange(openingHours);
272
+ };
273
+ }
274
+
275
+ export const OpeningHoursWeek = withThemeContext<
276
+ OpeningHoursWeekProps,
277
+ typeof OpeningHoursWeekRaw
278
+ >(
279
+ withFormContext<OpeningHoursWeekProps>(OpeningHoursWeekRaw),
280
+ 'openingHoursWeek'
281
+ );
282
+
283
+ export default OpeningHoursWeek;
@@ -0,0 +1,2 @@
1
+ export * from './OpeningHoursWeek';
2
+ export { default } from './OpeningHoursWeek';
@@ -0,0 +1,111 @@
1
+ // Libs
2
+ import * as React from 'react';
3
+ import { Duration } from 'moment';
4
+ import { OpeningHoursDayObj } from '../openingHoursDay';
5
+
6
+ export const defaultTranslations = {
7
+ open: 'Open',
8
+ closed: 'Closed',
9
+ and: 'and',
10
+ hour: 'hour',
11
+ hours: 'hours',
12
+ minute: 'minute',
13
+ minutes: 'minutes',
14
+ };
15
+
16
+ export type OpeningHoursLabelTranslations = Partial<typeof defaultTranslations>;
17
+
18
+ export class OpeningHoursUtil {
19
+ public getTimeFromMidnight(time: Duration, midnight: Duration = time) {
20
+ midnight = midnight
21
+ .clone()
22
+ .subtract(midnight.hours(), 'hours')
23
+ .subtract(midnight.minutes(), 'minutes')
24
+ .subtract(midnight.seconds(), 'seconds')
25
+ .subtract(midnight.milliseconds(), 'milliseconds');
26
+ const diff = time.asMilliseconds() - midnight.asMilliseconds();
27
+ return diff;
28
+ }
29
+
30
+ public getTotalTimeString(
31
+ times: Duration[],
32
+ translations?: OpeningHoursLabelTranslations
33
+ ) {
34
+ translations = this.getTranslations(translations);
35
+ let totalTime = 0;
36
+ let newTimes = times
37
+ .slice(0)
38
+ .map(item => this.getTimeFromMidnight(item, times[0]));
39
+ if (times.length % 2 === 1) {
40
+ newTimes = newTimes.concat([86400000 + 60 * 1000]);
41
+ }
42
+ for (let index = 0; index < newTimes.length - 1; index++) {
43
+ if (index % 2 === 0) {
44
+ let time = newTimes[index];
45
+ let nextTime = newTimes[index + 1];
46
+ totalTime += nextTime - time;
47
+ }
48
+ }
49
+ const hours = Math.floor(totalTime / 3600000);
50
+ const minutes = Math.floor(totalTime / (60 * 1000)) % 60;
51
+ const hoursFormatted = hours
52
+ ? hours.toFixed(0) +
53
+ ' ' +
54
+ (hours > 1 ? translations.hours : translations.hour)
55
+ : '';
56
+ const minutesFormatted = minutes
57
+ ? minutes.toFixed(0) +
58
+ ' ' +
59
+ (minutes > 1 ? translations.minutes : translations.minute)
60
+ : '';
61
+ if (hoursFormatted && minutesFormatted) {
62
+ return (
63
+ <span>
64
+ {translations.open} {hoursFormatted} {translations.and}{' '}
65
+ {minutesFormatted}
66
+ </span>
67
+ );
68
+ }
69
+ if (hoursFormatted) {
70
+ return (
71
+ <span>
72
+ {translations.open} {hoursFormatted}
73
+ </span>
74
+ );
75
+ }
76
+ if (minutesFormatted) {
77
+ return (
78
+ <span>
79
+ {translations.open} {minutesFormatted}
80
+ </span>
81
+ );
82
+ }
83
+ return <span>{translations.closed}</span>;
84
+ }
85
+
86
+ public getLabelSuffix(
87
+ day: OpeningHoursDayObj,
88
+ translations?: OpeningHoursLabelTranslations
89
+ ) {
90
+ translations = this.getTranslations(translations);
91
+ return day && day.times && day.times.length === 0
92
+ ? translations.closed
93
+ : this.getTotalTimeString(
94
+ (day.times || []).reduce<Duration[]>(
95
+ (a, b) => a.concat([b.opens, b.closes]),
96
+ []
97
+ ),
98
+ translations
99
+ );
100
+ }
101
+
102
+ private getTranslations(translations?: OpeningHoursLabelTranslations) {
103
+ return {
104
+ ...defaultTranslations,
105
+ ...translations,
106
+ };
107
+ }
108
+ }
109
+
110
+ const util = new OpeningHoursUtil();
111
+ export default util;
@@ -0,0 +1,87 @@
1
+ // Libs
2
+ import * as React from 'react';
3
+ import {
4
+ BaseInputProps,
5
+ BaseInputState,
6
+ BaseInput,
7
+ } from '../base/input/BaseInput';
8
+ import { withFormContext } from '../form/withFormContext';
9
+ import { withThemeContext } from '../themeProvider/withThemeContext';
10
+
11
+ // Misc
12
+
13
+ export interface RadioProps extends BaseInputProps<HTMLInputElement> {
14
+ onChange?: never;
15
+ onChecked: (value: string) => void;
16
+ result: string;
17
+ value: string;
18
+ name: string;
19
+ }
20
+
21
+ export interface RadioState extends BaseInputState {}
22
+
23
+ export class RadioRaw extends BaseInput<
24
+ RadioProps,
25
+ RadioState,
26
+ HTMLInputElement
27
+ > {
28
+ public static defaultProps = (Object.assign({}, BaseInput.defaultProps, {
29
+ onChange: undefined,
30
+ }) as unknown) as RadioProps;
31
+
32
+ constructor(props: RadioProps) {
33
+ super(props);
34
+ this.onChecked = this.onChecked.bind(this);
35
+ }
36
+
37
+ public render() {
38
+ return (
39
+ <div
40
+ className={`radio-input ${this.getValidationClass()} ${
41
+ this.props.className ? this.props.className : ''
42
+ }`}
43
+ ref={this.containerRef}
44
+ >
45
+ {!this.props.label && this.renderInput()}
46
+ {this.props.label && (
47
+ <label>
48
+ {this.renderInput()}
49
+ {this.props.label}
50
+ </label>
51
+ )}
52
+ </div>
53
+ );
54
+ }
55
+
56
+ private renderInput() {
57
+ return (
58
+ <input
59
+ {...(this.props.id && {
60
+ id: this.props.id,
61
+ })}
62
+ disabled={this.getDisabled()}
63
+ name={this.props.name}
64
+ value={this.props.value}
65
+ type="radio"
66
+ required={this.props.required}
67
+ checked={this.props.value === this.props.result}
68
+ onChange={this.onChecked}
69
+ onBlur={this.handleBlur}
70
+ onFocus={this.handleFocus}
71
+ tabIndex={0}
72
+ />
73
+ );
74
+ }
75
+
76
+ private onChecked(e: React.ChangeEvent<HTMLInputElement>) {
77
+ // e.preventDefault();
78
+ this.props.onChecked && this.props.onChecked(e.target.value);
79
+ }
80
+ }
81
+
82
+ export const Radio = withThemeContext<
83
+ RadioProps,
84
+ InstanceType<typeof RadioRaw>
85
+ >(withFormContext<RadioProps>(RadioRaw), 'radio');
86
+
87
+ export default Radio;
@@ -0,0 +1,2 @@
1
+ export * from './Radio';
2
+ export { default } from './Radio';
@@ -0,0 +1,50 @@
1
+ // Libs
2
+ import * as React from 'react';
3
+ import InputGroup from '../inputGroup/InputGroup';
4
+ import { withThemeContext } from '../themeProvider/withThemeContext';
5
+ import { ThemeContextProps } from '../themeProvider/ThemeContext';
6
+
7
+ // Misc
8
+
9
+ export interface RadioContainerProps extends ThemeContextProps {
10
+ id?: string;
11
+ className?: string;
12
+ title?: string;
13
+ horizontal?: boolean;
14
+ children?: React.ReactNode;
15
+ }
16
+
17
+ export interface RadioContainerState {}
18
+
19
+ export class RadioContainer extends React.PureComponent<
20
+ RadioContainerProps,
21
+ RadioContainerState
22
+ > {
23
+ constructor(props: RadioContainerProps) {
24
+ super(props);
25
+ }
26
+
27
+ public render() {
28
+ return (
29
+ <InputGroup title={this.props.title}>
30
+ <div
31
+ {...(this.props.id && {
32
+ id: this.props.id,
33
+ })}
34
+ className={`input__base radio-input__container
35
+ ${
36
+ this.props.horizontal
37
+ ? 'radio-input__container--horizontal'
38
+ : ''
39
+ }
40
+ ${this.props.className ? this.props.className : ''}`}
41
+ children={this.props.children}
42
+ />
43
+ </InputGroup>
44
+ );
45
+ }
46
+ }
47
+ export default withThemeContext<
48
+ RadioContainerProps,
49
+ InstanceType<typeof RadioContainer>
50
+ >(RadioContainer, 'radioContainer');
@@ -0,0 +1,2 @@
1
+ export * from './RadioContainer';
2
+ export { default } from './RadioContainer';