@gooddata/sdk-ui-filters 10.28.0-alpha.8 → 10.28.0-alpha.80

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 (239) hide show
  1. package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdownActions.d.ts +1 -1
  2. package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdownBody.d.ts.map +1 -1
  3. package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdownBody.js +1 -1
  4. package/esm/AttributeFilter/Components/Dropdown/AttributeFilterDropdownBody.js.map +1 -1
  5. package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelect.d.ts.map +1 -1
  6. package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelect.js +3 -3
  7. package/esm/AttributeFilter/Components/ElementsSelect/AttributeFilterElementsSelect.js.map +1 -1
  8. package/esm/AttributeFilter/Components/ElementsSelect/StatusBar/AttributeFilterStatusBar.d.ts.map +1 -1
  9. package/esm/AttributeFilter/Components/ElementsSelect/StatusBar/AttributeFilterStatusBar.js +1 -3
  10. package/esm/AttributeFilter/Components/ElementsSelect/StatusBar/AttributeFilterStatusBar.js.map +1 -1
  11. package/esm/AttributeFilter/Components/ElementsSelect/StatusBar/types.d.ts +6 -0
  12. package/esm/AttributeFilter/Components/ElementsSelect/StatusBar/types.d.ts.map +1 -1
  13. package/esm/AttributeFilter/Components/ElementsSelect/types.d.ts +6 -0
  14. package/esm/AttributeFilter/Components/ElementsSelect/types.d.ts.map +1 -1
  15. package/esm/AttributeFilter/hooks/useAttributeFilterController.js +9 -6
  16. package/esm/AttributeFilter/hooks/useAttributeFilterController.js.map +1 -1
  17. package/esm/AttributeFilterHandler/internal/callbacks.d.ts.map +1 -1
  18. package/esm/AttributeFilterHandler/internal/callbacks.js +1 -1
  19. package/esm/AttributeFilterHandler/internal/callbacks.js.map +1 -1
  20. package/esm/AttributeFilterHandler/internal/loader.d.ts.map +1 -1
  21. package/esm/AttributeFilterHandler/internal/loader.js +4 -3
  22. package/esm/AttributeFilterHandler/internal/loader.js.map +1 -1
  23. package/esm/AttributeFilterHandler/internal/redux/elements/elementsSelectors.d.ts.map +1 -1
  24. package/esm/AttributeFilterHandler/internal/redux/elements/elementsSelectors.js +4 -1
  25. package/esm/AttributeFilterHandler/internal/redux/elements/elementsSelectors.js.map +1 -1
  26. package/esm/AttributeFilterHandler/internal/redux/filter/filterSelectors.d.ts.map +1 -1
  27. package/esm/AttributeFilterHandler/internal/redux/filter/filterSelectors.js +11 -4
  28. package/esm/AttributeFilterHandler/internal/redux/filter/filterSelectors.js.map +1 -1
  29. package/esm/AttributeFilterHandler/internal/redux/init/initSelectors.d.ts.map +1 -1
  30. package/esm/AttributeFilterHandler/internal/redux/init/initSelectors.js +5 -2
  31. package/esm/AttributeFilterHandler/internal/redux/init/initSelectors.js.map +1 -1
  32. package/esm/AttributeFilterHandler/internal/redux/loadAttribute/loadAttributeSelectors.d.ts.map +1 -1
  33. package/esm/AttributeFilterHandler/internal/redux/loadAttribute/loadAttributeSelectors.js +5 -2
  34. package/esm/AttributeFilterHandler/internal/redux/loadAttribute/loadAttributeSelectors.js.map +1 -1
  35. package/esm/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageSelectors.d.ts.map +1 -1
  36. package/esm/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageSelectors.js +5 -2
  37. package/esm/AttributeFilterHandler/internal/redux/loadInitialElementsPage/loadInitialElementsPageSelectors.js.map +1 -1
  38. package/esm/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageSelectors.d.ts.map +1 -1
  39. package/esm/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageSelectors.js +4 -1
  40. package/esm/AttributeFilterHandler/internal/redux/loadNextElementsPage/loadNextElementsPageSelectors.js.map +1 -1
  41. package/esm/AttributeFilterHandler/internal/redux/selection/selectionSelectors.d.ts.map +1 -1
  42. package/esm/AttributeFilterHandler/internal/redux/selection/selectionSelectors.js +5 -2
  43. package/esm/AttributeFilterHandler/internal/redux/selection/selectionSelectors.js.map +1 -1
  44. package/esm/AttributeFilterHandler/internal/redux/store/createStore.d.ts.map +1 -1
  45. package/esm/AttributeFilterHandler/internal/redux/store/createStore.js +4 -1
  46. package/esm/AttributeFilterHandler/internal/redux/store/createStore.js.map +1 -1
  47. package/esm/AttributeFilterHandler/internal/redux/store/slice.d.ts +2 -347
  48. package/esm/AttributeFilterHandler/internal/redux/store/slice.d.ts.map +1 -1
  49. package/esm/AttributeFilterHandler/internal/redux/store/slice.js +5 -2
  50. package/esm/AttributeFilterHandler/internal/redux/store/slice.js.map +1 -1
  51. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterForm.d.ts +3 -6
  52. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterForm.d.ts.map +1 -1
  53. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterForm.js +7 -10
  54. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterForm.js.map +1 -1
  55. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterFormSection.d.ts +21 -0
  56. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterFormSection.d.ts.map +1 -0
  57. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterFormSection.js +28 -0
  58. package/esm/DateFilter/AbsoluteDateFilterForm/AbsoluteDateFilterFormSection.js.map +1 -0
  59. package/esm/DateFilter/AbsoluteDateFilterForm/conversions.d.ts +1 -1
  60. package/esm/DateFilter/AbsoluteDateFilterForm/conversions.d.ts.map +1 -1
  61. package/esm/DateFilter/AbsoluteDateFilterForm/conversions.js +1 -1
  62. package/esm/DateFilter/AbsoluteDateFilterForm/conversions.js.map +1 -1
  63. package/esm/DateFilter/AllTime/AllTimeFilterItem.d.ts.map +1 -0
  64. package/esm/DateFilter/{DateFilterBody → AllTime}/AllTimeFilterItem.js +1 -1
  65. package/esm/DateFilter/AllTime/AllTimeFilterItem.js.map +1 -0
  66. package/esm/DateFilter/AllTime/AllTimeFilterSection.d.ts +11 -0
  67. package/esm/DateFilter/AllTime/AllTimeFilterSection.d.ts.map +1 -0
  68. package/esm/DateFilter/AllTime/AllTimeFilterSection.js +11 -0
  69. package/esm/DateFilter/AllTime/AllTimeFilterSection.js.map +1 -0
  70. package/esm/DateFilter/DateFilter.d.ts.map +1 -1
  71. package/esm/DateFilter/DateFilter.js +4 -3
  72. package/esm/DateFilter/DateFilter.js.map +1 -1
  73. package/esm/DateFilter/DateFilterBody/DateFilterBody.d.ts +1 -22
  74. package/esm/DateFilter/DateFilterBody/DateFilterBody.d.ts.map +1 -1
  75. package/esm/DateFilter/DateFilterBody/DateFilterBody.js +54 -152
  76. package/esm/DateFilter/DateFilterBody/DateFilterBody.js.map +1 -1
  77. package/esm/DateFilter/DateFilterBody/DateFilterBodyButton.js +1 -1
  78. package/esm/DateFilter/DateFilterBody/DateFilterBodyButton.js.map +1 -1
  79. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.d.ts +22 -0
  80. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.d.ts.map +1 -0
  81. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js +18 -0
  82. package/esm/DateFilter/DateFilterBody/DateFilterBodyContent.js.map +1 -0
  83. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.d.ts +22 -0
  84. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.d.ts.map +1 -0
  85. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js +24 -0
  86. package/esm/DateFilter/DateFilterBody/DateFilterBodyMobileContent.js.map +1 -0
  87. package/esm/DateFilter/DateFilterBody/DateFilterHeader.d.ts.map +1 -1
  88. package/esm/DateFilter/DateFilterBody/DateFilterHeader.js +4 -2
  89. package/esm/DateFilter/DateFilterBody/DateFilterHeader.js.map +1 -1
  90. package/esm/DateFilter/DateFilterButton/DateFilterButton.d.ts +2 -0
  91. package/esm/DateFilter/DateFilterButton/DateFilterButton.d.ts.map +1 -1
  92. package/esm/DateFilter/DateFilterButton/DateFilterButton.js +3 -11
  93. package/esm/DateFilter/DateFilterButton/DateFilterButton.js.map +1 -1
  94. package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.d.ts +2 -0
  95. package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.d.ts.map +1 -1
  96. package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.js +2 -2
  97. package/esm/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.js.map +1 -1
  98. package/esm/DateFilter/DateFilterCore.d.ts.map +1 -1
  99. package/esm/DateFilter/DateFilterCore.js +19 -6
  100. package/esm/DateFilter/DateFilterCore.js.map +1 -1
  101. package/esm/DateFilter/DateRangePicker/DateInput.d.ts +17 -0
  102. package/esm/DateFilter/DateRangePicker/DateInput.d.ts.map +1 -0
  103. package/esm/DateFilter/DateRangePicker/DateInput.js +111 -0
  104. package/esm/DateFilter/DateRangePicker/DateInput.js.map +1 -0
  105. package/esm/DateFilter/DateRangePicker/DatePicker.d.ts +19 -0
  106. package/esm/DateFilter/DateRangePicker/DatePicker.d.ts.map +1 -0
  107. package/esm/DateFilter/DateRangePicker/DatePicker.js +74 -0
  108. package/esm/DateFilter/DateRangePicker/DatePicker.js.map +1 -0
  109. package/esm/DateFilter/DateRangePicker/DateRangeHint.d.ts +10 -0
  110. package/esm/DateFilter/DateRangePicker/DateRangeHint.d.ts.map +1 -0
  111. package/esm/DateFilter/DateRangePicker/DateRangeHint.js +7 -0
  112. package/esm/DateFilter/DateRangePicker/DateRangeHint.js.map +1 -0
  113. package/esm/DateFilter/DateRangePicker/DateRangePicker.d.ts +1 -6
  114. package/esm/DateFilter/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  115. package/esm/DateFilter/DateRangePicker/DateRangePicker.js +152 -209
  116. package/esm/DateFilter/DateRangePicker/DateRangePicker.js.map +1 -1
  117. package/esm/DateFilter/DateRangePicker/DateTimePicker.d.ts +18 -12
  118. package/esm/DateFilter/DateRangePicker/DateTimePicker.d.ts.map +1 -1
  119. package/esm/DateFilter/DateRangePicker/DateTimePicker.js +22 -91
  120. package/esm/DateFilter/DateRangePicker/DateTimePicker.js.map +1 -1
  121. package/esm/DateFilter/DateRangePicker/EndDateInputField.d.ts +4 -0
  122. package/esm/DateFilter/DateRangePicker/EndDateInputField.d.ts.map +1 -0
  123. package/esm/DateFilter/DateRangePicker/EndDateInputField.js +32 -0
  124. package/esm/DateFilter/DateRangePicker/EndDateInputField.js.map +1 -0
  125. package/esm/DateFilter/DateRangePicker/InputErrorMessage.d.ts +7 -0
  126. package/esm/DateFilter/DateRangePicker/InputErrorMessage.d.ts.map +1 -0
  127. package/esm/DateFilter/DateRangePicker/InputErrorMessage.js +13 -0
  128. package/esm/DateFilter/DateRangePicker/InputErrorMessage.js.map +1 -0
  129. package/esm/DateFilter/DateRangePicker/StartDateInputField.d.ts +4 -0
  130. package/esm/DateFilter/DateRangePicker/StartDateInputField.d.ts.map +1 -0
  131. package/esm/DateFilter/DateRangePicker/StartDateInputField.js +32 -0
  132. package/esm/DateFilter/DateRangePicker/StartDateInputField.js.map +1 -0
  133. package/esm/DateFilter/DateRangePicker/TimeInput.d.ts +12 -0
  134. package/esm/DateFilter/DateRangePicker/TimeInput.d.ts.map +1 -0
  135. package/esm/DateFilter/DateRangePicker/TimeInput.js +45 -0
  136. package/esm/DateFilter/DateRangePicker/TimeInput.js.map +1 -0
  137. package/esm/DateFilter/DateRangePicker/types.d.ts +46 -0
  138. package/esm/DateFilter/DateRangePicker/types.d.ts.map +1 -0
  139. package/esm/DateFilter/DateRangePicker/types.js +4 -0
  140. package/esm/DateFilter/DateRangePicker/types.js.map +1 -0
  141. package/esm/DateFilter/DateRangePicker/utils.d.ts +7 -2
  142. package/esm/DateFilter/DateRangePicker/utils.d.ts.map +1 -1
  143. package/esm/DateFilter/DateRangePicker/utils.js +61 -5
  144. package/esm/DateFilter/DateRangePicker/utils.js.map +1 -1
  145. package/esm/DateFilter/DynamicSelect/RelativeRangeDynamicSelect.d.ts.map +1 -1
  146. package/esm/DateFilter/DynamicSelect/RelativeRangeDynamicSelect.js +5 -1
  147. package/esm/DateFilter/DynamicSelect/RelativeRangeDynamicSelect.js.map +1 -1
  148. package/esm/DateFilter/ExcludeCurrentPeriodToggle/ExcludeCurrentPeriodToggle.d.ts.map +1 -1
  149. package/esm/DateFilter/ExcludeCurrentPeriodToggle/ExcludeCurrentPeriodToggle.js +24 -13
  150. package/esm/DateFilter/ExcludeCurrentPeriodToggle/ExcludeCurrentPeriodToggle.js.map +1 -1
  151. package/esm/DateFilter/ListItem/ListItem.d.ts.map +1 -1
  152. package/esm/DateFilter/ListItem/ListItem.js +4 -3
  153. package/esm/DateFilter/ListItem/ListItem.js.map +1 -1
  154. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.d.ts +2 -0
  155. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.d.ts.map +1 -1
  156. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.js +3 -3
  157. package/esm/DateFilter/RelativeDateFilterForm/GranularityTabs.js.map +1 -1
  158. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterForm.d.ts +3 -1
  159. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterForm.d.ts.map +1 -1
  160. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterForm.js +25 -14
  161. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterForm.js.map +1 -1
  162. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterFormSection.d.ts +19 -0
  163. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterFormSection.d.ts.map +1 -0
  164. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterFormSection.js +45 -0
  165. package/esm/DateFilter/RelativeDateFilterForm/RelativeDateFilterFormSection.js.map +1 -0
  166. package/esm/DateFilter/RelativeRangePicker/RelativeRangePicker.d.ts +3 -0
  167. package/esm/DateFilter/RelativeRangePicker/RelativeRangePicker.d.ts.map +1 -1
  168. package/esm/DateFilter/RelativeRangePicker/RelativeRangePicker.js +2 -2
  169. package/esm/DateFilter/RelativeRangePicker/RelativeRangePicker.js.map +1 -1
  170. package/esm/DateFilter/Select/SelectOption.js +1 -1
  171. package/esm/DateFilter/Select/VirtualizedSelectMenu.js +1 -1
  172. package/esm/DateFilter/Tabs/Tabs.d.ts +2 -0
  173. package/esm/DateFilter/Tabs/Tabs.d.ts.map +1 -1
  174. package/esm/DateFilter/Tabs/Tabs.js +8 -3
  175. package/esm/DateFilter/Tabs/Tabs.js.map +1 -1
  176. package/esm/DateFilter/accessibility/elementId.d.ts +9 -0
  177. package/esm/DateFilter/accessibility/elementId.d.ts.map +1 -0
  178. package/esm/DateFilter/accessibility/elementId.js +10 -0
  179. package/esm/DateFilter/accessibility/elementId.js.map +1 -0
  180. package/esm/DateFilter/accessibility/keyboardNavigation.d.ts +42 -0
  181. package/esm/DateFilter/accessibility/keyboardNavigation.d.ts.map +1 -0
  182. package/esm/DateFilter/accessibility/keyboardNavigation.js +173 -0
  183. package/esm/DateFilter/accessibility/keyboardNavigation.js.map +1 -0
  184. package/esm/DateFilter/index.d.ts +1 -1
  185. package/esm/DateFilter/index.d.ts.map +1 -1
  186. package/esm/DateFilter/index.js.map +1 -1
  187. package/esm/DateFilter/interfaces/index.d.ts +9 -4
  188. package/esm/DateFilter/interfaces/index.d.ts.map +1 -1
  189. package/esm/DateFilter/interfaces/index.js +1 -1
  190. package/esm/DateFilter/utils/DateConversions.d.ts.map +1 -1
  191. package/esm/DateFilter/utils/DateConversions.js +10 -2
  192. package/esm/DateFilter/utils/DateConversions.js.map +1 -1
  193. package/esm/DateFilter/validation/OptionValidation.d.ts.map +1 -1
  194. package/esm/DateFilter/validation/OptionValidation.js +23 -16
  195. package/esm/DateFilter/validation/OptionValidation.js.map +1 -1
  196. package/esm/index.d.ts +1 -1
  197. package/esm/index.d.ts.map +1 -1
  198. package/esm/index.js.map +1 -1
  199. package/esm/locales.d.ts.map +1 -1
  200. package/esm/locales.js +1 -3
  201. package/esm/locales.js.map +1 -1
  202. package/esm/sdk-ui-filters.d.ts +25 -5
  203. package/package.json +11 -10
  204. package/styles/css/attributeFilter.css +10 -0
  205. package/styles/css/attributeFilter.css.map +1 -1
  206. package/styles/css/attributeFilterNext/attributeFilter.css +10 -0
  207. package/styles/css/attributeFilterNext/attributeFilter.css.map +1 -1
  208. package/styles/css/attributeFilterNext/attributeFilterAddons.css +10 -0
  209. package/styles/css/attributeFilterNext/attributeFilterAddons.css.map +1 -1
  210. package/styles/css/attributeFilterNext/attributeFilterDropdownBody.css +10 -0
  211. package/styles/css/attributeFilterNext/attributeFilterDropdownBody.css.map +1 -1
  212. package/styles/css/attributeFilterNext/attributeFilterDropdownButton.css +10 -0
  213. package/styles/css/attributeFilterNext/attributeFilterDropdownButton.css.map +1 -1
  214. package/styles/css/attributeFilterNext/attributeFilterElementsSelect.css +10 -0
  215. package/styles/css/attributeFilterNext/attributeFilterElementsSelect.css.map +1 -1
  216. package/styles/css/attributeFilterNext/attributeFilterEmptyResult.css +10 -0
  217. package/styles/css/attributeFilterNext/attributeFilterEmptyResult.css.map +1 -1
  218. package/styles/css/attributeFilterNext/attributeFilterStatusBar.css +10 -0
  219. package/styles/css/attributeFilterNext/attributeFilterStatusBar.css.map +1 -1
  220. package/styles/css/attributeFilterNext.css +10 -0
  221. package/styles/css/attributeFilterNext.css.map +1 -1
  222. package/styles/css/components/DateRangePicker.css +45 -17
  223. package/styles/css/components/DateRangePicker.css.map +1 -1
  224. package/styles/css/components/GranularityTabs.css +5 -0
  225. package/styles/css/components/GranularityTabs.css.map +1 -1
  226. package/styles/css/dateFilter.css +60 -17
  227. package/styles/css/dateFilter.css.map +1 -1
  228. package/styles/css/main.css +60 -17
  229. package/styles/css/main.css.map +1 -1
  230. package/styles/scss/components/DateFilterBody.scss +1 -1
  231. package/styles/scss/components/DateRangePicker.scss +52 -27
  232. package/styles/scss/components/GranularityTabs.scss +6 -1
  233. package/esm/DateFilter/DateFilterBody/AllTimeFilterItem.d.ts.map +0 -1
  234. package/esm/DateFilter/DateFilterBody/AllTimeFilterItem.js.map +0 -1
  235. package/esm/DateFilter/DateRangePicker/DateRangePickerError.d.ts +0 -11
  236. package/esm/DateFilter/DateRangePicker/DateRangePickerError.d.ts.map +0 -1
  237. package/esm/DateFilter/DateRangePicker/DateRangePickerError.js +0 -11
  238. package/esm/DateFilter/DateRangePicker/DateRangePickerError.js.map +0 -1
  239. /package/esm/DateFilter/{DateFilterBody → AllTime}/AllTimeFilterItem.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilterBodyContent.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterBodyContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EACH,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EAG5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIvE,UAAU,2BAA2B;IACjC,aAAa,EAAE,wBAAwB,CAAC;IACxC,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B,EAAE,OAAO,CAAC;IACvC,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,4BAA4B,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAuEvE,CAAC"}
