@sis-cc/dotstatsuite-visions 12.55.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/README.md +2 -34
  2. package/dist/Alert/Alert.js +185 -0
  3. package/dist/Alert/Alert.js.map +1 -0
  4. package/dist/ApiQueries/ApiQueries.js +163 -0
  5. package/dist/ApiQueries/ApiQueries.js.map +1 -0
  6. package/dist/AuthDialog/AuthDialog.js +114 -0
  7. package/dist/AuthDialog/AuthDialog.js.map +1 -0
  8. package/dist/Breadcrumbs/Breadcrumbs.js +51 -0
  9. package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -0
  10. package/dist/Button/Button.js +50 -0
  11. package/dist/Button/Button.js.map +1 -0
  12. package/dist/ChartsConfig/ChartsConfig.js +507 -0
  13. package/dist/ChartsConfig/ChartsConfig.js.map +1 -0
  14. package/dist/CollapseButtons/CollapseButtons.js +320 -0
  15. package/dist/CollapseButtons/CollapseButtons.js.map +1 -0
  16. package/dist/CollapsibleTree/CollapsibleTree.js +199 -0
  17. package/dist/CollapsibleTree/CollapsibleTree.js.map +1 -0
  18. package/dist/Contact/Contact.js +439 -0
  19. package/dist/Contact/Contact.js.map +1 -0
  20. package/dist/DataFooter/DataFooter.js +106 -0
  21. package/dist/DataFooter/DataFooter.js.map +1 -0
  22. package/dist/DataHeader/DataHeader.js +341 -0
  23. package/dist/DataHeader/DataHeader.js.map +1 -0
  24. package/dist/Dataflow/Dataflow.js +325 -0
  25. package/dist/Dataflow/Dataflow.js.map +1 -0
  26. package/dist/DeleteAllChip/DeleteAllChip.js +24 -0
  27. package/dist/DeleteAllChip/DeleteAllChip.js.map +1 -0
  28. package/dist/DynamicDrawer/DynamicDrawer.js +875 -0
  29. package/dist/DynamicDrawer/DynamicDrawer.js.map +1 -0
  30. package/dist/ExpansionPanel/ExpansionPanel.js +199 -0
  31. package/dist/ExpansionPanel/ExpansionPanel.js.map +1 -0
  32. package/dist/GroupedChips/GroupedChips.js +78 -0
  33. package/dist/GroupedChips/GroupedChips.js.map +1 -0
  34. package/dist/HierarchicalFilter/HierarchicalFilter.js +144 -0
  35. package/dist/HierarchicalFilter/HierarchicalFilter.js.map +1 -0
  36. package/dist/Icons/AccessibilityFilled.js +8 -0
  37. package/dist/Icons/AccessibilityFilled.js.map +1 -0
  38. package/dist/Icons/AccessibilityOutlined.js +8 -0
  39. package/dist/Icons/AccessibilityOutlined.js.map +1 -0
  40. package/dist/Icons/AccountFilled.js +8 -0
  41. package/dist/Icons/AccountFilled.js.map +1 -0
  42. package/dist/Icons/AccountOutlined.js +8 -0
  43. package/dist/Icons/AccountOutlined.js.map +1 -0
  44. package/dist/Icons/Api.js +8 -0
  45. package/dist/Icons/Api.js.map +1 -0
  46. package/dist/Icons/Asterisk.js +8 -0
  47. package/dist/Icons/Asterisk.js.map +1 -0
  48. package/dist/Icons/Bar.js +8 -0
  49. package/dist/Icons/Bar.js.map +1 -0
  50. package/dist/Icons/CopyContent.js +8 -0
  51. package/dist/Icons/CopyContent.js.map +1 -0
  52. package/dist/Icons/Cross.js +8 -0
  53. package/dist/Icons/Cross.js.map +1 -0
  54. package/dist/Icons/HSymbol.js +8 -0
  55. package/dist/Icons/HSymbol.js.map +1 -0
  56. package/dist/Icons/Row.js +8 -0
  57. package/dist/Icons/Row.js.map +1 -0
  58. package/dist/Icons/Scatter.js +8 -0
  59. package/dist/Icons/Scatter.js.map +1 -0
  60. package/dist/Icons/StackedBar.js +8 -0
  61. package/dist/Icons/StackedBar.js.map +1 -0
  62. package/dist/Icons/StackedRow.js +8 -0
  63. package/dist/Icons/StackedRow.js.map +1 -0
  64. package/dist/Icons/Timeline.js +8 -0
  65. package/dist/Icons/Timeline.js.map +1 -0
  66. package/dist/Icons/VSymbol.js +8 -0
  67. package/dist/Icons/VSymbol.js.map +1 -0
  68. package/dist/Icons/Warning.js +18 -0
  69. package/dist/Icons/Warning.js.map +1 -0
  70. package/dist/Input/Input.js +72 -0
  71. package/dist/Input/Input.js.map +1 -0
  72. package/dist/InputNumber/InputNumber.js +86 -0
  73. package/dist/InputNumber/InputNumber.js.map +1 -0
  74. package/dist/LabelDivider/LabelDivider.js +35 -0
  75. package/dist/LabelDivider/LabelDivider.js.map +1 -0
  76. package/dist/Loading/Loading.js +72 -0
  77. package/dist/Loading/Loading.js.map +1 -0
  78. package/dist/Logo/Logo.js +38 -0
  79. package/dist/Logo/Logo.js.map +1 -0
  80. package/dist/Mode/Mode.js +90 -0
  81. package/dist/Mode/Mode.js.map +1 -0
  82. package/dist/NoData/NoData.js +27 -0
  83. package/dist/NoData/NoData.js.map +1 -0
  84. package/dist/Pagination/Pagination.js +142 -0
  85. package/dist/Pagination/Pagination.js.map +1 -0
  86. package/dist/PeriodPicker/PeriodPicker.js +550 -0
  87. package/dist/PeriodPicker/PeriodPicker.js.map +1 -0
  88. package/dist/Select/Select.js +125 -0
  89. package/dist/Select/Select.js.map +1 -0
  90. package/dist/Share/Share.js +292 -0
  91. package/dist/Share/Share.js.map +1 -0
  92. package/dist/ShortUrls/ShortUrls.js +106 -0
  93. package/dist/ShortUrls/ShortUrls.js.map +1 -0
  94. package/dist/SisccFooter/SisccFooter.js +65 -0
  95. package/dist/SisccFooter/SisccFooter.js.map +1 -0
  96. package/dist/Spotlight/Spotlight.js +349 -0
  97. package/dist/Spotlight/Spotlight.js.map +1 -0
  98. package/dist/TableFooter/TableFooter.js +42 -0
  99. package/dist/TableFooter/TableFooter.js.map +1 -0
  100. package/dist/TableHeader/TableHeader.js +35 -0
  101. package/dist/TableHeader/TableHeader.js.map +1 -0
  102. package/dist/TableHtml5/TableHtml5.js +1045 -0
  103. package/dist/TableHtml5/TableHtml5.js.map +1 -0
  104. package/dist/TableLayout/TableLayout.js +529 -0
  105. package/dist/TableLayout/TableLayout.js.map +1 -0
  106. package/dist/TablePreview/TablePreview.js +209 -0
  107. package/dist/TablePreview/TablePreview.js.map +1 -0
  108. package/dist/Tag/Tag.js +23 -0
  109. package/dist/Tag/Tag.js.map +1 -0
  110. package/dist/Tooltip/Tooltip.js +54 -0
  111. package/dist/Tooltip/Tooltip.js.map +1 -0
  112. package/dist/UserRightForm/UserRightForm.js +545 -0
  113. package/dist/UserRightForm/UserRightForm.js.map +1 -0
  114. package/dist/VerticalButton/VerticalButton.js +43 -0
  115. package/dist/VerticalButton/VerticalButton.js.map +1 -0
  116. package/dist/chunks/CustomChip-CMYCIorJ.js +181 -0
  117. package/dist/chunks/CustomChip-CMYCIorJ.js.map +1 -0
  118. package/dist/chunks/useKeybordEscapeHandler-DRsOrnwc.js +22 -0
  119. package/dist/chunks/useKeybordEscapeHandler-DRsOrnwc.js.map +1 -0
  120. package/dist/chunks/utils-BQc_rN44.js +15 -0
  121. package/dist/chunks/utils-BQc_rN44.js.map +1 -0
  122. package/dist/chunks/utils-kslX1mzh.js +20 -0
  123. package/dist/chunks/utils-kslX1mzh.js.map +1 -0
  124. package/dist/chunks/with-input-DRWNlMdA.js +35 -0
  125. package/dist/chunks/with-input-DRWNlMdA.js.map +1 -0
  126. package/dist/chunks/withSpotlight-CYQVWD78.js +903 -0
  127. package/dist/chunks/withSpotlight-CYQVWD78.js.map +1 -0
  128. package/{es → dist/theme}/theme.js +147 -149
  129. package/dist/theme/theme.js.map +1 -0
  130. package/package.json +55 -199
  131. package/es/AdvancedFilterDialog/AdvancedFilterDialog.js +0 -583
  132. package/es/AdvancedFilterDialog/SelectionModeMenu.js +0 -85
  133. package/es/AdvancedFilterDialog/images/all-selection.png +0 -0
  134. package/es/AdvancedFilterDialog/images/branch-selection.png +0 -0
  135. package/es/AdvancedFilterDialog/images/children-selection.png +0 -0
  136. package/es/AdvancedFilterDialog/images/level-selection.png +0 -0
  137. package/es/AdvancedFilterDialog/images/single-selection.png +0 -0
  138. package/es/AdvancedFilterDialog/images/small-all-selection.png +0 -0
  139. package/es/AdvancedFilterDialog/images/small-branch-selection.png +0 -0
  140. package/es/AdvancedFilterDialog/images/small-children-selection.png +0 -0
  141. package/es/AdvancedFilterDialog/images/small-level-selection.png +0 -0
  142. package/es/AdvancedFilterDialog/images/small-single-selection.png +0 -0
  143. package/es/AdvancedFilterDialog/index.js +0 -26
  144. package/es/Alert/Alert.js +0 -284
  145. package/es/Alert/index.js +0 -13
  146. package/es/ApiQueries/ApiQueries.js +0 -107
  147. package/es/ApiQueries/Query.js +0 -175
  148. package/es/ApiQueries/index.js +0 -45
  149. package/es/AuthDialog/index.js +0 -211
  150. package/es/Breadcrumbs/Breadcrumbs.js +0 -72
  151. package/es/Breadcrumbs/index.js +0 -30
  152. package/es/Button/Button.js +0 -63
  153. package/es/Button/index.js +0 -52
  154. package/es/ChartsConfig/ChartsConfig.js +0 -470
  155. package/es/ChartsConfig/Input.js +0 -152
  156. package/es/ChartsConfig/InputProxy.js +0 -57
  157. package/es/ChartsConfig/Proxy.js +0 -20
  158. package/es/ChartsConfig/Title.js +0 -37
  159. package/es/ChartsConfig/index.js +0 -213
  160. package/es/ChartsConfig/useAxisOptions.js +0 -9
  161. package/es/ChartsConfig/useDimensionOptions.js +0 -12
  162. package/es/ChartsConfig/useFocusOptions.js +0 -22
  163. package/es/ChartsConfig/utils.js +0 -6
  164. package/es/Chips/CustomChip.js +0 -139
  165. package/es/Chips/DeleteChip.js +0 -32
  166. package/es/Chips/GroupedChips.js +0 -106
  167. package/es/Chips/index.js +0 -69
  168. package/es/Chips/styles.js +0 -67
  169. package/es/Chips/utils.js +0 -21
  170. package/es/CollapseButtons/CollapseButtons.js +0 -159
  171. package/es/CollapseButtons/Item.js +0 -146
  172. package/es/CollapseButtons/Paper.js +0 -58
  173. package/es/CollapseButtons/index.js +0 -90
  174. package/es/CollapsibleTree/Collapse.js +0 -98
  175. package/es/CollapsibleTree/CollapsibleTree.js +0 -229
  176. package/es/CollapsibleTree/index.js +0 -49
  177. package/es/Contact/Contact.js +0 -360
  178. package/es/Contact/Input.js +0 -129
  179. package/es/Contact/Mode.js +0 -134
  180. package/es/Contact/index.js +0 -36
  181. package/es/DataEdit/DataEdit.js +0 -154
  182. package/es/DataEdit/Input.js +0 -151
  183. package/es/DataEdit/index.js +0 -70
  184. package/es/DataFooter/DataFooter.js +0 -178
  185. package/es/DataFooter/index.js +0 -33
  186. package/es/DataHeader/DataHeader.js +0 -314
  187. package/es/DataHeader/Flags.js +0 -42
  188. package/es/DataHeader/Title.js +0 -27
  189. package/es/DataHeader/TooltipHeader.js +0 -78
  190. package/es/DataHeader/index.js +0 -82
  191. package/es/DataHeader/utils.js +0 -19
  192. package/es/Dataflow/Dataflow.js +0 -441
  193. package/es/Dataflow/index.js +0 -62
  194. package/es/DynamicDrawer/AdvancedSelection.js +0 -503
  195. package/es/DynamicDrawer/DynamicDrawer.js +0 -418
  196. package/es/DynamicDrawer/SelectionModesMobile.js +0 -88
  197. package/es/DynamicDrawer/index.js +0 -44
  198. package/es/ExpansionPanel/ExpansionPanel.js +0 -151
  199. package/es/ExpansionPanel/index.js +0 -58
  200. package/es/ExpansionPanel/styles.js +0 -89
  201. package/es/HierarchicalFilter/HierarchicalFilter.js +0 -178
  202. package/es/HierarchicalFilter/index.js +0 -26
  203. package/es/Icons/AccessibilityFilled.js +0 -12
  204. package/es/Icons/AccessibilityOutlined.js +0 -12
  205. package/es/Icons/AccountFilled.js +0 -12
  206. package/es/Icons/AccountOutlined.js +0 -12
  207. package/es/Icons/Api.js +0 -12
  208. package/es/Icons/Asterisk.js +0 -12
  209. package/es/Icons/Bar.js +0 -12
  210. package/es/Icons/CopyContent.js +0 -12
  211. package/es/Icons/Cross.js +0 -12
  212. package/es/Icons/HSymbol.js +0 -12
  213. package/es/Icons/Row.js +0 -12
  214. package/es/Icons/Scatter.js +0 -12
  215. package/es/Icons/StackedBar.js +0 -12
  216. package/es/Icons/StackedRow.js +0 -12
  217. package/es/Icons/Timeline.js +0 -12
  218. package/es/Icons/VSymbol.js +0 -12
  219. package/es/Icons/Warning.js +0 -25
  220. package/es/Icons/index.js +0 -28
  221. package/es/Input/Input.js +0 -128
  222. package/es/Input/index.js +0 -26
  223. package/es/Input/with-input.js +0 -55
  224. package/es/InputNumber/InputNumber.js +0 -116
  225. package/es/InputNumber/index.js +0 -23
  226. package/es/LabelDivider/LabelDivider.js +0 -52
  227. package/es/LabelDivider/index.js +0 -32
  228. package/es/Loading/Loading.js +0 -84
  229. package/es/Loading/index.js +0 -24
  230. package/es/Logo/Logo.js +0 -55
  231. package/es/Logo/index.js +0 -18
  232. package/es/Mode/Mode.js +0 -135
  233. package/es/Mode/index.js +0 -24
  234. package/es/NoData/NoData.js +0 -48
  235. package/es/NoData/index.js +0 -15
  236. package/es/Pagination/Pagination.js +0 -207
  237. package/es/Pagination/index.js +0 -31
  238. package/es/PeriodPicker/PeriodPicker.js +0 -236
  239. package/es/PeriodPicker/constants.js +0 -39
  240. package/es/PeriodPicker/index.js +0 -26
  241. package/es/PeriodPicker/lib.js +0 -206
  242. package/es/PeriodPicker/styles.js +0 -23
  243. package/es/ScopeList/Header.js +0 -80
  244. package/es/ScopeList/Item.js +0 -245
  245. package/es/ScopeList/ScopeList.js +0 -323
  246. package/es/ScopeList/Selection.js +0 -129
  247. package/es/ScopeList/index.deprecated.js +0 -94
  248. package/es/ScopeList/index.js +0 -94
  249. package/es/ScopeList/styles.js +0 -143
  250. package/es/ScopeList/with-scope-list.js +0 -492
  251. package/es/Select/Select.js +0 -169
  252. package/es/Select/index.js +0 -33
  253. package/es/Share/Form.js +0 -164
  254. package/es/Share/Mode.js +0 -136
  255. package/es/Share/Share.js +0 -115
  256. package/es/Share/index.js +0 -64
  257. package/es/ShortUrls/ShortUrls.js +0 -136
  258. package/es/ShortUrls/index.js +0 -22
  259. package/es/SisccFooter/SisccFooter.js +0 -99
  260. package/es/SisccFooter/index.js +0 -27
  261. package/es/Spotlight/Fields.js +0 -100
  262. package/es/Spotlight/Spotlight.js +0 -157
  263. package/es/Spotlight/index.js +0 -75
  264. package/es/Spotlight/useSpotlight.js +0 -75
  265. package/es/Spotlight/useStyles.js +0 -77
  266. package/es/TableFooter/TableFooter.js +0 -100
  267. package/es/TableFooter/index.js +0 -33
  268. package/es/TableHeader/TableHeader.js +0 -63
  269. package/es/TableHeader/index.js +0 -17
  270. package/es/TableHtml5/TableHtml5.js +0 -213
  271. package/es/TableHtml5/cell.js +0 -130
  272. package/es/TableHtml5/flags.js +0 -138
  273. package/es/TableHtml5/header.js +0 -177
  274. package/es/TableHtml5/index.js +0 -62
  275. package/es/TableHtml5/section.js +0 -243
  276. package/es/TableHtml5/sectionHeader.js +0 -171
  277. package/es/TableHtml5/subHeader.js +0 -154
  278. package/es/TableHtml5/utils.js +0 -23
  279. package/es/TableLayout/Box.js +0 -123
  280. package/es/TableLayout/DnDItem.js +0 -142
  281. package/es/TableLayout/TableLayout.js +0 -427
  282. package/es/TableLayout/constants.js +0 -11
  283. package/es/TableLayout/index.js +0 -75
  284. package/es/TableLayout/lib.js +0 -31
  285. package/es/TablePreview/TablePreview.js +0 -244
  286. package/es/TablePreview/index.js +0 -44
  287. package/es/TablePreview/lib.js +0 -34
  288. package/es/TablePreview/styles.js +0 -71
  289. package/es/Tag/Tag.js +0 -44
  290. package/es/Tag/index.js +0 -30
  291. package/es/ToggleButton/ToggleButton.js +0 -79
  292. package/es/ToggleButton/index.js +0 -50
  293. package/es/Tooltip/Tooltip.js +0 -69
  294. package/es/Tooltip/index.js +0 -36
  295. package/es/UserRightForm/Input.js +0 -129
  296. package/es/UserRightForm/Permissions.js +0 -124
  297. package/es/UserRightForm/PermsissionsTabs.js +0 -107
  298. package/es/UserRightForm/UserRightForm.js +0 -445
  299. package/es/UserRightForm/index.js +0 -60
  300. package/es/VerticalButton/VerticalButton.js +0 -67
  301. package/es/VerticalButton/index.js +0 -27
  302. package/es/VirtualizedTree/Item.js +0 -200
  303. package/es/VirtualizedTree/VirtualizedTree.js +0 -366
  304. package/es/VirtualizedTree/index.js +0 -38
  305. package/es/VirtualizedTree/utils.js +0 -170
  306. package/es/VirtualizedTree/withExpansionTree.js +0 -65
  307. package/es/VirtualizedTree/withSpotlight.js +0 -113
  308. package/es/hooks/useKeybordEscapeHandler.js +0 -22
  309. package/es/index.js +0 -52
  310. package/es/utils.js +0 -78
  311. package/lib/AdvancedFilterDialog/AdvancedFilterDialog.js +0 -658
  312. package/lib/AdvancedFilterDialog/SelectionModeMenu.js +0 -118
  313. package/lib/AdvancedFilterDialog/images/all-selection.png +0 -0
  314. package/lib/AdvancedFilterDialog/images/branch-selection.png +0 -0
  315. package/lib/AdvancedFilterDialog/images/children-selection.png +0 -0
  316. package/lib/AdvancedFilterDialog/images/level-selection.png +0 -0
  317. package/lib/AdvancedFilterDialog/images/single-selection.png +0 -0
  318. package/lib/AdvancedFilterDialog/images/small-all-selection.png +0 -0
  319. package/lib/AdvancedFilterDialog/images/small-branch-selection.png +0 -0
  320. package/lib/AdvancedFilterDialog/images/small-children-selection.png +0 -0
  321. package/lib/AdvancedFilterDialog/images/small-level-selection.png +0 -0
  322. package/lib/AdvancedFilterDialog/images/small-single-selection.png +0 -0
  323. package/lib/AdvancedFilterDialog/index.js +0 -16
  324. package/lib/Alert/Alert.js +0 -325
  325. package/lib/Alert/index.js +0 -16
  326. package/lib/ApiQueries/ApiQueries.js +0 -139
  327. package/lib/ApiQueries/Query.js +0 -205
  328. package/lib/ApiQueries/index.js +0 -16
  329. package/lib/AuthDialog/index.js +0 -251
  330. package/lib/Breadcrumbs/Breadcrumbs.js +0 -107
  331. package/lib/Breadcrumbs/index.js +0 -16
  332. package/lib/Button/Button.js +0 -89
  333. package/lib/Button/index.js +0 -16
  334. package/lib/ChartsConfig/ChartsConfig.js +0 -533
  335. package/lib/ChartsConfig/Input.js +0 -187
  336. package/lib/ChartsConfig/InputProxy.js +0 -80
  337. package/lib/ChartsConfig/Proxy.js +0 -34
  338. package/lib/ChartsConfig/Title.js +0 -63
  339. package/lib/ChartsConfig/index.js +0 -16
  340. package/lib/ChartsConfig/useAxisOptions.js +0 -18
  341. package/lib/ChartsConfig/useDimensionOptions.js +0 -22
  342. package/lib/ChartsConfig/useFocusOptions.js +0 -32
  343. package/lib/ChartsConfig/utils.js +0 -15
  344. package/lib/Chips/CustomChip.js +0 -183
  345. package/lib/Chips/DeleteChip.js +0 -56
  346. package/lib/Chips/GroupedChips.js +0 -138
  347. package/lib/Chips/index.js +0 -23
  348. package/lib/Chips/styles.js +0 -77
  349. package/lib/Chips/utils.js +0 -30
  350. package/lib/CollapseButtons/CollapseButtons.js +0 -198
  351. package/lib/CollapseButtons/Item.js +0 -179
  352. package/lib/CollapseButtons/Paper.js +0 -82
  353. package/lib/CollapseButtons/index.js +0 -16
  354. package/lib/CollapsibleTree/Collapse.js +0 -130
  355. package/lib/CollapsibleTree/CollapsibleTree.js +0 -288
  356. package/lib/CollapsibleTree/index.js +0 -16
  357. package/lib/Contact/Contact.js +0 -409
  358. package/lib/Contact/Input.js +0 -165
  359. package/lib/Contact/Mode.js +0 -174
  360. package/lib/Contact/index.js +0 -16
  361. package/lib/DataEdit/DataEdit.js +0 -190
  362. package/lib/DataEdit/Input.js +0 -186
  363. package/lib/DataEdit/index.js +0 -16
  364. package/lib/DataFooter/DataFooter.js +0 -219
  365. package/lib/DataFooter/index.js +0 -16
  366. package/lib/DataHeader/DataHeader.js +0 -358
  367. package/lib/DataHeader/Flags.js +0 -61
  368. package/lib/DataHeader/Title.js +0 -40
  369. package/lib/DataHeader/TooltipHeader.js +0 -99
  370. package/lib/DataHeader/index.js +0 -16
  371. package/lib/DataHeader/utils.js +0 -29
  372. package/lib/Dataflow/Dataflow.js +0 -505
  373. package/lib/Dataflow/index.js +0 -16
  374. package/lib/DynamicDrawer/AdvancedSelection.js +0 -563
  375. package/lib/DynamicDrawer/DynamicDrawer.js +0 -466
  376. package/lib/DynamicDrawer/SelectionModesMobile.js +0 -119
  377. package/lib/DynamicDrawer/index.js +0 -16
  378. package/lib/ExpansionPanel/ExpansionPanel.js +0 -198
  379. package/lib/ExpansionPanel/index.js +0 -16
  380. package/lib/ExpansionPanel/styles.js +0 -103
  381. package/lib/HierarchicalFilter/HierarchicalFilter.js +0 -208
  382. package/lib/HierarchicalFilter/index.js +0 -16
  383. package/lib/Icons/AccessibilityFilled.js +0 -25
  384. package/lib/Icons/AccessibilityOutlined.js +0 -25
  385. package/lib/Icons/AccountFilled.js +0 -25
  386. package/lib/Icons/AccountOutlined.js +0 -25
  387. package/lib/Icons/Api.js +0 -25
  388. package/lib/Icons/Asterisk.js +0 -25
  389. package/lib/Icons/Bar.js +0 -25
  390. package/lib/Icons/CopyContent.js +0 -25
  391. package/lib/Icons/Cross.js +0 -25
  392. package/lib/Icons/HSymbol.js +0 -25
  393. package/lib/Icons/Row.js +0 -25
  394. package/lib/Icons/Scatter.js +0 -25
  395. package/lib/Icons/StackedBar.js +0 -25
  396. package/lib/Icons/StackedRow.js +0 -25
  397. package/lib/Icons/Timeline.js +0 -25
  398. package/lib/Icons/VSymbol.js +0 -25
  399. package/lib/Icons/Warning.js +0 -45
  400. package/lib/Icons/index.js +0 -155
  401. package/lib/Input/Input.js +0 -164
  402. package/lib/Input/index.js +0 -16
  403. package/lib/Input/with-input.js +0 -69
  404. package/lib/InputNumber/InputNumber.js +0 -152
  405. package/lib/InputNumber/index.js +0 -16
  406. package/lib/LabelDivider/LabelDivider.js +0 -78
  407. package/lib/LabelDivider/index.js +0 -16
  408. package/lib/Loading/Loading.js +0 -110
  409. package/lib/Loading/index.js +0 -16
  410. package/lib/Logo/Logo.js +0 -73
  411. package/lib/Logo/index.js +0 -16
  412. package/lib/Mode/Mode.js +0 -168
  413. package/lib/Mode/index.js +0 -16
  414. package/lib/NoData/NoData.js +0 -69
  415. package/lib/NoData/index.js +0 -16
  416. package/lib/Pagination/Pagination.js +0 -250
  417. package/lib/Pagination/index.js +0 -16
  418. package/lib/PeriodPicker/PeriodPicker.js +0 -266
  419. package/lib/PeriodPicker/constants.js +0 -43
  420. package/lib/PeriodPicker/index.js +0 -16
  421. package/lib/PeriodPicker/lib.js +0 -222
  422. package/lib/PeriodPicker/styles.js +0 -32
  423. package/lib/ScopeList/Header.js +0 -110
  424. package/lib/ScopeList/Item.js +0 -284
  425. package/lib/ScopeList/ScopeList.js +0 -377
  426. package/lib/ScopeList/Selection.js +0 -170
  427. package/lib/ScopeList/index.deprecated.js +0 -16
  428. package/lib/ScopeList/index.js +0 -16
  429. package/lib/ScopeList/styles.js +0 -153
  430. package/lib/ScopeList/with-scope-list.js +0 -507
  431. package/lib/Select/Select.js +0 -201
  432. package/lib/Select/index.js +0 -16
  433. package/lib/Share/Form.js +0 -201
  434. package/lib/Share/Mode.js +0 -176
  435. package/lib/Share/Share.js +0 -148
  436. package/lib/Share/index.js +0 -16
  437. package/lib/ShortUrls/ShortUrls.js +0 -181
  438. package/lib/ShortUrls/index.js +0 -16
  439. package/lib/SisccFooter/SisccFooter.js +0 -131
  440. package/lib/SisccFooter/index.js +0 -16
  441. package/lib/Spotlight/Fields.js +0 -132
  442. package/lib/Spotlight/Spotlight.js +0 -202
  443. package/lib/Spotlight/index.js +0 -16
  444. package/lib/Spotlight/useSpotlight.js +0 -85
  445. package/lib/Spotlight/useStyles.js +0 -91
  446. package/lib/TableFooter/TableFooter.js +0 -129
  447. package/lib/TableFooter/index.js +0 -16
  448. package/lib/TableHeader/TableHeader.js +0 -89
  449. package/lib/TableHeader/index.js +0 -16
  450. package/lib/TableHtml5/TableHtml5.js +0 -249
  451. package/lib/TableHtml5/cell.js +0 -164
  452. package/lib/TableHtml5/flags.js +0 -174
  453. package/lib/TableHtml5/header.js +0 -215
  454. package/lib/TableHtml5/index.js +0 -23
  455. package/lib/TableHtml5/section.js +0 -289
  456. package/lib/TableHtml5/sectionHeader.js +0 -212
  457. package/lib/TableHtml5/subHeader.js +0 -191
  458. package/lib/TableHtml5/utils.js +0 -32
  459. package/lib/TableLayout/Box.js +0 -159
  460. package/lib/TableLayout/DnDItem.js +0 -177
  461. package/lib/TableLayout/TableLayout.js +0 -487
  462. package/lib/TableLayout/constants.js +0 -14
  463. package/lib/TableLayout/index.js +0 -16
  464. package/lib/TableLayout/lib.js +0 -40
  465. package/lib/TablePreview/TablePreview.js +0 -279
  466. package/lib/TablePreview/index.js +0 -16
  467. package/lib/TablePreview/lib.js +0 -48
  468. package/lib/TablePreview/styles.js +0 -81
  469. package/lib/Tag/Tag.js +0 -67
  470. package/lib/Tag/index.js +0 -16
  471. package/lib/ToggleButton/ToggleButton.js +0 -111
  472. package/lib/ToggleButton/index.js +0 -16
  473. package/lib/Tooltip/Tooltip.js +0 -95
  474. package/lib/Tooltip/index.js +0 -16
  475. package/lib/UserRightForm/Input.js +0 -165
  476. package/lib/UserRightForm/Permissions.js +0 -159
  477. package/lib/UserRightForm/PermsissionsTabs.js +0 -145
  478. package/lib/UserRightForm/UserRightForm.js +0 -484
  479. package/lib/UserRightForm/index.js +0 -16
  480. package/lib/VerticalButton/VerticalButton.js +0 -88
  481. package/lib/VerticalButton/index.js +0 -16
  482. package/lib/VirtualizedTree/Item.js +0 -244
  483. package/lib/VirtualizedTree/VirtualizedTree.js +0 -402
  484. package/lib/VirtualizedTree/index.js +0 -16
  485. package/lib/VirtualizedTree/utils.js +0 -179
  486. package/lib/VirtualizedTree/withExpansionTree.js +0 -80
  487. package/lib/VirtualizedTree/withSpotlight.js +0 -129
  488. package/lib/hooks/useKeybordEscapeHandler.js +0 -28
  489. package/lib/index.js +0 -460
  490. package/lib/theme.js +0 -437
  491. package/lib/utils.js +0 -96
  492. package/umd/@sis-cc/dotstatsuite-visions.js +0 -82495
  493. package/umd/@sis-cc/dotstatsuite-visions.min.js +0 -222
  494. package/umd/@sis-cc/dotstatsuite-visions.min.js.map +0 -1
  495. package/umd/branch-selection.54dd3bc1.png +0 -0
  496. package/umd/children-selection.20d94242.png +0 -0
  497. package/umd/level-selection.df116629.png +0 -0
  498. package/umd/single-selection.a729a6c8.png +0 -0
