@mtes-mct/monitor-ui 1.7.2 → 1.7.3

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 (200) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/index.js +3424 -0
  3. package/index.js.map +1 -0
  4. package/package.json +3 -3
  5. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js +0 -12
  6. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js.map +0 -1
  7. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js +0 -25
  8. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js.map +0 -1
  9. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js +0 -51
  10. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js.map +0 -1
  11. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js +0 -20
  12. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js.map +0 -1
  13. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js +0 -89
  14. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js.map +0 -1
  15. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js +0 -37
  16. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js.map +0 -1
  17. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js +0 -15
  18. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js.map +0 -1
  19. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/localize/index.js +0 -101
  20. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/localize/index.js.map +0 -1
  21. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/match/index.js +0 -101
  22. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/_lib/match/index.js.map +0 -1
  23. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/index.js +0 -34
  24. package/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/esm/locale/fr/index.js.map +0 -1
  25. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/dayjs.min.js +0 -16
  26. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/dayjs.min.js.map +0 -1
  27. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/locale/fr.js +0 -8
  28. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/locale/fr.js.map +0 -1
  29. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/plugin/timezone.js +0 -11
  30. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/plugin/timezone.js.map +0 -1
  31. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/plugin/utc.js +0 -11
  32. package/.yarn/cache/dayjs-npm-1.11.5-a825142dc5-e3bbaa7b48.zip/node_modules/dayjs/plugin/utc.js.map +0 -1
  33. package/.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-129c0a28ce.zip/node_modules/lodash.throttle/index.js +0 -444
  34. package/.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-129c0a28ce.zip/node_modules/lodash.throttle/index.js.map +0 -1
  35. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/bind.js +0 -36
  36. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/bind.js.map +0 -1
  37. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/equals.js +0 -37
  38. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/equals.js.map +0 -1
  39. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/filter.js +0 -53
  40. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/filter.js.map +0 -1
  41. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_arity.js +0 -65
  42. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_arity.js.map +0 -1
  43. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_arrayFromIterator.js +0 -13
  44. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_arrayFromIterator.js.map +0 -1
  45. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_complement.js +0 -8
  46. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_complement.js.map +0 -1
  47. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_curry1.js +0 -23
  48. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_curry1.js.map +0 -1
  49. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_curry2.js +0 -35
  50. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_curry2.js.map +0 -1
  51. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_curry3.js +0 -53
  52. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_curry3.js.map +0 -1
  53. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_dispatchable.js +0 -50
  54. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_dispatchable.js.map +0 -1
  55. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_equals.js +0 -166
  56. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_equals.js.map +0 -1
  57. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_filter.js +0 -18
  58. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_filter.js.map +0 -1
  59. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_functionName.js +0 -8
  60. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_functionName.js.map +0 -1
  61. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_has.js +0 -6
  62. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_has.js.map +0 -1
  63. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_includesWith.js +0 -17
  64. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_includesWith.js.map +0 -1
  65. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isArguments.js +0 -16
  66. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isArguments.js.map +0 -1
  67. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isArray.js +0 -18
  68. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isArray.js.map +0 -1
  69. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isArrayLike.js +0 -55
  70. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isArrayLike.js.map +0 -1
  71. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isObject.js +0 -6
  72. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isObject.js.map +0 -1
  73. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isPlaceholder.js +0 -6
  74. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isPlaceholder.js.map +0 -1
  75. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isString.js +0 -6
  76. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isString.js.map +0 -1
  77. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isTransformer.js +0 -6
  78. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_isTransformer.js.map +0 -1
  79. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_objectIs.js +0 -17
  80. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_objectIs.js.map +0 -1
  81. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_reduce.js +0 -74
  82. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_reduce.js.map +0 -1
  83. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_xfBase.js +0 -11
  84. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_xfBase.js.map +0 -1
  85. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_xfilter.js +0 -29
  86. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_xfilter.js.map +0 -1
  87. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_xwrap.js +0 -28
  88. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/internal/_xwrap.js.map +0 -1
  89. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/keys.js +0 -92
  90. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/keys.js.map +0 -1
  91. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/mergeDeepRight.js +0 -35
  92. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/mergeDeepRight.js.map +0 -1
  93. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/mergeDeepWithKey.js +0 -47
  94. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/mergeDeepWithKey.js.map +0 -1
  95. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/mergeWithKey.js +0 -52
  96. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/mergeWithKey.js.map +0 -1
  97. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/reject.js +0 -37
  98. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/reject.js.map +0 -1
  99. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/type.js +0 -36
  100. package/.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/type.js.map +0 -1
  101. package/_virtual/_commonjsHelpers.js +0 -4
  102. package/_virtual/_commonjsHelpers.js.map +0 -1
  103. package/_virtual/dayjs.min.js +0 -4
  104. package/_virtual/dayjs.min.js.map +0 -1
  105. package/_virtual/dayjs.min2.js +0 -6
  106. package/_virtual/dayjs.min2.js.map +0 -1
  107. package/_virtual/fr.js +0 -4
  108. package/_virtual/fr.js.map +0 -1
  109. package/_virtual/timezone.js +0 -4
  110. package/_virtual/timezone.js.map +0 -1
  111. package/_virtual/utc.js +0 -4
  112. package/_virtual/utc.js.map +0 -1
  113. package/src/ThemeProvider.js +0 -13
  114. package/src/ThemeProvider.js.map +0 -1
  115. package/src/constants.js +0 -2
  116. package/src/constants.js.map +0 -1
  117. package/src/elements/Field.js +0 -9
  118. package/src/elements/Field.js.map +0 -1
  119. package/src/elements/Fieldset.js +0 -15
  120. package/src/elements/Fieldset.js.map +0 -1
  121. package/src/elements/Label.js +0 -12
  122. package/src/elements/Label.js.map +0 -1
  123. package/src/elements/Legend.js +0 -9
  124. package/src/elements/Legend.js.map +0 -1
  125. package/src/fields/Checkbox.js +0 -17
  126. package/src/fields/Checkbox.js.map +0 -1
  127. package/src/fields/DatePicker/CalendarPicker.js +0 -137
  128. package/src/fields/DatePicker/CalendarPicker.js.map +0 -1
  129. package/src/fields/DatePicker/index.js +0 -126
  130. package/src/fields/DatePicker/index.js.map +0 -1
  131. package/src/fields/DateRangePicker/DateInput.js +0 -84
  132. package/src/fields/DateRangePicker/DateInput.js.map +0 -1
  133. package/src/fields/DateRangePicker/NumberInput.js +0 -82
  134. package/src/fields/DateRangePicker/NumberInput.js.map +0 -1
  135. package/src/fields/DateRangePicker/RangeCalendarPicker.js +0 -147
  136. package/src/fields/DateRangePicker/RangeCalendarPicker.js.map +0 -1
  137. package/src/fields/DateRangePicker/RangedTimePicker.js +0 -90
  138. package/src/fields/DateRangePicker/RangedTimePicker.js.map +0 -1
  139. package/src/fields/DateRangePicker/TimeInput.js +0 -116
  140. package/src/fields/DateRangePicker/TimeInput.js.map +0 -1
  141. package/src/fields/DateRangePicker/constants.js +0 -34
  142. package/src/fields/DateRangePicker/constants.js.map +0 -1
  143. package/src/fields/DateRangePicker/index.js +0 -187
  144. package/src/fields/DateRangePicker/index.js.map +0 -1
  145. package/src/fields/DateRangePicker/types.js +0 -8
  146. package/src/fields/DateRangePicker/types.js.map +0 -1
  147. package/src/fields/DateRangePicker/utils.js +0 -73
  148. package/src/fields/DateRangePicker/utils.js.map +0 -1
  149. package/src/fields/MultiCheckbox.js +0 -52
  150. package/src/fields/MultiCheckbox.js.map +0 -1
  151. package/src/fields/MultiRadio.js +0 -54
  152. package/src/fields/MultiRadio.js.map +0 -1
  153. package/src/fields/MultiSelect.js +0 -33
  154. package/src/fields/MultiSelect.js.map +0 -1
  155. package/src/fields/Select.js +0 -27
  156. package/src/fields/Select.js.map +0 -1
  157. package/src/fields/TextInput.js +0 -25
  158. package/src/fields/TextInput.js.map +0 -1
  159. package/src/fields/Textarea.js +0 -28
  160. package/src/fields/Textarea.js.map +0 -1
  161. package/src/formiks/FormikCheckbox.js +0 -22
  162. package/src/formiks/FormikCheckbox.js.map +0 -1
  163. package/src/formiks/FormikDatePicker.js +0 -17
  164. package/src/formiks/FormikDatePicker.js.map +0 -1
  165. package/src/formiks/FormikDateRangePicker.js +0 -17
  166. package/src/formiks/FormikDateRangePicker.js.map +0 -1
  167. package/src/formiks/FormikEffect.js +0 -14
  168. package/src/formiks/FormikEffect.js.map +0 -1
  169. package/src/formiks/FormikMultiCheckbox.js +0 -21
  170. package/src/formiks/FormikMultiCheckbox.js.map +0 -1
  171. package/src/formiks/FormikMultiRadio.js +0 -21
  172. package/src/formiks/FormikMultiRadio.js.map +0 -1
  173. package/src/formiks/FormikMultiSelect.js +0 -21
  174. package/src/formiks/FormikMultiSelect.js.map +0 -1
  175. package/src/formiks/FormikSelect.js +0 -21
  176. package/src/formiks/FormikSelect.js.map +0 -1
  177. package/src/formiks/FormikTextInput.js +0 -21
  178. package/src/formiks/FormikTextInput.js.map +0 -1
  179. package/src/formiks/FormikTextarea.js +0 -21
  180. package/src/formiks/FormikTextarea.js.map +0 -1
  181. package/src/hooks/useForceUpdate.js +0 -17
  182. package/src/hooks/useForceUpdate.js.map +0 -1
  183. package/src/index.js +0 -28
  184. package/src/index.js.map +0 -1
  185. package/src/theme.js +0 -68
  186. package/src/theme.js.map +0 -1
  187. package/src/utils/capitalizeFirstLetter.js +0 -9
  188. package/src/utils/capitalizeFirstLetter.js.map +0 -1
  189. package/src/utils/dayjs.js +0 -11
  190. package/src/utils/dayjs.js.map +0 -1
  191. package/src/utils/getLocalizedDayjs.js +0 -19
  192. package/src/utils/getLocalizedDayjs.js.map +0 -1
  193. package/src/utils/getUtcDayjs.js +0 -9
  194. package/src/utils/getUtcDayjs.js.map +0 -1
  195. package/src/utils/getUtcizedDayjs.js +0 -20
  196. package/src/utils/getUtcizedDayjs.js.map +0 -1
  197. package/src/utils/sortDates.js +0 -12
  198. package/src/utils/sortDates.js.map +0 -1
  199. package/src/utils/stopMouseEventPropagation.js +0 -6
  200. package/src/utils/stopMouseEventPropagation.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/fields/DateRangePicker/index.tsx"],"sourcesContent":["// TODO We should make this component both form- & a11y-compliant with a `name` and proper (aria-)labels.\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport styled from 'styled-components'\n\nimport { Fieldset } from '../../elements/Fieldset'\nimport { Legend } from '../../elements/Legend'\nimport { useForceUpdate } from '../../hooks/useForceUpdate'\nimport { getLocalizedDayjs } from '../../utils/getLocalizedDayjs'\nimport { getUtcizedDayjs } from '../../utils/getUtcizedDayjs'\nimport { DateInput } from './DateInput'\nimport { RangeCalendarPicker } from './RangeCalendarPicker'\nimport { TimeInput } from './TimeInput'\nimport { DateOrTimeInputRef, DateRangePosition, DateTuple, DateTupleRange, TimeTuple } from './types'\nimport { getDateFromDateAndTimeTuple, getDateTupleFromDate, getTimeTupleFromDate } from './utils'\n\nimport type { DateRange } from '../../types'\nimport type { MutableRefObject } from 'react'\nimport type { Promisable } from 'type-fest'\n\nexport type DateRangePickerProps = {\n defaultValue?: DateRange\n /** Only allow past dates until today. */\n isHistorical?: boolean\n isLabelHidden?: boolean\n label: string\n /**\n * Range of minutes used to generate the time picker list.\n *\n * @example\n * `15` would produce a list with `..., 10:45, 11:00, 11:15, ...`.\n */\n minutesRange?: number\n /**\n * Called each time the date range picker is changed to a new valid value.\n *\n * @param nextUtcDateRange - A utcized date to be used as is to interact with the API.\n */\n onChange?: (nextUtcDateRange: DateRange) => Promisable<void>\n withTime?: boolean\n}\nexport function DateRangePicker({\n defaultValue,\n isHistorical = false,\n isLabelHidden = false,\n label,\n minutesRange = 15,\n onChange,\n withTime = false\n}: DateRangePickerProps) {\n const startDateInputRef = useRef() as MutableRefObject<DateOrTimeInputRef>\n const startTimeInputRef = useRef() as MutableRefObject<DateOrTimeInputRef>\n const endDateInputRef = useRef() as MutableRefObject<DateOrTimeInputRef>\n const endTimeInputRef = useRef() as MutableRefObject<DateOrTimeInputRef>\n\n const isRangeCalendarPickerOpenRef = useRef(false)\n\n const selectedStartDateRef = useRef<Date | undefined>(\n defaultValue ? getLocalizedDayjs(defaultValue[0]).toDate() : undefined\n )\n const selectedEndDateRef = useRef<Date | undefined>(\n defaultValue ? getLocalizedDayjs(defaultValue[1]).toDate() : undefined\n )\n const selectedStartDateTupleRef = useRef<DateTuple | undefined>(getDateTupleFromDate(selectedStartDateRef.current))\n const selectedEndDateTupleRef = useRef<DateTuple | undefined>(getDateTupleFromDate(selectedEndDateRef.current))\n const selectedStartTimeTupleRef = useRef<TimeTuple | undefined>(getTimeTupleFromDate(selectedStartDateRef.current))\n const selectedEndTimeTupleRef = useRef<TimeTuple | undefined>(getTimeTupleFromDate(selectedEndDateRef.current))\n\n const { forceUpdate } = useForceUpdate()\n\n const rangeCalendarPickerDefaultValue = useMemo(\n () =>\n selectedStartDateTupleRef.current && selectedEndDateTupleRef.current\n ? ([\n getDateFromDateAndTimeTuple(selectedStartDateTupleRef.current, ['00', '00']),\n getDateFromDateAndTimeTuple(selectedEndDateTupleRef.current, ['00', '00'], true)\n ] as DateRange)\n : undefined,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedEndDateTupleRef.current, selectedStartDateTupleRef.current]\n )\n\n const submit = useCallback(() => {\n if (!onChange || !selectedStartDateRef.current || !selectedEndDateRef.current) {\n return\n }\n\n const utcizedStartDate = getUtcizedDayjs(selectedStartDateRef.current).toDate()\n const utcizedEndDate = getUtcizedDayjs(selectedEndDateRef.current).toDate()\n\n const nextDateRange: DateRange = [utcizedStartDate, utcizedEndDate]\n onChange(nextDateRange)\n }, [onChange])\n\n const closeRangeCalendarPicker = useCallback(() => {\n isRangeCalendarPickerOpenRef.current = false\n\n forceUpdate()\n }, [forceUpdate])\n\n const handleClickOutside = useCallback(\n (event: globalThis.MouseEvent) => {\n const target = event.target as Node | null\n\n if (startDateInputRef.current.boxSpan.contains(target) || endDateInputRef.current.boxSpan.contains(target)) {\n return\n }\n\n closeRangeCalendarPicker()\n },\n [closeRangeCalendarPicker]\n )\n\n const handleEndDateInputNext = useCallback(() => {\n if (!withTime) {\n return\n }\n\n endTimeInputRef.current.focus()\n }, [withTime])\n\n const handleEndDateInputPrevious = useCallback(() => {\n if (withTime) {\n startTimeInputRef.current.focus(true)\n\n return\n }\n\n startDateInputRef.current.focus(true)\n }, [withTime])\n\n const handleStartDateInputNext = useCallback(() => {\n if (withTime) {\n startTimeInputRef.current.focus()\n\n return\n }\n\n endDateInputRef.current.focus()\n }, [withTime])\n\n const handleDateInputFilled = useCallback(\n (position: DateRangePosition, nextDateTuple: DateTuple) => {\n if (position === DateRangePosition.START) {\n selectedStartDateTupleRef.current = nextDateTuple\n\n // If there is no time input or a start time has already been selected,\n if (!withTime || selectedStartTimeTupleRef.current) {\n // we must update the selected start date and call onChange()\n const startTimeTuple = (withTime ? selectedStartTimeTupleRef.current : ['00', '00']) as TimeTuple\n const nextStartDate = getDateFromDateAndTimeTuple(nextDateTuple, startTimeTuple)\n\n selectedStartDateRef.current = nextStartDate\n\n submit()\n }\n\n handleStartDateInputNext()\n } else {\n selectedEndDateTupleRef.current = nextDateTuple\n\n // If there is no time input or an end time has already been selected,\n if (!withTime || selectedEndTimeTupleRef.current) {\n // we must update the selected end date and call onChange()\n const endTimeTuple = (withTime ? selectedEndTimeTupleRef.current : ['23', '59']) as TimeTuple\n const nextEndDate = getDateFromDateAndTimeTuple(nextDateTuple, endTimeTuple, true)\n\n selectedEndDateRef.current = nextEndDate\n\n submit()\n }\n\n handleEndDateInputNext()\n }\n },\n [handleEndDateInputNext, handleStartDateInputNext, submit, withTime]\n )\n\n const handleRangeCalendarPickerChange = useCallback(\n (nextDateTupleRange: DateTupleRange) => {\n const [nextStartDateTuple, nextEndDateTuple] = nextDateTupleRange\n\n // If this is a date picker without a time input,\n if (!withTime) {\n // we have to fix the start date at the beginning of the day\n const nextStartDate = getDateFromDateAndTimeTuple(nextStartDateTuple, ['00', '00'])\n // and the end date at the end of the day\n const nextEndDate = getDateFromDateAndTimeTuple(nextEndDateTuple, ['23', '59'], true)\n\n selectedStartDateRef.current = nextStartDate\n selectedEndDateRef.current = nextEndDate\n }\n\n // If this is a date picker with a time input,\n else {\n // we include the selected start time if it exists, set it at the beginning of the day if not\n const nextStartDate = getDateFromDateAndTimeTuple(\n nextStartDateTuple,\n selectedStartTimeTupleRef.current || ['00', '00']\n )\n selectedStartDateRef.current = nextStartDate\n\n // we include the selected end time if it exists, set it at the end of the day if not\n const nextEndDate = getDateFromDateAndTimeTuple(\n nextEndDateTuple,\n selectedEndTimeTupleRef.current || ['23', '59'],\n true\n )\n\n selectedEndDateRef.current = nextEndDate\n }\n\n selectedStartDateTupleRef.current = nextStartDateTuple\n selectedStartTimeTupleRef.current = getTimeTupleFromDate(selectedStartDateRef.current)\n selectedEndDateTupleRef.current = nextEndDateTuple\n selectedEndTimeTupleRef.current = getTimeTupleFromDate(selectedEndDateRef.current)\n\n closeRangeCalendarPicker()\n forceUpdate()\n\n submit()\n },\n [closeRangeCalendarPicker, forceUpdate, submit, withTime]\n )\n\n const handleTimeInputFilled = useCallback(\n (position: DateRangePosition, nextTimeTuple: TimeTuple) => {\n if (position === DateRangePosition.START) {\n // If a start date has already been selected\n if (selectedStartDateTupleRef.current) {\n // we must update the selected start date accordingly and submit it\n const nextStartDate = getDateFromDateAndTimeTuple(selectedStartDateTupleRef.current, nextTimeTuple)\n\n selectedStartDateRef.current = nextStartDate\n\n submit()\n }\n\n selectedStartTimeTupleRef.current = nextTimeTuple\n\n endDateInputRef.current.focus()\n } else {\n // If an end date has already been selected\n if (selectedEndDateTupleRef.current) {\n // we must update the selected end date accordingly and submit it\n const nextEndDate = getDateFromDateAndTimeTuple(selectedEndDateTupleRef.current, nextTimeTuple, true)\n\n selectedEndDateRef.current = nextEndDate\n\n submit()\n }\n\n selectedEndTimeTupleRef.current = nextTimeTuple\n }\n\n submit()\n },\n [submit]\n )\n\n const openRangeCalendarPicker = useCallback(() => {\n isRangeCalendarPickerOpenRef.current = true\n\n forceUpdate()\n }, [forceUpdate])\n\n useEffect(() => {\n window.document.addEventListener('click', handleClickOutside)\n\n return () => {\n window.document.removeEventListener('click', handleClickOutside)\n }\n }, [handleClickOutside])\n\n return (\n <Fieldset className=\"DateRangePicker\">\n <Legend isHidden={isLabelHidden}>{label}</Legend>\n\n <Box>\n <Field>\n <DateInput\n ref={startDateInputRef}\n defaultValue={selectedStartDateTupleRef.current}\n isForcedFocused={isRangeCalendarPickerOpenRef.current}\n isStartDate\n onChange={nextDateTuple => handleDateInputFilled(DateRangePosition.START, nextDateTuple)}\n onClick={openRangeCalendarPicker}\n onNext={handleStartDateInputNext}\n />\n </Field>\n\n {withTime && (\n <Field isTimeField>\n <TimeInput\n ref={startTimeInputRef}\n defaultValue={selectedStartTimeTupleRef.current}\n isStartDate\n minutesRange={minutesRange}\n onBack={() => startDateInputRef.current.focus(true)}\n onChange={nextTimeTuple => handleTimeInputFilled(DateRangePosition.START, nextTimeTuple)}\n onFocus={closeRangeCalendarPicker}\n onNext={() => endDateInputRef.current.focus()}\n onPrevious={() => startDateInputRef.current.focus(true)}\n />\n </Field>\n )}\n\n <Field isEndDateField>\n <DateInput\n ref={endDateInputRef}\n defaultValue={selectedEndDateTupleRef.current}\n isEndDate\n isForcedFocused={isRangeCalendarPickerOpenRef.current}\n onBack={handleEndDateInputPrevious}\n onChange={nextDateTuple => handleDateInputFilled(DateRangePosition.END, nextDateTuple)}\n onClick={openRangeCalendarPicker}\n onNext={handleEndDateInputNext}\n onPrevious={handleEndDateInputPrevious}\n />\n </Field>\n\n {withTime && (\n <Field isTimeField>\n <TimeInput\n ref={endTimeInputRef}\n defaultValue={selectedEndTimeTupleRef.current}\n minutesRange={minutesRange}\n onBack={() => endDateInputRef.current.focus(true)}\n onChange={nextTimeTuple => handleTimeInputFilled(DateRangePosition.END, nextTimeTuple)}\n onFocus={closeRangeCalendarPicker}\n onPrevious={() => endDateInputRef.current.focus(true)}\n />\n </Field>\n )}\n </Box>\n\n {isRangeCalendarPickerOpenRef.current && (\n <RangeCalendarPicker\n defaultValue={rangeCalendarPickerDefaultValue}\n isHistorical={isHistorical}\n onChange={handleRangeCalendarPickerChange}\n />\n )}\n </Fieldset>\n )\n}\n\nconst Box = styled.div`\n * {\n font-weight: 500;\n line-height: 1;\n }\n\n color: ${p => p.theme.color.gunMetal};\n font-size: 13px;\n position: relative;\n`\n\nconst Field = styled.span<{\n isEndDateField?: boolean\n isTimeField?: boolean\n}>`\n font-size: inherit;\n margin-left: ${p => {\n if (p.isEndDateField) {\n return '0.625rem'\n }\n\n return p.isTimeField ? '0.125rem' : 0\n }};\n`\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- var DateRangePosition;