@@ -0,0 +1,18 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import React from "react";
3
+ import isEmpty from "lodash/isEmpty.js";
4
+ import { AbsoluteDateFilterFormSection } from "../AbsoluteDateFilterForm/AbsoluteDateFilterFormSection.js";
5
+ import { AllTimeFilterSection } from "../AllTime/AllTimeFilterSection.js";
6
+ import { RelativeDateFilterFormSection } from "../RelativeDateFilterForm/RelativeDateFilterFormSection.js";
7
+ import { AbsolutePresetFilterItems } from "./AbsolutePresetFilterItems.js";
8
+ import { RelativePresetFilterItems } from "./RelativePresetFilterItems.js";
9
+ const ITEM_CLASS_MOBILE = "gd-date-filter-item-mobile";
10
+ export const DateFilterBodyContent = ({ filterOptions, selectedFilterOption, isMobile, route, errors, dateFormat, isTimeForAbsoluteRangeEnabled, weekStart, availableGranularities, closeDropdown, changeRoute, onApplyClick, onSelectedFilterOptionChange, }) => {
11
+ return (React.createElement(React.Fragment, null,
12
+ React.createElement(AllTimeFilterSection, { filterOptions: filterOptions, selectedFilterOption: selectedFilterOption, onSelectedFilterOptionChange: onSelectedFilterOptionChange, isMobile: isMobile }),
13
+ React.createElement(AbsoluteDateFilterFormSection, { filterOptions: filterOptions, route: route, closeDropdown: closeDropdown, onApplyClick: onApplyClick, changeRoute: changeRoute, dateFormat: dateFormat, errors: errors || undefined, onSelectedFilterOptionChange: onSelectedFilterOptionChange, selectedFilterOption: selectedFilterOption, isMobile: isMobile, isTimeForAbsoluteRangeEnabled: isTimeForAbsoluteRangeEnabled, weekStart: weekStart }),
14
+ !isEmpty(availableGranularities) ? (React.createElement(RelativeDateFilterFormSection, { filterOptions: filterOptions, onSelectedFilterOptionChange: onSelectedFilterOptionChange, selectedFilterOption: selectedFilterOption, availableGranularities: availableGranularities, isMobile: isMobile, changeRoute: changeRoute, route: route, errors: errors || undefined, onApplyClick: onApplyClick, closeDropdown: closeDropdown })) : null,
15
+ filterOptions.absolutePreset && filterOptions.absolutePreset.length > 0 ? (React.createElement(AbsolutePresetFilterItems, { dateFormat: dateFormat, filterOptions: filterOptions.absolutePreset, selectedFilterOption: selectedFilterOption, onSelectedFilterOptionChange: onSelectedFilterOptionChange, className: isMobile ? ITEM_CLASS_MOBILE : undefined })) : null,
16
+ filterOptions.relativePreset ? (React.createElement(RelativePresetFilterItems, { dateFormat: dateFormat, filterOption: filterOptions.relativePreset, selectedFilterOption: selectedFilterOption, onSelectedFilterOptionChange: onSelectedFilterOptionChange, className: isMobile ? ITEM_CLASS_MOBILE : undefined })) : null));
17
+ };
18
+ //# sourceMappingURL=DateFilterBodyContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilterBodyContent.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterBodyContent.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAW3E,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAkBvD,MAAM,CAAC,MAAM,qBAAqB,GAA0C,CAAC,EACzE,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,6BAA6B,EAC7B,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,4BAA4B,GAC/B,EAAE,EAAE;IACD,OAAO,CACH;QACI,oBAAC,oBAAoB,IACjB,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,4BAA4B,EAAE,4BAA4B,EAC1D,QAAQ,EAAE,QAAQ,GACpB;QACF,oBAAC,6BAA6B,IAC1B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,IAAI,SAAS,EAC3B,4BAA4B,EAAE,4BAA4B,EAC1D,oBAAoB,EAAE,oBAAiD,EACvE,QAAQ,EAAE,QAAQ,EAClB,6BAA6B,EAAE,6BAA6B,EAC5D,SAAS,EAAE,SAAS,GACtB;QACD,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAChC,oBAAC,6BAA6B,IAC1B,aAAa,EAAE,aAAa,EAC5B,4BAA4B,EAAE,4BAA4B,EAC1D,oBAAoB,EAAE,oBAAiD,EACvE,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,IAAI,SAAS,EAC3B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GAC9B,CACL,CAAC,CAAC,CAAC,IAAI;QACP,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACvE,oBAAC,yBAAyB,IACtB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,CAAC,cAAc,EAC3C,oBAAoB,EAAE,oBAAoB,EAC1C,4BAA4B,EAAE,4BAA4B,EAC1D,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,GACrD,CACL,CAAC,CAAC,CAAC,IAAI;QACP,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAC5B,oBAAC,yBAAyB,IACtB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,aAAa,CAAC,cAAc,EAC1C,oBAAoB,EAAE,oBAAoB,EAC1C,4BAA4B,EAAE,4BAA4B,EAC1D,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,GACrD,CACL,CAAC,CAAC,CAAC,IAAI,CACT,CACN,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import { DateFilterOption, IDateFilterOptionsByType, IExtendedDateFilterErrors } from "../interfaces/index.js";
3
+ import { DateFilterRoute } from "./types.js";
4
+ import { DateFilterGranularity, WeekStart } from "@gooddata/sdk-model";
5
+ interface IDateFilterBodyMobileContentProps {
6
+ filterOptions: IDateFilterOptionsByType;
7
+ selectedFilterOption: DateFilterOption;
8
+ isMobile: boolean;
9
+ route: DateFilterRoute;
10
+ dateFormat: string;
11
+ isTimeForAbsoluteRangeEnabled: boolean;
12
+ weekStart: WeekStart;
13
+ availableGranularities: DateFilterGranularity[];
14
+ errors?: IExtendedDateFilterErrors;
15
+ onSelectedFilterOptionChange: (option: DateFilterOption) => void;
16
+ closeDropdown: () => void;
17
+ changeRoute: (newRoute?: DateFilterRoute) => void;
18
+ onApplyClick: () => void;
19
+ }
20
+ export declare const DateFilterBodyMobileContent: React.FC<IDateFilterBodyMobileContentProps>;
21
+ export {};
22
+ //# sourceMappingURL=DateFilterBodyMobileContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilterBodyMobileContent.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterBodyMobileContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EACH,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EAG5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKvE,UAAU,iCAAiC;IACvC,aAAa,EAAE,wBAAwB,CAAC;IACxC,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B,EAAE,OAAO,CAAC;IACvC,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,4BAA4B,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CA4EnF,CAAC"}
@@ -0,0 +1,24 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import React from "react";
3
+ import isEmpty from "lodash/isEmpty.js";
4
+ import { AbsoluteDateFilterFormSection } from "../AbsoluteDateFilterForm/AbsoluteDateFilterFormSection.js";
5
+ import { RelativeDateFilterFormSection } from "../RelativeDateFilterForm/RelativeDateFilterFormSection.js";
6
+ import { DateFilterHeader } from "./DateFilterHeader.js";
7
+ import { FormattedMessage } from "react-intl";
8
+ import { DateFilterBodyContent } from "./DateFilterBodyContent.js";
9
+ export const DateFilterBodyMobileContent = ({ filterOptions, selectedFilterOption, isMobile, route, errors, dateFormat, isTimeForAbsoluteRangeEnabled, weekStart, availableGranularities, closeDropdown, changeRoute, onApplyClick, onSelectedFilterOptionChange, }) => {
10
+ if (route === "absoluteForm") {
11
+ return (React.createElement(React.Fragment, null,
12
+ React.createElement(DateFilterHeader, { changeRoute: changeRoute },
13
+ React.createElement(FormattedMessage, { id: "filters.staticPeriod" })),
14
+ React.createElement(AbsoluteDateFilterFormSection, { filterOptions: filterOptions, route: route, closeDropdown: closeDropdown, onApplyClick: onApplyClick, changeRoute: changeRoute, dateFormat: dateFormat, errors: errors || undefined, onSelectedFilterOptionChange: onSelectedFilterOptionChange, selectedFilterOption: selectedFilterOption, isMobile: isMobile, isTimeForAbsoluteRangeEnabled: isTimeForAbsoluteRangeEnabled, weekStart: weekStart })));
15
+ }
16
+ if (route === "relativeForm") {
17
+ return isEmpty(availableGranularities) ? null : (React.createElement(React.Fragment, null,
18
+ React.createElement(DateFilterHeader, { changeRoute: changeRoute },
19
+ React.createElement(FormattedMessage, { id: "filters.floatingRange" })),
20
+ React.createElement(RelativeDateFilterFormSection, { filterOptions: filterOptions, errors: errors || undefined, onSelectedFilterOptionChange: onSelectedFilterOptionChange, selectedFilterOption: selectedFilterOption, availableGranularities: availableGranularities, isMobile: isMobile, changeRoute: changeRoute, route: route, onApplyClick: onApplyClick, closeDropdown: closeDropdown })));
21
+ }
22
+ return (React.createElement(DateFilterBodyContent, { filterOptions: filterOptions, selectedFilterOption: selectedFilterOption, onSelectedFilterOptionChange: onSelectedFilterOptionChange, isMobile: isMobile, route: route, closeDropdown: closeDropdown, onApplyClick: onApplyClick, changeRoute: changeRoute, dateFormat: dateFormat, errors: errors || undefined, isTimeForAbsoluteRangeEnabled: isTimeForAbsoluteRangeEnabled, weekStart: weekStart, availableGranularities: availableGranularities }));
23
+ };
24
+ //# sourceMappingURL=DateFilterBodyMobileContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilterBodyMobileContent.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterBodyMobileContent.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAU3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAkBnE,MAAM,CAAC,MAAM,2BAA2B,GAAgD,CAAC,EACrF,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,6BAA6B,EAC7B,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,4BAA4B,GAC/B,EAAE,EAAE;IACD,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC3B,OAAO,CACH;YACI,oBAAC,gBAAgB,IAAC,WAAW,EAAE,WAAW;gBACtC,oBAAC,gBAAgB,IAAC,EAAE,EAAC,sBAAsB,GAAG,CAC/B;YACnB,oBAAC,6BAA6B,IAC1B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,IAAI,SAAS,EAC3B,4BAA4B,EAAE,4BAA4B,EAC1D,oBAAoB,EAAE,oBAAiD,EACvE,QAAQ,EAAE,QAAQ,EAClB,6BAA6B,EAAE,6BAA6B,EAC5D,SAAS,EAAE,SAAS,GACtB,CACH,CACN,CAAC;IACN,CAAC;IACD,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5C;YACI,oBAAC,gBAAgB,IAAC,WAAW,EAAE,WAAW;gBACtC,oBAAC,gBAAgB,IAAC,EAAE,EAAC,uBAAuB,GAAG,CAChC;YACnB,oBAAC,6BAA6B,IAC1B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,IAAI,SAAS,EAC3B,4BAA4B,EAAE,4BAA4B,EAC1D,oBAAoB,EAAE,oBAAiD,EACvE,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GAC9B,CACH,CACN,CAAC;IACN,CAAC;IACD,OAAO,CACH,oBAAC,qBAAqB,IAClB,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,4BAA4B,EAAE,4BAA4B,EAC1D,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,IAAI,SAAS,EAC3B,6BAA6B,EAAE,6BAA6B,EAC5D,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,sBAAsB,GAChD,CACL,CAAC;AACN,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterHeader.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD,CAcA,CAAC"}
1
+ {"version":3,"file":"DateFilterHeader.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD,CAkBA,CAAC"}
@@ -1,7 +1,9 @@
1
- // (C) 2019 GoodData Corporation
1
+ // (C) 2019-2025 GoodData Corporation
2
2
  import React from "react";