@@ -0,0 +1,550 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import * as R from 'ramda';
4
+ import { getDaysInMonth, getISOWeeksInYear, parseISO, getMonth, format, startOfYear, addQuarters, endOfISOWeekYear, startOfISOWeekYear, addWeeks, isWithinInterval, closestTo, addMonths, startOfISOWeek, endOfISOWeek, getYear, addDays, isSameYear, compareAsc, compareDesc } from 'date-fns';
5
+ import Grid from '@mui/material/Grid';
6
+ import Typography from '@mui/material/Typography';
7
+ import numeral from 'numeral';
8
+ import { Button } from '../Button/Button.js';
9
+ import { Select } from '../Select/Select.js';
10
+ import makeStyles from '@mui/styles/makeStyles';
11
+ import { w as withBlank } from '../chunks/utils-kslX1mzh.js';
12
+
13
+ const YEARS = 'years';
14
+ const SEMESTERS = 'semesters';
15
+ const QUARTERS = 'quarters';
16
+ const MONTHS = 'months';
17
+ const WEEKS = 'weeks';
18
+ const DAYS = 'days';
19
+ const FULL_HOURS = 'full_hours';
20
+ const HOURS = 'hours';
21
+ const MINUTES = 'minutes';
22
+ const frequencies = [
23
+ YEARS,
24
+ MONTHS,
25
+ DAYS,
26
+ HOURS,
27
+ MINUTES,
28
+ FULL_HOURS,
29
+ QUARTERS,
30
+ WEEKS,
31
+ SEMESTERS,
32
+ ];
33
+
34
+ const YEAR = 'year';
35
+ const SEMESTER = 'semester';
36
+ const QUARTER = 'quarter';
37
+ const MONTH = 'month';
38
+ const WEEK = 'week';
39
+ const DAY = 'day';
40
+ const FULL_HOUR = 'full_hour';
41
+ const HOUR = 'hour';
42
+ const MINUTE = 'minute';
43
+
44
+ const layoutFrequencies = {
45
+ S: [
46
+ [
47
+ { values: YEARS, id: YEAR },
48
+ { values: SEMESTERS, id: SEMESTER },
49
+ ],
50
+ ],
51
+ A: [[{ values: YEARS, id: YEAR }]],
52
+ Q: [
53
+ [
54
+ { values: YEARS, id: YEAR },
55
+ { values: QUARTERS, id: QUARTER },
56
+ ],
57
+ ],
58
+ M: [
59
+ [
60
+ { values: YEARS, id: YEAR },
61
+ { values: MONTHS, id: MONTH },
62
+ ],
63
+ ],
64
+ W: [
65
+ [
66
+ { values: YEARS, id: YEAR },
67
+ { values: WEEKS, id: WEEK },
68
+ ],
69
+ ],
70
+ B: [
71
+ [
72
+ { values: YEARS, id: YEAR },
73
+ { values: WEEKS, id: WEEK },
74
+ ],
75
+ ],
76
+ D: [
77
+ [
78
+ { values: YEARS, id: YEAR },
79
+ { values: MONTHS, id: MONTH },
80
+ { values: DAYS, id: DAY },
81
+ ],
82
+ ],
83
+ H: [
84
+ [
85
+ { values: YEARS, id: YEAR },
86
+ { values: MONTHS, id: MONTH },
87
+ { values: DAYS, id: DAY },
88
+ ],
89
+ [{ values: FULL_HOURS, id: FULL_HOUR }],
90
+ ],
91
+ N: [
92
+ [
93
+ { values: YEARS, id: YEAR },
94
+ { values: MONTHS, id: MONTH },
95
+ { values: DAYS, id: DAY },
96
+ ],
97
+ [
98
+ { values: HOURS, id: HOUR },
99
+ { values: MINUTES, id: MINUTE },
100
+ ],
101
+ ],
102
+ };
103
+
104
+ const defaultOutputValues = {
105
+ [YEARS]: '----',
106
+ [SEMESTERS]: '-',
107
+ [QUARTERS]: '-',
108
+ [MONTHS]: '--',
109
+ [WEEKS]: '--',
110
+ [DAYS]: '--',
111
+ [FULL_HOURS]: '--:00',
112
+ [HOURS]: '--',
113
+ [MINUTES]: '--',
114
+ };
115
+
116
+ const formatOrder = [YEAR, MONTH, DAY, HOUR, MINUTE, FULL_HOUR, QUARTER, WEEK, SEMESTER];
117
+ const defaultfreq = 'A';
118
+
119
+ const isWeekInPreviousYear = date => {
120
+ const startIsoWeek = startOfISOWeek(date);
121
+ return R.pipe(
122
+ R.times(n => getYear(addDays(startIsoWeek, n))),
123
+ R.uniq,
124
+ R.length,
125
+ R.equals(1),
126
+ )(4);
127
+ };
128
+ const supportedFrequenciesKey = R.keys(layoutFrequencies);
129
+ const dec = R.ifElse(R.gte(0), R.identity, R.dec);
130
+ const addSemesters =
131
+ (semester = 0) =>
132
+ date =>
133
+ addMonths(date, R.multiply(6)(dec(Number(semester))));
134
+ const getSemesterValue = R.ifElse(R.pipe(Number, R.inc, R.gte(6)), R.always(1), R.always(2));
135
+ const getFormat = value => numeral(value).format('[0]0');
136
+ const getHour = R.pipe(R.pick([HOUR, FULL_HOUR]), R.values, R.head);
137
+ const getRanges = (value = [0]) => R.range(R.head(value), R.inc(R.last(value)));
138
+ const setRange = range => prop =>
139
+ R.pipe(getRanges, R.prepend(R.prop(prop)(defaultOutputValues)))(R.prop(prop)(range));
140
+ // export const getDestructuringDate = date =>
141
+ // R.pipe(
142
+ // date => format(date, 'yyyy M d H m HH Q I [S]'),
143
+ // R.replace(/S/, R.pipe(date => getMonth(date), getSemesterValue)(date)),
144
+ // R.split(' '),
145
+ // R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),
146
+ // )(date);
147
+ const getDestructuringDate = date => {
148
+ if (!date || isNaN(new Date(date))) return [];
149
+ const validDate = typeof date === 'string' ? parseISO(date) : date;
150
+ return R.pipe(
151
+ d => {
152
+ const semester = getSemesterValue(getMonth(d));
153
+ const formatted = format(d, 'yyyy M d H m HH Q I');
154
+ return `${formatted} ${semester}`;
155
+ },
156
+ R.split(' '),
157
+ R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),
158
+ )(validDate);
159
+ };
160
+
161
+ const updateLimit = (value, isSamePeriod, defaultValue) => {
162
+ if (isSamePeriod) return value;
163
+ return defaultValue;
164
+ };
165
+
166
+ const getRange = R.curry((boundaries, date) => {
167
+ if (R.isNil(R.head(boundaries)) || R.isNil(R.last(boundaries))) {
168
+ return {
169
+ [YEARS]: [NaN],
170
+ [HOURS]: [NaN],
171
+ [FULL_HOURS]: [NaN],
172
+ [MONTHS]: [NaN],
173
+ [WEEKS]: [NaN],
174
+ [SEMESTERS]: [NaN],
175
+ [QUARTERS]: [NaN],
176
+ [DAYS]: [NaN],
177
+ [MINUTES]: [NaN],
178
+ };
179
+ }
180
+ const destructuredDate = getDestructuringDate(date);
181
+ const destructuredBoundaries = R.map(getDestructuringDate, boundaries);
182
+ const [years, months, days, hours, minutes, , quarters, weeks, semesters] =
183
+ R.transpose(destructuredBoundaries);
184
+
185
+ if (R.isNil(date)) {
186
+ return {
187
+ [YEARS]: years,
188
+ [HOURS]: [NaN],
189
+ [FULL_HOURS]: [NaN],
190
+ [MONTHS]: [NaN],
191
+ [WEEKS]: [NaN],
192
+ [SEMESTERS]: [NaN],
193
+ [QUARTERS]: [NaN],
194
+ [DAYS]: [NaN],
195
+ [MINUTES]: [NaN],
196
+ };
197
+ }
198
+ const listEqualsValueFromDate = R.pipe(
199
+ R.transpose,
200
+ R.reduce((acc, [type, date, start, end]) => {
201
+ return { ...acc, [type]: [R.equals(date, start), R.equals(date, end)] };
202
+ }, {}),
203
+ )([frequencies, destructuredDate, ...destructuredBoundaries]);
204
+
205
+ const equalsYears = R.prop('years')(listEqualsValueFromDate);
206
+ const equalsMonths = R.prop('months')(listEqualsValueFromDate);
207
+ const equalsDays = R.prop('days')(listEqualsValueFromDate);
208
+
209
+ const hoursRange = R.addIndex(R.map)((value, index) => {
210
+ const isSamePeriod = R.all(R.identity)([
211
+ R.nth(index, equalsDays),
212
+ R.nth(index, equalsMonths),
213
+ R.nth(index, equalsYears),
214
+ ]);
215
+ return updateLimit(R.nth(index, hours), isSamePeriod, value);
216
+ })([0, 23]);
217
+
218
+ return {
219
+ [YEARS]: years,
220
+ [HOURS]: hoursRange,
221
+ [FULL_HOURS]: hoursRange,
222
+ [MONTHS]: R.addIndex(R.map)((value, index) =>
223
+ updateLimit(R.nth(index)(months), R.nth(index, equalsYears), value),
224
+ )([1, 12]),
225
+ [WEEKS]: R.addIndex(R.map)((value, index) =>
226
+ updateLimit(R.nth(index)(weeks), R.nth(index, equalsYears), value),
227
+ )([1, getISOWeeksInYear(date)]),
228
+ [SEMESTERS]: R.addIndex(R.map)((value, index) =>
229
+ updateLimit(R.nth(index)(semesters), R.nth(index, equalsYears), value),
230
+ )([1, 2]),
231
+ [QUARTERS]: R.addIndex(R.map)((value, index) =>
232
+ updateLimit(R.nth(index)(quarters), R.nth(index, equalsYears), value),
233
+ )([1, 4]),
234
+ [DAYS]: R.addIndex(R.map)((value, index) => {
235
+ const isSamePeriod = R.and(R.nth(index, equalsMonths), R.nth(index, equalsYears));
236
+ return updateLimit(R.nth(index)(days), isSamePeriod, value);
237
+ })([1, getDaysInMonth(date)]),
238
+ [MINUTES]: R.addIndex(R.map)((value, index) => {
239
+ const isSamePeriod = R.all(R.identity)([
240
+ R.nth(index, R.prop('hours')(listEqualsValueFromDate)),
241
+ R.nth(index, equalsDays),
242
+ R.nth(index, equalsMonths),
243
+ R.nth(index, equalsYears),
244
+ ]);
245
+ return updateLimit(R.nth(index)(minutes), isSamePeriod, value);
246
+ })([0, 59]),
247
+ };
248
+ });
249
+
250
+ const getAjustedDate = frequency =>
251
+ R.when(
252
+ R.always(R.or(R.equals('W', frequency), R.equals('B', frequency))),
253
+ R.ifElse(isWeekInPreviousYear, startOfISOWeek, endOfISOWeek),
254
+ );
255
+
256
+ const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));
257
+ const getDefaultFrequency = ({ defaultFrequency, frequencies }) => {
258
+ const isNotIncludes = R.complement(R.and)(
259
+ R.includes(defaultFrequency)(frequencies),
260
+ R.includes(defaultFrequency)(supportedFrequenciesKey),
261
+ );
262
+ return R.or(R.either(R.isEmpty, R.isNil)(defaultFrequency), isNotIncludes)
263
+ ? R.head(frequencies)
264
+ : defaultFrequency;
265
+ };
266
+
267
+ const getFrequencyOptions = (frequencyoptions, frequencyLabels) => {
268
+ const availableFrequencies = R.or(R.isEmpty(frequencyoptions), R.isNil(frequencyoptions))
269
+ ? [defaultfreq]
270
+ : R.filter(freq => R.includes(freq, supportedFrequenciesKey))(frequencyoptions);
271
+ const options = R.map(option => ({ value: option, label: R.prop(option, frequencyLabels) }))(
272
+ availableFrequencies,
273
+ );
274
+ if (R.isEmpty(options)) return [{ value: 'A', label: R.propOr('Annual', 'A', frequencyLabels) }];
275
+ return options;
276
+ };
277
+
278
+ const getLayout = (type, range) => {
279
+ const layoutPeriods = R.propOr([], type)(layoutFrequencies);
280
+ const hasYear = R.complement(R.isEmpty)(getRanges(range.years));
281
+ return R.map(
282
+ R.reduce((acc, period) => {
283
+ if (hasYear) return R.append(R.evolve({ values: setRange(range) }, period), acc);
284
+ return R.append(
285
+ R.evolve(
286
+ { values: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([])) },
287
+ period,
288
+ ),
289
+ acc,
290
+ );
291
+ }, []),
292
+ )(layoutPeriods);
293
+ };
294
+
295
+ const getPeriodValue = R.pipe(R.zip(formatOrder), R.fromPairs);
296
+
297
+ const getDate = (type, dateValue, value, isEnd) => {
298
+ if (R.isNil(value)) return undefined;
299
+ const dateValueUpdated = R.pipe(
300
+ R.ifElse(R.pipe(getHour, R.isNil), R.identity, R.set(R.lensProp('hour'), getHour(value))),
301
+ R.mergeRight(dateValue),
302
+ R.over(R.lensProp('month'), R.defaultTo(isEnd ? 12 : 1)),
303
+ R.over(R.lensProp('day'), R.defaultTo(isEnd ? 31 : 1)),
304
+ R.over(R.lensProp('hour'), R.defaultTo(isEnd ? 23 : 0)),
305
+ R.over(R.lensProp('minute'), R.defaultTo(isEnd ? 59 : 0)),
306
+ )(value);
307
+ const { year, month, day, hour, minute } = dateValueUpdated;
308
+ const date = new Date(year, R.dec(month), day, hour, minute);
309
+ if (R.equals(type, 'Q')) {
310
+ if (R.isEmpty(dateValue) && isEnd) {
311
+ return R.pipe(startOfYear, R.flip(addQuarters)(3))(date);
312
+ }
313
+ return R.pipe(startOfYear, date =>
314
+ addQuarters(date, dec(R.propOr(0, QUARTER)(dateValueUpdated))),
315
+ )(date);
316
+ }
317
+ if (R.equals(type, 'S')) {
318
+ if (R.isEmpty(dateValue) && isEnd) return R.pipe(startOfYear, addSemesters(2))(date);
319
+ return R.pipe(startOfYear, addSemesters(R.prop(SEMESTER)(dateValueUpdated)))(date);
320
+ }
321
+ if (R.or(R.equals(type, 'W'), R.equals(type, 'B'))) {
322
+ const weekDate = new Date(year, 6, 1, 0, 0, 0, 0);
323
+ if (R.isEmpty(dateValue)) {
324
+ return R.pipe(
325
+ R.ifElse(R.always(isEnd), endOfISOWeekYear, startOfISOWeekYear),
326
+ getAjustedDate(type),
327
+ )(weekDate);
328
+ }
329
+ const weeksInYear = R.dec(getISOWeeksInYear(weekDate));
330
+ const nbWeeks = R.pipe(
331
+ R.propOr(0, WEEK),
332
+ R.dec,
333
+ R.ifElse(R.lt(weeksInYear), R.always(weeksInYear), R.identity),
334
+ )(dateValueUpdated);
335
+ return R.pipe(
336
+ startOfISOWeekYear,
337
+ date => addWeeks(date, nbWeeks),
338
+ R.of,
339
+ R.map(getAjustedDate(type)),
340
+ R.head,
341
+ )(weekDate);
342
+ }
343
+ return date;
344
+ };
345
+
346
+ const getDateInTheRange = boundaries => date => {
347
+ if (R.isNil(date)) return date;
348
+ const [start, end] = boundaries;
349
+ return isWithinInterval(date, { start, end }) ? date : closestTo(date, boundaries);
350
+ };
351
+
352
+ const numeralFormat = {
353
+ [YEAR]: R.identity,
354
+ [SEMESTER]: R.identity,
355
+ [QUARTER]: R.identity,
356
+ [MONTH]: getFormat,
357
+ [WEEK]: getFormat,
358
+ [DAY]: getFormat,
359
+ [FULL_HOUR]: R.converge(R.concat, [getFormat, R.always(':00')]),
360
+ [HOUR]: getFormat,
361
+ [MINUTE]: getFormat,
362
+ };
363
+
364
+ const useStyles = makeStyles(theme => ({
365
+ headerContainer: {
366
+ marginBottom: theme.spacing(0.5),
367
+ },
368
+ sideLabel: {
369
+ display: 'flex',
370
+ alignItems: 'center',
371
+ justifyContent: 'flex-start',
372
+ paddingRight: theme.spacing(0.5),
373
+ paddingBottom: theme.spacing(0.5),
374
+ },
375
+ headerLabel: {
376
+ display: 'flex',
377
+ justifyContent: 'center',
378
+ },
379
+ selectContainer: {
380
+ marginTop: theme.spacing(1),
381
+ },
382
+ }));
383
+
384
+ const CustomPeriodPicker = ({
385
+ defaultFrequency = defaultfreq,
386
+ availableFrequencies = [defaultfreq],
387
+ boundaries: _boundaries,
388
+ availableBoundaries: _availableBoundaries,
389
+ changePeriod,
390
+ changeFrequency,
391
+ period: _period,
392
+ labels,
393
+ periodDisabled,
394
+ frequencyDisabled,
395
+ disabled
396
+ }) => {
397
+ const classes = useStyles();
398
+ const frequencies = getFrequencyOptions(availableFrequencies, labels);
399
+ if (R.isEmpty(frequencies)) return null;
400
+ const frequency = getDefaultFrequency({
401
+ defaultFrequency,
402
+ frequencies: R.pluck("value")(frequencies)
403
+ });
404
+ const period = R.defaultTo([], _period);
405
+ const boundaries = R.defaultTo([], _boundaries);
406
+ const availableBoundaries = R.defaultTo([], _availableBoundaries);
407
+ const isPeriodDisabled = R.or(R.any(R.isEmpty)([period, boundaries]), periodDisabled);
408
+ const startDate = R.head(period);
409
+ const endDate = R.last(period);
410
+ const startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];
411
+ const endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];
412
+ const ranges = [
413
+ getRange(startPeriodBoundaries, startDate),
414
+ getRange(endPeriodBoundaries, endDate)
415
+ ];
416
+ const showFrequency = R.and(R.gt(R.length(frequencies), 1), R.not(frequencyDisabled));
417
+ const destructuringDates = R.map(getDestructuringDate)(period);
418
+ const onClickFrequency = (e, value) => {
419
+ if (R.is(Function, changeFrequency)) return changeFrequency(value);
420
+ };
421
+ const _getIsDisabled = (getter) => (value, id) => {
422
+ const fn = R.prop(getter)({ start: R.head, end: R.last });
423
+ if (!isValidNumber(Number(value)) || R.length(availableBoundaries) !== 2) {
424
+ return false;
425
+ }
426
+ const dateValue = getPeriodValue(fn(destructuringDates));
427
+ let date = getDate(frequency, dateValue, { [id]: Number(value) }, getter === "end");
428
+ const [availableStart, availableEnd] = availableBoundaries;
429
+ if (id === "year") {
430
+ if (isSameYear(date, availableStart)) {
431
+ date = availableStart;
432
+ } else if (isSameYear(date, availableEnd)) {
433
+ date = availableEnd;
434
+ }
435
+ }
436
+ return compareAsc(date, availableStart) === -1 || compareDesc(date, availableEnd) === -1;
437
+ };
438
+ const onChangePeriod = (getter, id) => (value) => {
439
+ const fn = R.prop(getter)({ start: R.head, end: R.last });
440
+ const lensIndex = R.prop(getter)({ start: R.lensIndex(0), end: R.lensIndex(1) });
441
+ const dateValue = getPeriodValue(fn(destructuringDates));
442
+ const selectedValue = R.ifElse(
443
+ isValidNumber,
444
+ R.assoc(id, R.__, {}),
445
+ R.always(void 0)
446
+ )(Number(value));
447
+ const newDate = getDate(frequency, dateValue, selectedValue, getter === "end");
448
+ if (R.is(Function, changePeriod)) {
449
+ return changePeriod(
450
+ R.pipe(R.set(lensIndex, newDate), ([startDate2, endDate2]) => [
451
+ getDateInTheRange(startPeriodBoundaries)(startDate2),
452
+ getDateInTheRange(endPeriodBoundaries)(endDate2)
453
+ ])(period)
454
+ );
455
+ }
456
+ };
457
+ return /* @__PURE__ */ jsxs(Grid, { "data-testid": "period-picker-test-id", container: true, direction: "row", children: [
458
+ showFrequency && /* @__PURE__ */ jsx(
459
+ Grid,
460
+ {
461
+ item: true,
462
+ xs: 12,
463
+ className: classes.headerContainer,
464
+ "data-testid": "period-picker-frequency-test-id",
465
+ children: R.map((freq) => /* @__PURE__ */ jsx(
466
+ Button,
467
+ {
468
+ sx: { margin: 2 },
469
+ "aria-label": freq.label,
470
+ onClick: (e) => onClickFrequency(e, R.prop("value", freq)),
471
+ selected: frequency,
472
+ children: freq.label
473
+ },
474
+ freq.value
475
+ ))(frequencies)
476
+ }
477
+ ),
478
+ R.not(isPeriodDisabled) && /* @__PURE__ */ jsx(Grid, { container: true, item: true, xs: 12, justifyContent: "space-between", children: R.map(({ getter, layout, label, value, testId, getIsDisabled }) => /* @__PURE__ */ jsxs(Grid, { item: true, xs: 5, "data-testid": testId, justifyContent: "space-between", children: [
479
+ /* @__PURE__ */ jsx(Grid, { container: true, direction: "row", children: /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, className: classes.sideLabel, children: /* @__PURE__ */ jsx(
480
+ Typography,
481
+ {
482
+ variant: "body2",
483
+ tabIndex: 0,
484
+ "aria-label": label,
485
+ children: label
486
+ }
487
+ ) }) }),
488
+ /* @__PURE__ */ jsx(Grid, { container: true, direction: "row", children: /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(Grid, { container: true, className: classes.headerContainer, spacing: 1, children: R.map(
489
+ (row) => R.map(({ id, values }) => {
490
+ const selectedValue = R.isNil(R.prop(id)(value)) ? R.head(values) : R.prop(id)(value);
491
+ return /* @__PURE__ */ jsx(
492
+ Grid,
493
+ {
494
+ item: true,
495
+ xs: 12 / R.length(row),
496
+ className: classes.selectContainer,
497
+ children: /* @__PURE__ */ jsx(
498
+ Select,
499
+ {
500
+ onChange: onChangePeriod(getter, id),
501
+ label: R.prop(id)(labels),
502
+ id: `${id}-${label}`,
503
+ dataTestId: `${id}-${label}-test-id`,
504
+ value: selectedValue,
505
+ disabled: disabled || false,
506
+ items: R.map((option) => ({
507
+ id,
508
+ value: option,
509
+ disabled: getIsDisabled(option, id),
510
+ label: R.ifElse(
511
+ R.is(String),
512
+ R.identity,
513
+ R.prop(id)(numeralFormat)
514
+ )(option)
515
+ }))(values)
516
+ }
517
+ )
518
+ },
519
+ id
520
+ );
521
+ })(row)
522
+ )(layout) }) }) })
523
+ ] }, getter))([
524
+ {
525
+ getter: "start",
526
+ testId: "period-picker-start-period-test-id",
527
+ layout: getLayout(frequency, R.head(ranges)),
528
+ label: R.prop("start")(labels),
529
+ value: getPeriodValue(R.head(destructuringDates)),
530
+ getIsDisabled: _getIsDisabled("start")
531
+ },
532
+ {
533
+ getter: "end",
534
+ testId: "period-picker-end-period-test-id",
535
+ layout: getLayout(
536
+ frequency,
537
+ R.last(ranges)),
538
+ label: R.prop("end")(labels),
539
+ value: getPeriodValue(R.last(destructuringDates)),
540
+ getIsDisabled: _getIsDisabled("end")
541
+ }
542
+ ]) })
543
+ ] });
544
+ };
545
+ const PeriodPicker = withBlank(({ periodDisabled, frequencyDisabled, isBlank }) => ({
546
+ isBlank: R.or(isBlank, R.and(periodDisabled, frequencyDisabled))
547
+ }))(CustomPeriodPicker);
548
+
549
+ export { PeriodPicker };
550
+ //# sourceMappingURL=PeriodPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeriodPicker.js","sources":["../../src/PeriodPicker/constants.js","../../src/PeriodPicker/lib.js","../../src/PeriodPicker/styles.js","../../src/PeriodPicker/PeriodPicker.jsx"],"sourcesContent":["export const YEARS = 'years';\nexport const SEMESTERS = 'semesters';\nexport const QUARTERS = 'quarters';\nexport const MONTHS = 'months';\nexport const WEEKS = 'weeks';\nexport const DAYS = 'days';\nexport const FULL_HOURS = 'full_hours';\nexport const HOURS = 'hours';\nexport const MINUTES = 'minutes';\nexport const frequencies = [\n YEARS,\n MONTHS,\n DAYS,\n HOURS,\n MINUTES,\n FULL_HOURS,\n QUARTERS,\n WEEKS,\n SEMESTERS,\n];\n\nexport const YEAR = 'year';\nexport const SEMESTER = 'semester';\nexport const QUARTER = 'quarter';\nexport const MONTH = 'month';\nexport const WEEK = 'week';\nexport const DAY = 'day';\nexport const FULL_HOUR = 'full_hour';\nexport const HOUR = 'hour';\nexport const MINUTE = 'minute';\n\nexport const layoutFrequencies = {\n S: [\n [\n { values: YEARS, id: YEAR },\n { values: SEMESTERS, id: SEMESTER },\n ],\n ],\n A: [[{ values: YEARS, id: YEAR }]],\n Q: [\n [\n { values: YEARS, id: YEAR },\n { values: QUARTERS, id: QUARTER },\n ],\n ],\n M: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n ],\n ],\n W: [\n [\n { values: YEARS, id: YEAR },\n { values: WEEKS, id: WEEK },\n ],\n ],\n B: [\n [\n { values: YEARS, id: YEAR },\n { values: WEEKS, id: WEEK },\n ],\n ],\n D: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n ],\n H: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n [{ values: FULL_HOURS, id: FULL_HOUR }],\n ],\n N: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n [\n { values: HOURS, id: HOUR },\n { values: MINUTES, id: MINUTE },\n ],\n ],\n};\n\nexport const defaultOutputValues = {\n [YEARS]: '----',\n [SEMESTERS]: '-',\n [QUARTERS]: '-',\n [MONTHS]: '--',\n [WEEKS]: '--',\n [DAYS]: '--',\n [FULL_HOURS]: '--:00',\n [HOURS]: '--',\n [MINUTES]: '--',\n};\n\nexport const formatOrder = [YEAR, MONTH, DAY, HOUR, MINUTE, FULL_HOUR, QUARTER, WEEK, SEMESTER];\nexport const defaultfreq = 'A';\n","import * as R from 'ramda';\nimport {\n addDays,\n addMonths,\n addQuarters,\n addWeeks,\n closestTo,\n endOfISOWeek,\n endOfISOWeekYear,\n format,\n getDaysInMonth,\n getISOWeeksInYear,\n getMonth,\n getYear,\n isWithinInterval,\n parseISO,\n startOfISOWeek,\n startOfISOWeekYear,\n startOfYear,\n} from 'date-fns';\nimport numeral from 'numeral';\nimport {\n YEAR,\n SEMESTER,\n QUARTER,\n MONTH,\n WEEK,\n DAY,\n HOUR,\n FULL_HOUR,\n MINUTE,\n YEARS,\n SEMESTERS,\n QUARTERS,\n MONTHS,\n WEEKS,\n DAYS,\n FULL_HOURS,\n HOURS,\n MINUTES,\n layoutFrequencies,\n frequencies,\n defaultOutputValues,\n formatOrder,\n defaultfreq,\n} from './constants';\n\nconst isWeekInPreviousYear = date => {\n const startIsoWeek = startOfISOWeek(date);\n return R.pipe(\n R.times(n => getYear(addDays(startIsoWeek, n))),\n R.uniq,\n R.length,\n R.equals(1),\n )(4);\n};\nconst supportedFrequenciesKey = R.keys(layoutFrequencies);\nconst dec = R.ifElse(R.gte(0), R.identity, R.dec);\nconst addSemesters =\n (semester = 0) =>\n date =>\n addMonths(date, R.multiply(6)(dec(Number(semester))));\nconst getSemesterValue = R.ifElse(R.pipe(Number, R.inc, R.gte(6)), R.always(1), R.always(2));\nconst getFormat = value => numeral(value).format('[0]0');\nconst getHour = R.pipe(R.pick([HOUR, FULL_HOUR]), R.values, R.head);\nconst getRanges = (value = [0]) => R.range(R.head(value), R.inc(R.last(value)));\nconst setRange = range => prop =>\n R.pipe(getRanges, R.prepend(R.prop(prop)(defaultOutputValues)))(R.prop(prop)(range));\n// export const getDestructuringDate = date =>\n// R.pipe(\n// date => format(date, 'yyyy M d H m HH Q I [S]'),\n// R.replace(/S/, R.pipe(date => getMonth(date), getSemesterValue)(date)),\n// R.split(' '),\n// R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),\n// )(date);\nexport const getDestructuringDate = date => {\n if (!date || isNaN(new Date(date))) return [];\n const validDate = typeof date === 'string' ? parseISO(date) : date;\n return R.pipe(\n d => {\n const semester = getSemesterValue(getMonth(d));\n const formatted = format(d, 'yyyy M d H m HH Q I');\n return `${formatted} ${semester}`;\n },\n R.split(' '),\n R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),\n )(validDate);\n};\n\nconst updateLimit = (value, isSamePeriod, defaultValue) => {\n if (isSamePeriod) return value;\n return defaultValue;\n};\n\nexport const getRange = R.curry((boundaries, date) => {\n if (R.isNil(R.head(boundaries)) || R.isNil(R.last(boundaries))) {\n return {\n [YEARS]: [NaN],\n [HOURS]: [NaN],\n [FULL_HOURS]: [NaN],\n [MONTHS]: [NaN],\n [WEEKS]: [NaN],\n [SEMESTERS]: [NaN],\n [QUARTERS]: [NaN],\n [DAYS]: [NaN],\n [MINUTES]: [NaN],\n };\n }\n const destructuredDate = getDestructuringDate(date);\n const destructuredBoundaries = R.map(getDestructuringDate, boundaries);\n const [years, months, days, hours, minutes, , quarters, weeks, semesters] =\n R.transpose(destructuredBoundaries);\n\n if (R.isNil(date)) {\n return {\n [YEARS]: years,\n [HOURS]: [NaN],\n [FULL_HOURS]: [NaN],\n [MONTHS]: [NaN],\n [WEEKS]: [NaN],\n [SEMESTERS]: [NaN],\n [QUARTERS]: [NaN],\n [DAYS]: [NaN],\n [MINUTES]: [NaN],\n };\n }\n const listEqualsValueFromDate = R.pipe(\n R.transpose,\n R.reduce((acc, [type, date, start, end]) => {\n return { ...acc, [type]: [R.equals(date, start), R.equals(date, end)] };\n }, {}),\n )([frequencies, destructuredDate, ...destructuredBoundaries]);\n\n const equalsYears = R.prop('years')(listEqualsValueFromDate);\n const equalsMonths = R.prop('months')(listEqualsValueFromDate);\n const equalsDays = R.prop('days')(listEqualsValueFromDate);\n\n const hoursRange = R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.all(R.identity)([\n R.nth(index, equalsDays),\n R.nth(index, equalsMonths),\n R.nth(index, equalsYears),\n ]);\n return updateLimit(R.nth(index, hours), isSamePeriod, value);\n })([0, 23]);\n\n return {\n [YEARS]: years,\n [HOURS]: hoursRange,\n [FULL_HOURS]: hoursRange,\n [MONTHS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(months), R.nth(index, equalsYears), value),\n )([1, 12]),\n [WEEKS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(weeks), R.nth(index, equalsYears), value),\n )([1, getISOWeeksInYear(date)]),\n [SEMESTERS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(semesters), R.nth(index, equalsYears), value),\n )([1, 2]),\n [QUARTERS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(quarters), R.nth(index, equalsYears), value),\n )([1, 4]),\n [DAYS]: R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.and(R.nth(index, equalsMonths), R.nth(index, equalsYears));\n return updateLimit(R.nth(index)(days), isSamePeriod, value);\n })([1, getDaysInMonth(date)]),\n [MINUTES]: R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.all(R.identity)([\n R.nth(index, R.prop('hours')(listEqualsValueFromDate)),\n R.nth(index, equalsDays),\n R.nth(index, equalsMonths),\n R.nth(index, equalsYears),\n ]);\n return updateLimit(R.nth(index)(minutes), isSamePeriod, value);\n })([0, 59]),\n };\n});\n\nconst getAjustedDate = frequency =>\n R.when(\n R.always(R.or(R.equals('W', frequency), R.equals('B', frequency))),\n R.ifElse(isWeekInPreviousYear, startOfISOWeek, endOfISOWeek),\n );\n\nexport const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));\nexport const getDefaultFrequency = ({ defaultFrequency, frequencies }) => {\n const isNotIncludes = R.complement(R.and)(\n R.includes(defaultFrequency)(frequencies),\n R.includes(defaultFrequency)(supportedFrequenciesKey),\n );\n return R.or(R.either(R.isEmpty, R.isNil)(defaultFrequency), isNotIncludes)\n ? R.head(frequencies)\n : defaultFrequency;\n};\n\nexport const getFrequencyOptions = (frequencyoptions, frequencyLabels) => {\n const availableFrequencies = R.or(R.isEmpty(frequencyoptions), R.isNil(frequencyoptions))\n ? [defaultfreq]\n : R.filter(freq => R.includes(freq, supportedFrequenciesKey))(frequencyoptions);\n const options = R.map(option => ({ value: option, label: R.prop(option, frequencyLabels) }))(\n availableFrequencies,\n );\n if (R.isEmpty(options)) return [{ value: 'A', label: R.propOr('Annual', 'A', frequencyLabels) }];\n return options;\n};\n\nexport const getLayout = (type, range) => {\n const layoutPeriods = R.propOr([], type)(layoutFrequencies);\n const hasYear = R.complement(R.isEmpty)(getRanges(range.years));\n return R.map(\n R.reduce((acc, period) => {\n if (hasYear) return R.append(R.evolve({ values: setRange(range) }, period), acc);\n return R.append(\n R.evolve(\n { values: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([])) },\n period,\n ),\n acc,\n );\n }, []),\n )(layoutPeriods);\n};\n\nexport const getPeriodValue = R.pipe(R.zip(formatOrder), R.fromPairs);\n\nexport const getDate = (type, dateValue, value, isEnd) => {\n if (R.isNil(value)) return undefined;\n const dateValueUpdated = R.pipe(\n R.ifElse(R.pipe(getHour, R.isNil), R.identity, R.set(R.lensProp('hour'), getHour(value))),\n R.mergeRight(dateValue),\n R.over(R.lensProp('month'), R.defaultTo(isEnd ? 12 : 1)),\n R.over(R.lensProp('day'), R.defaultTo(isEnd ? 31 : 1)),\n R.over(R.lensProp('hour'), R.defaultTo(isEnd ? 23 : 0)),\n R.over(R.lensProp('minute'), R.defaultTo(isEnd ? 59 : 0)),\n )(value);\n const { year, month, day, hour, minute } = dateValueUpdated;\n const date = new Date(year, R.dec(month), day, hour, minute);\n if (R.equals(type, 'Q')) {\n if (R.isEmpty(dateValue) && isEnd) {\n return R.pipe(startOfYear, R.flip(addQuarters)(3))(date);\n }\n return R.pipe(startOfYear, date =>\n addQuarters(date, dec(R.propOr(0, QUARTER)(dateValueUpdated))),\n )(date);\n }\n if (R.equals(type, 'S')) {\n if (R.isEmpty(dateValue) && isEnd) return R.pipe(startOfYear, addSemesters(2))(date);\n return R.pipe(startOfYear, addSemesters(R.prop(SEMESTER)(dateValueUpdated)))(date);\n }\n if (R.or(R.equals(type, 'W'), R.equals(type, 'B'))) {\n const weekDate = new Date(year, 6, 1, 0, 0, 0, 0);\n if (R.isEmpty(dateValue)) {\n return R.pipe(\n R.ifElse(R.always(isEnd), endOfISOWeekYear, startOfISOWeekYear),\n getAjustedDate(type),\n )(weekDate);\n }\n const weeksInYear = R.dec(getISOWeeksInYear(weekDate));\n const nbWeeks = R.pipe(\n R.propOr(0, WEEK),\n R.dec,\n R.ifElse(R.lt(weeksInYear), R.always(weeksInYear), R.identity),\n )(dateValueUpdated);\n return R.pipe(\n startOfISOWeekYear,\n date => addWeeks(date, nbWeeks),\n R.of,\n R.map(getAjustedDate(type)),\n R.head,\n )(weekDate);\n }\n return date;\n};\n\nexport const getDateInTheRange = boundaries => date => {\n if (R.isNil(date)) return date;\n const [start, end] = boundaries;\n return isWithinInterval(date, { start, end }) ? date : closestTo(date, boundaries);\n};\n\nexport const numeralFormat = {\n [YEAR]: R.identity,\n [SEMESTER]: R.identity,\n [QUARTER]: R.identity,\n [MONTH]: getFormat,\n [WEEK]: getFormat,\n [DAY]: getFormat,\n [FULL_HOUR]: R.converge(R.concat, [getFormat, R.always(':00')]),\n [HOUR]: getFormat,\n [MINUTE]: getFormat,\n};\n","import makeStyles from '@mui/styles/makeStyles';\n\nexport default makeStyles(theme => ({\n headerContainer: {\n marginBottom: theme.spacing(0.5),\n },\n sideLabel: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n paddingRight: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n },\n headerLabel: {\n display: 'flex',\n justifyContent: 'center',\n },\n selectContainer: {\n marginTop: theme.spacing(1),\n },\n}));\n","import React from 'react';\nimport * as R from 'ramda';\nimport { compareAsc, compareDesc, isSameYear } from 'date-fns';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { numeralFormat } from './lib';\nimport { Button } from '../Button/Button';\nimport { Select } from '../Select/Select';\nimport useStyles from './styles';\nimport { defaultfreq } from './constants';\nimport {\n getRange,\n getFrequencyOptions,\n getDefaultFrequency,\n getLayout,\n getPeriodValue,\n getDate,\n getDateInTheRange,\n getDestructuringDate,\n isValidNumber,\n} from './lib';\nimport { withBlank } from '../utils';\n\nconst CustomPeriodPicker = ({\n defaultFrequency = defaultfreq,\n availableFrequencies = [defaultfreq],\n boundaries: _boundaries,\n availableBoundaries: _availableBoundaries,\n changePeriod,\n changeFrequency,\n period: _period,\n labels,\n periodDisabled,\n frequencyDisabled,\n disabled,\n}) => {\n const classes = useStyles();\n const frequencies = getFrequencyOptions(availableFrequencies, labels);\n if (R.isEmpty(frequencies)) return null;\n const frequency = getDefaultFrequency({\n defaultFrequency,\n frequencies: R.pluck('value')(frequencies),\n });\n const period = R.defaultTo([], _period);\n const boundaries = R.defaultTo([], _boundaries);\n const availableBoundaries = R.defaultTo([], _availableBoundaries);\n const isPeriodDisabled = R.or(R.any(R.isEmpty)([period, boundaries]), periodDisabled);\n const startDate = R.head(period);\n const endDate = R.last(period);\n\n const startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];\n const endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];\n const ranges = [\n getRange(startPeriodBoundaries, startDate),\n getRange(endPeriodBoundaries, endDate),\n ];\n\n const showFrequency = R.and(R.gt(R.length(frequencies), 1), R.not(frequencyDisabled));\n const destructuringDates = R.map(getDestructuringDate)(period);\n\n const onClickFrequency = (e, value) => {\n if (R.is(Function, changeFrequency)) return changeFrequency(value);\n };\n const _getIsDisabled = getter => (value, id) => {\n const fn = R.prop(getter)({ start: R.head, end: R.last });\n if (!isValidNumber(Number(value)) || R.length(availableBoundaries) !== 2) {\n return false;\n }\n const dateValue = getPeriodValue(fn(destructuringDates));\n\n let date = getDate(frequency, dateValue, { [id]: Number(value) }, getter === 'end');\n const [availableStart, availableEnd] = availableBoundaries;\n if (id === 'year') {\n if (isSameYear(date, availableStart)) {\n date = availableStart;\n } else if (isSameYear(date, availableEnd)) {\n date = availableEnd;\n }\n }\n return compareAsc(date, availableStart) === -1 || compareDesc(date, availableEnd) === -1;\n };\n const onChangePeriod = (getter, id) => value => {\n const fn = R.prop(getter)({ start: R.head, end: R.last });\n const lensIndex = R.prop(getter)({ start: R.lensIndex(0), end: R.lensIndex(1) });\n const dateValue = getPeriodValue(fn(destructuringDates));\n const selectedValue = R.ifElse(\n isValidNumber,\n R.assoc(id, R.__, {}),\n R.always(undefined),\n )(Number(value));\n const newDate = getDate(frequency, dateValue, selectedValue, getter === 'end');\n if (R.is(Function, changePeriod)) {\n return changePeriod(\n R.pipe(R.set(lensIndex, newDate), ([startDate, endDate]) => [\n getDateInTheRange(startPeriodBoundaries)(startDate),\n getDateInTheRange(endPeriodBoundaries)(endDate),\n ])(period),\n );\n }\n };\n return (\n <Grid data-testid=\"period-picker-test-id\" container direction=\"row\">\n {showFrequency && (\n <Grid\n item\n xs={12}\n className={classes.headerContainer}\n data-testid=\"period-picker-frequency-test-id\"\n >\n {R.map(freq => (\n <Button\n sx={{ margin: 2 }}\n aria-label={freq.label}\n key={freq.value}\n onClick={e => onClickFrequency(e, R.prop('value', freq))}\n selected={frequency}\n >\n {freq.label}\n </Button>\n ))(frequencies)}\n </Grid>\n )}\n {R.not(isPeriodDisabled) && (\n <Grid container item xs={12} justifyContent={'space-between'}>\n {R.map(({ getter, layout, label, value, testId, getIsDisabled }) => (\n <Grid key={getter} item xs={5} data-testid={testId} justifyContent={'space-between'}>\n <Grid container direction=\"row\">\n <Grid item xs={12} className={classes.sideLabel}>\n <Typography\n variant=\"body2\"\n tabIndex={0} // eslint-disable-line jsx-a11y/no-noninteractive-tabindex\n aria-label={label}\n >\n {label}\n </Typography>\n </Grid>\n </Grid>\n <Grid container direction=\"row\">\n <Grid item xs={12}>\n <Grid container className={classes.headerContainer} spacing={1}>\n {R.map(row =>\n R.map(({ id, values }) => {\n const selectedValue = R.isNil(R.prop(id)(value))\n ? R.head(values)\n : R.prop(id)(value);\n return (\n <Grid\n key={id}\n item\n xs={12 / R.length(row)}\n className={classes.selectContainer}\n >\n <Select\n onChange={onChangePeriod(getter, id)}\n label={R.prop(id)(labels)}\n id={`${id}-${label}`}\n dataTestId={`${id}-${label}-test-id`}\n value={selectedValue}\n disabled={disabled || false}\n items={R.map(option => ({\n id,\n value: option,\n disabled: getIsDisabled(option, id),\n label: R.ifElse(\n R.is(String),\n R.identity,\n R.prop(id)(numeralFormat),\n )(option),\n }))(values)}\n />\n </Grid>\n );\n })(row),\n )(layout)}\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n ))([\n {\n getter: 'start',\n testId: 'period-picker-start-period-test-id',\n layout: getLayout(frequency, R.head(ranges)),\n label: R.prop('start')(labels),\n value: getPeriodValue(R.head(destructuringDates)),\n getIsDisabled: _getIsDisabled('start'),\n },\n {\n getter: 'end',\n testId: 'period-picker-end-period-test-id',\n layout: getLayout(frequency, R.last(ranges), /*R.last(availableRanges)*/ []),\n label: R.prop('end')(labels),\n value: getPeriodValue(R.last(destructuringDates)),\n getIsDisabled: _getIsDisabled('end'),\n },\n ])}\n </Grid>\n )}\n </Grid>\n );\n};\n\nexport const PeriodPicker = withBlank(({ periodDisabled, frequencyDisabled, isBlank }) => ({\n isBlank: R.or(isBlank, R.and(periodDisabled, frequencyDisabled)),\n}))(CustomPeriodPicker);\n"],"names":["startDate","endDate"],"mappings":"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"}