2
- (function (DateRangePosition) {
3
- DateRangePosition["END"] = "END";
4
- DateRangePosition["START"] = "START";
5
- })(DateRangePosition || (DateRangePosition = {}));
6
-
7
- export { DateRangePosition };
8
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/fields/DateRangePicker/types.ts"],"sourcesContent":["export type DateOrTimeInputRef = {\n boxSpan: HTMLSpanElement\n /**\n * Focus the first input in the group.\n *\n * @param inLastInputOfTheGroup - If `true`, focus the last input in the group instead of the first one\n */\n focus: (inLastInputOfTheGroup?: boolean) => void\n}\n\nexport enum DateRangePosition {\n END = 'END',\n START = 'START'\n}\n\n/** In the shape of [\"YYYY\", \"MM\", \"DD\"]. */\nexport type DateTuple = [string, string, string]\n\nexport type DateTupleRange = [DateTuple, DateTuple]\n\n/** In the shape of [\"hh\", \"mm\"]. */\nexport type TimeTuple = [string, string]\n"],"names":[],"mappings":"IAUY,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;;;"}
@@ -1,73 +0,0 @@
1
- import '../../utils/dayjs.js';
2
- import dayjs_minExports from '../../../_virtual/dayjs.min2.js';
3
-
4
- // TODO Use `date-fns` instead of `dayjs`.
5
- function formatNumberAsDoubleDigit(numberLike) {
6
- return String(numberLike).padStart(2, '0');
7
- }
8
- function getDateFromDateAndTimeTuple(dateTuple, timeTuple, isEnd = false) {
9
- const [year, month, day] = dateTuple;
10
- const [hour, minute] = timeTuple;
11
- const rawDateAsDayjs = dayjs_minExports()
12
- .year(Number(year))
13
- .month(Number(month) - 1)
14
- .date(Number(day))
15
- .hour(Number(hour))
16
- .minute(Number(minute));
17
- return isEnd
18
- ? rawDateAsDayjs
19
- .endOf('minute')
20
- // TODO For some reason the API can't handle miliseconds in dates.
21
- // That's why we set it to 0 (instead of 999)
22
- .millisecond(0)
23
- .toDate()
24
- : rawDateAsDayjs.startOf('minute').toDate();
25
- }
26
- function getDateTupleFromDate(date) {
27
- if (!date) {
28
- return undefined;
29
- }
30
- return [
31
- String(date.getFullYear()),
32
- formatNumberAsDoubleDigit(date.getMonth() + 1),
33
- formatNumberAsDoubleDigit(date.getDate())
34
- ];
35
- }
36
- /**
37
- * Generate a list of ranged time options.
38
- *
39
- * @example
40
- * ```
41
- * (minutesRange = 30) => ([
42
- * { label: '00:00', value: ['00', '00'] },
43
- * { label: '00:30', value: ['00', '30'] },
44
- * { label: '01:00', value: ['01', '00'] },
45
- * { label: '01:30', value: ['01', '30'] },
46
- * { label: '02:00', value: ['02', '00'] },
47
- * ...
48
- * ])
49
- * ```
50
- */
51
- const getRangedTimeOptions = (minutesRange) => {
52
- const perHourOptionsLength = 60 / minutesRange;
53
- const totalOptionsLength = 24 * perHourOptionsLength;
54
- return new Array(totalOptionsLength).fill(undefined).map((_, index) => {
55
- const hour = Math.floor(index / perHourOptionsLength);
56
- const minute = minutesRange * (index % perHourOptionsLength);
57
- const label = `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`;
58
- const value = [formatNumberAsDoubleDigit(hour), formatNumberAsDoubleDigit(minute)];
59
- return {
60
- label,
61
- value
62
- };
63
- });
64
- };
65
- function getTimeTupleFromDate(date) {
66
- if (!date) {
67
- return undefined;
68
- }
69
- return [formatNumberAsDoubleDigit(date.getHours()), formatNumberAsDoubleDigit(date.getMinutes())];
70
- }
71
-
72
- export { formatNumberAsDoubleDigit, getDateFromDateAndTimeTuple, getDateTupleFromDate, getRangedTimeOptions, getTimeTupleFromDate };
73
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/fields/DateRangePicker/utils.ts"],"sourcesContent":["// TODO Use `date-fns` instead of `dayjs`.\n\nimport { dayjs } from '../../utils/dayjs'\n\nimport type { Option } from '../../types'\nimport type { DateTuple, TimeTuple } from './types'\n\nexport function formatNumberAsDoubleDigit(numberLike: number | string): string {\n return String(numberLike).padStart(2, '0')\n}\n\nexport function getDateFromDateAndTimeTuple(dateTuple: DateTuple, timeTuple: TimeTuple, isEnd: boolean = false): Date {\n const [year, month, day] = dateTuple\n const [hour, minute] = timeTuple\n\n const rawDateAsDayjs = dayjs()\n .year(Number(year))\n .month(Number(month) - 1)\n .date(Number(day))\n .hour(Number(hour))\n .minute(Number(minute))\n\n return isEnd\n ? rawDateAsDayjs\n .endOf('minute')\n // TODO For some reason the API can't handle miliseconds in dates.\n // That's why we set it to 0 (instead of 999)\n .millisecond(0)\n .toDate()\n : rawDateAsDayjs.startOf('minute').toDate()\n}\n\nexport function getDateTupleFromDate(date: undefined): undefined\nexport function getDateTupleFromDate(date: Date): DateTuple\nexport function getDateTupleFromDate(date?: Date): DateTuple | undefined\nexport function getDateTupleFromDate(date?: Date): DateTuple | undefined {\n if (!date) {\n return undefined\n }\n\n return [\n String(date.getFullYear()),\n formatNumberAsDoubleDigit(date.getMonth() + 1),\n formatNumberAsDoubleDigit(date.getDate())\n ]\n}\n\n/**\n * Generate a list of ranged time options.\n *\n * @example\n * ```\n * (minutesRange = 30) => ([\n * { label: '00:00', value: ['00', '00'] },\n * { label: '00:30', value: ['00', '30'] },\n * { label: '01:00', value: ['01', '00'] },\n * { label: '01:30', value: ['01', '30'] },\n * { label: '02:00', value: ['02', '00'] },\n * ...\n * ])\n * ```\n */\nexport const getRangedTimeOptions = (minutesRange: number): Option<TimeTuple>[] => {\n const perHourOptionsLength = 60 / minutesRange\n const totalOptionsLength = 24 * perHourOptionsLength\n\n return new Array(totalOptionsLength).fill(undefined).map((_, index) => {\n const hour = Math.floor(index / perHourOptionsLength)\n const minute = minutesRange * (index % perHourOptionsLength)\n const label = `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`\n const value: TimeTuple = [formatNumberAsDoubleDigit(hour), formatNumberAsDoubleDigit(minute)]\n\n return {\n label,\n value\n }\n })\n}\n\nexport function getTimeTupleFromDate(date?: Date): TimeTuple | undefined {\n if (!date) {\n return undefined\n }\n\n return [formatNumberAsDoubleDigit(date.getHours()), formatNumberAsDoubleDigit(date.getMinutes())]\n}\n"],"names":["dayjs"],"mappings":";;;AAAA;AAOM,SAAU,yBAAyB,CAAC,UAA2B,EAAA;IACnE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC5C,CAAC;AAEK,SAAU,2BAA2B,CAAC,SAAoB,EAAE,SAAoB,EAAE,QAAiB,KAAK,EAAA;IAC5G,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AACpC,IAAA,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IAEhC,MAAM,cAAc,GAAGA,gBAAK,EAAE;AAC3B,SAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,SAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxB,SAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACjB,SAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,SAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAEzB,IAAA,OAAO,KAAK;AACV,UAAE,cAAc;aACX,KAAK,CAAC,QAAQ,CAAC;;;aAGf,WAAW,CAAC,CAAC,CAAC;AACd,aAAA,MAAM,EAAE;UACX,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AAC/C,CAAC;AAKK,SAAU,oBAAoB,CAAC,IAAW,EAAA;IAC9C,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,SAAS,CAAA;AACjB,KAAA;IAED,OAAO;AACL,QAAA,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC1B,QAAA,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC9C,QAAA,yBAAyB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KAC1C,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;AAcG;AACU,MAAA,oBAAoB,GAAG,CAAC,YAAoB,KAAyB;AAChF,IAAA,MAAM,oBAAoB,GAAG,EAAE,GAAG,YAAY,CAAA;AAC9C,IAAA,MAAM,kBAAkB,GAAG,EAAE,GAAG,oBAAoB,CAAA;AAEpD,IAAA,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,YAAY,IAAI,KAAK,GAAG,oBAAoB,CAAC,CAAA;QAC5D,MAAM,KAAK,GAAG,CAAA,EAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE,CAAA;AACnF,QAAA,MAAM,KAAK,GAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAA;QAE7F,OAAO;YACL,KAAK;YACL,KAAK;SACN,CAAA;AACH,KAAC,CAAC,CAAA;AACJ,EAAC;AAEK,SAAU,oBAAoB,CAAC,IAAW,EAAA;IAC9C,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,SAAS,CAAA;AACjB,KAAA;AAED,IAAA,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;AACnG;;;;"}
@@ -1,52 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import equals from '../../.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/equals.js';
3
- import reject from '../../.yarn/cache/ramda-npm-0.28.0-6a5fe8f6cc-44ea6e5010.zip/node_modules/ramda/es/reject.js';
4
- import { useRef, useMemo, useCallback } from 'react';
5
- import styled, { css } from 'styled-components';
6
- import { Fieldset } from '../elements/Fieldset.js';
7
- import { Legend } from '../elements/Legend.js';
8
- import { Checkbox } from './Checkbox.js';
9
-
10
- function MultiCheckbox({ defaultValue = [], isInline = false, isLabelHidden = false, label, name, onChange, options }) {
11
- const checkedOptionValues = useRef(defaultValue);
12
- const key = useMemo(() => `${name}-${JSON.stringify(defaultValue)}`, [defaultValue, name]);
13
- const handleChange = useCallback((nextOptionValue, isChecked) => {
14
- const nextCheckedOptionValues = isChecked
15
- ? [...checkedOptionValues.current, nextOptionValue]
16
- : reject(equals(nextOptionValue))(checkedOptionValues.current);
17
- checkedOptionValues.current = nextCheckedOptionValues;
18
- if (onChange) {
19
- const normalizedNextValue = nextCheckedOptionValues.length ? nextCheckedOptionValues : undefined;
20
- onChange(normalizedNextValue);
21
- }
22
- }, [onChange]);
23
- return (jsxs(Fieldset, { children: [jsx(Legend, { isHidden: isLabelHidden, children: label }), jsx(ChecboxesBox, { isInline: isInline, children: options.map((option, index) => (jsx(Checkbox, { defaultChecked: defaultValue.includes(option.value), label: option.label, name: `${name}${index}`, onChange: (isChecked) => handleChange(option.value, isChecked) }))) })] }, key));
24
- }
25
- const ChecboxesBox = styled.div `
26
- color: ${p => p.theme.color.gunMetal};
27
- display: flex;
28
- flex-direction: ${p => (p.isInline ? 'row' : 'column')};
29
- font-weight: 500;
30
-
31
- > .rs-checkbox {
32
- > .rs-checkbox-checker {
33
- padding-left: 28px;
34
- padding-top: 2px;
35
-
36
- .rs-checkbox-wrapper {
37
- left: 2px;
38
- top: 0 !important;
39
- }
40
- }
41
- }
42
-
43
- ${p => p.isInline &&
44
- css `
45
- > .rs-checkbox:not(:first-child) {
46
- margin-left: 0.75rem;
47
- }
48
- `}
49
- `;
50
-
51
- export { MultiCheckbox };
52
- //# sourceMappingURL=MultiCheckbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultiCheckbox.js","sources":["../../../src/fields/MultiCheckbox.tsx"],"sourcesContent":["import { equals, reject } from 'ramda'\nimport { useCallback, useMemo, useRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { Fieldset } from '../elements/Fieldset'\nimport { Legend } from '../elements/Legend'\nimport { Checkbox } from './Checkbox'\n\nimport type { Option } from '../types'\nimport type { Promisable } from 'type-fest'\n\nexport type MultiCheckboxProps = {\n defaultValue?: string[]\n isInline?: boolean\n isLabelHidden?: boolean\n label: string\n name: string\n onChange?: (nextValue: string[] | undefined) => Promisable<void>\n options: Option[]\n}\nexport function MultiCheckbox({\n defaultValue = [],\n isInline = false,\n isLabelHidden = false,\n label,\n name,\n onChange,\n options\n}: MultiCheckboxProps) {\n const checkedOptionValues = useRef<string[]>(defaultValue)\n\n const key = useMemo(() => `${name}-${JSON.stringify(defaultValue)}`, [defaultValue, name])\n\n const handleChange = useCallback(\n (nextOptionValue: string, isChecked: boolean) => {\n const nextCheckedOptionValues = isChecked\n ? [...checkedOptionValues.current, nextOptionValue]\n : reject(equals(nextOptionValue))(checkedOptionValues.current)\n\n checkedOptionValues.current = nextCheckedOptionValues\n\n if (onChange) {\n const normalizedNextValue = nextCheckedOptionValues.length ? nextCheckedOptionValues : undefined\n\n onChange(normalizedNextValue)\n }\n },\n [onChange]\n )\n\n return (\n <Fieldset key={key}>\n <Legend isHidden={isLabelHidden}>{label}</Legend>\n\n <ChecboxesBox isInline={isInline}>\n {options.map((option, index) => (\n <Checkbox\n defaultChecked={defaultValue.includes(option.value)}\n label={option.label}\n name={`${name}${index}`}\n onChange={(isChecked: boolean) => handleChange(option.value, isChecked)}\n />\n ))}\n </ChecboxesBox>\n </Fieldset>\n )\n}\n\nconst ChecboxesBox = styled.div<{\n isInline: boolean\n}>`\n color: ${p => p.theme.color.gunMetal};\n display: flex;\n flex-direction: ${p => (p.isInline ? 'row' : 'column')};\n font-weight: 500;\n\n > .rs-checkbox {\n > .rs-checkbox-checker {\n padding-left: 28px;\n padding-top: 2px;\n\n .rs-checkbox-wrapper {\n left: 2px;\n top: 0 !important;\n }\n }\n }\n\n ${p =>\n p.isInline &&\n css`\n > .rs-checkbox:not(:first-child) {\n margin-left: 0.75rem;\n }\n `}\n`\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;AAoBM,SAAU,aAAa,CAAC,EAC5B,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACY,EAAA;AACnB,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAW,YAAY,CAAC,CAAA;IAE1D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA,CAAE,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAA;IAE1F,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,eAAuB,EAAE,SAAkB,KAAI;QAC9C,MAAM,uBAAuB,GAAG,SAAS;cACrC,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;AACnD,cAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAEhE,QAAA,mBAAmB,CAAC,OAAO,GAAG,uBAAuB,CAAA;AAErD,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAA;YAEhG,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC9B,SAAA;AACH,KAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;AAED,IAAA,QACEA,IAAC,CAAA,QAAQ,eACPC,GAAC,CAAA,MAAM,IAAC,QAAQ,EAAE,aAAa,EAAA,QAAA,EAAG,KAAK,EAAU,CAAA,EAEjDA,IAAC,YAAY,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAC7B,QAAA,EAAA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MACzBA,IAAC,QAAQ,EAAA,EACP,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,GAAG,IAAI,CAAA,EAAG,KAAK,CAAE,CAAA,EACvB,QAAQ,EAAE,CAAC,SAAkB,KAAK,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAA,CACvE,CACH,CAAC,EAAA,CACW,KAZF,GAAG,CAaP,EACZ;AACH,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAE7B,CAAA;WACS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;;AAElB,kBAAA,EAAA,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAA;;;;;;;;;;;;;;;AAepD,EAAA,EAAA,CAAC,IACD,CAAC,CAAC,QAAQ;AACV,IAAA,GAAG,CAAA,CAAA;;;;AAIF,IAAA,CAAA,CAAA;CACJ;;;;"}
@@ -1,54 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { useState, useMemo, useCallback, useEffect } from 'react';
3
- import { Radio } from 'rsuite';
4
- import styled, { css } from 'styled-components';
5
- import { Fieldset } from '../elements/Fieldset.js';
6
- import { Legend } from '../elements/Legend.js';
7
-
8
- function MultiRadio({ defaultValue, isInline = false, isLabelHidden = false, label, name, onChange, options }) {
9
- const [checkedOptionValue, setCheckedOptionValue] = useState(undefined);
10
- const key = useMemo(() => `${name}-${String(checkedOptionValue)}}`, [checkedOptionValue, name]);
11
- const handleChange = useCallback((nextOptionValue, isChecked) => {
12
- const nextCheckedOptionValue = isChecked ? nextOptionValue : undefined;
13
- setCheckedOptionValue(nextCheckedOptionValue);
14
- if (onChange) {
15
- onChange(nextCheckedOptionValue);
16
- }
17
- }, [onChange]);
18
- // TODO There may be a better solution.
19
- // A key change is not enough to force radio checked check changes
20
- // on `defaultValue` property update (even when appending `defaultValue` to `key`),
21
- // we need to force a second re-render in order for the changes to be applied.
22
- useEffect(() => {
23
- setCheckedOptionValue(defaultValue);
24
- }, [defaultValue]);
25
- return (jsxs(Fieldset, { children: [jsx(Legend, { isHidden: isLabelHidden, children: label }), jsx(ChecboxesBox, { isInline: isInline, children: options.map(option => (jsx(Radio, { defaultChecked: option.value === checkedOptionValue, name: name, onChange: (_, isChecked) => handleChange(option.value, isChecked), children: option.label }))) })] }, key));
26
- }
27
- const ChecboxesBox = styled.div `
28
- color: ${p => p.theme.color.gunMetal};
29
- display: flex;
30
- flex-direction: ${p => (p.isInline ? 'row' : 'column')};
31
- font-weight: 500;
32
-
33
- > .rs-radio {
34
- > .rs-radio-checker {
35
- padding-left: 28px;
36
- padding-top: 2px;
37
-
38
- .rs-radio-wrapper {
39
- left: 2px;
40
- top: 3px !important;
41
- }
42
- }
43
- }
44
-
45
- ${p => p.isInline &&
46
- css `
47
- > .rs-radio:not(:first-child) {
48
- margin-left: 0.75rem;
49
- }
50
- `}
51
- `;
52
-
53
- export { MultiRadio };
54
- //# sourceMappingURL=MultiRadio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultiRadio.js","sources":["../../../src/fields/MultiRadio.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { Radio } from 'rsuite'\nimport styled, { css } from 'styled-components'\n\nimport { Fieldset } from '../elements/Fieldset'\nimport { Legend } from '../elements/Legend'\n\nimport type { Option } from '../types'\nimport type { Promisable } from 'type-fest'\n\nexport type MultiRadioProps = {\n defaultValue?: string\n isInline?: boolean\n isLabelHidden?: boolean\n label: string\n name: string\n onChange?: (nextValue: string | undefined) => Promisable<void>\n options: Option[]\n}\nexport function MultiRadio({\n defaultValue,\n isInline = false,\n isLabelHidden = false,\n label,\n name,\n onChange,\n options\n}: MultiRadioProps) {\n const [checkedOptionValue, setCheckedOptionValue] = useState<string | undefined>(undefined)\n\n const key = useMemo(() => `${name}-${String(checkedOptionValue)}}`, [checkedOptionValue, name])\n\n const handleChange = useCallback(\n (nextOptionValue: string, isChecked: boolean) => {\n const nextCheckedOptionValue = isChecked ? nextOptionValue : undefined\n\n setCheckedOptionValue(nextCheckedOptionValue)\n\n if (onChange) {\n onChange(nextCheckedOptionValue)\n }\n },\n [onChange]\n )\n\n // TODO There may be a better solution.\n // A key change is not enough to force radio checked check changes\n // on `defaultValue` property update (even when appending `defaultValue` to `key`),\n // we need to force a second re-render in order for the changes to be applied.\n useEffect(() => {\n setCheckedOptionValue(defaultValue)\n }, [defaultValue])\n\n return (\n <Fieldset key={key}>\n <Legend isHidden={isLabelHidden}>{label}</Legend>\n\n <ChecboxesBox isInline={isInline}>\n {options.map(option => (\n <Radio\n defaultChecked={option.value === checkedOptionValue}\n name={name}\n onChange={(_: any, isChecked: boolean) => handleChange(option.value, isChecked)}\n >\n {option.label}\n </Radio>\n ))}\n </ChecboxesBox>\n </Fieldset>\n )\n}\n\nconst ChecboxesBox = styled.div<{\n isInline: boolean\n}>`\n color: ${p => p.theme.color.gunMetal};\n display: flex;\n flex-direction: ${p => (p.isInline ? 'row' : 'column')};\n font-weight: 500;\n\n > .rs-radio {\n > .rs-radio-checker {\n padding-left: 28px;\n padding-top: 2px;\n\n .rs-radio-wrapper {\n left: 2px;\n top: 3px !important;\n }\n }\n }\n\n ${p =>\n p.isInline &&\n css`\n > .rs-radio:not(:first-child) {\n margin-left: 0.75rem;\n }\n `}\n`\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAmBM,SAAU,UAAU,CAAC,EACzB,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACS,EAAA;IAChB,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAA;IAE3F,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE/F,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,eAAuB,EAAE,SAAkB,KAAI;QAC9C,MAAM,sBAAsB,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAAA;QAEtE,qBAAqB,CAAC,sBAAsB,CAAC,CAAA;AAE7C,QAAA,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,sBAAsB,CAAC,CAAA;AACjC,SAAA;AACH,KAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;;;;;IAMD,SAAS,CAAC,MAAK;QACb,qBAAqB,CAAC,YAAY,CAAC,CAAA;AACrC,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;AAElB,IAAA,QACEA,IAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAA,CACPC,IAAC,MAAM,EAAA,EAAC,QAAQ,EAAE,aAAa,EAAG,QAAA,EAAA,KAAK,EAAU,CAAA,EAEjDA,IAAC,YAAY,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAC7B,QAAA,EAAA,OAAO,CAAC,GAAG,CAAC,MAAM,KACjBA,GAAC,CAAA,KAAK,EACJ,EAAA,cAAc,EAAE,MAAM,CAAC,KAAK,KAAK,kBAAkB,EACnD,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,CAAM,EAAE,SAAkB,KAAK,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAA,QAAA,EAE9E,MAAM,CAAC,KAAK,EACP,CAAA,CACT,CAAC,EACW,CAAA,CAAA,EAAA,EAbF,GAAG,CAcP,EACZ;AACH,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAE7B,CAAA;WACS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;;AAElB,kBAAA,EAAA,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAA;;;;;;;;;;;;;;;AAepD,EAAA,EAAA,CAAC,IACD,CAAC,CAAC,QAAQ;AACV,IAAA,GAAG,CAAA,CAAA;;;;AAIF,IAAA,CAAA,CAAA;CACJ;;;;"}
@@ -1,33 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { useMemo, useCallback } from 'react';
3
- import { TagPicker } from 'rsuite';
4
- import styled from 'styled-components';
5
- import { Field } from '../elements/Field.js';
6
- import { Label } from '../elements/Label.js';
7
-
8
- function MultiSelect({ fixedWidth = 5, isLabelHidden = false, label, onChange, options,
9
- // eslint-disable-next-line @typescript-eslint/naming-convention
10
- searchable = false, ...originalProps }) {
11
- const key = useMemo(() => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`, [originalProps.defaultValue, originalProps.name]);
12
- const handleChange = useCallback((nextValue) => {
13
- if (!onChange) {
14
- return;
15
- }
16
- const normalizedNextValue = !nextValue || !nextValue.length ? undefined : nextValue;
17
- onChange(normalizedNextValue);
18
- }, [onChange]);
19
- return (jsxs(Field, { children: [jsx(Label, { htmlFor: originalProps.name, isHidden: isLabelHidden, children: label }), jsx(StyledTagPicker, { data: options, fixedWidth: fixedWidth, id: originalProps.name, onChange: handleChange, searchable: searchable, ...originalProps }, key)] }));
20
- }
21
- // TODO A width seems to be mandatory in rsuite which is a very dirty behavior.
22
- // We should hack that.
23
- const StyledTagPicker = styled(TagPicker) `
24
- cursor: pointer;
25
- width: ${p => p.fixedWidth}rem;
26
-
27
- > .rs-picker-toggle {
28
- cursor: inherit;
29
- }
30
- `;
31
-
32
- export { MultiSelect };
33
- //# sourceMappingURL=MultiSelect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultiSelect.js","sources":["../../../src/fields/MultiSelect.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { TagPicker } from 'rsuite'\nimport styled from 'styled-components'\n\nimport { Field } from '../elements/Field'\nimport { Label } from '../elements/Label'\n\nimport type { Option } from '../types'\nimport type { TagPickerProps } from 'rsuite'\nimport type { Promisable } from 'type-fest'\n\nexport type MultiSelectProps = Omit<TagPickerProps, 'as' | 'data' | 'defaultValue' | 'id' | 'onChange' | 'value'> & {\n defaultValue?: string[]\n /** Width in REM */\n fixedWidth?: number\n isLabelHidden?: boolean\n label: string\n name: string\n onChange?: (nextValue: string[] | undefined) => Promisable<void>\n options: Option[]\n}\nexport function MultiSelect({\n fixedWidth = 5,\n isLabelHidden = false,\n label,\n onChange,\n options,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n searchable = false,\n ...originalProps\n}: MultiSelectProps) {\n const key = useMemo(\n () => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`,\n [originalProps.defaultValue, originalProps.name]\n )\n\n const handleChange = useCallback(\n (nextValue: string[] | null) => {\n if (!onChange) {\n return\n }\n\n const normalizedNextValue = !nextValue || !nextValue.length ? undefined : nextValue\n\n onChange(normalizedNextValue)\n },\n [onChange]\n )\n\n return (\n <Field>\n <Label htmlFor={originalProps.name} isHidden={isLabelHidden}>\n {label}\n </Label>\n\n <StyledTagPicker\n key={key}\n data={options}\n fixedWidth={fixedWidth}\n id={originalProps.name}\n onChange={handleChange}\n searchable={searchable}\n {...originalProps}\n />\n </Field>\n )\n}\n\n// TODO A width seems to be mandatory in rsuite which is a very dirty behavior.\n// We should hack that.\nconst StyledTagPicker = styled(TagPicker)<{\n fixedWidth: number\n}>`\n cursor: pointer;\n width: ${p => p.fixedWidth}rem;\n\n > .rs-picker-toggle {\n cursor: inherit;\n }\n`\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;SAqBgB,WAAW,CAAC,EAC1B,UAAU,GAAG,CAAC,EACd,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,QAAQ,EACR,OAAO;AACP;AACA,UAAU,GAAG,KAAK,EAClB,GAAG,aAAa,EACC,EAAA;AACjB,IAAA,MAAM,GAAG,GAAG,OAAO,CACjB,MAAM,CAAG,EAAA,aAAa,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAE,CAAA,EAC3E,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CACjD,CAAA;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,SAA0B,KAAI;QAC7B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;AACP,SAAA;AAED,QAAA,MAAM,mBAAmB,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;QAEnF,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC/B,KAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,QACEA,KAAC,KAAK,EAAA,EAAA,QAAA,EAAA,CACJC,IAAC,KAAK,EAAA,EAAC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EACxD,QAAA,EAAA,KAAK,GACA,EAERA,GAAA,CAAC,eAAe,EAAA,EAEd,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,aAAa,CAAC,IAAI,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,EAClB,GAAA,aAAa,IANZ,GAAG,CAOR,CACI,EAAA,CAAA,EACT;AACH,CAAC;AAED;AACA;AACA,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAEvC,CAAA;;AAES,SAAA,EAAA,CAAC,IAAI,CAAC,CAAC,UAAU,CAAA;;;;;CAK3B;;;;"}
@@ -1,27 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { useMemo, useCallback } from 'react';
3
- import { SelectPicker } from 'rsuite';
4
- import styled from 'styled-components';
5
- import { Field } from '../elements/Field.js';
6
- import { Label } from '../elements/Label.js';
7
-
8
- function Select({ isLabelHidden = false, label, onChange, options,
9
- // eslint-disable-next-line @typescript-eslint/naming-convention
10
- searchable = false, ...originalProps }) {
11
- const key = useMemo(() => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`, [originalProps.defaultValue, originalProps.name]);
12
- const handleChange = useCallback((nextValue) => {
13
- if (!onChange) {
14
- return;
15
- }
16
- const normalizedNextValue = nextValue ?? undefined;
17
- onChange(normalizedNextValue);
18
- }, [onChange]);
19
- return (jsxs(Field, { children: [jsx(Label, { htmlFor: originalProps.name, isHidden: isLabelHidden, children: label }), jsx(StyledSelectPicker, { data: options, id: originalProps.name,
20
- // The `unknown` type from Rsuite library is wrong. It should be inferred from `data` prop type.
21
- // `onChange: ((value: unknown, event: React.SyntheticEvent<Element, Event>) => void) | undefined`
22
- onChange: handleChange, searchable: searchable, ...originalProps }, key)] }));
23
- }
24
- const StyledSelectPicker = styled(SelectPicker) ``;
25
-
26
- export { Select };
27
- //# sourceMappingURL=Select.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/fields/Select.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { SelectPicker } from 'rsuite'\nimport styled from 'styled-components'\n\nimport { Field } from '../elements/Field'\nimport { Label } from '../elements/Label'\n\nimport type { Option } from '../types'\nimport type { SelectPickerProps } from 'rsuite'\nimport type { Promisable } from 'type-fest'\n\nexport type SelectProps = Omit<SelectPickerProps<any>, 'as' | 'data' | 'defaultValue' | 'id' | 'onChange' | 'value'> & {\n defaultValue?: string\n isLabelHidden?: boolean\n label: string\n name: string\n onChange?: (nextValue: string | undefined) => Promisable<void>\n options: Option[]\n}\nexport function Select({\n isLabelHidden = false,\n label,\n onChange,\n options,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n searchable = false,\n ...originalProps\n}: SelectProps) {\n const key = useMemo(\n () => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`,\n [originalProps.defaultValue, originalProps.name]\n )\n\n const handleChange = useCallback(\n (nextValue: string | null) => {\n if (!onChange) {\n return\n }\n\n const normalizedNextValue = nextValue ?? undefined\n\n onChange(normalizedNextValue)\n },\n [onChange]\n )\n\n return (\n <Field>\n <Label htmlFor={originalProps.name} isHidden={isLabelHidden}>\n {label}\n </Label>\n\n <StyledSelectPicker\n key={key}\n data={options}\n id={originalProps.name}\n // The `unknown` type from Rsuite library is wrong. It should be inferred from `data` prop type.\n // `onChange: ((value: unknown, event: React.SyntheticEvent<Element, Event>) => void) | undefined`\n onChange={handleChange as any}\n searchable={searchable}\n {...originalProps}\n />\n </Field>\n )\n}\n\nconst StyledSelectPicker = styled(SelectPicker)``\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAmBgB,SAAA,MAAM,CAAC,EACrB,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,QAAQ,EACR,OAAO;AACP;AACA,UAAU,GAAG,KAAK,EAClB,GAAG,aAAa,EACJ,EAAA;AACZ,IAAA,MAAM,GAAG,GAAG,OAAO,CACjB,MAAM,CAAG,EAAA,aAAa,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAE,CAAA,EAC3E,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CACjD,CAAA;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,SAAwB,KAAI;QAC3B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;AACP,SAAA;AAED,QAAA,MAAM,mBAAmB,GAAG,SAAS,IAAI,SAAS,CAAA;QAElD,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC/B,KAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;AAED,IAAA,QACEA,IAAA,CAAC,KAAK,EAAA,EAAA,QAAA,EAAA,CACJC,GAAC,CAAA,KAAK,EAAC,EAAA,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAA,QAAA,EACxD,KAAK,EAAA,CACA,EAERA,GAAA,CAAC,kBAAkB,EAEjB,EAAA,IAAI,EAAE,OAAO,EACb,EAAE,EAAE,aAAa,CAAC,IAAI;;;AAGtB,gBAAA,QAAQ,EAAE,YAAmB,EAC7B,UAAU,EAAE,UAAU,EAClB,GAAA,aAAa,EAPZ,EAAA,GAAG,CAQR,CAAA,EAAA,CACI,EACT;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA,EAAE;;;;"}
@@ -1,25 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { useMemo, useCallback } from 'react';
3
- import { Input } from 'rsuite';
4
- import styled from 'styled-components';
5
- import { Field } from '../elements/Field.js';
6
- import { Label } from '../elements/Label.js';
7
-
8
- function TextInput({ isLabelHidden = false, label, onChange, ...originalProps }) {
9
- const key = useMemo(() => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`, [originalProps.defaultValue, originalProps.name]);
10
- const handleChange = useCallback((nextValue) => {
11
- if (!onChange) {
12
- return;
13
- }
14
- const normalizedNextValue = nextValue && nextValue.trim().length ? nextValue : undefined;
15
- onChange(normalizedNextValue);
16
- }, [onChange]);
17
- return (jsxs(Field, { children: [jsx(Label, { htmlFor: originalProps.name, isHidden: isLabelHidden, children: label }), jsx(StyledInput, { id: originalProps.name, onChange: handleChange, ...originalProps }, key)] }));
18
- }
19
- const StyledInput = styled(Input) `
20
- background-color: ${p => p.theme.color.gainsboro};
21
- width: 100%;
22
- `;
23
-
24
- export { StyledInput, TextInput };
25
- //# sourceMappingURL=TextInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextInput.js","sources":["../../../src/fields/TextInput.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { Input } from 'rsuite'\nimport styled from 'styled-components'\n\nimport { Field } from '../elements/Field'\nimport { Label } from '../elements/Label'\n\nimport type { InputProps } from 'rsuite'\nimport type { Promisable } from 'type-fest'\n\nexport type TextInputProps = Omit<InputProps, 'as' | 'defaultValue' | 'id' | 'onChange' | 'value'> & {\n defaultValue?: string\n isLabelHidden?: boolean\n label: string\n name: string\n onChange?: (nextValue: string | undefined) => Promisable<void>\n}\nexport function TextInput({ isLabelHidden = false, label, onChange, ...originalProps }: TextInputProps) {\n const key = useMemo(\n () => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`,\n [originalProps.defaultValue, originalProps.name]\n )\n\n const handleChange = useCallback(\n (nextValue: string | null) => {\n if (!onChange) {\n return\n }\n\n const normalizedNextValue = nextValue && nextValue.trim().length ? nextValue : undefined\n\n onChange(normalizedNextValue)\n },\n [onChange]\n )\n\n return (\n <Field>\n <Label htmlFor={originalProps.name} isHidden={isLabelHidden}>\n {label}\n </Label>\n\n <StyledInput key={key} id={originalProps.name} onChange={handleChange} {...originalProps} />\n </Field>\n )\n}\n\nexport const StyledInput = styled(Input)`\n background-color: ${p => p.theme.color.gainsboro};\n width: 100%;\n`\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAiBgB,SAAA,SAAS,CAAC,EAAE,aAAa,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAkB,EAAA;AACpG,IAAA,MAAM,GAAG,GAAG,OAAO,CACjB,MAAM,CAAG,EAAA,aAAa,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAE,CAAA,EAC3E,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CACjD,CAAA;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,SAAwB,KAAI;QAC3B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;AACP,SAAA;AAED,QAAA,MAAM,mBAAmB,GAAG,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;QAExF,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC/B,KAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;AAED,IAAA,QACEA,IAAC,CAAA,KAAK,EACJ,EAAA,QAAA,EAAA,CAAAC,GAAA,CAAC,KAAK,EAAC,EAAA,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,YACxD,KAAK,EAAA,CACA,EAERA,GAAA,CAAC,WAAW,EAAW,EAAA,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,KAAM,aAAa,EAAA,EAAtE,GAAG,CAAuE,CAAA,EAAA,CACtF,EACT;AACH,CAAC;MAEY,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA;sBAClB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAA;;;;;;"}
@@ -1,28 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { useRef, useMemo, useCallback } from 'react';
3
- import { Input } from 'rsuite';
4
- import styled from 'styled-components';
5
- import { Field } from '../elements/Field.js';
6
- import { Label } from '../elements/Label.js';
7
-
8
- function Textarea({ isLabelHidden = false, label, onChange, rows = 3, ...originalProps }) {
9
- const inputRef = useRef();
10
- const key = useMemo(() => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`, [originalProps.defaultValue, originalProps.name]);
11
- const handleChange = useCallback(() => {
12
- if (!onChange) {
13
- return;
14
- }
15
- const nextValue = inputRef.current.value.trim();
16
- const normalizedNextValue = nextValue.length ? nextValue : undefined;
17
- onChange(normalizedNextValue);
18
- }, [onChange]);
19
- return (jsxs(Field, { children: [jsx(Label, { htmlFor: originalProps.name, isHidden: isLabelHidden, children: label }), jsx(StyledInput, { ref: inputRef, as: "textarea", id: originalProps.name, onChange: handleChange, rows: rows, ...originalProps }, key)] }));
20
- }
21
- const StyledInput = styled(Input) `
22
- background-color: ${p => p.theme.color.gainsboro};
23
- border: 0;
24
- width: 100%;
25
- `;
26
-
27
- export { StyledInput, Textarea };
28
- //# sourceMappingURL=Textarea.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Textarea.js","sources":["../../../src/fields/Textarea.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react'\nimport { Input } from 'rsuite'\nimport styled from 'styled-components'\n\nimport { Field } from '../elements/Field'\nimport { Label } from '../elements/Label'\n\nimport type { MutableRefObject, TextareaHTMLAttributes } from 'react'\nimport type { Promisable } from 'type-fest'\n\nexport type TextareaProps = Omit<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n 'defaultValue' | 'id' | 'onChange' | 'value'\n> & {\n defaultValue?: string\n isLabelHidden?: boolean\n label: string\n name: string\n onChange?: (nextValue: string | undefined) => Promisable<void>\n}\nexport function Textarea({ isLabelHidden = false, label, onChange, rows = 3, ...originalProps }: TextareaProps) {\n const inputRef = useRef() as MutableRefObject<HTMLTextAreaElement>\n\n const key = useMemo(\n () => `${originalProps.name}-${JSON.stringify(originalProps.defaultValue)}`,\n [originalProps.defaultValue, originalProps.name]\n )\n\n const handleChange = useCallback(() => {\n if (!onChange) {\n return\n }\n\n const nextValue = inputRef.current.value.trim()\n const normalizedNextValue = nextValue.length ? nextValue : undefined\n\n onChange(normalizedNextValue)\n }, [onChange])\n\n return (\n <Field>\n <Label htmlFor={originalProps.name} isHidden={isLabelHidden}>\n {label}\n </Label>\n\n <StyledInput\n key={key}\n ref={inputRef}\n as=\"textarea\"\n id={originalProps.name}\n onChange={handleChange}\n rows={rows}\n {...originalProps}\n />\n </Field>\n )\n}\n\nexport const StyledInput = styled(Input)`\n background-color: ${p => p.theme.color.gainsboro};\n border: 0;\n width: 100%;\n`\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;SAoBgB,QAAQ,CAAC,EAAE,aAAa,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,aAAa,EAAiB,EAAA;AAC5G,IAAA,MAAM,QAAQ,GAAG,MAAM,EAA2C,CAAA;AAElE,IAAA,MAAM,GAAG,GAAG,OAAO,CACjB,MAAM,CAAG,EAAA,aAAa,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAE,CAAA,EAC3E,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CACjD,CAAA;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,MAAK;QACpC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;AACP,SAAA;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAC/C,QAAA,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;QAEpE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC/B,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,QACEA,KAAC,KAAK,EAAA,EAAA,QAAA,EAAA,CACJC,IAAC,KAAK,EAAA,EAAC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EACxD,QAAA,EAAA,KAAK,GACA,EAERA,GAAA,CAAC,WAAW,EAAA,EAEV,GAAG,EAAE,QAAQ,EACb,EAAE,EAAC,UAAU,EACb,EAAE,EAAE,aAAa,CAAC,IAAI,EACtB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACN,GAAA,aAAa,IANZ,GAAG,CAOR,CACI,EAAA,CAAA,EACT;AACH,CAAC;MAEY,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA;sBAClB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAA;;;;;;;"}
@@ -1,22 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useField } from 'formik';
3
- import { useMemo, useCallback, useEffect } from 'react';
4
- import { Checkbox } from '../fields/Checkbox.js';
5
-
6
- function FormikCheckbox({ name, ...originalProps }) {
7
- const [field, , helpers] = useField(name);
8
- const value = useMemo(() => field.value, [field.value]);
9
- // We don't include `setValues` in `useCallback()` and `useEffect()` dependencies
10
- // both because it is useless and it will trigger infinite hook calls
11
- const setValue = useMemo(() => helpers.setValue, [helpers.setValue]);
12
- const handleChange = useCallback((isChecked) => {
13
- setValue(isChecked);
14
- // eslint-disable-next-line react-hooks/exhaustive-deps
15
- }, []);
16
- // eslint-disable-next-line react-hooks/exhaustive-deps
17
- useEffect(() => () => setValue(undefined), []);
18
- return jsx(Checkbox, { defaultChecked: value, name: name, onChange: handleChange, ...originalProps });
19
- }
20
-
21
- export { FormikCheckbox };
22
- //# sourceMappingURL=FormikCheckbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormikCheckbox.js","sources":["../../../src/formiks/FormikCheckbox.tsx"],"sourcesContent":["import { useField } from 'formik'\nimport { useCallback, useEffect, useMemo } from 'react'\n\nimport { Checkbox } from '../fields/Checkbox'\n\nimport type { CheckboxProps } from '../fields/Checkbox'\n\nexport type FormikCheckboxProps = Omit<CheckboxProps, 'checked' | 'defaultChecked' | 'onChange'>\nexport function FormikCheckbox({ name, ...originalProps }: FormikCheckboxProps) {\n const [field, , helpers] = useField(name)\n\n const value = useMemo(() => field.value, [field.value])\n // We don't include `setValues` in `useCallback()` and `useEffect()` dependencies\n // both because it is useless and it will trigger infinite hook calls\n const setValue = useMemo(() => helpers.setValue, [helpers.setValue])\n\n const handleChange = useCallback((isChecked: boolean) => {\n setValue(isChecked)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setValue(undefined), [])\n\n return <Checkbox defaultChecked={value} name={name} onChange={handleChange} {...originalProps} />\n}\n"],"names":["_jsx"],"mappings":";;;;;AAQM,SAAU,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,EAAuB,EAAA;AAC5E,IAAA,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEzC,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;;;AAGvD,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEpE,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,SAAkB,KAAI;QACtD,QAAQ,CAAC,SAAS,CAAC,CAAA;;KAGpB,EAAE,EAAE,CAAC,CAAA;;AAGN,IAAA,SAAS,CAAC,MAAM,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;AAE9C,IAAA,OAAOA,IAAC,QAAQ,EAAA,EAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAM,GAAA,aAAa,GAAI,CAAA;AACnG;;;;"}
@@ -1,17 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useField } from 'formik';
3
- import { useEffect } from 'react';
4
- import { DatePicker } from '../fields/DatePicker/index.js';
5
-
6
- function FormikDatePicker({ name, ...originalProps }) {
7
- const [, , helpers] = useField(name);
8
- const { setValue } = helpers;
9
- // We don't include `setValues` in `useEffect()` dependencies
10
- // both because it is useless and it will trigger infinite hook calls
11
- // eslint-disable-next-line react-hooks/exhaustive-deps
12
- useEffect(() => () => setValue(undefined), []);
13
- return jsx(DatePicker, { onChange: setValue, ...originalProps });
14
- }
15
-
16
- export { FormikDatePicker };
17
- //# sourceMappingURL=FormikDatePicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormikDatePicker.js","sources":["../../../src/formiks/FormikDatePicker.tsx"],"sourcesContent":["import { useField } from 'formik'\nimport { useEffect } from 'react'\n\nimport { DatePicker } from '../fields/DatePicker'\n\nimport type { DatePickerProps } from '../fields/DatePicker'\n\nexport type FormikDatePickerProps = Omit<DatePickerProps, 'onChange'> & {\n name: string\n}\nexport function FormikDatePicker({ name, ...originalProps }: FormikDatePickerProps) {\n const [, , helpers] = useField(name)\n const { setValue } = helpers\n\n // We don't include `setValues` in `useEffect()` dependencies\n // both because it is useless and it will trigger infinite hook calls\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setValue(undefined), [])\n\n return <DatePicker onChange={setValue} {...originalProps} />\n}\n"],"names":["_jsx"],"mappings":";;;;;AAUM,SAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,EAAyB,EAAA;IAChF,MAAM,KAAK,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;;;;AAK5B,IAAA,SAAS,CAAC,MAAM,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;IAE9C,OAAOA,GAAA,CAAC,UAAU,EAAC,EAAA,QAAQ,EAAE,QAAQ,EAAA,GAAM,aAAa,EAAA,CAAI,CAAA;AAC9D;;;;"}
@@ -1,17 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useField } from 'formik';
3
- import { useEffect } from 'react';
4
- import { DateRangePicker } from '../fields/DateRangePicker/index.js';
5
-
6
- function FormikDateRangePicker({ name, ...originalProps }) {
7
- const [, , helpers] = useField(name);
8
- const { setValue } = helpers;
9
- // We don't include `setValues` in `useEffect()` dependencies
10
- // both because it is useless and it will trigger infinite hook calls
11
- // eslint-disable-next-line react-hooks/exhaustive-deps
12
- useEffect(() => () => setValue(undefined), []);
13
- return jsx(DateRangePicker, { onChange: setValue, ...originalProps });
14
- }
15
-
16
- export { FormikDateRangePicker };
17
- //# sourceMappingURL=FormikDateRangePicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormikDateRangePicker.js","sources":["../../../src/formiks/FormikDateRangePicker.tsx"],"sourcesContent":["import { useField } from 'formik'\nimport { useEffect } from 'react'\n\nimport { DateRangePicker } from '../fields/DateRangePicker'\n\nimport type { DateRangePickerProps } from '../fields/DateRangePicker'\n\nexport type FormikDateRangePickerProps = Omit<DateRangePickerProps, 'onChange'> & {\n name: string\n}\nexport function FormikDateRangePicker({ name, ...originalProps }: FormikDateRangePickerProps) {\n const [, , helpers] = useField(name)\n const { setValue } = helpers\n\n // We don't include `setValues` in `useEffect()` dependencies\n // both because it is useless and it will trigger infinite hook calls\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setValue(undefined), [])\n\n return <DateRangePicker onChange={setValue} {...originalProps} />\n}\n"],"names":["_jsx"],"mappings":";;;;;AAUM,SAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,EAA8B,EAAA;IAC1F,MAAM,KAAK,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;;;;AAK5B,IAAA,SAAS,CAAC,MAAM,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;IAE9C,OAAOA,GAAA,CAAC,eAAe,EAAC,EAAA,QAAQ,EAAE,QAAQ,EAAA,GAAM,aAAa,EAAA,CAAI,CAAA;AACnE;;;;"}
@@ -1,14 +0,0 @@
1
- import { jsx, Fragment } from 'react/jsx-runtime';
2
- import { useFormikContext } from 'formik';
3
- import { useEffect } from 'react';
4
-
5
- function FormikEffect({ onChange }) {
6
- const { values } = useFormikContext();
7
- useEffect(() => {
8
- onChange(values);
9
- }, [onChange, values]);
10
- return jsx(Fragment, {});
11
- }
12
-
13
- export { FormikEffect };
14
- //# sourceMappingURL=FormikEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormikEffect.js","sources":["../../../src/formiks/FormikEffect.tsx"],"sourcesContent":["import { useFormikContext } from 'formik'\nimport { useEffect } from 'react'\n\nimport type { Promisable } from 'type-fest'\n\nexport type FormikEffectProps = {\n onChange: (nextValues: Record<string, any>) => Promisable<void>\n}\nexport function FormikEffect({ onChange }: FormikEffectProps) {\n const { values } = useFormikContext<Record<string, any>>()\n\n useEffect(() => {\n onChange(values)\n }, [onChange, values])\n\n return <></>\n}\n"],"names":["_jsx"],"mappings":";;;;AAQgB,SAAA,YAAY,CAAC,EAAE,QAAQ,EAAqB,EAAA;AAC1D,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAuB,CAAA;IAE1D,SAAS,CAAC,MAAK;QACb,QAAQ,CAAC,MAAM,CAAC,CAAA;AAClB,KAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;AAEtB,IAAA,OAAOA,iBAAK,CAAA;AACd;;;;"}
@@ -1,21 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useField } from 'formik';
3
- import { useCallback, useEffect } from 'react';
4
- import { MultiCheckbox } from '../fields/MultiCheckbox.js';
5
-
6
- function FormikMultiCheckbox({ name, ...originalProps }) {
7
- const [, , helpers] = useField(name);
8
- // We don't include `setValues` in `useCallback()` and `useEffect()` dependencies
9
- // both because it is useless and it will trigger infinite hook calls
10
- const { setValue } = helpers;
11
- const handleChange = useCallback((nextValue) => {
12
- setValue(nextValue);
13
- // eslint-disable-next-line react-hooks/exhaustive-deps
14
- }, []);
15
- // eslint-disable-next-line react-hooks/exhaustive-deps
16
- useEffect(() => () => setValue(undefined), []);
17
- return jsx(MultiCheckbox, { name: name, onChange: handleChange, ...originalProps });
18
- }
19
-
20
- export { FormikMultiCheckbox };
21
- //# sourceMappingURL=FormikMultiCheckbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormikMultiCheckbox.js","sources":["../../../src/formiks/FormikMultiCheckbox.tsx"],"sourcesContent":["import { useField } from 'formik'\nimport { useCallback, useEffect } from 'react'\n\nimport { MultiCheckbox } from '../fields/MultiCheckbox'\n\nimport type { MultiCheckboxProps } from '../fields/MultiCheckbox'\n\nexport type FormikMultiCheckboxProps = Omit<MultiCheckboxProps, 'defaultValue' | 'onChange'>\nexport function FormikMultiCheckbox({ name, ...originalProps }: FormikMultiCheckboxProps) {\n const [, , helpers] = useField(name)\n // We don't include `setValues` in `useCallback()` and `useEffect()` dependencies\n // both because it is useless and it will trigger infinite hook calls\n const { setValue } = helpers\n\n const handleChange = useCallback((nextValue: string[] | undefined) => {\n setValue(nextValue)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setValue(undefined), [])\n\n return <MultiCheckbox name={name} onChange={handleChange} {...originalProps} />\n}\n"],"names":["_jsx"],"mappings":";;;;;AAQM,SAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,EAA4B,EAAA;IACtF,MAAM,KAAK,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;;;AAGpC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;AAE5B,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,SAA+B,KAAI;QACnE,QAAQ,CAAC,SAAS,CAAC,CAAA;;KAGpB,EAAE,EAAE,CAAC,CAAA;;AAGN,IAAA,SAAS,CAAC,MAAM,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;AAE9C,IAAA,OAAOA,GAAC,CAAA,aAAa,EAAC,EAAA,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAM,GAAA,aAAa,GAAI,CAAA;AACjF;;;;"}
@@ -1,21 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useField } from 'formik';
3
- import { useCallback, useEffect } from 'react';
4
- import { MultiRadio } from '../fields/MultiRadio.js';
5
-
6
- function FormikMultiRadio({ name, ...originalProps }) {
7
- const [, , helpers] = useField(name);
8
- // We don't include `setValues` in `useCallback()` and `useEffect()` dependencies
9
- // both because it is useless and it will trigger infinite hook calls
10
- const { setValue } = helpers;
11
- const handleChange = useCallback((nextValue) => {
12
- setValue(nextValue);
13
- // eslint-disable-next-line react-hooks/exhaustive-deps
14
- }, []);
15
- // eslint-disable-next-line react-hooks/exhaustive-deps
16
- useEffect(() => () => setValue(undefined), []);
17
- return jsx(MultiRadio, { name: name, onChange: handleChange, ...originalProps });
18
- }
19
-
20
- export { FormikMultiRadio };
21
- //# sourceMappingURL=FormikMultiRadio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormikMultiRadio.js","sources":["../../../src/formiks/FormikMultiRadio.tsx"],"sourcesContent":["import { useField } from 'formik'\nimport { useCallback, useEffect } from 'react'\n\nimport { MultiRadio } from '../fields/MultiRadio'\n\nimport type { MultiRadioProps } from '../fields/MultiRadio'\n\nexport type FormikMultiRadioProps = Omit<MultiRadioProps, 'defaultValue' | 'onChange'>\nexport function FormikMultiRadio({ name, ...originalProps }: FormikMultiRadioProps) {\n const [, , helpers] = useField(name)\n // We don't include `setValues` in `useCallback()` and `useEffect()` dependencies\n // both because it is useless and it will trigger infinite hook calls\n const { setValue } = helpers\n\n const handleChange = useCallback((nextValue: string | undefined) => {\n setValue(nextValue)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setValue(undefined), [])\n\n return <MultiRadio name={name} onChange={handleChange} {...originalProps} />\n}\n"],"names":["_jsx"],"mappings":";;;;;AAQM,SAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,EAAyB,EAAA;IAChF,MAAM,KAAK,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;;;AAGpC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;AAE5B,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,SAA6B,KAAI;QACjE,QAAQ,CAAC,SAAS,CAAC,CAAA;;KAGpB,EAAE,EAAE,CAAC,CAAA;;AAGN,IAAA,SAAS,CAAC,MAAM,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;AAE9C,IAAA,OAAOA,GAAC,CAAA,UAAU,EAAC,EAAA,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAM,GAAA,aAAa,GAAI,CAAA;AAC9E;;;;"}