3
+ import { useAutofocusOnMount } from "@gooddata/sdk-ui-kit";
3
4
  export const DateFilterHeader = ({ children, changeRoute, ...otherProps }) => {
4
- return (React.createElement("button", { className: "gd-extended-date-filter-header s-do-not-close-dropdown-on-click", onClick: (e) => {
5
+ const autofocusRef = useAutofocusOnMount();
6
+ return (React.createElement("button", { tabIndex: 0, ref: autofocusRef, className: "gd-extended-date-filter-header s-do-not-close-dropdown-on-click", onClick: (e) => {
5
7
  e.preventDefault();
6
8
  changeRoute(null);
7
9
  }, ...otherProps },
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterHeader.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterHeader.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,gBAAgB,GAGxB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE;IAC9C,OAAO,CACH,gCACI,SAAS,EAAC,iEAAiE,EAC3E,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACX,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,KACG,UAAU;QAEd,8BAAM,SAAS,EAAC,sBAAsB,GAAG;;QAClC,QAAQ,CACV,CACZ,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"DateFilterHeader.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterBody/DateFilterHeader.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,CAAC,MAAM,gBAAgB,GAGxB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE;IAC9C,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAE3C,OAAO,CACH,gCACI,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,YAAY,EACjB,SAAS,EAAC,iEAAiE,EAC3E,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACX,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,KACG,UAAU;QAEd,8BAAM,SAAS,EAAC,sBAAsB,GAAG;;QAClC,QAAQ,CACV,CACZ,CAAC;AACN,CAAC,CAAC"}
@@ -11,6 +11,8 @@ export interface IDateFilterButtonProps {
11
11
  customIcon?: IFilterButtonCustomIcon;
12
12
  children?: React.ReactNode;
13
13
  customFilterName?: string;
14
+ buttonRef?: React.MutableRefObject<HTMLElement | null>;
15
+ dropdownId?: string;
14
16
  onClick?: () => void;
15
17
  textTitle?: string;
16
18
  textSubtitle?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterButton.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButton/DateFilterButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,EAA0B,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA2C7D,CAAC"}
1
+ {"version":3,"file":"DateFilterButton.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButton/DateFilterButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAA0B,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAoC7D,CAAC"}
@@ -1,18 +1,10 @@
1
1
  // (C) 2007-2025 GoodData Corporation
2
- import React, { useCallback } from "react";
2
+ import React from "react";
3
3
  import cx from "classnames";
4
4
  import { stringUtils } from "@gooddata/util";
5
- import { isActionKey } from "@gooddata/sdk-ui-kit";
6
5
  import { FilterButtonCustomIcon } from "../../shared/index.js";
7
- export const DateFilterButton = ({ isOpen, isMobile, title, children, disabled, customIcon, customFilterName, onClick, }) => {
8
- const onKeyDown = useCallback((event) => {
9
- // This enables keyboard interaction events after focus
10
- if (isActionKey(event)) {
11
- event.preventDefault();
12
- onClick();
13
- }
14
- }, [onClick]);
15
- return (React.createElement("div", { className: cx("s-date-filter-button", "gd-date-filter-button", `s-date-filter-button-${stringUtils.simplifyText(customFilterName)}`, "dropdown-button", isMobile && "gd-date-filter-button-mobile", isOpen && "is-active", disabled && "disabled"), onKeyDown: onKeyDown, role: "button", tabIndex: 0 },
6
+ export const DateFilterButton = ({ isOpen, isMobile, title, children, disabled, customIcon, customFilterName, buttonRef, dropdownId, }) => {
7
+ return (React.createElement("div", { ref: buttonRef, className: cx("s-date-filter-button", "gd-date-filter-button", `s-date-filter-button-${stringUtils.simplifyText(customFilterName)}`, "dropdown-button", isMobile && "gd-date-filter-button-mobile", isOpen && "is-active", disabled && "disabled"), role: "button", "aria-haspopup": "dialog", "aria-expanded": isOpen, "aria-controls": isOpen ? dropdownId : undefined, tabIndex: 0 },
16
8
  React.createElement("div", { className: "button-content" },
17
9
  React.createElement("div", { className: "s-date-filter-title button-title" }, title),
18
10
  React.createElement("div", { className: "button-subtitle" }, children)),
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterButton.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButton/DateFilterButton.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,uBAAuB,CAAC;AAkBxF,MAAM,CAAC,MAAM,gBAAgB,GAAqC,CAAC,EAC/D,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,OAAO,GACV,EAAE,EAAE;IACD,MAAM,SAAS,GAAG,WAAW,CACzB,CAAC,KAAK,EAAE,EAAE;QACN,uDAAuD;QACvD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC,EACD,CAAC,OAAO,CAAC,CACZ,CAAC;IAEF,OAAO,CACH,6BACI,SAAS,EAAE,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,WAAW,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,EACpE,iBAAiB,EACjB,QAAQ,IAAI,8BAA8B,EAC1C,MAAM,IAAI,WAAW,EACrB,QAAQ,IAAI,UAAU,CACzB,EACD,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC;QAEX,6BAAK,SAAS,EAAC,gBAAgB;YAC3B,6BAAK,SAAS,EAAC,kCAAkC,IAAE,KAAK,CAAO;YAC/D,6BAAK,SAAS,EAAC,iBAAiB,IAAE,QAAQ,CAAO,CAC/C;QACN,oBAAC,sBAAsB,IAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACpE,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"DateFilterButton.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButton/DateFilterButton.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAA2B,MAAM,uBAAuB,CAAC;AAoBxF,MAAM,CAAC,MAAM,gBAAgB,GAAqC,CAAC,EAC/D,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,UAAU,GACb,EAAE,EAAE;IACD,OAAO,CACH,6BACI,GAAG,EAAE,SAAmD,EACxD,SAAS,EAAE,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,WAAW,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,EACpE,iBAAiB,EACjB,QAAQ,IAAI,8BAA8B,EAC1C,MAAM,IAAI,WAAW,EACrB,QAAQ,IAAI,UAAU,CACzB,EACD,IAAI,EAAC,QAAQ,mBACC,QAAQ,mBACP,MAAM,mBACN,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC9C,QAAQ,EAAE,CAAC;QAEX,6BAAK,SAAS,EAAC,gBAAgB;YAC3B,6BAAK,SAAS,EAAC,kCAAkC,IAAE,KAAK,CAAO;YAC/D,6BAAK,SAAS,EAAC,iBAAiB,IAAE,QAAQ,CAAO,CAC/C;QACN,oBAAC,sBAAsB,IAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACpE,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -10,6 +10,8 @@ export interface IDateFilterButtonLocalizedProps {
10
10
  customFilterName?: string;
11
11
  disabled?: boolean;
12
12
  customIcon?: IFilterButtonCustomIcon;
13
+ buttonRef?: React.MutableRefObject<HTMLElement | null>;
14
+ dropdownId?: string;
13
15
  onClick?: () => void;
14
16
  ButtonComponent?: ComponentType<IDateFilterButtonProps>;
15
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterButtonLocalized.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAoB,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAKnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,WAAW,+BAA+B;IAC5C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAwC/E,CAAC"}
1
+ {"version":3,"file":"DateFilterButtonLocalized.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAoB,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAKnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,WAAW,+BAA+B;IAC5C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA4C/E,CAAC"}
@@ -9,14 +9,14 @@ const ALIGN_POINT = [
9
9
  { align: "cc tc", offset: { x: 0, y: 10 } },
10
10
  { align: "bl tr", offset: { x: -2, y: -8 } },
11
11
  ];
12
- export const DateFilterButtonLocalized = ({ dateFilterOption, dateFormat, isOpen = false, isMobile = true, customFilterName, disabled, customIcon, onClick, ButtonComponent, }) => {
12
+ export const DateFilterButtonLocalized = ({ dateFilterOption, dateFormat, isOpen = false, isMobile = true, customFilterName, disabled, customIcon, buttonRef, dropdownId, onClick, ButtonComponent, }) => {
13
13
  const intl = useIntl();
14
14
  const defaultTitle = intl.formatMessage({ id: "dateFilterDropdown.title" });
15
15
  const textTitle = customFilterName ?? defaultTitle;
16
16
  const title = customFilterName ? (React.createElement(ShortenedText, { tooltipAlignPoints: ALIGN_POINT }, customFilterName)) : (React.createElement(React.Fragment, null, textTitle));
17
17
  const textSubtitle = useDateFilterText({ filter: dateFilterOption, dateFormat });
18
18
  const Component = ButtonComponent ?? DateFilterButton;
19
- return (React.createElement(Component, { title: title, isOpen: isOpen, isMobile: isMobile, disabled: disabled, customIcon: customIcon, customFilterName: customFilterName, onClick: onClick, textTitle: textTitle, textSubtitle: textSubtitle },
19
+ return (React.createElement(Component, { title: title, isOpen: isOpen, isMobile: isMobile, disabled: disabled, customIcon: customIcon, customFilterName: customFilterName, onClick: onClick, textTitle: textTitle, textSubtitle: textSubtitle, buttonRef: buttonRef, dropdownId: dropdownId },
20
20
  React.createElement("span", { className: "s-button-text" },
21
21
  React.createElement(DateFilterTextLocalized, { filter: dateFilterOption, dateFormat: dateFormat }))));
22
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterButtonLocalized.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,yCAAyC,CAAC;AACnG,OAAO,EACH,uBAAuB,EACvB,iBAAiB,GACpB,MAAM,uDAAuD,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,GAAG;IAChB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;IAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;CAC/C,CAAC;AAcF,MAAM,CAAC,MAAM,yBAAyB,GAA8C,CAAC,EACjF,gBAAgB,EAChB,UAAU,EACV,MAAM,GAAG,KAAK,EACd,QAAQ,GAAG,IAAI,EACf,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,eAAe,GAClB,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,gBAAgB,IAAI,YAAY,CAAC;IACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAC7B,oBAAC,aAAa,IAAC,kBAAkB,EAAE,WAAW,IAAG,gBAAgB,CAAiB,CACrF,CAAC,CAAC,CAAC,CACA,0CAAG,SAAS,CAAI,CACnB,CAAC;IACF,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;IAEjF,MAAM,SAAS,GAAG,eAAe,IAAI,gBAAgB,CAAC;IAEtD,OAAO,CACH,oBAAC,SAAS,IACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY;QAE1B,8BAAM,SAAS,EAAC,eAAe;YAC3B,oBAAC,uBAAuB,IAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAI,CAC1E,CACC,CACf,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"DateFilterButtonLocalized.js","sourceRoot":"","sources":["../../../src/DateFilter/DateFilterButtonLocalized/DateFilterButtonLocalized.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,yCAAyC,CAAC;AACnG,OAAO,EACH,uBAAuB,EACvB,iBAAiB,GACpB,MAAM,uDAAuD,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,GAAG;IAChB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;IAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;CAC/C,CAAC;AAgBF,MAAM,CAAC,MAAM,yBAAyB,GAA8C,CAAC,EACjF,gBAAgB,EAChB,UAAU,EACV,MAAM,GAAG,KAAK,EACd,QAAQ,GAAG,IAAI,EACf,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,eAAe,GAClB,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,gBAAgB,IAAI,YAAY,CAAC;IACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAC7B,oBAAC,aAAa,IAAC,kBAAkB,EAAE,WAAW,IAAG,gBAAgB,CAAiB,CACrF,CAAC,CAAC,CAAC,CACA,0CAAG,SAAS,CAAI,CACnB,CAAC;IACF,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;IAEjF,MAAM,SAAS,GAAG,eAAe,IAAI,gBAAgB,CAAC;IAEtD,OAAO,CACH,oBAAC,SAAS,IACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU;QAEtB,8BAAM,SAAS,EAAC,eAAe;YAC3B,oBAAC,uBAAuB,IAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAI,CAC1E,CACC,CACf,CAAC;AACN,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterCore.d.ts","sourceRoot":"","sources":["../../src/DateFilter/DateFilterCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAA6B,MAAM,OAAO,CAAC;AAMxE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAY,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQ9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAOhF,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,wBAAwB,CAAC;IACxC;;OAEG;IACH,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,4BAA4B,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjE;;OAEG;IACH,4BAA4B,EAAE,gBAAgB,CAAC;IAE/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,4BAA4B,EAAE,OAAO,CAAC;IACtC,6BAA6B,EAAE,OAAO,CAAC;IACvC,4BAA4B,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,6BAA6B,EAAE,OAAO,CAAC;IAEvC,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAEhD,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,4BAA4B,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAE9E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAExD;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,MAYrD,CAAC;AAKF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiJzD,CAAC"}
1
+ {"version":3,"file":"DateFilterCore.d.ts","sourceRoot":"","sources":["../../src/DateFilter/DateFilterCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAA0C,MAAM,OAAO,CAAC;AAMrF,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAY,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQ9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAShF,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,wBAAwB,CAAC;IACxC;;OAEG;IACH,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,4BAA4B,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjE;;OAEG;IACH,4BAA4B,EAAE,gBAAgB,CAAC;IAE/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,4BAA4B,EAAE,OAAO,CAAC;IACtC,6BAA6B,EAAE,OAAO,CAAC;IACvC,4BAA4B,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,6BAA6B,EAAE,OAAO,CAAC;IAEvC,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAEhD,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,4BAA4B,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAE9E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAExD;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,MAYrD,CAAC;AAKF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoLzD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // (C) 2007-2025 GoodData Corporation
2
- import React, { useMemo, useRef, useState } from "react";
2
+ import React, { useCallback, useMemo, useRef, useState } from "react";
3
3
  import flow from "lodash/flow.js";
4
4
  import noop from "lodash/noop.js";
5
5
  import DefaultMediaQuery from "react-responsive";
@@ -14,6 +14,8 @@ import { applyExcludeCurrentPeriod } from "./utils/PeriodExclusion.js";
14
14
  import { DEFAULT_DATE_FORMAT, TIME_FORMAT_WITH_SEPARATOR } from "./constants/Platform.js";
15
15
  import { filterVisibleDateFilterOptions, sanitizePresetIntervals } from "./utils/OptionUtils.js";
16
16
  import isEmpty from "lodash/isEmpty.js";
17
+ import { createDateFilterKeyboardHandler } from "./accessibility/keyboardNavigation.js";
18
+ import { DATE_FILTER_SELECTED_LIST_ITEM_ID } from "./accessibility/elementId.js";
17
19
  // There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
18
20
  // In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
19
21
  // https://github.com/microsoft/TypeScript/issues/49189#issuecomment-1137802865
@@ -34,6 +36,8 @@ const adjustDateFormatForDisplay = (dateFormat, isTimeForAbsoluteRangeEnabled =
34
36
  export const DateFilterCore = ({ originalSelectedFilterOption, originalExcludeCurrentPeriod, selectedFilterOption, excludeCurrentPeriod, onDropdownOpenChanged, customFilterName, dateFormat, disabled, openOnInit, locale, filterOptions, isTimeForAbsoluteRangeEnabled, weekStart, customIcon, FilterConfigurationComponent, onApplyClick, onCancelClick, showDropDownHeaderMessage, withoutApply, ButtonComponent, overlayPositionType, ...dropdownBodyProps }) => {
35
37
  const [isConfigurationOpen, setIsConfigurationOpen] = useState(false);
36
38
  const verifiedDateFormat = verifyDateFormat(dateFormat);
39
+ const dateFilterContainerRef = useRef(null);
40
+ const dateFilterBodyRef = useRef(null);
37
41
  const filteredFilterOptions = useMemo(() => {
38
42
  return flow(filterVisibleDateFilterOptions, sanitizePresetIntervals)(filterOptions);
39
43
  }, [filterOptions]);
@@ -55,23 +59,32 @@ export const DateFilterCore = ({ originalSelectedFilterOption, originalExcludeCu
55
59
  };
56
60
  const lastValidSelectedFilterOption = useLastValidValue(selectedFilterOption, isEmpty(dropdownBodyProps.errors));
57
61
  const lastValidExcludeCurrentPeriod = useLastValidValue(excludeCurrentPeriod, isEmpty(dropdownBodyProps.errors));
62
+ const handleKeyDown = useCallback((event, closeDropdown = noop) => {
63
+ const keyboardHandler = createDateFilterKeyboardHandler({
64
+ dateFilterContainerRef,
65
+ dateFilterBodyRef,
66
+ closeDropdown,
67
+ });
68
+ keyboardHandler(event);
69
+ }, [dateFilterContainerRef, dateFilterBodyRef]);
58
70
  return (React.createElement(IntlWrapper, { locale: locale || "en-US" },
59
71
  React.createElement(MediaQuery, { query: MediaQueries.IS_MOBILE_DEVICE }, (isMobile) => {
60
- const dateFilterButton = (isOpen = false, toggleDropdown = noop) => (React.createElement(DateFilterButtonLocalized, { disabled: disabled, isMobile: isMobile, isOpen: isOpen, dateFilterOption: applyExcludeCurrentPeriod(withoutApply ? lastValidSelectedFilterOption : originalSelectedFilterOption, withoutApply ? lastValidExcludeCurrentPeriod : originalExcludeCurrentPeriod), dateFormat: adjustDateFormatForDisplay(verifiedDateFormat, isTimeForAbsoluteRangeEnabled), customFilterName: customFilterName, customIcon: customIcon, onClick: toggleDropdown, ButtonComponent: ButtonComponent }));
61
- return (React.createElement(Dropdown, { openOnInit: openOnInit, closeOnParentScroll: true, closeOnMouseDrag: true, closeOnOutsideClick: true, enableEventPropagation: true, alignPoints: [
72
+ const dateFilterButton = (isOpen = false, buttonRef = null, dropdownId = "", toggleDropdown = noop) => (React.createElement(DateFilterButtonLocalized, { disabled: disabled, isMobile: isMobile, isOpen: isOpen, dateFilterOption: applyExcludeCurrentPeriod(withoutApply ? lastValidSelectedFilterOption : originalSelectedFilterOption, withoutApply ? lastValidExcludeCurrentPeriod : originalExcludeCurrentPeriod), dateFormat: adjustDateFormatForDisplay(verifiedDateFormat, isTimeForAbsoluteRangeEnabled), customFilterName: customFilterName, customIcon: customIcon, onClick: toggleDropdown, ButtonComponent: ButtonComponent, buttonRef: buttonRef, dropdownId: dropdownId }));
73
+ return (React.createElement(Dropdown, { openOnInit: openOnInit, closeOnParentScroll: true, closeOnMouseDrag: true, closeOnOutsideClick: true, enableEventPropagation: true, autofocusOnOpen: true, initialFocus: DATE_FILTER_SELECTED_LIST_ITEM_ID, alignPoints: [
62
74
  { align: "bl tl" },
63
75
  { align: "tr tl" },
64
76
  { align: "br tr", offset: { x: -11 } },
65
77
  { align: "tr tl", offset: { x: 0, y: -100 } },
66
78
  { align: "tr tl", offset: { x: 0, y: -50 } },
67
- ], onOpenStateChanged: handleOpenStateChanged, overlayPositionType: overlayPositionType, renderButton: ({ isOpen, toggleDropdown }) => (React.createElement("span", { onClick: disabled ? noop : toggleDropdown }, dateFilterButton(isOpen, toggleDropdown))), ignoreClicksOnByClass: [
79
+ ], onOpenStateChanged: handleOpenStateChanged, overlayPositionType: overlayPositionType, renderButton: ({ isOpen, buttonRef, dropdownId, toggleDropdown }) => (React.createElement("span", { onClick: disabled ? noop : toggleDropdown }, dateFilterButton(isOpen, buttonRef, dropdownId, toggleDropdown))), ignoreClicksOnByClass: [
68
80
  ".s-do-not-close-dropdown-on-click",
69
81
  ".rdp-day", // absolute range picker calendar items
70
- ], renderBody: ({ closeDropdown }) => {
82
+ ], renderBody: ({ closeDropdown, ariaAttributes }) => {
71
83
  return isConfigurationOpen ? (React.createElement(FilterConfigurationComponent, { onSaveButtonClick: closeConfiguration, onCancelButtonClick: cancelConfiguration })) : (
72
84
  // Dropdown component uses React.Children.map and adds special props to this component
73
85
  // https://stackoverflow.com/questions/32370994/how-to-pass-props-to-this-props-children
74
- React.createElement(DateFilterBody, { ...dropdownBodyProps, selectedFilterOption: selectedFilterOption, excludeCurrentPeriod: excludeCurrentPeriod, showHeaderMessage: showDropDownHeaderMessage, onApplyClick: onApplyClick, onCancelClick: onCancelClick, filterOptions: filteredFilterOptions, isMobile: isMobile, closeDropdown: closeDropdown, dateFilterButton: dateFilterButton(), dateFormat: verifiedDateFormat, isTimeForAbsoluteRangeEnabled: isTimeForAbsoluteRangeEnabled, weekStart: weekStart, isConfigurationEnabled: FilterConfigurationComponent !== undefined, onConfigurationClick: openConfiguration, withoutApply: withoutApply }));
86
+ React.createElement("div", { role: "dialog", className: "gd-extended-date-filter-container", id: ariaAttributes.id, ref: dateFilterContainerRef, onKeyDown: (e) => handleKeyDown(e, closeDropdown) },
87
+ React.createElement(DateFilterBody, { ...dropdownBodyProps, selectedFilterOption: selectedFilterOption, excludeCurrentPeriod: excludeCurrentPeriod, showHeaderMessage: showDropDownHeaderMessage, onApplyClick: onApplyClick, onCancelClick: onCancelClick, filterOptions: filteredFilterOptions, isMobile: isMobile, closeDropdown: closeDropdown, dateFilterButton: dateFilterButton(), dateFormat: verifiedDateFormat, isTimeForAbsoluteRangeEnabled: isTimeForAbsoluteRangeEnabled, weekStart: weekStart, isConfigurationEnabled: FilterConfigurationComponent !== undefined, onConfigurationClick: openConfiguration, withoutApply: withoutApply, ref: dateFilterBodyRef })));
75
88
  } }));
76
89
  })));
77
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DateFilterCore.js","sourceRoot":"","sources":["../../src/DateFilter/DateFilterCore.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateFilterCore.js","sourceRoot":"","sources":["../../src/DateFilter/DateFilterCore.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { IInputAccessibilityConfig, IDateInputErrorMessageTexts } from "./types.js";
3
+ export interface IDateInputProps {
4
+ value: Date;
5
+ inputLabel: string;
6
+ onChange: (date: Date) => void;
7
+ onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
8
+ onClick: () => void;
9
+ dateFormat: string;
10
+ isMobile: boolean;
11
+ isTimeEnabled: boolean;
12
+ isDateOrderError?: boolean;
13
+ errorMessageTexts: IDateInputErrorMessageTexts;
14
+ accessibilityConfig: IInputAccessibilityConfig;
15
+ }
16
+ export declare const DateInput: React.ForwardRefExoticComponent<IDateInputProps & React.RefAttributes<HTMLInputElement>>;
17
+ //# sourceMappingURL=DateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateRangePicker/DateInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAgB7E,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,IAAI,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,mBAAmB,EAAE,yBAAyB,CAAC;CAClD;AAwGD,eAAO,MAAM,SAAS,0FAgFpB,CAAC"}
@@ -0,0 +1,111 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import React, { useCallback, useState, useEffect } from "react";
3
+ import cx from "classnames";
4
+ import isEmpty from "lodash/isEmpty.js";
5
+ import { useId } from "@gooddata/sdk-ui-kit";
6
+ import { convertPlatformDateStringToDate } from "../utils/DateConversions.js";
7
+ import { DateRangePickerInputFieldBody } from "./DateRangePickerInputFieldBody.js";
8
+ import { buildAriaDescribedByValue, parseDate, formatDate, isValidDate, getPlatformStringFromDate, } from "./utils.js";
9
+ import { InputErrorMessage } from "./InputErrorMessage.js";
10
+ const getErrorMessage = (errorCause, isDateOrderError, messages) => {
11
+ if (errorCause === "empty") {
12
+ return messages.emptyDate;
13
+ }
14
+ else if (errorCause === "invalid") {
15
+ return messages.invalidDate;
16
+ }
17
+ else if (isDateOrderError) {
18
+ return messages.startDateAfterEndDate;
19
+ }
20
+ return undefined;
21
+ };
22
+ const useDateInput = ({ value, dateFormat, onChange, isDateOrderError = false, errorMessageTexts, }) => {
23
+ const [inputValue, setInputValue] = useState(formatDate(value, dateFormat));
24
+ const [errorCause, setErrorCause] = useState(undefined);
25
+ const hasError = errorCause !== undefined || isDateOrderError;
26
+ const errorMessage = getErrorMessage(errorCause, isDateOrderError, errorMessageTexts);
27
+ useEffect(() => {
28
+ const newValue = formatDate(value, dateFormat);
29
+ setInputValue(newValue);
30
+ if (newValue !== undefined) {
31
+ setErrorCause(undefined);
32
+ }
33
+ }, [value, dateFormat]);
34
+ const onDateInputChange = useCallback((event) => {
35
+ const newValue = event.target.value;
36
+ setInputValue(newValue);
37
+ const newDate = parseDate(newValue, dateFormat);
38
+ // commit changed value when time is valid but only once, then it is reported again only on blur
39
+ if (isValidDate(newDate) && hasError) {
40
+ setErrorCause(undefined);
41
+ onChange(newDate);
42
+ }
43
+ }, [dateFormat, onChange, hasError]);
44
+ const onDateInputBlur = useCallback(() => {
45
+ // Report value only when it changed, i.e., user typed a new value.
46
+ // Do not report the same value when user just focused field by click to open calendar popup
47
+ // and then selected value which caused blur event and call of this handler.
48
+ const previousValue = formatDate(value, dateFormat);
49
+ if (previousValue === inputValue) {
50
+ return;
51
+ }
52
+ if (isEmpty(inputValue)) {
53
+ setErrorCause("empty");
54
+ onChange(undefined);
55
+ return;
56
+ }
57
+ const date = parseDate(inputValue, dateFormat);
58
+ if (date === undefined) {
59
+ setErrorCause("invalid");
60
+ onChange(undefined);
61
+ return;
62
+ }
63
+ setErrorCause(null);
64
+ onChange(date);
65
+ }, [dateFormat, inputValue, onChange, value]);
66
+ const onMobileDateChange = useCallback((event) => {
67
+ const value = event.target.value;
68
+ const selectedDate = convertPlatformDateStringToDate(value);
69
+ const isValid = isValidDate(selectedDate);
70
+ onChange(isValid ? selectedDate : undefined);
71
+ setErrorCause(isValid ? undefined : "empty");
72
+ }, [onChange]);
73
+ return {
74
+ inputValue,
75
+ errorMessage,
76
+ onDateInputChange,
77
+ onMobileDateChange,
78
+ onDateInputBlur,
79
+ };
80
+ };
81
+ export const DateInput = React.forwardRef((props, ref) => {
82
+ const { value, inputLabel, onKeyDown, onClick, onChange, dateFormat, accessibilityConfig, isMobile, isTimeEnabled, isDateOrderError, errorMessageTexts, } = props;
83
+ const { inputValue, errorMessage, onDateInputChange, onMobileDateChange, onDateInputBlur } = useDateInput({
84
+ value,
85
+ dateFormat,
86
+ onChange,
87
+ isDateOrderError,
88
+ errorMessageTexts,
89
+ });
90
+ const inputLabelId = useId();
91
+ const inputErrorId = useId();
92
+ const MobileInput = (React.createElement(DateRangePickerInputFieldBody, { type: "date", className: cx("s-date-range-picker-date", "gd-date-range-picker-input", "gd-date-range-picker-input-native", {
93
+ "gd-date-range-picker-input-error": errorMessage,
94
+ "has-error": errorMessage,
95
+ }), onChange: onMobileDateChange, value: getPlatformStringFromDate(value) }));
96
+ const DesktopInput = (React.createElement("div", { className: cx("gd-date-range-picker-input", {
97
+ "gd-date-range-picker-input-error": !!errorMessage,
98
+ "has-error": !!errorMessage,
99
+ }) },
100
+ React.createElement("span", { className: "gd-icon-calendar" }),
101
+ React.createElement("input", { onKeyDown: onKeyDown, ref: ref, "aria-label": accessibilityConfig.ariaLabel, placeholder: dateFormat, onChange: onDateInputChange, onClick: onClick, onBlur: onDateInputBlur, value: inputValue, className: "input-text s-date-range-picker-input-field", "aria-labelledby": inputLabelId, "aria-describedby": buildAriaDescribedByValue([
102
+ accessibilityConfig.inputHintId,
103
+ errorMessage ? inputErrorId : undefined,
104
+ ]), ...(errorMessage ? { "aria-invalid": true } : {}) })));
105
+ return (React.createElement("div", { className: cx("gd-date-range-column", { "gd-date-range-column--with-time": isTimeEnabled }) },
106
+ React.createElement("label", { id: inputLabelId }, inputLabel),
107
+ isMobile ? MobileInput : DesktopInput,
108
+ React.createElement(InputErrorMessage, { descriptionId: inputErrorId, errorText: errorMessage })));
109
+ });
110
+ DateInput.displayName = "DateInput";
111
+ //# sourceMappingURL=DateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../src/DateFilter/DateRangePicker/DateInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { IntlShape } from "react-intl";
3
+ import { WeekStart } from "@gooddata/sdk-model";
4
+ import { DayPickerRangeProps, SelectRangeEventHandler } from "react-day-picker";
5
+ import { IDateRange } from "./types.js";
6
+ import { DateRangePosition } from "../interfaces/index.js";
7
+ export declare const DayPicker: React.ForwardRefExoticComponent<{
8
+ mode: DateRangePosition;
9
+ originalDateRange: IDateRange;
10
+ selectedDateRange: IDateRange;
11
+ alignTo: string;
12
+ calendarClassNames: string;
13
+ onDateRangeSelect: SelectRangeEventHandler;
14
+ dayPickerProps?: DayPickerRangeProps;
15
+ weekStart?: WeekStart;
16
+ renderAsOverlay?: boolean;
17
+ intl: IntlShape;
18
+ } & React.RefAttributes<HTMLDivElement>>;
19
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateRangePicker/DatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAEH,mBAAmB,EACnB,uBAAuB,EAE1B,MAAM,kBAAkB,CAAC;AAkB1B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAsC3D,eAAO,MAAM,SAAS;UAGR,iBAAiB;uBACJ,UAAU;uBACV,UAAU;aACpB,MAAM;wBACK,MAAM;uBACP,uBAAuB;qBACzB,mBAAmB;gBACxB,SAAS;sBACH,OAAO;UACnB,SAAS;wCAgEtB,CAAC"}
@@ -0,0 +1,74 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import React, { forwardRef, useState } from "react";
3
+ import { Overlay } from "@gooddata/sdk-ui-kit";
4
+ import { DayPicker as DayPickerComponent, } from "react-day-picker";
5
+ import enUS from "date-fns/locale/en-US/index.js";
6
+ import de from "date-fns/locale/de/index.js";
7
+ import es from "date-fns/locale/es/index.js";
8
+ import fr from "date-fns/locale/fr/index.js";
9
+ import ja from "date-fns/locale/ja/index.js";
10
+ import nl from "date-fns/locale/nl/index.js";
11
+ import pt from "date-fns/locale/pt/index.js";
12
+ import ptBR from "date-fns/locale/pt-BR/index.js";
13
+ import zhCN from "date-fns/locale/zh-CN/index.js";
14
+ import ru from "date-fns/locale/ru/index.js";
15
+ import it from "date-fns/locale/it/index.js";
16
+ import enGB from "date-fns/locale/en-GB/index.js";
17
+ import frCA from "date-fns/locale/fr-CA/index.js";
18
+ import enAU from "date-fns/locale/en-AU/index.js";
19
+ import fi from "date-fns/locale/fi/index.js";
20
+ import { mergeDayPickerProps } from "./utils.js";
21
+ const convertedLocales = {
22
+ "en-US": enUS,
23
+ "de-DE": de,
24
+ "es-ES": es,
25
+ "fr-FR": fr,
26
+ "ja-JP": ja,
27
+ "nl-NL": nl,
28
+ "pt-BR": ptBR,
29
+ "pt-PT": pt,
30
+ "zh-Hans": zhCN,
31
+ "ru-RU": ru,
32
+ "it-IT": it,
33
+ "es-419": es,
34
+ "en-GB": enGB,
35
+ "fr-CA": frCA,
36
+ "zh-Hant": zhCN,
37
+ "en-AU": enAU,
38
+ "fi-FI": fi,
39
+ "zh-HK": zhCN,
40
+ };
41
+ const ALIGN_POINTS = [{ align: "bl tl", offset: { x: 0, y: 1 } }];
42
+ const convertLocale = (locale) => convertedLocales[locale];
43
+ function convertWeekStart(weekStart) {
44
+ switch (weekStart) {
45
+ case "Sunday":
46
+ return 0;
47
+ case "Monday":
48
+ return 1;
49
+ default:
50
+ throw new Error(`Unknown week start ${weekStart}`);
51
+ }
52
+ }
53
+ export const DayPicker = forwardRef(({ mode, originalDateRange, selectedDateRange, onDateRangeSelect, dayPickerProps, alignTo, weekStart, renderAsOverlay, calendarClassNames, intl, }, ref) => {
54
+ const [currentMonthDate, setCurrentMonthDate] = useState(mode === "from" ? selectedDateRange.from : selectedDateRange.to);
55
+ const defaultDayPickerProps = {
56
+ mode: "range",
57
+ showOutsideDays: true,
58
+ modifiers: { start: originalDateRange.from, end: originalDateRange.to },
59
+ selected: { from: originalDateRange.from, to: originalDateRange.to },
60
+ locale: convertLocale(intl.locale),
61
+ };
62
+ const dayPickerPropsWithDefaults = mergeDayPickerProps(defaultDayPickerProps, dayPickerProps);
63
+ const DatePicker = (React.createElement("div", { className: "gd-date-range-picker-wrapper", ref: ref },
64
+ React.createElement(DayPickerComponent, { ...dayPickerPropsWithDefaults, month: currentMonthDate, onSelect: onDateRangeSelect, selected: selectedDateRange, classNames: {
65
+ root: calendarClassNames,
66
+ }, onMonthChange: setCurrentMonthDate, weekStartsOn: convertWeekStart(weekStart) })));
67
+ const OverlayDatePicker = (React.createElement(Overlay, { alignTo: alignTo, alignPoints: ALIGN_POINTS, closeOnOutsideClick: true, closeOnMouseDrag: true, closeOnParentScroll: true }, DatePicker));
68
+ if (renderAsOverlay) {
69
+ return OverlayDatePicker;
70
+ }
71
+ return DatePicker;
72
+ });
73
+ DayPicker.displayName = "DayPicker";
74
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/DateFilter/DateRangePicker/DatePicker.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACH,SAAS,IAAI,kBAAkB,GAIlC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,IAAI,MAAM,gCAAgC,CAAC;AAClD,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,IAAI,MAAM,gCAAgC,CAAC;AAClD,OAAO,IAAI,MAAM,gCAAgC,CAAC;AAClD,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC7C,OAAO,IAAI,MAAM,gCAAgC,CAAC;AAClD,OAAO,IAAI,MAAM,gCAAgC,CAAC;AAClD,OAAO,IAAI,MAAM,gCAAgC,CAAC;AAClD,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,gBAAgB,GAA2B;IAC7C,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAElE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE3E,SAAS,gBAAgB,CAAC,SAAoB;IAC1C,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC;QACb,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC;QACb;YACI,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAe/B,CACI,EACI,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,IAAI,GACP,EACD,GAAG,EACL,EAAE;IACA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACpD,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAClE,CAAC;IAEF,MAAM,qBAAqB,GAAwB;QAC/C,IAAI,EAAE,OAAO;QACb,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,EAAE;QACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,EAAE;QACpE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;KACrC,CAAC;IAEF,MAAM,0BAA0B,GAAG,mBAAmB,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;IAE9F,MAAM,UAAU,GAAG,CACf,6BAAK,SAAS,EAAC,8BAA8B,EAAC,GAAG,EAAE,GAAG;QAClD,oBAAC,kBAAkB,OACX,0BAA0B,EAC9B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE;gBACR,IAAI,EAAE,kBAAkB;aAC3B,EACD,aAAa,EAAE,mBAAmB,EAClC,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAC3C,CACA,CACT,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACtB,oBAAC,OAAO,IACJ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,YAAY,EACzB,mBAAmB,EAAE,IAAI,EACzB,gBAAgB,EAAE,IAAI,EACtB,mBAAmB,EAAE,IAAI,IAExB,UAAU,CACL,CACb,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QAClB,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC,CACJ,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { IntlShape } from "react-intl";
3
+ export declare const DateRangeHint: React.FC<{
4
+ dateFormat: string;
5
+ isTimeEnabled: boolean;
6
+ dateHintId: string;
7
+ timeHintId: string;
8
+ intl: IntlShape;
9
+ }>;
10
+ //# sourceMappingURL=DateRangeHint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRangeHint.d.ts","sourceRoot":"","sources":["../../../src/DateFilter/DateRangePicker/DateRangeHint.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;CACnB,CAYA,CAAC"}