@hitachivantara/uikit-react-core 5.5.0 → 5.6.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 (504) hide show
  1. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  2. package/dist/cjs/components/Accordion/accordionClasses.cjs.map +1 -1
  3. package/dist/cjs/components/ActionBar/actionBarClasses.cjs.map +1 -1
  4. package/dist/cjs/components/ActionsGeneric/actionsGenericClasses.cjs.map +1 -1
  5. package/dist/cjs/components/AppSwitcher/Action/actionClasses.cjs.map +1 -1
  6. package/dist/cjs/components/AppSwitcher/appSwitcherClasses.cjs.map +1 -1
  7. package/dist/cjs/components/Avatar/avatarClasses.cjs.map +1 -1
  8. package/dist/cjs/components/Badge/badgeClasses.cjs.map +1 -1
  9. package/dist/cjs/components/Banner/Banner.cjs.map +1 -1
  10. package/dist/cjs/components/Banner/BannerContent/ActionContainer/actionContainerClasses.cjs.map +1 -1
  11. package/dist/cjs/components/Banner/BannerContent/MessageContainer/messageContainerClasses.cjs.map +1 -1
  12. package/dist/cjs/components/Banner/BannerContent/bannerContentClasses.cjs.map +1 -1
  13. package/dist/cjs/components/Banner/bannerClasses.cjs.map +1 -1
  14. package/dist/cjs/components/BaseCheckBox/BaseCheckBox.cjs.map +1 -1
  15. package/dist/cjs/components/BaseCheckBox/baseCheckBoxClasses.cjs.map +1 -1
  16. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
  17. package/dist/cjs/components/BaseDropdown/baseDropdownClasses.cjs.map +1 -1
  18. package/dist/cjs/components/BaseInput/BaseInput.cjs +1 -1
  19. package/dist/cjs/components/BaseInput/BaseInput.cjs.map +1 -1
  20. package/dist/cjs/components/BaseInput/baseInputClasses.cjs.map +1 -1
  21. package/dist/cjs/components/BaseRadio/BaseRadio.cjs.map +1 -1
  22. package/dist/cjs/components/BaseRadio/baseRadioClasses.cjs.map +1 -1
  23. package/dist/cjs/components/BaseSwitch/BaseSwitch.cjs.map +1 -1
  24. package/dist/cjs/components/BaseSwitch/baseSwitchClasses.cjs.map +1 -1
  25. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs.map +1 -1
  26. package/dist/cjs/components/BreadCrumb/Page/pageClasses.cjs.map +1 -1
  27. package/dist/cjs/components/BreadCrumb/PathElement/pathElementClasses.cjs.map +1 -1
  28. package/dist/cjs/components/BreadCrumb/breadCrumbClasses.cjs.map +1 -1
  29. package/dist/cjs/components/BulkActions/bulkActionsClasses.cjs.map +1 -1
  30. package/dist/cjs/components/Button/buttonClasses.cjs.map +1 -1
  31. package/dist/cjs/components/Calendar/CalendarHeader/calendarHeaderClasses.cjs.map +1 -1
  32. package/dist/cjs/components/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.cjs +6 -7
  33. package/dist/cjs/components/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.cjs.map +1 -1
  34. package/dist/cjs/components/Calendar/CalendarNavigation/ComposedNavigation/composedNavigationClasses.cjs.map +1 -1
  35. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs +5 -8
  36. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs.map +1 -1
  37. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/monthSelectorClasses.cjs.map +1 -1
  38. package/dist/cjs/components/Calendar/CalendarNavigation/Navigation/navigationClasses.cjs.map +1 -1
  39. package/dist/cjs/components/Calendar/CalendarWeekLabels/calendarWeekLabelsClasses.cjs.map +1 -1
  40. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs +6 -7
  41. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs.map +1 -1
  42. package/dist/cjs/components/Calendar/SingleCalendar/calendarCellClasses.cjs.map +1 -1
  43. package/dist/cjs/components/Calendar/SingleCalendar/singleCalendarClasses.cjs.map +1 -1
  44. package/dist/cjs/components/Calendar/calendarClasses.cjs.map +1 -1
  45. package/dist/cjs/components/Calendar/utils.cjs +7 -7
  46. package/dist/cjs/components/Calendar/utils.cjs.map +1 -1
  47. package/dist/cjs/components/Card/Content/contentClasses.cjs.map +1 -1
  48. package/dist/cjs/components/Card/Header/Header.cjs.map +1 -1
  49. package/dist/cjs/components/Card/Header/headerClasses.cjs.map +1 -1
  50. package/dist/cjs/components/Card/Media/Media.cjs.map +1 -1
  51. package/dist/cjs/components/Card/Media/mediaClasses.cjs.map +1 -1
  52. package/dist/cjs/components/Card/cardClasses.cjs.map +1 -1
  53. package/dist/cjs/components/CheckBox/checkBoxClasses.cjs.map +1 -1
  54. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
  55. package/dist/cjs/components/CheckBoxGroup/checkBoxGroupClasses.cjs.map +1 -1
  56. package/dist/cjs/components/Container/containerClasses.cjs.map +1 -1
  57. package/dist/cjs/components/Controls/LeftControl/leftControlClasses.cjs.map +1 -1
  58. package/dist/cjs/components/Controls/RightControl/rightControlClasses.cjs.map +1 -1
  59. package/dist/cjs/components/Controls/controlClasses.cjs.map +1 -1
  60. package/dist/cjs/components/DatePicker/DatePicker.cjs +3 -4
  61. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  62. package/dist/cjs/components/DatePicker/datePickerClasses.cjs.map +1 -1
  63. package/dist/cjs/components/DatePicker/useVisibleDate.cjs +10 -14
  64. package/dist/cjs/components/DatePicker/useVisibleDate.cjs.map +1 -1
  65. package/dist/cjs/components/DatePicker/utils.cjs +2 -3
  66. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
  67. package/dist/cjs/components/Dialog/Actions/actionsClasses.cjs.map +1 -1
  68. package/dist/cjs/components/Dialog/Content/contentClasses.cjs.map +1 -1
  69. package/dist/cjs/components/Dialog/Title/Title.cjs.map +1 -1
  70. package/dist/cjs/components/Dialog/Title/titleClasses.cjs.map +1 -1
  71. package/dist/cjs/components/Dialog/dialogClasses.cjs.map +1 -1
  72. package/dist/cjs/components/DotPagination/dotPaginationClasses.cjs.map +1 -1
  73. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  74. package/dist/cjs/components/DropDownMenu/dropDownMenuClasses.cjs.map +1 -1
  75. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  76. package/dist/cjs/components/Dropdown/List/listClasses.cjs.map +1 -1
  77. package/dist/cjs/components/Dropdown/dropdownClasses.cjs.map +1 -1
  78. package/dist/cjs/components/EmptyState/EmptyState.cjs.map +1 -1
  79. package/dist/cjs/components/EmptyState/emptyStateClasses.cjs.map +1 -1
  80. package/dist/cjs/components/FileUploader/DropZone/dropZoneClasses.cjs.map +1 -1
  81. package/dist/cjs/components/FileUploader/File/fileClasses.cjs.map +1 -1
  82. package/dist/cjs/components/FileUploader/FileList/fileListClasses.cjs.map +1 -1
  83. package/dist/cjs/components/FileUploader/Preview/previewClasses.cjs.map +1 -1
  84. package/dist/cjs/components/FilterGroup/FilterContent/filterContentClasses.cjs.map +1 -1
  85. package/dist/cjs/components/FilterGroup/filterGroupClasses.cjs.map +1 -1
  86. package/dist/cjs/components/Focus/Focus.cjs +1 -1
  87. package/dist/cjs/components/Focus/Focus.cjs.map +1 -1
  88. package/dist/cjs/components/Focus/focusClasses.cjs.map +1 -1
  89. package/dist/cjs/components/Footer/footerClasses.cjs.map +1 -1
  90. package/dist/cjs/components/Forms/Adornment/Adornment.cjs.map +1 -1
  91. package/dist/cjs/components/Forms/Adornment/adornmentClasses.cjs.map +1 -1
  92. package/dist/cjs/components/Forms/CharCounter/charCounterClasses.cjs.map +1 -1
  93. package/dist/cjs/components/Forms/FormElement/FormElement.cjs.map +1 -1
  94. package/dist/cjs/components/Forms/FormElement/formElementClasses.cjs.map +1 -1
  95. package/dist/cjs/components/Forms/InfoMessage/infoMessageClasses.cjs.map +1 -1
  96. package/dist/cjs/components/Forms/Label/labelClasses.cjs.map +1 -1
  97. package/dist/cjs/components/Forms/Suggestions/suggestionsClasses.cjs.map +1 -1
  98. package/dist/cjs/components/Forms/WarningText/warningTextClasses.cjs.map +1 -1
  99. package/dist/cjs/components/GlobalActions/GlobalActions.cjs.map +1 -1
  100. package/dist/cjs/components/GlobalActions/globalActionsClasses.cjs.map +1 -1
  101. package/dist/cjs/components/Grid/Grid.cjs.map +1 -1
  102. package/dist/cjs/components/Grid/gridClasses.cjs.map +1 -1
  103. package/dist/cjs/components/Header/Actions/actionsClasses.cjs.map +1 -1
  104. package/dist/cjs/components/Header/Brand/brandClasses.cjs.map +1 -1
  105. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs +5 -4
  106. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
  107. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.styles.cjs +33 -17
  108. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.styles.cjs.map +1 -1
  109. package/dist/cjs/components/Header/Navigation/MenuBar/menuBarClasses.cjs +8 -0
  110. package/dist/cjs/components/Header/Navigation/MenuBar/menuBarClasses.cjs.map +1 -0
  111. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs +2 -1
  112. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
  113. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs +26 -10
  114. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +1 -1
  115. package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
  116. package/dist/cjs/components/Header/Navigation/navigationClasses.cjs.map +1 -1
  117. package/dist/cjs/components/Header/headerClasses.cjs.map +1 -1
  118. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  119. package/dist/cjs/components/InlineEditor/inlineEditorClasses.cjs.map +1 -1
  120. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  121. package/dist/cjs/components/Input/inputClasses.cjs.map +1 -1
  122. package/dist/cjs/components/Kpi/Kpi.cjs.map +1 -1
  123. package/dist/cjs/components/Kpi/kpiClasses.cjs.map +1 -1
  124. package/dist/cjs/components/Link/Link.cjs.map +1 -1
  125. package/dist/cjs/components/Link/linkClasses.cjs.map +1 -1
  126. package/dist/cjs/components/List/List.cjs.map +1 -1
  127. package/dist/cjs/components/List/listClasses.cjs.map +1 -1
  128. package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs.map +1 -1
  129. package/dist/cjs/components/ListContainer/ListItem/listItemClasses.cjs.map +1 -1
  130. package/dist/cjs/components/ListContainer/listContainerClasses.cjs.map +1 -1
  131. package/dist/cjs/components/Loading/Loading.cjs.map +1 -1
  132. package/dist/cjs/components/Loading/loadingClasses.cjs.map +1 -1
  133. package/dist/cjs/components/Login/loginClasses.cjs.map +1 -1
  134. package/dist/cjs/components/MultiButton/multiButtonClasses.cjs.map +1 -1
  135. package/dist/cjs/components/OverflowTooltip/overflowTooltipClasses.cjs.map +1 -1
  136. package/dist/cjs/components/Pagination/paginationClasses.cjs.map +1 -1
  137. package/dist/cjs/components/Panel/panelClasses.cjs.map +1 -1
  138. package/dist/cjs/components/ProgressBar/progressBarClasses.cjs.map +1 -1
  139. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs +60 -0
  140. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -0
  141. package/dist/cjs/components/QueryBuilder/Context.cjs +281 -0
  142. package/dist/cjs/components/QueryBuilder/Context.cjs.map +1 -0
  143. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +89 -0
  144. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -0
  145. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs +81 -0
  146. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs.map +1 -0
  147. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs +67 -0
  148. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs.map +1 -0
  149. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +110 -0
  150. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -0
  151. package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs +53 -0
  152. package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs.map +1 -0
  153. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs +55 -0
  154. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +1 -0
  155. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs +35 -0
  156. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs.map +1 -0
  157. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +197 -0
  158. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -0
  159. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.cjs +8 -0
  160. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.cjs.map +1 -0
  161. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +61 -0
  162. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -0
  163. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs +9 -0
  164. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs.map +1 -0
  165. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.cjs +8 -0
  166. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.cjs.map +1 -0
  167. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +62 -0
  168. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -0
  169. package/dist/cjs/components/QueryBuilder/Rule/ruleClasses.cjs +8 -0
  170. package/dist/cjs/components/QueryBuilder/Rule/ruleClasses.cjs.map +1 -0
  171. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +212 -0
  172. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -0
  173. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.styles.cjs +92 -0
  174. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.styles.cjs.map +1 -0
  175. package/dist/cjs/components/QueryBuilder/queryBuilderClasses.cjs +8 -0
  176. package/dist/cjs/components/QueryBuilder/queryBuilderClasses.cjs.map +1 -0
  177. package/dist/cjs/components/QueryBuilder/utils/index.cjs +59 -0
  178. package/dist/cjs/components/QueryBuilder/utils/index.cjs.map +1 -0
  179. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs +93 -0
  180. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs.map +1 -0
  181. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  182. package/dist/cjs/components/Radio/radioClasses.cjs.map +1 -1
  183. package/dist/cjs/components/RadioGroup/RadioGroup.cjs.map +1 -1
  184. package/dist/cjs/components/RadioGroup/radioGroupClasses.cjs.map +1 -1
  185. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.cjs.map +1 -1
  186. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
  187. package/dist/cjs/components/ScrollTo/Horizontal/scrollToHorizontalClasses.cjs.map +1 -1
  188. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
  189. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.cjs.map +1 -1
  190. package/dist/cjs/components/ScrollTo/Vertical/scrollToVerticalClasses.cjs.map +1 -1
  191. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  192. package/dist/cjs/components/SelectionList/selectionListClasses.cjs.map +1 -1
  193. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  194. package/dist/cjs/components/Slider/SliderInput/SliderInput.cjs.map +1 -1
  195. package/dist/cjs/components/Slider/SliderInput/sliderInputClasses.cjs.map +1 -1
  196. package/dist/cjs/components/Slider/sliderClasses.cjs.map +1 -1
  197. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/snackbarContentWrapperClasses.cjs.map +1 -1
  198. package/dist/cjs/components/Snackbar/snackbarClasses.cjs.map +1 -1
  199. package/dist/cjs/components/Stack/stackClasses.cjs.map +1 -1
  200. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  201. package/dist/cjs/components/Switch/switchClasses.cjs.map +1 -1
  202. package/dist/cjs/components/Tab/Tab.cjs.map +1 -1
  203. package/dist/cjs/components/Tab/tabClasses.cjs.map +1 -1
  204. package/dist/cjs/components/Table/TableBody/TableBody.cjs +1 -1
  205. package/dist/cjs/components/Table/TableBody/TableBody.cjs.map +1 -1
  206. package/dist/cjs/components/Table/TableBody/tableBodyClasses.cjs.map +1 -1
  207. package/dist/cjs/components/Table/TableCell/tableCellClasses.cjs.map +1 -1
  208. package/dist/cjs/components/Table/TableContainer/TableContainer.cjs +1 -1
  209. package/dist/cjs/components/Table/TableContainer/TableContainer.cjs.map +1 -1
  210. package/dist/cjs/components/Table/TableContainer/tableContainerClasses.cjs.map +1 -1
  211. package/dist/cjs/components/Table/TableHead/TableHead.cjs +1 -1
  212. package/dist/cjs/components/Table/TableHead/TableHead.cjs.map +1 -1
  213. package/dist/cjs/components/Table/TableHead/tableHeadClasses.cjs.map +1 -1
  214. package/dist/cjs/components/Table/TableHeader/tableHeaderClasses.cjs.map +1 -1
  215. package/dist/cjs/components/Table/TableRow/TableRow.cjs +1 -1
  216. package/dist/cjs/components/Table/TableRow/TableRow.cjs.map +1 -1
  217. package/dist/cjs/components/Table/TableRow/tableRowClasses.cjs.map +1 -1
  218. package/dist/cjs/components/Table/tableClasses.cjs.map +1 -1
  219. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  220. package/dist/cjs/components/Tabs/tabsClasses.cjs.map +1 -1
  221. package/dist/cjs/components/Tag/Tag.cjs.map +1 -1
  222. package/dist/cjs/components/Tag/tagClasses.cjs.map +1 -1
  223. package/dist/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  224. package/dist/cjs/components/TagsInput/tagsInputClasses.cjs.map +1 -1
  225. package/dist/cjs/components/TextArea/textAreaClasses.cjs.map +1 -1
  226. package/dist/cjs/components/TimeAgo/TimeAgo.cjs.map +1 -1
  227. package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs.map +1 -1
  228. package/dist/cjs/components/ToggleButton/ToggleButton.cjs.map +1 -1
  229. package/dist/cjs/components/Tooltip/tooltipClasses.cjs.map +1 -1
  230. package/dist/cjs/components/Typography/Typography.cjs +1 -1
  231. package/dist/cjs/components/Typography/Typography.cjs.map +1 -1
  232. package/dist/cjs/components/Typography/typographyClasses.cjs.map +1 -1
  233. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs.map +1 -1
  234. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs.map +1 -1
  235. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs.map +1 -1
  236. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs.map +1 -1
  237. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs.map +1 -1
  238. package/dist/cjs/components/VerticalNavigation/NavigationSlider/navigationSliderClasses.cjs.map +1 -1
  239. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs.map +1 -1
  240. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs.map +1 -1
  241. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs.map +1 -1
  242. package/dist/cjs/hocs/withTooltip.cjs +2 -2
  243. package/dist/cjs/hocs/withTooltip.cjs.map +1 -1
  244. package/dist/cjs/index.cjs +4 -0
  245. package/dist/cjs/index.cjs.map +1 -1
  246. package/dist/cjs/utils/classes.cjs.map +1 -1
  247. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  248. package/dist/esm/components/Accordion/accordionClasses.js.map +1 -1
  249. package/dist/esm/components/ActionBar/actionBarClasses.js.map +1 -1
  250. package/dist/esm/components/ActionsGeneric/actionsGenericClasses.js.map +1 -1
  251. package/dist/esm/components/AppSwitcher/Action/actionClasses.js.map +1 -1
  252. package/dist/esm/components/AppSwitcher/appSwitcherClasses.js.map +1 -1
  253. package/dist/esm/components/Avatar/avatarClasses.js.map +1 -1
  254. package/dist/esm/components/Badge/badgeClasses.js.map +1 -1
  255. package/dist/esm/components/Banner/Banner.js.map +1 -1
  256. package/dist/esm/components/Banner/BannerContent/ActionContainer/actionContainerClasses.js.map +1 -1
  257. package/dist/esm/components/Banner/BannerContent/MessageContainer/messageContainerClasses.js.map +1 -1
  258. package/dist/esm/components/Banner/BannerContent/bannerContentClasses.js.map +1 -1
  259. package/dist/esm/components/Banner/bannerClasses.js.map +1 -1
  260. package/dist/esm/components/BaseCheckBox/BaseCheckBox.js.map +1 -1
  261. package/dist/esm/components/BaseCheckBox/baseCheckBoxClasses.js.map +1 -1
  262. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  263. package/dist/esm/components/BaseDropdown/baseDropdownClasses.js.map +1 -1
  264. package/dist/esm/components/BaseInput/BaseInput.js +1 -1
  265. package/dist/esm/components/BaseInput/BaseInput.js.map +1 -1
  266. package/dist/esm/components/BaseInput/baseInputClasses.js.map +1 -1
  267. package/dist/esm/components/BaseRadio/BaseRadio.js.map +1 -1
  268. package/dist/esm/components/BaseRadio/baseRadioClasses.js.map +1 -1
  269. package/dist/esm/components/BaseSwitch/BaseSwitch.js.map +1 -1
  270. package/dist/esm/components/BaseSwitch/baseSwitchClasses.js.map +1 -1
  271. package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
  272. package/dist/esm/components/BreadCrumb/Page/pageClasses.js.map +1 -1
  273. package/dist/esm/components/BreadCrumb/PathElement/pathElementClasses.js.map +1 -1
  274. package/dist/esm/components/BreadCrumb/breadCrumbClasses.js.map +1 -1
  275. package/dist/esm/components/BulkActions/bulkActionsClasses.js.map +1 -1
  276. package/dist/esm/components/Button/buttonClasses.js.map +1 -1
  277. package/dist/esm/components/Calendar/CalendarHeader/calendarHeaderClasses.js.map +1 -1
  278. package/dist/esm/components/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +6 -7
  279. package/dist/esm/components/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  280. package/dist/esm/components/Calendar/CalendarNavigation/ComposedNavigation/composedNavigationClasses.js.map +1 -1
  281. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +5 -8
  282. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  283. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/monthSelectorClasses.js.map +1 -1
  284. package/dist/esm/components/Calendar/CalendarNavigation/Navigation/navigationClasses.js.map +1 -1
  285. package/dist/esm/components/Calendar/CalendarWeekLabels/calendarWeekLabelsClasses.js.map +1 -1
  286. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js +6 -7
  287. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  288. package/dist/esm/components/Calendar/SingleCalendar/calendarCellClasses.js.map +1 -1
  289. package/dist/esm/components/Calendar/SingleCalendar/singleCalendarClasses.js.map +1 -1
  290. package/dist/esm/components/Calendar/calendarClasses.js.map +1 -1
  291. package/dist/esm/components/Calendar/utils.js +6 -7
  292. package/dist/esm/components/Calendar/utils.js.map +1 -1
  293. package/dist/esm/components/Card/Content/contentClasses.js.map +1 -1
  294. package/dist/esm/components/Card/Header/Header.js.map +1 -1
  295. package/dist/esm/components/Card/Header/headerClasses.js.map +1 -1
  296. package/dist/esm/components/Card/Media/Media.js.map +1 -1
  297. package/dist/esm/components/Card/Media/mediaClasses.js.map +1 -1
  298. package/dist/esm/components/Card/cardClasses.js.map +1 -1
  299. package/dist/esm/components/CheckBox/checkBoxClasses.js.map +1 -1
  300. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  301. package/dist/esm/components/CheckBoxGroup/checkBoxGroupClasses.js.map +1 -1
  302. package/dist/esm/components/Container/containerClasses.js.map +1 -1
  303. package/dist/esm/components/Controls/LeftControl/leftControlClasses.js.map +1 -1
  304. package/dist/esm/components/Controls/RightControl/rightControlClasses.js.map +1 -1
  305. package/dist/esm/components/Controls/controlClasses.js.map +1 -1
  306. package/dist/esm/components/DatePicker/DatePicker.js +3 -4
  307. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  308. package/dist/esm/components/DatePicker/datePickerClasses.js.map +1 -1
  309. package/dist/esm/components/DatePicker/useVisibleDate.js +10 -14
  310. package/dist/esm/components/DatePicker/useVisibleDate.js.map +1 -1
  311. package/dist/esm/components/DatePicker/utils.js +2 -3
  312. package/dist/esm/components/DatePicker/utils.js.map +1 -1
  313. package/dist/esm/components/Dialog/Actions/actionsClasses.js.map +1 -1
  314. package/dist/esm/components/Dialog/Content/contentClasses.js.map +1 -1
  315. package/dist/esm/components/Dialog/Dialog.js +2 -2
  316. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  317. package/dist/esm/components/Dialog/Title/Title.js.map +1 -1
  318. package/dist/esm/components/Dialog/Title/titleClasses.js.map +1 -1
  319. package/dist/esm/components/Dialog/dialogClasses.js.map +1 -1
  320. package/dist/esm/components/DotPagination/dotPaginationClasses.js.map +1 -1
  321. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  322. package/dist/esm/components/DropDownMenu/dropDownMenuClasses.js.map +1 -1
  323. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  324. package/dist/esm/components/Dropdown/List/listClasses.js.map +1 -1
  325. package/dist/esm/components/Dropdown/dropdownClasses.js.map +1 -1
  326. package/dist/esm/components/EmptyState/EmptyState.js.map +1 -1
  327. package/dist/esm/components/EmptyState/emptyStateClasses.js.map +1 -1
  328. package/dist/esm/components/FileUploader/DropZone/dropZoneClasses.js.map +1 -1
  329. package/dist/esm/components/FileUploader/File/fileClasses.js.map +1 -1
  330. package/dist/esm/components/FileUploader/FileList/fileListClasses.js.map +1 -1
  331. package/dist/esm/components/FileUploader/Preview/previewClasses.js.map +1 -1
  332. package/dist/esm/components/FilterGroup/FilterContent/filterContentClasses.js.map +1 -1
  333. package/dist/esm/components/FilterGroup/filterGroupClasses.js.map +1 -1
  334. package/dist/esm/components/Focus/Focus.js +1 -1
  335. package/dist/esm/components/Focus/Focus.js.map +1 -1
  336. package/dist/esm/components/Focus/focusClasses.js.map +1 -1
  337. package/dist/esm/components/Footer/footerClasses.js.map +1 -1
  338. package/dist/esm/components/Forms/Adornment/Adornment.js.map +1 -1
  339. package/dist/esm/components/Forms/Adornment/adornmentClasses.js.map +1 -1
  340. package/dist/esm/components/Forms/CharCounter/charCounterClasses.js.map +1 -1
  341. package/dist/esm/components/Forms/FormElement/FormElement.js.map +1 -1
  342. package/dist/esm/components/Forms/FormElement/formElementClasses.js.map +1 -1
  343. package/dist/esm/components/Forms/InfoMessage/infoMessageClasses.js.map +1 -1
  344. package/dist/esm/components/Forms/Label/labelClasses.js.map +1 -1
  345. package/dist/esm/components/Forms/Suggestions/suggestionsClasses.js.map +1 -1
  346. package/dist/esm/components/Forms/WarningText/warningTextClasses.js.map +1 -1
  347. package/dist/esm/components/GlobalActions/GlobalActions.js.map +1 -1
  348. package/dist/esm/components/GlobalActions/globalActionsClasses.js.map +1 -1
  349. package/dist/esm/components/Grid/Grid.js.map +1 -1
  350. package/dist/esm/components/Grid/gridClasses.js.map +1 -1
  351. package/dist/esm/components/Header/Actions/actionsClasses.js.map +1 -1
  352. package/dist/esm/components/Header/Brand/brandClasses.js.map +1 -1
  353. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js +5 -4
  354. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  355. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.styles.js +33 -17
  356. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.styles.js.map +1 -1
  357. package/dist/esm/components/Header/Navigation/MenuBar/menuBarClasses.js +8 -0
  358. package/dist/esm/components/Header/Navigation/MenuBar/menuBarClasses.js.map +1 -0
  359. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js +2 -1
  360. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  361. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js +26 -10
  362. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
  363. package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
  364. package/dist/esm/components/Header/Navigation/navigationClasses.js.map +1 -1
  365. package/dist/esm/components/Header/headerClasses.js.map +1 -1
  366. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  367. package/dist/esm/components/InlineEditor/inlineEditorClasses.js.map +1 -1
  368. package/dist/esm/components/Input/Input.js.map +1 -1
  369. package/dist/esm/components/Input/inputClasses.js.map +1 -1
  370. package/dist/esm/components/Kpi/Kpi.js.map +1 -1
  371. package/dist/esm/components/Kpi/kpiClasses.js.map +1 -1
  372. package/dist/esm/components/Link/Link.js.map +1 -1
  373. package/dist/esm/components/Link/linkClasses.js.map +1 -1
  374. package/dist/esm/components/List/List.js.map +1 -1
  375. package/dist/esm/components/List/listClasses.js.map +1 -1
  376. package/dist/esm/components/ListContainer/ListItem/ListItem.js.map +1 -1
  377. package/dist/esm/components/ListContainer/ListItem/listItemClasses.js.map +1 -1
  378. package/dist/esm/components/ListContainer/listContainerClasses.js.map +1 -1
  379. package/dist/esm/components/Loading/Loading.js.map +1 -1
  380. package/dist/esm/components/Loading/loadingClasses.js.map +1 -1
  381. package/dist/esm/components/Login/loginClasses.js.map +1 -1
  382. package/dist/esm/components/MultiButton/multiButtonClasses.js.map +1 -1
  383. package/dist/esm/components/OverflowTooltip/overflowTooltipClasses.js.map +1 -1
  384. package/dist/esm/components/Pagination/paginationClasses.js.map +1 -1
  385. package/dist/esm/components/Panel/panelClasses.js.map +1 -1
  386. package/dist/esm/components/ProgressBar/progressBarClasses.js.map +1 -1
  387. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js +60 -0
  388. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -0
  389. package/dist/esm/components/QueryBuilder/Context.js +281 -0
  390. package/dist/esm/components/QueryBuilder/Context.js.map +1 -0
  391. package/dist/esm/components/QueryBuilder/QueryBuilder.js +86 -0
  392. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -0
  393. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js +81 -0
  394. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -0
  395. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js +67 -0
  396. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js.map +1 -0
  397. package/dist/esm/components/QueryBuilder/Rule/Rule.js +110 -0
  398. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -0
  399. package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js +53 -0
  400. package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js.map +1 -0
  401. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +55 -0
  402. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -0
  403. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js +35 -0
  404. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -0
  405. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +194 -0
  406. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -0
  407. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.js +8 -0
  408. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.js.map +1 -0
  409. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +61 -0
  410. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -0
  411. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js +9 -0
  412. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -0
  413. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.js +8 -0
  414. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.js.map +1 -0
  415. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +62 -0
  416. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -0
  417. package/dist/esm/components/QueryBuilder/Rule/ruleClasses.js +8 -0
  418. package/dist/esm/components/QueryBuilder/Rule/ruleClasses.js.map +1 -0
  419. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +212 -0
  420. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -0
  421. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.styles.js +92 -0
  422. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.styles.js.map +1 -0
  423. package/dist/esm/components/QueryBuilder/queryBuilderClasses.js +8 -0
  424. package/dist/esm/components/QueryBuilder/queryBuilderClasses.js.map +1 -0
  425. package/dist/esm/components/QueryBuilder/utils/index.js +59 -0
  426. package/dist/esm/components/QueryBuilder/utils/index.js.map +1 -0
  427. package/dist/esm/components/QueryBuilder/utils/reducer.js +93 -0
  428. package/dist/esm/components/QueryBuilder/utils/reducer.js.map +1 -0
  429. package/dist/esm/components/Radio/Radio.js.map +1 -1
  430. package/dist/esm/components/Radio/radioClasses.js.map +1 -1
  431. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  432. package/dist/esm/components/RadioGroup/radioGroupClasses.js.map +1 -1
  433. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.js.map +1 -1
  434. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  435. package/dist/esm/components/ScrollTo/Horizontal/scrollToHorizontalClasses.js.map +1 -1
  436. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  437. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.js.map +1 -1
  438. package/dist/esm/components/ScrollTo/Vertical/scrollToVerticalClasses.js.map +1 -1
  439. package/dist/esm/components/ScrollTo/withTooltip.js +2 -2
  440. package/dist/esm/components/ScrollTo/withTooltip.js.map +1 -1
  441. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  442. package/dist/esm/components/SelectionList/selectionListClasses.js.map +1 -1
  443. package/dist/esm/components/Slider/Slider.js.map +1 -1
  444. package/dist/esm/components/Slider/SliderInput/SliderInput.js.map +1 -1
  445. package/dist/esm/components/Slider/SliderInput/sliderInputClasses.js.map +1 -1
  446. package/dist/esm/components/Slider/sliderClasses.js.map +1 -1
  447. package/dist/esm/components/Snackbar/SnackbarContentWrapper/snackbarContentWrapperClasses.js.map +1 -1
  448. package/dist/esm/components/Snackbar/snackbarClasses.js.map +1 -1
  449. package/dist/esm/components/Stack/stackClasses.js.map +1 -1
  450. package/dist/esm/components/Switch/Switch.js.map +1 -1
  451. package/dist/esm/components/Switch/switchClasses.js.map +1 -1
  452. package/dist/esm/components/Tab/Tab.js.map +1 -1
  453. package/dist/esm/components/Tab/tabClasses.js.map +1 -1
  454. package/dist/esm/components/Table/TableBody/TableBody.js +1 -1
  455. package/dist/esm/components/Table/TableBody/TableBody.js.map +1 -1
  456. package/dist/esm/components/Table/TableBody/tableBodyClasses.js.map +1 -1
  457. package/dist/esm/components/Table/TableCell/tableCellClasses.js.map +1 -1
  458. package/dist/esm/components/Table/TableContainer/TableContainer.js +1 -1
  459. package/dist/esm/components/Table/TableContainer/TableContainer.js.map +1 -1
  460. package/dist/esm/components/Table/TableContainer/tableContainerClasses.js.map +1 -1
  461. package/dist/esm/components/Table/TableHead/TableHead.js +1 -1
  462. package/dist/esm/components/Table/TableHead/TableHead.js.map +1 -1
  463. package/dist/esm/components/Table/TableHead/tableHeadClasses.js.map +1 -1
  464. package/dist/esm/components/Table/TableHeader/tableHeaderClasses.js.map +1 -1
  465. package/dist/esm/components/Table/TableRow/TableRow.js +1 -1
  466. package/dist/esm/components/Table/TableRow/TableRow.js.map +1 -1
  467. package/dist/esm/components/Table/TableRow/tableRowClasses.js.map +1 -1
  468. package/dist/esm/components/Table/tableClasses.js.map +1 -1
  469. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  470. package/dist/esm/components/Tabs/tabsClasses.js.map +1 -1
  471. package/dist/esm/components/Tag/Tag.js.map +1 -1
  472. package/dist/esm/components/Tag/tagClasses.js.map +1 -1
  473. package/dist/esm/components/TagsInput/TagsInput.js.map +1 -1
  474. package/dist/esm/components/TagsInput/tagsInputClasses.js.map +1 -1
  475. package/dist/esm/components/TextArea/textAreaClasses.js.map +1 -1
  476. package/dist/esm/components/TimeAgo/TimeAgo.js.map +1 -1
  477. package/dist/esm/components/TimeAgo/timeAgoClasses.js.map +1 -1
  478. package/dist/esm/components/ToggleButton/ToggleButton.js.map +1 -1
  479. package/dist/esm/components/Tooltip/tooltipClasses.js.map +1 -1
  480. package/dist/esm/components/Typography/Typography.js +1 -1
  481. package/dist/esm/components/Typography/Typography.js.map +1 -1
  482. package/dist/esm/components/Typography/typographyClasses.js.map +1 -1
  483. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js.map +1 -1
  484. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js.map +1 -1
  485. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js.map +1 -1
  486. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  487. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js.map +1 -1
  488. package/dist/esm/components/VerticalNavigation/NavigationSlider/navigationSliderClasses.js.map +1 -1
  489. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js.map +1 -1
  490. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js.map +1 -1
  491. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js.map +1 -1
  492. package/dist/esm/hocs/withTooltip.js +2 -2
  493. package/dist/esm/hocs/withTooltip.js.map +1 -1
  494. package/dist/esm/index.js +22 -18
  495. package/dist/esm/index.js.map +1 -1
  496. package/dist/esm/utils/classes.js.map +1 -1
  497. package/dist/esm/utils/wrapperTooltip.js +2 -2
  498. package/dist/esm/utils/wrapperTooltip.js.map +1 -1
  499. package/dist/types/index.d.ts +1274 -278
  500. package/package.json +5 -5
  501. package/dist/cjs/components/Calendar/enums.cjs +0 -32
  502. package/dist/cjs/components/Calendar/enums.cjs.map +0 -1
  503. package/dist/esm/components/Calendar/enums.js +0 -32
  504. package/dist/esm/components/Calendar/enums.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CheckBoxGroup.js","sources":["../../../../src/components/CheckBoxGroup/CheckBoxGroup.tsx"],"sourcesContent":["import { HvFormStatus } from \"../Forms\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n StyledFormElement,\n StyledGroupContainer,\n StyledLabel,\n} from \"./CheckBoxGroup.styles\";\nimport { clsx } from \"clsx\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport { multiSelectionEventHandler, setId } from \"@core/utils\";\nimport { HvCheckBox, HvInfoMessage, HvWarningText } from \"@core/components\";\nimport { Children, cloneElement, useCallback, useMemo, useRef } from \"react\";\nimport checkBoxGroupClasses, {\n HvCheckBoxGroupClasses,\n} from \"./checkBoxGroupClasses\";\n\nconst computeSelectAllState = (selected, total) => {\n if (selected === 0) {\n return \"none\";\n }\n\n if (selected === total) {\n return \"all\";\n }\n\n return \"some\";\n};\n\nconst getValueFromSelectedChildren = (children: React.ReactNode) => {\n const selectedValues = Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.checked !== undefined;\n const childIsSelected = childIsControlled\n ? child?.props?.checked\n : child?.props?.defaultChecked;\n\n return childIsSelected ? child?.props?.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return selectedValues;\n};\n\nexport interface HvCheckBoxGroupProps\n extends HvBaseProps<HTMLDivElement, { onChange }> {\n /**\n * The form element name.\n *\n * It is propagated to the children checkboxes, unless they already have one.\n */\n name?: string;\n /**\n * The value of the form element. An array of values represented in the child checkboxes.\n *\n * When defined the checkbox group state becomes controlled.\n */\n value?: any[];\n /**\n * When uncontrolled, defines the initial value.\n */\n defaultValue?: any[];\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * Indicates that the form element is disabled.\n * If `true` the state is propagated to the children checkboxes.\n */\n disabled?: boolean;\n /**\n * Indicates that the form element is not editable.\n * If `true` the state is propagated to the children checkboxes.\n */\n readOnly?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: React.ReactNode;\n /**\n * The callback fired when the value changes.\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, value: any[]) => void;\n /**\n * Indicates whether the checkbox group's orientation is horizontal or vertical.\n *\n * Defaults to vertical.\n */\n orientation?: \"vertical\" | \"horizontal\";\n /**\n * Indicates if an additional select all checkbox should be shown.\n */\n showSelectAll?: boolean;\n /**\n * The label of the select all checkbox. Defaults to \"All\".\n */\n selectAllLabel?: string;\n /**\n * Custom label for select all checkbox conjunction\n */\n selectAllConjunctionLabel?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvCheckBoxGroupClasses;\n}\n\n/**\n * A checkbox group is a type of selection list that allows the user to select multiple options through the use of checkboxes.\n */\nexport const HvCheckBoxGroup = ({\n id,\n classes,\n className,\n children,\n name,\n label,\n description,\n status,\n statusMessage,\n defaultValue,\n value: valueProp,\n required = false,\n readOnly = false,\n disabled = false,\n showSelectAll = false,\n orientation = \"vertical\",\n selectAllLabel = \"All\",\n selectAllConjunctionLabel = \"/\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n onChange,\n ...others\n}: HvCheckBoxGroupProps) => {\n const [value, setValue] = useControlled(\n valueProp,\n defaultValue !== undefined\n ? defaultValue\n : // When uncontrolled and no default value is given,\n // extract the initial selected values from the children own state\n () => getValueFromSelectedChildren(children)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvcheckboxgroup\");\n\n const selectionAnchor = useRef(undefined);\n\n const [allValues, selectedState, selectedCount] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n let childSelectedCounter = 0;\n\n Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = value.indexOf(childValue) !== -1;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n\n if (childIsSelected) {\n childSelectedCounter += 1;\n }\n });\n\n return [childValues, childSelectedState, childSelectedCounter];\n }, [children, value]);\n\n const selectAllState = computeSelectAllState(\n value.length,\n selectedState.length\n );\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => void,\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => {\n const newValue = multiSelectionEventHandler(\n event,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n isChecked\n );\n\n childOnChange?.(event, isChecked);\n\n onChange?.(event, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n },\n [allValues, onChange, required, selectedState, setValidationState, setValue]\n );\n\n const modifiedChildren = useMemo(() => {\n return Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return cloneElement(child, {\n checked: childIsSelected,\n name: child?.props?.name || name,\n onChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) =>\n onChildChangeInterceptor(i, child?.props?.onChange, event, isChecked),\n disabled: disabled || child?.props?.disabled,\n readOnly: readOnly || child?.props?.readOnly,\n });\n });\n }, [\n children,\n disabled,\n name,\n onChildChangeInterceptor,\n readOnly,\n selectedState,\n ]);\n\n const handleSelectAll = (\n event: React.ChangeEvent<HTMLInputElement>,\n selectAllChecked: boolean\n ) => {\n let newValue: any[];\n if (selectAllChecked) {\n newValue = [...allValues];\n } else {\n newValue = [];\n }\n\n onChange?.(event, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n };\n\n const selectAllLabelComponent = (\n <>\n {selectedCount === 0 ? (\n <>\n <b>{selectAllLabel}</b>\n {` (${Children.toArray(children).length})`}\n </>\n ) : (\n <>\n <b>{selectedCount}</b>\n {` ${selectAllConjunctionLabel} ${Children.toArray(children).length}`}\n </>\n )}\n </>\n );\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, classes?.root, checkBoxGroupClasses.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(classes?.label, checkBoxGroupClasses.label)}\n />\n )}\n\n {description && (\n <HvInfoMessage id={setId(elementId, \"description\")}>\n {description}\n </HvInfoMessage>\n )}\n\n <StyledGroupContainer\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={\n ariaLabelledBy || (label && setId(elementId, \"label\")) || undefined\n }\n aria-disabled={disabled ? true : undefined}\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n aria-errormessage={\n validationState === \"invalid\" ? errorMessageId : undefined\n }\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n className={clsx(\n classes?.group,\n checkBoxGroupClasses.group,\n orientation === \"vertical\" &&\n clsx(classes?.vertical, checkBoxGroupClasses.vertical),\n orientation === \"horizontal\" &&\n clsx(classes?.horizontal, checkBoxGroupClasses.horizontal),\n validationState === \"invalid\" &&\n clsx(classes?.invalid, checkBoxGroupClasses.invalid)\n )}\n $vertical={orientation === \"vertical\"}\n $horizontal={orientation === \"horizontal\"}\n $invalid={validationState === \"invalid\"}\n {...others}\n >\n {showSelectAll && (\n <HvCheckBox\n checked={selectAllState === \"all\"}\n indeterminate={selectAllState === \"some\"}\n label={selectAllLabelComponent}\n disabled={disabled}\n readOnly={readOnly}\n className={clsx(classes?.selectAll, checkBoxGroupClasses.selectAll)}\n onChange={handleSelectAll}\n />\n )}\n {modifiedChildren}\n </StyledGroupContainer>\n\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(classes?.error, checkBoxGroupClasses.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["computeSelectAllState","selected","total","getValueFromSelectedChildren","children","selectedValues","Children","toArray","map","child","childIsControlled","props","checked","undefined","childIsSelected","defaultChecked","value","filter","v","HvCheckBoxGroup","id","classes","className","name","label","description","status","statusMessage","defaultValue","valueProp","required","readOnly","disabled","showSelectAll","orientation","selectAllLabel","selectAllConjunctionLabel","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","onChange","others","setValue","useControlled","validationState","setValidationState","validationMessage","elementId","useUniqueId","selectionAnchor","useRef","allValues","selectedState","selectedCount","useMemo","childValues","childSelectedState","childSelectedCounter","forEach","i","childValue","indexOf","selectAllState","length","onChildChangeInterceptor","useCallback","index","childOnChange","event","isChecked","newValue","multiSelectionEventHandler","modifiedChildren","cloneElement","handleSelectAll","selectAllChecked","selectAllLabelComponent","_Fragment","_jsxs","_jsx","canShowError","errorMessageId","setId","StyledFormElement","clsx","root","checkBoxGroupClasses","StyledLabel","HvInfoMessage","StyledGroupContainer","role","join","trim","group","vertical","horizontal","invalid","$vertical","$horizontal","$invalid","HvCheckBox","indeterminate","selectAll","HvWarningText","disableBorder","error"],"mappings":"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"}
1
+ {"version":3,"file":"CheckBoxGroup.js","sources":["../../../../src/components/CheckBoxGroup/CheckBoxGroup.tsx"],"sourcesContent":["import { HvFormStatus } from \"../Forms\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n StyledFormElement,\n StyledGroupContainer,\n StyledLabel,\n} from \"./CheckBoxGroup.styles\";\nimport { clsx } from \"clsx\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport { multiSelectionEventHandler, setId } from \"@core/utils\";\nimport { HvCheckBox, HvInfoMessage, HvWarningText } from \"@core/components\";\nimport { Children, cloneElement, useCallback, useMemo, useRef } from \"react\";\nimport checkBoxGroupClasses, {\n HvCheckBoxGroupClasses,\n} from \"./checkBoxGroupClasses\";\n\nconst computeSelectAllState = (selected, total) => {\n if (selected === 0) {\n return \"none\";\n }\n\n if (selected === total) {\n return \"all\";\n }\n\n return \"some\";\n};\n\nconst getValueFromSelectedChildren = (children: React.ReactNode) => {\n const selectedValues = Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.checked !== undefined;\n const childIsSelected = childIsControlled\n ? child?.props?.checked\n : child?.props?.defaultChecked;\n\n return childIsSelected ? child?.props?.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return selectedValues;\n};\n\nexport interface HvCheckBoxGroupProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * The form element name.\n *\n * It is propagated to the children checkboxes, unless they already have one.\n */\n name?: string;\n /**\n * The value of the form element. An array of values represented in the child checkboxes.\n *\n * When defined the checkbox group state becomes controlled.\n */\n value?: any[];\n /**\n * When uncontrolled, defines the initial value.\n */\n defaultValue?: any[];\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * Indicates that the form element is disabled.\n * If `true` the state is propagated to the children checkboxes.\n */\n disabled?: boolean;\n /**\n * Indicates that the form element is not editable.\n * If `true` the state is propagated to the children checkboxes.\n */\n readOnly?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: React.ReactNode;\n /**\n * The callback fired when the value changes.\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, value: any[]) => void;\n /**\n * Indicates whether the checkbox group's orientation is horizontal or vertical.\n *\n * Defaults to vertical.\n */\n orientation?: \"vertical\" | \"horizontal\";\n /**\n * Indicates if an additional select all checkbox should be shown.\n */\n showSelectAll?: boolean;\n /**\n * The label of the select all checkbox. Defaults to \"All\".\n */\n selectAllLabel?: string;\n /**\n * Custom label for select all checkbox conjunction\n */\n selectAllConjunctionLabel?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvCheckBoxGroupClasses;\n}\n\n/**\n * A checkbox group is a type of selection list that allows the user to select multiple options through the use of checkboxes.\n */\nexport const HvCheckBoxGroup = ({\n id,\n classes,\n className,\n children,\n name,\n label,\n description,\n status,\n statusMessage,\n defaultValue,\n value: valueProp,\n required = false,\n readOnly = false,\n disabled = false,\n showSelectAll = false,\n orientation = \"vertical\",\n selectAllLabel = \"All\",\n selectAllConjunctionLabel = \"/\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n onChange,\n ...others\n}: HvCheckBoxGroupProps) => {\n const [value, setValue] = useControlled(\n valueProp,\n defaultValue !== undefined\n ? defaultValue\n : // When uncontrolled and no default value is given,\n // extract the initial selected values from the children own state\n () => getValueFromSelectedChildren(children)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvcheckboxgroup\");\n\n const selectionAnchor = useRef(undefined);\n\n const [allValues, selectedState, selectedCount] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n let childSelectedCounter = 0;\n\n Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = value.indexOf(childValue) !== -1;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n\n if (childIsSelected) {\n childSelectedCounter += 1;\n }\n });\n\n return [childValues, childSelectedState, childSelectedCounter];\n }, [children, value]);\n\n const selectAllState = computeSelectAllState(\n value.length,\n selectedState.length\n );\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => void,\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => {\n const newValue = multiSelectionEventHandler(\n event,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n isChecked\n );\n\n childOnChange?.(event, isChecked);\n\n onChange?.(event, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n },\n [allValues, onChange, required, selectedState, setValidationState, setValue]\n );\n\n const modifiedChildren = useMemo(() => {\n return Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return cloneElement(child, {\n checked: childIsSelected,\n name: child?.props?.name || name,\n onChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) =>\n onChildChangeInterceptor(i, child?.props?.onChange, event, isChecked),\n disabled: disabled || child?.props?.disabled,\n readOnly: readOnly || child?.props?.readOnly,\n });\n });\n }, [\n children,\n disabled,\n name,\n onChildChangeInterceptor,\n readOnly,\n selectedState,\n ]);\n\n const handleSelectAll = (\n event: React.ChangeEvent<HTMLInputElement>,\n selectAllChecked: boolean\n ) => {\n let newValue: any[];\n if (selectAllChecked) {\n newValue = [...allValues];\n } else {\n newValue = [];\n }\n\n onChange?.(event, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n };\n\n const selectAllLabelComponent = (\n <>\n {selectedCount === 0 ? (\n <>\n <b>{selectAllLabel}</b>\n {` (${Children.toArray(children).length})`}\n </>\n ) : (\n <>\n <b>{selectedCount}</b>\n {` ${selectAllConjunctionLabel} ${Children.toArray(children).length}`}\n </>\n )}\n </>\n );\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, classes?.root, checkBoxGroupClasses.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(classes?.label, checkBoxGroupClasses.label)}\n />\n )}\n\n {description && (\n <HvInfoMessage id={setId(elementId, \"description\")}>\n {description}\n </HvInfoMessage>\n )}\n\n <StyledGroupContainer\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={\n ariaLabelledBy || (label && setId(elementId, \"label\")) || undefined\n }\n aria-disabled={disabled ? true : undefined}\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n aria-errormessage={\n validationState === \"invalid\" ? errorMessageId : undefined\n }\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n className={clsx(\n classes?.group,\n checkBoxGroupClasses.group,\n orientation === \"vertical\" &&\n clsx(classes?.vertical, checkBoxGroupClasses.vertical),\n orientation === \"horizontal\" &&\n clsx(classes?.horizontal, checkBoxGroupClasses.horizontal),\n validationState === \"invalid\" &&\n clsx(classes?.invalid, checkBoxGroupClasses.invalid)\n )}\n $vertical={orientation === \"vertical\"}\n $horizontal={orientation === \"horizontal\"}\n $invalid={validationState === \"invalid\"}\n {...others}\n >\n {showSelectAll && (\n <HvCheckBox\n checked={selectAllState === \"all\"}\n indeterminate={selectAllState === \"some\"}\n label={selectAllLabelComponent}\n disabled={disabled}\n readOnly={readOnly}\n className={clsx(classes?.selectAll, checkBoxGroupClasses.selectAll)}\n onChange={handleSelectAll}\n />\n )}\n {modifiedChildren}\n </StyledGroupContainer>\n\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(classes?.error, checkBoxGroupClasses.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["computeSelectAllState","selected","total","getValueFromSelectedChildren","children","selectedValues","Children","toArray","map","child","childIsControlled","props","checked","undefined","childIsSelected","defaultChecked","value","filter","v","HvCheckBoxGroup","id","classes","className","name","label","description","status","statusMessage","defaultValue","valueProp","required","readOnly","disabled","showSelectAll","orientation","selectAllLabel","selectAllConjunctionLabel","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","onChange","others","setValue","useControlled","validationState","setValidationState","validationMessage","elementId","useUniqueId","selectionAnchor","useRef","allValues","selectedState","selectedCount","useMemo","childValues","childSelectedState","childSelectedCounter","forEach","i","childValue","indexOf","selectAllState","length","onChildChangeInterceptor","useCallback","index","childOnChange","event","isChecked","newValue","multiSelectionEventHandler","modifiedChildren","cloneElement","handleSelectAll","selectAllChecked","selectAllLabelComponent","_Fragment","_jsxs","_jsx","canShowError","errorMessageId","setId","StyledFormElement","clsx","root","checkBoxGroupClasses","StyledLabel","HvInfoMessage","StyledGroupContainer","role","join","trim","group","vertical","horizontal","invalid","$vertical","$horizontal","$invalid","HvCheckBox","indeterminate","selectAll","HvWarningText","disableBorder","error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkBoxGroupClasses.js","sources":["../../../../src/components/CheckBoxGroup/checkBoxGroupClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvCheckBoxGroupClasses {\n root?: string;\n label?: string;\n group?: string;\n vertical?: string;\n horizontal?: string;\n invalid?: string;\n selectAll?: string;\n error?: string;\n}\n\nconst classKeys: string[] = [\n \"root\",\n \"label\",\n \"group\",\n \"vertical\",\n \"horizontal\",\n \"invalid\",\n \"selectAll\",\n \"error\",\n];\n\nconst checkBoxGroupClasses = getClasses<HvCheckBoxGroupClasses>(\n classKeys,\n \"HvCheckBoxGroup\"\n);\n\nexport default checkBoxGroupClasses;\n"],"names":["classKeys","checkBoxGroupClasses","getClasses"],"mappings":";AAaA,MAAMA,YAAsB,CAC1B,QACA,SACA,SACA,YACA,cACA,WACA,aACA,OAAO;AAGT,MAAMC,uBAAuBC,WAC3BF,WACA,iBAAiB;AAGnB,MAAA,yBAAeC;"}
1
+ {"version":3,"file":"checkBoxGroupClasses.js","sources":["../../../../src/components/CheckBoxGroup/checkBoxGroupClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvCheckBoxGroupClasses {\n root?: string;\n label?: string;\n group?: string;\n vertical?: string;\n horizontal?: string;\n invalid?: string;\n selectAll?: string;\n error?: string;\n}\n\nconst classKeys: (keyof HvCheckBoxGroupClasses)[] = [\n \"root\",\n \"label\",\n \"group\",\n \"vertical\",\n \"horizontal\",\n \"invalid\",\n \"selectAll\",\n \"error\",\n];\n\nconst checkBoxGroupClasses = getClasses(classKeys, \"HvCheckBoxGroup\");\n\nexport default checkBoxGroupClasses;\n"],"names":["classKeys","checkBoxGroupClasses","getClasses"],"mappings":";AAaA,MAAMA,YAA8C,CAClD,QACA,SACA,SACA,YACA,cACA,WACA,aACA,OAAO;AAGT,MAAMC,uBAAuBC,WAAWF,WAAW,iBAAiB;AAEpE,MAAA,yBAAeC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"containerClasses.js","sources":["../../../../src/components/Container/containerClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvContainerClasses {\n root?: string;\n disableGutters?: string;\n fixed?: string;\n maxWidthXs?: string;\n maxWidthSm?: string;\n maxWidthMd?: string;\n maxWidthLg?: string;\n maxWidthXl?: string;\n}\n\nconst classKeys: string[] = [\n \"root\",\n \"disableGutters\",\n \"fixed\",\n \"maxWidthXs\",\n \"maxWidthSm\",\n \"maxWidthMd\",\n \"maxWidthLg\",\n \"maxWidthXl\",\n];\n\nconst containerClasses = getClasses<HvContainerClasses>(\n classKeys,\n \"HvContainer\"\n);\n\nexport default containerClasses;\n"],"names":["classKeys","containerClasses","getClasses"],"mappings":";AAaA,MAAMA,YAAsB,CAC1B,QACA,kBACA,SACA,cACA,cACA,cACA,cACA,YAAY;AAGd,MAAMC,mBAAmBC,WACvBF,WACA,aAAa;AAGf,MAAA,qBAAeC;"}
1
+ {"version":3,"file":"containerClasses.js","sources":["../../../../src/components/Container/containerClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvContainerClasses {\n root?: string;\n disableGutters?: string;\n fixed?: string;\n maxWidthXs?: string;\n maxWidthSm?: string;\n maxWidthMd?: string;\n maxWidthLg?: string;\n maxWidthXl?: string;\n}\n\nconst classKeys: (keyof HvContainerClasses)[] = [\n \"root\",\n \"disableGutters\",\n \"fixed\",\n \"maxWidthXs\",\n \"maxWidthSm\",\n \"maxWidthMd\",\n \"maxWidthLg\",\n \"maxWidthXl\",\n];\n\nconst containerClasses = getClasses(classKeys, \"HvContainer\");\n\nexport default containerClasses;\n"],"names":["classKeys","containerClasses","getClasses"],"mappings":";AAaA,MAAMA,YAA0C,CAC9C,QACA,kBACA,SACA,cACA,cACA,cACA,cACA,YAAY;AAGd,MAAMC,mBAAmBC,WAAWF,WAAW,aAAa;AAE5D,MAAA,qBAAeC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"leftControlClasses.js","sources":["../../../../../src/components/Controls/LeftControl/leftControlClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvLeftControlClasses {\n root: string;\n}\n\nconst classKeys: string[] = [\"root\"];\n\nconst leftControlClasses = getClasses<HvLeftControlClasses>(\n classKeys,\n \"HvLeftControl\"\n);\n\nexport default leftControlClasses;\n"],"names":["classKeys","leftControlClasses","getClasses"],"mappings":";AAMA,MAAMA,YAAsB,CAAC,MAAM;AAEnC,MAAMC,qBAAqBC,WACzBF,WACA,eAAe;AAGjB,MAAA,uBAAeC;"}
1
+ {"version":3,"file":"leftControlClasses.js","sources":["../../../../../src/components/Controls/LeftControl/leftControlClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvLeftControlClasses {\n root: string;\n}\n\nconst classKeys: (keyof HvLeftControlClasses)[] = [\"root\"];\n\nconst leftControlClasses = getClasses(classKeys, \"HvLeftControl\");\n\nexport default leftControlClasses;\n"],"names":["classKeys","leftControlClasses","getClasses"],"mappings":";AAMA,MAAMA,YAA4C,CAAC,MAAM;AAEzD,MAAMC,qBAAqBC,WAAWF,WAAW,eAAe;AAEhE,MAAA,uBAAeC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rightControlClasses.js","sources":["../../../../../src/components/Controls/RightControl/rightControlClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvRightControlClasses {\n root?: string;\n sortDropdown?: string;\n}\n\nconst classKeys: string[] = [\"root\"];\n\nconst rightControlClasses = getClasses<HvRightControlClasses>(\n classKeys,\n \"HvRightControl\"\n);\n\nexport default rightControlClasses;\n"],"names":["classKeys","rightControlClasses","getClasses"],"mappings":";AAOA,MAAMA,YAAsB,CAAC,MAAM;AAEnC,MAAMC,sBAAsBC,WAC1BF,WACA,gBAAgB;AAGlB,MAAA,wBAAeC;"}
1
+ {"version":3,"file":"rightControlClasses.js","sources":["../../../../../src/components/Controls/RightControl/rightControlClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvRightControlClasses {\n root?: string;\n sortDropdown?: string;\n}\n\nconst classKeys: (keyof HvRightControlClasses)[] = [\"root\"];\n\nconst rightControlClasses = getClasses(classKeys, \"HvRightControl\");\n\nexport default rightControlClasses;\n"],"names":["classKeys","rightControlClasses","getClasses"],"mappings":";AAOA,MAAMA,YAA6C,CAAC,MAAM;AAE1D,MAAMC,sBAAsBC,WAAWF,WAAW,gBAAgB;AAElE,MAAA,wBAAeC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"controlClasses.js","sources":["../../../../src/components/Controls/controlClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvControlsClasses {\n root: string;\n section: string;\n rightSection: string;\n leftSection: string;\n}\n\nconst classKeys: string[] = [\"root\", \"section\", \"rightSection\", \"leftSection\"];\n\nconst controlsClasses = getClasses<HvControlsClasses>(classKeys, \"HvControls\");\n\nexport default controlsClasses;\n"],"names":["classKeys","controlsClasses","getClasses"],"mappings":";AASA,MAAMA,YAAsB,CAAC,QAAQ,WAAW,gBAAgB,aAAa;AAE7E,MAAMC,kBAAkBC,WAA8BF,WAAW,YAAY;AAE7E,MAAA,oBAAeC;"}
1
+ {"version":3,"file":"controlClasses.js","sources":["../../../../src/components/Controls/controlClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvControlsClasses {\n root: string;\n section: string;\n rightSection: string;\n leftSection: string;\n}\n\nconst classKeys: (keyof HvControlsClasses)[] = [\n \"root\",\n \"section\",\n \"rightSection\",\n \"leftSection\",\n];\n\nconst controlsClasses = getClasses(classKeys, \"HvControls\");\n\nexport default controlsClasses;\n"],"names":["classKeys","controlsClasses","getClasses"],"mappings":";AASA,MAAMA,YAAyC,CAC7C,QACA,WACA,gBACA,aAAa;AAGf,MAAMC,kBAAkBC,WAAWF,WAAW,YAAY;AAE1D,MAAA,oBAAeC;"}
@@ -8,7 +8,6 @@ import { isInvalid } from "../Forms/FormElement/validationStates.js";
8
8
  import { isDate } from "../Calendar/utils.js";
9
9
  import { getDateLabel } from "./utils.js";
10
10
  import useVisibleDate from "./useVisibleDate.js";
11
- import { NAV_OPTIONS } from "../Calendar/enums.js";
12
11
  import datePickerClasses from "./datePickerClasses.js";
13
12
  import { styles } from "./DatePicker.styles.js";
14
13
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
@@ -90,7 +89,7 @@ const HvDatePicker = ({
90
89
  useEffect(() => {
91
90
  if (startDate != null) {
92
91
  dispatchAction({
93
- type: NAV_OPTIONS.MONTH_YEAR,
92
+ type: "month_year",
94
93
  target: endDateIsSet.current ? "left" : "best",
95
94
  year: startDate.getFullYear(),
96
95
  month: startDate.getMonth() + 1
@@ -100,7 +99,7 @@ const HvDatePicker = ({
100
99
  useEffect(() => {
101
100
  if (endDate != null) {
102
101
  dispatchAction({
103
- type: NAV_OPTIONS.MONTH_YEAR,
102
+ type: "month_year",
104
103
  target: "right",
105
104
  year: endDate.getFullYear(),
106
105
  month: endDate.getMonth() + 1
@@ -233,7 +232,7 @@ const HvDatePicker = ({
233
232
  label: "StyledTypography"
234
233
  })({
235
234
  color: dateString ? theme.colors.secondary : theme.datePicker.dropdownPlaceholderColor
236
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzZjZCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ2xhc3NOYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSBcImNsc3hcIjtcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1yZWFjdC1pY29uc1wiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IHtcbiAgSHZDYWxlbmRhcixcbiAgSHZJbmZvTWVzc2FnZSxcbiAgSHZXYXJuaW5nVGV4dCxcbiAgSHZDYWxlbmRhclByb3BzLFxuICBIdkFjdGlvbkJhcixcbiAgSHZCdXR0b24sXG4gIEh2Rm9ybUVsZW1lbnQsXG4gIEh2VHlwb2dyYXBoeSxcbiAgSHZCYXNlRHJvcGRvd24sXG4gIEh2TGFiZWwsXG59IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkLCB1c2VMYWJlbHMsIHVzZVRoZW1lLCB1c2VVbmlxdWVJZCB9IGZyb20gXCJAY29yZS9ob29rc1wiO1xuaW1wb3J0IHsgSHZCYXNlUHJvcHMgfSBmcm9tIFwiQGNvcmUvdHlwZXNcIjtcbmltcG9ydCB7IHNldElkLCB1c2VTYXZlZFN0YXRlIH0gZnJvbSBcIkBjb3JlL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0ludmFsaWQgfSBmcm9tIFwiLi4vRm9ybXMvRm9ybUVsZW1lbnQvdmFsaWRhdGlvblN0YXRlc1wiO1xuaW1wb3J0IHsgaXNEYXRlIH0gZnJvbSBcIi4uL0NhbGVuZGFyL3V0aWxzXCI7XG5pbXBvcnQgeyBnZXREYXRlTGFiZWwgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHVzZVZpc2libGVEYXRlIGZyb20gXCIuL3VzZVZpc2libGVEYXRlXCI7XG5pbXBvcnQgeyBOQVZfT1BUSU9OUyB9IGZyb20gXCIuLi9DYWxlbmRhci9lbnVtc1wiO1xuaW1wb3J0IGRhdGVQaWNrZXJDbGFzc2VzLCB7IEh2RGF0ZVBpY2tlckNsYXNzZXMgfSBmcm9tIFwiLi9kYXRlUGlja2VyQ2xhc3Nlc1wiO1xuaW1wb3J0IHsgc3R5bGVzIH0gZnJvbSBcIi4vRGF0ZVBpY2tlci5zdHlsZXNcIjtcblxuY29uc3QgREVGQVVMVF9MQUJFTFMgPSB7XG4gIGFwcGx5TGFiZWw6IFwiQXBwbHlcIixcbiAgY2FuY2VsTGFiZWw6IFwiQ2FuY2VsXCIsXG4gIGNsZWFyTGFiZWw6IFwiQ2xlYXJcIixcbn07XG5cbmV4cG9ydCB0eXBlIEh2RGF0ZVBpY2tlclN0YXR1cyA9IFwic3RhbmRCeVwiIHwgXCJ2YWxpZFwiIHwgXCJpbnZhbGlkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHZEYXRlUGlja2VyUHJvcHNcbiAgZXh0ZW5kcyBIdkJhc2VQcm9wczxIVE1MRGl2RWxlbWVudCwgeyBvbkNoYW5nZSB9PiB7XG4gIC8qKlxuICAgKiBDbGFzcyBuYW1lcyB0byBiZSBhcHBsaWVkLlxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBKc3MgT2JqZWN0IHVzZWQgdG8gb3ZlcnJpZGUgb3IgZXh0ZW5kIHRoZSBjb21wb25lbnQgc3R5bGVzIGFwcGxpZWQuXG4gICAqL1xuICBjbGFzc2VzPzogSHZEYXRlUGlja2VyQ2xhc3NlcztcbiAgLyoqXG4gICAqIElkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGZvcm0gZWxlbWVudCByb290IG5vZGUuXG4gICAqL1xuICBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm0gZWxlbWVudCBuYW1lLlxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgZm9ybSBlbGVtZW50LlxuICAgKlxuICAgKiBUaGUgZm9ybSBlbGVtZW50IG11c3QgYmUgbGFiZWxlZCBmb3IgYWNjZXNzaWJpbGl0eSByZWFzb25zLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGFuIGFyaWEtbGFiZWwgb3IgYXJpYS1sYWJlbGxlZGJ5IG11c3QgYmUgcHJvdmlkZWQgaW5zdGVhZC5cbiAgICovXG4gIGxhYmVsPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBcImFyaWEtbGFiZWxsZWRieVwiPzogc3RyaW5nO1xuICAvKipcbiAgICogUHJvdmlkZSBhZGRpdGlvbmFsIGRlc2NyaXB0aXZlIHRleHQgZm9yIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBsYWNlaG9sZGVyIHZhbHVlIHdoZW4gbm90aGluZyBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZm9ybSBlbGVtZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdXNlciBpbnB1dCBpcyByZXF1aXJlZCBvbiB0aGUgZm9ybSBlbGVtZW50LlxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqXG4gICAqIFZhbGlkIGlzIGNvcnJlY3QsIGludmFsaWQgaXMgaW5jb3JyZWN0IGFuZCBzdGFuZEJ5IG1lYW5zIG5vIHZhbGlkYXRpb25zIGhhdmUgcnVuLlxuICAgKlxuICAgKiBXaGVuIHVuY29udHJvbGxlZCBhbmQgdW5zcGVjaWZpZWQgaXQgd2lsbCBkZWZhdWx0IHRvIFwic3RhbmRCeVwiIGFuZCBjaGFuZ2UgdG8gZWl0aGVyIFwidmFsaWRcIlxuICAgKiBvciBcImludmFsaWRcIiBhZnRlciBhbnkgY2hhbmdlIHRvIHRoZSBzdGF0ZS5cbiAgICovXG4gIHN0YXR1cz86IEh2RGF0ZVBpY2tlclN0YXR1cztcbiAgLyoqXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIHNob3cgd2hlbiB0aGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgXCJpbnZhbGlkXCIuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiUmVxdWlyZWRcIiB3aGVuIHRoZSBzdGF0dXMgaXMgdW5jb250cm9sbGVkIGFuZCBubyBgYXJpYS1lcnJvcm1lc3NhZ2VgIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgc3RhdHVzTWVzc2FnZT86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhbiBlcnJvciBtZXNzYWdlIGZvciB0aGUgZGF0ZSBwaWNrZXIuXG4gICAqXG4gICAqIFdpbGwgb25seSBiZSB1c2VkIHdoZW4gdGhlIHZhbGlkYXRpb24gc3RhdHVzIGlzIGludmFsaWQuXG4gICAqL1xuICBcImFyaWEtZXJyb3JtZXNzYWdlXCI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxsYmFjayBmaXJlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgb25DaGFuZ2U/OiAoZGF0ZT86IERhdGUsIGVuZERhdGU/OiBEYXRlKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIGZpcmVkIHdoZW4gdXNlciBjbGlja3Mgb24gY2FuY2VsLlxuICAgKi9cbiAgb25DYW5jZWw/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIGZpcmVkIHdoZW4gdXNlciBjbGlja3Mgb24gY2xlYXIuXG4gICAqL1xuICBvbkNsZWFyPzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgbGFiZWxzIGZvciB0aGUgZGF0ZXBpY2tlci5cbiAgICovXG4gIGxhYmVscz86IHtcbiAgICAvKipcbiAgICAgKiBBcHBseSBidXR0b24gbGFiZWwuXG4gICAgICovXG4gICAgYXBwbHlMYWJlbD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDYW5jZWwgYnV0dG9uIGxhYmVsLlxuICAgICAqL1xuICAgIGNhbmNlbExhYmVsPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIENsZWFyIGJ1dHRvbiBsYWJlbC5cbiAgICAgKi9cbiAgICBjbGVhckxhYmVsPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgaW5wdXQgd2hlbiBpbiBzaW5nbGUgY2FsZW5kYXIgbW9kZS5cbiAgICovXG4gIHZhbHVlPzogRGF0ZTtcbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGUgc3RhcnQgZGF0ZSB3aGVuIGluIHJhbmdlIG1vZGUuXG4gICAqL1xuICBzdGFydFZhbHVlPzogRGF0ZTtcbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGUgZW5kIGRhdGUgd2hlbiBpbiByYW5nZSBtb2RlLlxuICAgKi9cbiAgZW5kVmFsdWU/OiBEYXRlO1xuICAvKipcbiAgICogRmxhZyBpbmZvcm1pbmcgaWYgdGhlIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGluIHJhbmdlIG1vZGUgb3IgaW4gc2luZ2xlIG1vZGUuXG4gICAqL1xuICByYW5nZU1vZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHBsYWNlbWVudCB3aGVyZSB0aGUgY2FsZW5kYXIgc2hvdWxkIGJlIHBsYWNlZCBhY2NvcmRpbmcgdG8gdGhlIGlucHV0LiBPcHRpb25zIGFyZSBgbGVmdGAgb3IgYHJpZ2h0YC5cbiAgICogTm90ZSB0aGlzIHByb3Agb25seSBhZmZlY3RzIHRoZSBjYWxlbmRhciB3aGVuIGluIGByYW5nZU1vZGVgLlxuICAgKi9cbiAgaG9yaXpvbnRhbFBsYWNlbWVudD86IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICAvKipcbiAgICogVGhlIGNhbGVuZGFyIGxvY2FsZS4gSWYgdW5kZWZpbmVkLCBpdCB1c2VzIGNhbGVuZGFyIGRlZmF1bHRcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29udHJvbHMgaWYgYWN0aW9ucyBidXR0b25zIGFyZSB2aXNpYmxlIGF0IHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHNob3dBY3Rpb25zPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIGlmIGNsZWFyIGJ1dHRvbiBpcyB2aXNpYmxlIGF0IHRoZSBjYWxlbmRhcixcbiAgICogb25seSB3b3JrcyBpZiBzaG93aW5nIGFjdGlvbnMgb3IgaW4gcmFuZ2UgbW9kZS5cbiAgICovXG4gIHNob3dDbGVhcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBwb3J0YWwgYmVoYXZpb3IuIFRoZSBjaGlsZHJlbiBzdGF5IHdpdGhpbiBpdCdzIHBhcmVudCBET00gaGllcmFyY2h5LlxuICAgKi9cbiAgZGlzYWJsZVBvcnRhbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXRzIGlmIHRoZSBjYWxlbmRhciBjb250YWluZXIgc2hvdWxkIGZvbGxvdyB0aGUgZGF0ZSBwaWNrZXIgaW5wdXQgb3V0IG9mIHRoZSBzY3JlZW4gb3Igc3RheSB2aXNpYmxlLlxuICAgKi9cbiAgZXNjYXBlV2l0aFJlZmVyZW5jZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBlbGVtZW50IHBsYWNlZCBiZWZvcmUgdGhlIENhbGVuZGFyXG4gICAqL1xuICBzdGFydEFkb3JubWVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BzIHRvIGJlIHBhc3NlZCBvbnRvIHRoZSBiYXNlRHJvcGRvd24uXG4gICAqL1xuICBkcm9wZG93blByb3BzPzogT2JqZWN0O1xuICAvKipcbiAgICogSWYgYHRydWVgIHRoZSBEYXRlUGlja2VyIHdpbGwgYmUgaW4gcmVhZCBvbmx5IG1vZGUsIHVuYWJsZSB0byBiZSBpbnRlcmFjdGVkLlxuICAgKi9cbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBwcm9wcyBwYXNzZWQgdG8gdGhlIEh2Q2FsZW5kYXIgY29tcG9uZW50LlxuICAgKi9cbiAgY2FsZW5kYXJQcm9wcz86IFBhcnRpYWw8SHZDYWxlbmRhclByb3BzPjtcbn1cblxuLyoqXG4gKiBBIGRhdGUgcGlja2VyLCBwb3B1cCBjYWxlbmRhciBvciBkYXRlIHJhbmdlIHBpY2tlciBpcyBhIGdyYXBoaWNhbCB1c2VyXG4gKiBpbnRlcmZhY2Ugd2lkZ2V0IHdoaWNoIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBjYWxlbmRhci5cbiAqL1xuZXhwb3J0IGNvbnN0IEh2RGF0ZVBpY2tlciA9ICh7XG4gIGNsYXNzZXMsXG4gIGNsYXNzTmFtZSxcblxuICBpZCxcbiAgbmFtZSxcblxuICByZXF1aXJlZCA9IGZhbHNlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICByZWFkT25seSxcblxuICBsYWJlbCxcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWxhYmVsbGVkYnlcIjogYXJpYUxhYmVsbGVkQnksXG4gIGRlc2NyaXB0aW9uLFxuICBcImFyaWEtZGVzY3JpYmVkYnlcIjogYXJpYURlc2NyaWJlZEJ5LFxuXG4gIG9uQ2hhbmdlLFxuICBvbkNhbmNlbCxcbiAgb25DbGVhcixcbiAgc3RhdHVzLFxuICBzdGF0dXNNZXNzYWdlLFxuICBcImFyaWEtZXJyb3JtZXNzYWdlXCI6IGFyaWFFcnJvck1lc3NhZ2UsXG5cbiAgcGxhY2Vob2xkZXIsXG5cbiAgbGFiZWxzOiBsYWJlbHNQcm9wLFxuXG4gIHZhbHVlLFxuICBzdGFydFZhbHVlLFxuICBlbmRWYWx1ZSxcblxuICByYW5nZU1vZGUgPSBmYWxzZSxcbiAgc3RhcnRBZG9ybm1lbnQsXG4gIGhvcml6b250YWxQbGFjZW1lbnQgPSBcInJpZ2h0XCIsXG4gIGxvY2FsZTogbG9jYWxlUHJvcCxcbiAgc2hvd0FjdGlvbnMgPSBmYWxzZSxcbiAgc2hvd0NsZWFyID0gZmFsc2UsXG4gIGRpc2FibGVQb3J0YWwgPSB0cnVlLFxuICBlc2NhcGVXaXRoUmVmZXJlbmNlID0gdHJ1ZSxcbiAgZHJvcGRvd25Qcm9wcyxcbiAgY2FsZW5kYXJQcm9wcyxcbiAgLi4ub3RoZXJzXG59OiBIdkRhdGVQaWNrZXJQcm9wcykgPT4ge1xuICBjb25zdCBsYWJlbHMgPSB1c2VMYWJlbHMoREVGQVVMVF9MQUJFTFMsIGxhYmVsc1Byb3ApO1xuXG4gIGNvbnN0IGVsZW1lbnRJZCA9IHVzZVVuaXF1ZUlkKGlkLCBcImh2ZGF0ZXBpY2tlclwiKTtcblxuICBjb25zdCBbdmFsaWRhdGlvblN0YXRlLCBzZXRWYWxpZGF0aW9uU3RhdGVdID0gdXNlQ29udHJvbGxlZChcbiAgICBzdGF0dXMsXG4gICAgXCJzdGFuZEJ5XCJcbiAgKTtcblxuICBjb25zdCBbdmFsaWRhdGlvbk1lc3NhZ2VdID0gdXNlQ29udHJvbGxlZChzdGF0dXNNZXNzYWdlLCBcIlJlcXVpcmVkXCIpO1xuXG4gIGNvbnN0IGxvY2FsZSA9IGxvY2FsZVByb3AgfHwgXCJlbi1VU1wiO1xuXG4gIGNvbnN0IFtjYWxlbmRhck9wZW4sIHNldENhbGVuZGFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgW3N0YXJ0RGF0ZSwgc2V0U3RhcnREYXRlLCByb2xsYmFja1N0YXJ0RGF0ZV0gPSB1c2VTYXZlZFN0YXRlKFxuICAgIHJhbmdlTW9kZSA/IHN0YXJ0VmFsdWUgOiB2YWx1ZVxuICApO1xuICBjb25zdCBbZW5kRGF0ZSwgc2V0RW5kRGF0ZSwgcm9sbGJhY2tFbmREYXRlXSA9IHVzZVNhdmVkU3RhdGUoZW5kVmFsdWUpO1xuXG4gIGNvbnN0IFt2aXNpYmxlRGF0ZSwgZGlzcGF0Y2hBY3Rpb25dID0gdXNlVmlzaWJsZURhdGUoc3RhcnREYXRlLCBlbmREYXRlKTtcblxuICBjb25zdCBmb2N1c1RhcmdldCA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgeyBhY3RpdmVUaGVtZSB9ID0gdXNlVGhlbWUoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFN0YXJ0RGF0ZShyYW5nZU1vZGUgPyBzdGFydFZhbHVlIDogdmFsdWUsIHRydWUpO1xuICAgIHNldEVuZERhdGUoZW5kVmFsdWUsIHRydWUpO1xuICB9LCBbdmFsdWUsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCByYW5nZU1vZGVdKTtcblxuICBjb25zdCBlbmREYXRlSXNTZXQgPSB1c2VSZWYoZmFsc2UpO1xuICBlbmREYXRlSXNTZXQuY3VycmVudCA9IGVuZERhdGUgIT0gbnVsbDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGFydERhdGUgIT0gbnVsbCkge1xuICAgICAgZGlzcGF0Y2hBY3Rpb24oe1xuICAgICAgICB0eXBlOiBOQVZfT1BUSU9OUy5NT05USF9ZRUFSLFxuICAgICAgICB0YXJnZXQ6IGVuZERhdGVJc1NldC5jdXJyZW50ID8gXCJsZWZ0XCIgOiBcImJlc3RcIixcbiAgICAgICAgeWVhcjogc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIG1vbnRoOiBzdGFydERhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaEFjdGlvbiwgc3RhcnREYXRlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW5kRGF0ZSAhPSBudWxsKSB7XG4gICAgICBkaXNwYXRjaEFjdGlvbih7XG4gICAgICAgIHR5cGU6IE5BVl9PUFRJT05TLk1PTlRIX1lFQVIsXG4gICAgICAgIHRhcmdldDogXCJyaWdodFwiLFxuICAgICAgICB5ZWFyOiBlbmREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIG1vbnRoOiBlbmREYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZGlzcGF0Y2hBY3Rpb24sIGVuZERhdGVdKTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYEFwcGx5YCBhY3Rpb24uIEJvdGggc2luZ2xlIGFuZCByYW5nZWQgbW9kZXMgYXJlIGhhbmRsZWQgaGVyZS5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUFwcGx5ID0gKCkgPT4ge1xuICAgIHNldFN0YXJ0RGF0ZShzdGFydERhdGUsIHRydWUpO1xuICAgIHNldEVuZERhdGUoZW5kRGF0ZSA/PyBzdGFydERhdGUsIHRydWUpO1xuXG4gICAgb25DaGFuZ2U/LihzdGFydERhdGUsIGVuZERhdGUpO1xuXG4gICAgc2V0VmFsaWRhdGlvblN0YXRlKCgpID0+IHtcbiAgICAgIC8vIHRoaXMgd2lsbCBvbmx5IHJ1biBpZiBzdGF0dXMgaXMgdW5jb250cm9sbGVkXG4gICAgICBpZiAocmVxdWlyZWQgJiYgKCFpc0RhdGUoc3RhcnREYXRlKSB8fCAocmFuZ2VNb2RlICYmICFpc0RhdGUoZW5kRGF0ZSkpKSkge1xuICAgICAgICByZXR1cm4gXCJpbnZhbGlkXCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBcInZhbGlkXCI7XG4gICAgfSk7XG5cbiAgICBzZXRDYWxlbmRhck9wZW4oZmFsc2UpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBgQ2FuY2VsYCBhY3Rpb24uIEJvdGggc2luZ2xlIGFuZCByYW5nZWQgbW9kZXMgYXJlIGhhbmRsZWQgaGVyZS5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9ICgpID0+IHtcbiAgICByb2xsYmFja1N0YXJ0RGF0ZSgpO1xuICAgIHJvbGxiYWNrRW5kRGF0ZSgpO1xuXG4gICAgb25DYW5jZWw/LigpO1xuXG4gICAgc2V0Q2FsZW5kYXJPcGVuKGZhbHNlKTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYENhbmNlbGAgYWN0aW9uLiBCb3RoIHNpbmdsZSBhbmQgcmFuZ2VkIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmUuXG4gICAqL1xuICBjb25zdCBoYW5kbGVDbGVhciA9ICgpID0+IHtcbiAgICBzZXRTdGFydERhdGUodW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgc2V0RW5kRGF0ZSh1bmRlZmluZWQsIGZhbHNlKTtcbiAgICBvbkNsZWFyPy4oKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDYWxlbmRhckNsb3NlID0gKCkgPT4ge1xuICAgIGNvbnN0IHNob3VsZFNhdmUgPSAhKHJhbmdlTW9kZSB8fCBzaG93QWN0aW9ucyk7XG4gICAgaWYgKHNob3VsZFNhdmUpIHtcbiAgICAgIGhhbmRsZUFwcGx5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVUb2dnbGUgPSAoZXZ0LCBvcGVuKSA9PiB7XG4gICAgLyogXG4gICAgIElmIGV2dCBpcyBudWxsIHRoaXMgdG9nZ2xlIHdhc24ndCB0cmlnZ2VyZWQgYnkgdGhlIHVzZXIuXG4gICAgIGluc3RlYWQgaXQgd2FzIHRyaWdnZXJlZCBieSB0aGUgYmFzZURyb3Bkb3duIHVzZUVmZmVjdCBhZnRlclxuICAgICB0aGUgZGF0ZXBpY2tlciBjaGFuZ2VkIHRoZSBleHBhbmRlZCB2YWx1ZSB0aGlzIGJhc2VEcm9wZG93biBiZWhhdmlvciBuZWVkcyBhIHJldmlld1xuICAgICovXG4gICAgaWYgKGV2dCA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIHNldENhbGVuZGFyT3BlbihvcGVuKTtcbiAgICBpZiAoIW9wZW4pIGhhbmRsZUNhbGVuZGFyQ2xvc2UoKTtcbiAgfTtcblxuICBjb25zdCBmb2N1c09uQ29udGFpbmVyID0gKCkgPT4ge1xuICAgIGZvY3VzVGFyZ2V0LmN1cnJlbnQ/LmZvY3VzKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGF0ZUNoYW5nZSA9IChldmVudCwgbmV3RGF0ZSkgPT4ge1xuICAgIGlmICghaXNEYXRlKG5ld0RhdGUpKSByZXR1cm47XG5cbiAgICBjb25zdCBhdXRvU2F2ZSA9ICFzaG93QWN0aW9ucyAmJiAhcmFuZ2VNb2RlO1xuXG4gICAgaWYgKHJhbmdlTW9kZSkge1xuICAgICAgaWYgKCFzdGFydERhdGUgfHwgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB8fCBuZXdEYXRlIDwgc3RhcnREYXRlKSB7XG4gICAgICAgIHNldFN0YXJ0RGF0ZShuZXdEYXRlKTtcbiAgICAgICAgc2V0RW5kRGF0ZSh1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0RW5kRGF0ZShuZXdEYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U3RhcnREYXRlKG5ld0RhdGUsIGF1dG9TYXZlKTtcbiAgICB9XG5cbiAgICBpZiAoYXV0b1NhdmUpIHtcbiAgICAgIG9uQ2hhbmdlPy4obmV3RGF0ZSk7XG5cbiAgICAgIHNldFZhbGlkYXRpb25TdGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIHRoaXMgd2lsbCBvbmx5IHJ1biBpZiBzdGF0dXMgaXMgdW5jb250cm9sbGVkXG4gICAgICAgIGlmIChyZXF1aXJlZCAmJiAhaXNEYXRlKG5ld0RhdGUpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiaW52YWxpZFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFwidmFsaWRcIjtcbiAgICAgIH0pO1xuXG4gICAgICBzZXRDYWxlbmRhck9wZW4oZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVJbnB1dERhdGVDaGFuZ2UgPSAoZXZlbnQsIG5ld0RhdGUsIHBvc2l0aW9uKSA9PiB7XG4gICAgaWYgKCFpc0RhdGUobmV3RGF0ZSkpIHJldHVybjtcblxuICAgIGlmICghcmFuZ2VNb2RlKSB7XG4gICAgICBoYW5kbGVEYXRlQ2hhbmdlKGV2ZW50LCBuZXdEYXRlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gPT09IFwibGVmdFwiKSB7XG4gICAgICBpZiAoZW5kRGF0ZSkgc2V0U3RhcnREYXRlKG5ld0RhdGUgPiBlbmREYXRlID8gZW5kRGF0ZSA6IG5ld0RhdGUpO1xuICAgIH0gZWxzZSBpZiAocG9zaXRpb24gPT09IFwicmlnaHRcIikge1xuICAgICAgaWYgKCFzdGFydERhdGUpIHtcbiAgICAgICAgaWYgKGVuZERhdGUpIHNldFN0YXJ0RGF0ZShuZXdEYXRlID4gZW5kRGF0ZSA/IGVuZERhdGUgOiBuZXdEYXRlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc2V0RW5kRGF0ZShuZXdEYXRlIDwgc3RhcnREYXRlID8gc3RhcnREYXRlIDogbmV3RGF0ZSk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBjb250YWluZXIgZm9yIHRoZSBhY3Rpb24gZWxlbWVudHMuXG4gICAqL1xuICBjb25zdCByZW5kZXJBY3Rpb25zID0gKCkgPT4gKFxuICAgIDxDbGFzc05hbWVzPlxuICAgICAgeyh7IGNzcyB9KSA9PiAoXG4gICAgICAgIDxIdkFjdGlvbkJhclxuICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICBzaG93Q2xlYXJcbiAgICAgICAgICAgICAgPyBjbHN4KFxuICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5hY3Rpb25Db250YWluZXIpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICB7c2hvd0NsZWFyICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmxlZnRDb250YWluZXIsXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8ubGVmdENvbnRhaW5lclxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SHZCdXR0b25cbiAgICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiYWN0aW9uXCIsIFwiY2xlYXJcIil9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5hY3Rpb24pXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeUdob3N0XCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGVhcn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbHM/LmNsZWFyTGFiZWx9XG4gICAgICAgICAgICAgIDwvSHZCdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMucmlnaHRDb250YWluZXIsXG4gICAgICAgICAgICAgIGNsYXNzZXM/LnJpZ2h0Q29udGFpbmVyXG4gICAgICAgICAgICApfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxIdkJ1dHRvblxuICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiYWN0aW9uXCIsIFwiYXBwbHlcIil9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5hY3Rpb24sXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuYWN0aW9uKVxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeUdob3N0XCJcbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQXBwbHl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsYWJlbHM/LmFwcGx5TGFiZWx9XG4gICAgICAgICAgICA8L0h2QnV0dG9uPlxuICAgICAgICAgICAgPEh2QnV0dG9uXG4gICAgICAgICAgICAgIGlkPXtzZXRJZChpZCwgXCJhY3Rpb25cIiwgXCJjYW5jZWxcIil9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5hY3Rpb24sXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuYWN0aW9uKVxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeUdob3N0XCJcbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2FuY2VsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGFiZWxzPy5jYW5jZWxMYWJlbH1cbiAgICAgICAgICAgIDwvSHZCdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvSHZBY3Rpb25CYXI+XG4gICAgICApfVxuICAgIDwvQ2xhc3NOYW1lcz5cbiAgKTtcblxuICBjb25zdCBzdHlsZWRUeXBvZ3JhcGh5ID0gKGRhdGVTdHJpbmcsIHZhcmlhbnQsIHRleHQpID0+IHtcbiAgICBjb25zdCBTdHlsZWRUeXBvZ3JhcGh5ID0gc3R5bGVkKEh2VHlwb2dyYXBoeSkoe1xuICAgICAgY29sb3I6IGRhdGVTdHJpbmdcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5XG4gICAgICAgIDogdGhlbWUuZGF0ZVBpY2tlci5kcm9wZG93blBsYWNlaG9sZGVyQ29sb3IsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gPFN0eWxlZFR5cG9ncmFwaHkgdmFyaWFudD17dmFyaWFudH0+e3RleHR9PC9TdHlsZWRUeXBvZ3JhcGh5PjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJJbnB1dCA9IChkYXRlU3RyaW5nKSA9PlxuICAgIHN0eWxlZFR5cG9ncmFwaHkoXG4gICAgICBkYXRlU3RyaW5nLFxuICAgICAgYWN0aXZlVGhlbWU/LmRhdGVQaWNrZXIucGxhY2Vob2xkZXJWYXJpYW50LFxuICAgICAgKGRhdGVTdHJpbmcgfHwgcGxhY2Vob2xkZXIpID09PSB1bmRlZmluZWQgPyBcIlwiIDogZGF0ZVN0cmluZyB8fCBwbGFjZWhvbGRlclxuICAgICk7XG5cbiAgY29uc3QgZGF0ZVZhbHVlID0gcmFuZ2VNb2RlID8geyBzdGFydERhdGUsIGVuZERhdGUgfSA6IHN0YXJ0RGF0ZTtcblxuICBjb25zdCBoYXNMYWJlbCA9IGxhYmVsICE9IG51bGw7XG4gIGNvbnN0IGhhc0Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24gIT0gbnVsbDtcblxuICAvLyB0aGUgZXJyb3IgbWVzc2FnZSBhcmVhIHdpbGwgb25seSBiZSBjcmVhdGVkIGlmOlxuICAvLyAtIGFuIGV4dGVybmFsIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhbiBlcnJvciBtZXNzYWdlIGlzbid0IGlkZW50aWZpZWQgdmlhIGFyaWEtZXJyb3JtZXNzYWdlIEFORFxuICAvLyAgIC0gYm90aCBzdGF0dXMgYW5kIHN0YXR1c01lc3NhZ2UgcHJvcGVydGllcyBhcmUgYmVpbmcgY29udHJvbGxlZCBPUlxuICAvLyAgIC0gc3RhdHVzIGlzIHVuY29udHJvbGxlZCBhbmQgcmVxdWlyZWQgaXMgdHJ1ZVxuICBjb25zdCBjYW5TaG93RXJyb3IgPVxuICAgIGFyaWFFcnJvck1lc3NhZ2UgPT0gbnVsbCAmJlxuICAgICgoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzTWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB8fFxuICAgICAgKHN0YXR1cyA9PT0gdW5kZWZpbmVkICYmIHJlcXVpcmVkKSk7XG5cbiAgY29uc3QgaXNTdGF0ZUludmFsaWQgPSBpc0ludmFsaWQodmFsaWRhdGlvblN0YXRlKTtcblxuICBsZXQgZXJyb3JNZXNzYWdlSWQ7XG4gIGlmIChpc1N0YXRlSW52YWxpZCkge1xuICAgIGVycm9yTWVzc2FnZUlkID0gY2FuU2hvd0Vycm9yXG4gICAgICA/IHNldElkKGVsZW1lbnRJZCwgXCJlcnJvclwiKVxuICAgICAgOiBhcmlhRXJyb3JNZXNzYWdlO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q2xhc3NOYW1lcz5cbiAgICAgIHsoeyBjc3MgfSkgPT4gKFxuICAgICAgICA8SHZGb3JtRWxlbWVudFxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXtkYXRlVmFsdWV9XG4gICAgICAgICAgc3RhdHVzPXt2YWxpZGF0aW9uU3RhdGV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5yb290LFxuICAgICAgICAgICAgY2xhc3Nlcz8ucm9vdCxcbiAgICAgICAgICAgIGNzcyhzdHlsZXMucm9vdClcbiAgICAgICAgICApfVxuICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICB7Li4ub3RoZXJzfVxuICAgICAgICA+XG4gICAgICAgICAgeyhoYXNMYWJlbCB8fCBoYXNEZXNjcmlwdGlvbikgJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMubGFiZWxDb250YWluZXIsXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8ubGFiZWxDb250YWluZXIsXG4gICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5sYWJlbENvbnRhaW5lcilcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2hhc0xhYmVsICYmIChcbiAgICAgICAgICAgICAgICA8SHZMYWJlbFxuICAgICAgICAgICAgICAgICAgaWQ9e3NldElkKGVsZW1lbnRJZCwgXCJsYWJlbFwiKX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmxhYmVsKVxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHtoYXNEZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgPEh2SW5mb01lc3NhZ2VcbiAgICAgICAgICAgICAgICAgIGlkPXtzZXRJZChlbGVtZW50SWQsIFwiZGVzY3JpcHRpb25cIil9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5kZXNjcmlwdGlvbilcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgIDwvSHZJbmZvTWVzc2FnZT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPEh2QmFzZURyb3Bkb3duXG4gICAgICAgICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgICAgICAgY2xhc3Nlcz17e1xuICAgICAgICAgICAgICByb290OiBjbHN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmRyb3Bkb3duLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRyb3Bkb3duLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuZHJvcGRvd24pXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHBhbmVsOiBjbHN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLnBhbmVsLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LnBhbmVsLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMucGFuZWwpXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGhlYWRlcjogaXNTdGF0ZUludmFsaWRcbiAgICAgICAgICAgICAgICA/IGNsc3goXG4gICAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmRyb3Bkb3duSGVhZGVySW52YWxpZCxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uZHJvcGRvd25IZWFkZXJJbnZhbGlkLFxuICAgICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmRyb3Bkb3duSGVhZGVySW52YWxpZClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgaGVhZGVyT3BlbjogY2xzeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kcm9wZG93bkhlYWRlck9wZW4sXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uZHJvcGRvd25IZWFkZXJPcGVuLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuZHJvcGRvd25IZWFkZXJPcGVuKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgICB2YXJpYWJsZVdpZHRoXG4gICAgICAgICAgICBwbGFjZW1lbnQ9e2hvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgICBleHBhbmRlZD17Y2FsZW5kYXJPcGVufVxuICAgICAgICAgICAgb25Ub2dnbGU9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtoYW5kbGVDYWxlbmRhckNsb3NlfVxuICAgICAgICAgICAgb25Db250YWluZXJDcmVhdGlvbj17Zm9jdXNPbkNvbnRhaW5lcn1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtyZW5kZXJJbnB1dChcbiAgICAgICAgICAgICAgZ2V0RGF0ZUxhYmVsKGRhdGVWYWx1ZSwgcmFuZ2VNb2RlLCBsb2NhbGUpXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgYWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPENhbGVuZGFyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuaWNvbixcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM/Lmljb24sXG4gICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmljb24pXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICBjb2xvcj17ZGlzYWJsZWQgPyBcInNlY29uZGFyeV84MFwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcG9wcGVyUHJvcHM9e3tcbiAgICAgICAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiBcInByZXZlbnRPdmVyZmxvd1wiLCBlbmFibGVkOiBlc2NhcGVXaXRoUmVmZXJlbmNlIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1xuICAgICAgICAgICAgICBbbGFiZWwgJiYgc2V0SWQoZWxlbWVudElkLCBcImxhYmVsXCIpLCBhcmlhTGFiZWxsZWRCeV1cbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgICAgICAudHJpbSgpIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXJpYS1pbnZhbGlkPXtpc1N0YXRlSW52YWxpZCA/IHRydWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBhcmlhLWVycm9ybWVzc2FnZT17ZXJyb3JNZXNzYWdlSWR9XG4gICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtcbiAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uICYmIHNldElkKGVsZW1lbnRJZCwgXCJkZXNjcmlwdGlvblwiKSwgYXJpYURlc2NyaWJlZEJ5XVxuICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKVxuICAgICAgICAgICAgICAgIC50cmltKCkgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7Li4uZHJvcGRvd25Qcm9wc31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IHJlZj17Zm9jdXNUYXJnZXR9IHRhYkluZGV4PXstMX0gLz5cbiAgICAgICAgICAgIDxIdkNhbGVuZGFyXG4gICAgICAgICAgICAgIGlkPXtzZXRJZChpZCwgXCJjYWxlbmRhclwiKX1cbiAgICAgICAgICAgICAgc3RhcnRBZG9ybm1lbnQ9e3N0YXJ0QWRvcm5tZW50fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRGF0ZUNoYW5nZX1cbiAgICAgICAgICAgICAgb25JbnB1dENoYW5nZT17aGFuZGxlSW5wdXREYXRlQ2hhbmdlfVxuICAgICAgICAgICAgICBvblZpc2libGVEYXRlQ2hhbmdlPXsoX2V2ZW50LCB0eXBlLCBtb250aCwgdGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hBY3Rpb24oeyB0eXBlLCB0YXJnZXQsIG1vbnRoIH0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc2libGVEYXRlfVxuICAgICAgICAgICAgICB7Li4uY2FsZW5kYXJQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7KHJhbmdlTW9kZSB8fCBzaG93QWN0aW9ucykgJiYgcmVuZGVyQWN0aW9ucygpfVxuICAgICAgICAgIDwvSHZCYXNlRHJvcGRvd24+XG4gICAgICAgICAge2NhblNob3dFcnJvciAmJiAoXG4gICAgICAgICAgICA8SHZXYXJuaW5nVGV4dFxuICAgICAgICAgICAgICBpZD17c2V0SWQoZWxlbWVudElkLCBcImVycm9yXCIpfVxuICAgICAgICAgICAgICBkaXNhYmxlQm9yZGVyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChkYXRlUGlja2VyQ2xhc3Nlcy5lcnJvciwgY2xhc3Nlcz8uZXJyb3IpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dmFsaWRhdGlvbk1lc3NhZ2V9XG4gICAgICAgICAgICA8L0h2V2FybmluZ1RleHQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9IdkZvcm1FbGVtZW50PlxuICAgICAgKX1cbiAgICA8L0NsYXNzTmFtZXM+XG4gICk7XG59O1xuIl19 */");
235
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzZjZCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ2xhc3NOYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSBcImNsc3hcIjtcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1yZWFjdC1pY29uc1wiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IHtcbiAgSHZDYWxlbmRhcixcbiAgSHZJbmZvTWVzc2FnZSxcbiAgSHZXYXJuaW5nVGV4dCxcbiAgSHZDYWxlbmRhclByb3BzLFxuICBIdkFjdGlvbkJhcixcbiAgSHZCdXR0b24sXG4gIEh2Rm9ybUVsZW1lbnQsXG4gIEh2VHlwb2dyYXBoeSxcbiAgSHZCYXNlRHJvcGRvd24sXG4gIEh2TGFiZWwsXG59IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkLCB1c2VMYWJlbHMsIHVzZVRoZW1lLCB1c2VVbmlxdWVJZCB9IGZyb20gXCJAY29yZS9ob29rc1wiO1xuaW1wb3J0IHsgSHZCYXNlUHJvcHMgfSBmcm9tIFwiQGNvcmUvdHlwZXNcIjtcbmltcG9ydCB7IHNldElkLCB1c2VTYXZlZFN0YXRlIH0gZnJvbSBcIkBjb3JlL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0ludmFsaWQgfSBmcm9tIFwiLi4vRm9ybXMvRm9ybUVsZW1lbnQvdmFsaWRhdGlvblN0YXRlc1wiO1xuaW1wb3J0IHsgaXNEYXRlIH0gZnJvbSBcIi4uL0NhbGVuZGFyL3V0aWxzXCI7XG5pbXBvcnQgeyBnZXREYXRlTGFiZWwgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHVzZVZpc2libGVEYXRlIGZyb20gXCIuL3VzZVZpc2libGVEYXRlXCI7XG5pbXBvcnQgZGF0ZVBpY2tlckNsYXNzZXMsIHsgSHZEYXRlUGlja2VyQ2xhc3NlcyB9IGZyb20gXCIuL2RhdGVQaWNrZXJDbGFzc2VzXCI7XG5pbXBvcnQgeyBzdHlsZXMgfSBmcm9tIFwiLi9EYXRlUGlja2VyLnN0eWxlc1wiO1xuXG5jb25zdCBERUZBVUxUX0xBQkVMUyA9IHtcbiAgYXBwbHlMYWJlbDogXCJBcHBseVwiLFxuICBjYW5jZWxMYWJlbDogXCJDYW5jZWxcIixcbiAgY2xlYXJMYWJlbDogXCJDbGVhclwiLFxufTtcblxuZXhwb3J0IHR5cGUgSHZEYXRlUGlja2VyU3RhdHVzID0gXCJzdGFuZEJ5XCIgfCBcInZhbGlkXCIgfCBcImludmFsaWRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBIdkRhdGVQaWNrZXJQcm9wc1xuICBleHRlbmRzIEh2QmFzZVByb3BzPEhUTUxEaXZFbGVtZW50LCBcIm9uQ2hhbmdlXCI+IHtcbiAgLyoqXG4gICAqIENsYXNzIG5hbWVzIHRvIGJlIGFwcGxpZWQuXG4gICAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIEpzcyBPYmplY3QgdXNlZCB0byBvdmVycmlkZSBvciBleHRlbmQgdGhlIGNvbXBvbmVudCBzdHlsZXMgYXBwbGllZC5cbiAgICovXG4gIGNsYXNzZXM/OiBIdkRhdGVQaWNrZXJDbGFzc2VzO1xuICAvKipcbiAgICogSWQgdG8gYmUgYXBwbGllZCB0byB0aGUgZm9ybSBlbGVtZW50IHJvb3Qgbm9kZS5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBlbGVtZW50IG5hbWUuXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqXG4gICAqIFRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSBsYWJlbGVkIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYW4gYXJpYS1sYWJlbCBvciBhcmlhLWxhYmVsbGVkYnkgbXVzdCBiZSBwcm92aWRlZCBpbnN0ZWFkLlxuICAgKi9cbiAgbGFiZWw/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBcImFyaWEtbGFiZWxcIj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIFwiYXJpYS1sYWJlbGxlZGJ5XCI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm92aWRlIGFkZGl0aW9uYWwgZGVzY3JpcHRpdmUgdGV4dCBmb3IgdGhlIGZvcm0gZWxlbWVudC5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGxhY2Vob2xkZXIgdmFsdWUgd2hlbiBub3RoaW5nIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBmb3JtIGVsZW1lbnQgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB1c2VyIGlucHV0IGlzIHJlcXVpcmVkIG9uIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGZvcm0gZWxlbWVudC5cbiAgICpcbiAgICogVmFsaWQgaXMgY29ycmVjdCwgaW52YWxpZCBpcyBpbmNvcnJlY3QgYW5kIHN0YW5kQnkgbWVhbnMgbm8gdmFsaWRhdGlvbnMgaGF2ZSBydW4uXG4gICAqXG4gICAqIFdoZW4gdW5jb250cm9sbGVkIGFuZCB1bnNwZWNpZmllZCBpdCB3aWxsIGRlZmF1bHQgdG8gXCJzdGFuZEJ5XCIgYW5kIGNoYW5nZSB0byBlaXRoZXIgXCJ2YWxpZFwiXG4gICAqIG9yIFwiaW52YWxpZFwiIGFmdGVyIGFueSBjaGFuZ2UgdG8gdGhlIHN0YXRlLlxuICAgKi9cbiAgc3RhdHVzPzogSHZEYXRlUGlja2VyU3RhdHVzO1xuICAvKipcbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gc2hvdyB3aGVuIHRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyBcImludmFsaWRcIi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gXCJSZXF1aXJlZFwiIHdoZW4gdGhlIHN0YXR1cyBpcyB1bmNvbnRyb2xsZWQgYW5kIG5vIGBhcmlhLWVycm9ybWVzc2FnZWAgaXMgcHJvdmlkZWQuXG4gICAqL1xuICBzdGF0dXNNZXNzYWdlPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCB0aGF0IHByb3ZpZGVzIGFuIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBkYXRlIHBpY2tlci5cbiAgICpcbiAgICogV2lsbCBvbmx5IGJlIHVzZWQgd2hlbiB0aGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgaW52YWxpZC5cbiAgICovXG4gIFwiYXJpYS1lcnJvcm1lc3NhZ2VcIj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIGZpcmVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZT86IChkYXRlPzogRGF0ZSwgZW5kRGF0ZT86IERhdGUpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgZmlyZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBjYW5jZWwuXG4gICAqL1xuICBvbkNhbmNlbD86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgZmlyZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBjbGVhci5cbiAgICovXG4gIG9uQ2xlYXI/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSBsYWJlbHMgZm9yIHRoZSBkYXRlcGlja2VyLlxuICAgKi9cbiAgbGFiZWxzPzoge1xuICAgIC8qKlxuICAgICAqIEFwcGx5IGJ1dHRvbiBsYWJlbC5cbiAgICAgKi9cbiAgICBhcHBseUxhYmVsPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIENhbmNlbCBidXR0b24gbGFiZWwuXG4gICAgICovXG4gICAgY2FuY2VsTGFiZWw/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQ2xlYXIgYnV0dG9uIGxhYmVsLlxuICAgICAqL1xuICAgIGNsZWFyTGFiZWw/OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBpbnB1dCB3aGVuIGluIHNpbmdsZSBjYWxlbmRhciBtb2RlLlxuICAgKi9cbiAgdmFsdWU/OiBEYXRlO1xuICAvKipcbiAgICogVGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBzdGFydCBkYXRlIHdoZW4gaW4gcmFuZ2UgbW9kZS5cbiAgICovXG4gIHN0YXJ0VmFsdWU/OiBEYXRlO1xuICAvKipcbiAgICogVGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBlbmQgZGF0ZSB3aGVuIGluIHJhbmdlIG1vZGUuXG4gICAqL1xuICBlbmRWYWx1ZT86IERhdGU7XG4gIC8qKlxuICAgKiBGbGFnIGluZm9ybWluZyBpZiB0aGUgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgaW4gcmFuZ2UgbW9kZSBvciBpbiBzaW5nbGUgbW9kZS5cbiAgICogVE9ETzogcmVtb3ZlIHRoaXMgaW4gZmF2b3VyIG9mIGRpc2NyaW1pbmF0ZWQgdW5pb25cbiAgICovXG4gIHJhbmdlTW9kZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgcGxhY2VtZW50IHdoZXJlIHRoZSBjYWxlbmRhciBzaG91bGQgYmUgcGxhY2VkIGFjY29yZGluZyB0byB0aGUgaW5wdXQuIE9wdGlvbnMgYXJlIGBsZWZ0YCBvciBgcmlnaHRgLlxuICAgKiBOb3RlIHRoaXMgcHJvcCBvbmx5IGFmZmVjdHMgdGhlIGNhbGVuZGFyIHdoZW4gaW4gYHJhbmdlTW9kZWAuXG4gICAqL1xuICBob3Jpem9udGFsUGxhY2VtZW50PzogXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XG4gIC8qKlxuICAgKiBUaGUgY2FsZW5kYXIgbG9jYWxlLiBJZiB1bmRlZmluZWQsIGl0IHVzZXMgY2FsZW5kYXIgZGVmYXVsdFxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBpZiBhY3Rpb25zIGJ1dHRvbnMgYXJlIHZpc2libGUgYXQgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgc2hvd0FjdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbHMgaWYgY2xlYXIgYnV0dG9uIGlzIHZpc2libGUgYXQgdGhlIGNhbGVuZGFyLFxuICAgKiBvbmx5IHdvcmtzIGlmIHNob3dpbmcgYWN0aW9ucyBvciBpbiByYW5nZSBtb2RlLlxuICAgKi9cbiAgc2hvd0NsZWFyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIHBvcnRhbCBiZWhhdmlvci4gVGhlIGNoaWxkcmVuIHN0YXkgd2l0aGluIGl0J3MgcGFyZW50IERPTSBoaWVyYXJjaHkuXG4gICAqL1xuICBkaXNhYmxlUG9ydGFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNldHMgaWYgdGhlIGNhbGVuZGFyIGNvbnRhaW5lciBzaG91bGQgZm9sbG93IHRoZSBkYXRlIHBpY2tlciBpbnB1dCBvdXQgb2YgdGhlIHNjcmVlbiBvciBzdGF5IHZpc2libGUuXG4gICAqL1xuICBlc2NhcGVXaXRoUmVmZXJlbmNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIGVsZW1lbnQgcGxhY2VkIGJlZm9yZSB0aGUgQ2FsZW5kYXJcbiAgICovXG4gIHN0YXJ0QWRvcm5tZW50PzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcHMgdG8gYmUgcGFzc2VkIG9udG8gdGhlIGJhc2VEcm9wZG93bi5cbiAgICovXG4gIGRyb3Bkb3duUHJvcHM/OiBPYmplY3Q7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAgdGhlIERhdGVQaWNrZXIgd2lsbCBiZSBpbiByZWFkIG9ubHkgbW9kZSwgdW5hYmxlIHRvIGJlIGludGVyYWN0ZWQuXG4gICAqL1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHByb3BzIHBhc3NlZCB0byB0aGUgSHZDYWxlbmRhciBjb21wb25lbnQuXG4gICAqL1xuICBjYWxlbmRhclByb3BzPzogUGFydGlhbDxIdkNhbGVuZGFyUHJvcHM+O1xufVxuXG4vKipcbiAqIEEgZGF0ZSBwaWNrZXIsIHBvcHVwIGNhbGVuZGFyIG9yIGRhdGUgcmFuZ2UgcGlja2VyIGlzIGEgZ3JhcGhpY2FsIHVzZXJcbiAqIGludGVyZmFjZSB3aWRnZXQgd2hpY2ggYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGNhbGVuZGFyLlxuICovXG5leHBvcnQgY29uc3QgSHZEYXRlUGlja2VyID0gKHtcbiAgY2xhc3NlcyxcbiAgY2xhc3NOYW1lLFxuXG4gIGlkLFxuICBuYW1lLFxuXG4gIHJlcXVpcmVkID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIHJlYWRPbmx5LFxuXG4gIGxhYmVsLFxuICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICBcImFyaWEtbGFiZWxsZWRieVwiOiBhcmlhTGFiZWxsZWRCeSxcbiAgZGVzY3JpcHRpb24sXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG5cbiAgb25DaGFuZ2UsXG4gIG9uQ2FuY2VsLFxuICBvbkNsZWFyLFxuICBzdGF0dXMsXG4gIHN0YXR1c01lc3NhZ2UsXG4gIFwiYXJpYS1lcnJvcm1lc3NhZ2VcIjogYXJpYUVycm9yTWVzc2FnZSxcblxuICBwbGFjZWhvbGRlcixcblxuICBsYWJlbHM6IGxhYmVsc1Byb3AsXG5cbiAgdmFsdWUsXG4gIHN0YXJ0VmFsdWUsXG4gIGVuZFZhbHVlLFxuXG4gIHJhbmdlTW9kZSA9IGZhbHNlLFxuICBzdGFydEFkb3JubWVudCxcbiAgaG9yaXpvbnRhbFBsYWNlbWVudCA9IFwicmlnaHRcIixcbiAgbG9jYWxlOiBsb2NhbGVQcm9wLFxuICBzaG93QWN0aW9ucyA9IGZhbHNlLFxuICBzaG93Q2xlYXIgPSBmYWxzZSxcbiAgZGlzYWJsZVBvcnRhbCA9IHRydWUsXG4gIGVzY2FwZVdpdGhSZWZlcmVuY2UgPSB0cnVlLFxuICBkcm9wZG93blByb3BzLFxuICBjYWxlbmRhclByb3BzLFxuICAuLi5vdGhlcnNcbn06IEh2RGF0ZVBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IGxhYmVscyA9IHVzZUxhYmVscyhERUZBVUxUX0xBQkVMUywgbGFiZWxzUHJvcCk7XG5cbiAgY29uc3QgZWxlbWVudElkID0gdXNlVW5pcXVlSWQoaWQsIFwiaHZkYXRlcGlja2VyXCIpO1xuXG4gIGNvbnN0IFt2YWxpZGF0aW9uU3RhdGUsIHNldFZhbGlkYXRpb25TdGF0ZV0gPSB1c2VDb250cm9sbGVkKFxuICAgIHN0YXR1cyxcbiAgICBcInN0YW5kQnlcIlxuICApO1xuXG4gIGNvbnN0IFt2YWxpZGF0aW9uTWVzc2FnZV0gPSB1c2VDb250cm9sbGVkKHN0YXR1c01lc3NhZ2UsIFwiUmVxdWlyZWRcIik7XG5cbiAgY29uc3QgbG9jYWxlID0gbG9jYWxlUHJvcCB8fCBcImVuLVVTXCI7XG5cbiAgY29uc3QgW2NhbGVuZGFyT3Blbiwgc2V0Q2FsZW5kYXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBbc3RhcnREYXRlLCBzZXRTdGFydERhdGUsIHJvbGxiYWNrU3RhcnREYXRlXSA9IHVzZVNhdmVkU3RhdGUoXG4gICAgcmFuZ2VNb2RlID8gc3RhcnRWYWx1ZSA6IHZhbHVlXG4gICk7XG4gIGNvbnN0IFtlbmREYXRlLCBzZXRFbmREYXRlLCByb2xsYmFja0VuZERhdGVdID0gdXNlU2F2ZWRTdGF0ZShlbmRWYWx1ZSk7XG5cbiAgY29uc3QgW3Zpc2libGVEYXRlLCBkaXNwYXRjaEFjdGlvbl0gPSB1c2VWaXNpYmxlRGF0ZShzdGFydERhdGUsIGVuZERhdGUpO1xuXG4gIGNvbnN0IGZvY3VzVGFyZ2V0ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCB7IGFjdGl2ZVRoZW1lIH0gPSB1c2VUaGVtZSgpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0U3RhcnREYXRlKHJhbmdlTW9kZSA/IHN0YXJ0VmFsdWUgOiB2YWx1ZSwgdHJ1ZSk7XG4gICAgc2V0RW5kRGF0ZShlbmRWYWx1ZSwgdHJ1ZSk7XG4gIH0sIFt2YWx1ZSwgc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIHJhbmdlTW9kZV0pO1xuXG4gIGNvbnN0IGVuZERhdGVJc1NldCA9IHVzZVJlZihmYWxzZSk7XG4gIGVuZERhdGVJc1NldC5jdXJyZW50ID0gZW5kRGF0ZSAhPSBudWxsO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXJ0RGF0ZSAhPSBudWxsKSB7XG4gICAgICBkaXNwYXRjaEFjdGlvbih7XG4gICAgICAgIHR5cGU6IFwibW9udGhfeWVhclwiLFxuICAgICAgICB0YXJnZXQ6IGVuZERhdGVJc1NldC5jdXJyZW50ID8gXCJsZWZ0XCIgOiBcImJlc3RcIixcbiAgICAgICAgeWVhcjogc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIG1vbnRoOiBzdGFydERhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaEFjdGlvbiwgc3RhcnREYXRlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW5kRGF0ZSAhPSBudWxsKSB7XG4gICAgICBkaXNwYXRjaEFjdGlvbih7XG4gICAgICAgIHR5cGU6IFwibW9udGhfeWVhclwiLFxuICAgICAgICB0YXJnZXQ6IFwicmlnaHRcIixcbiAgICAgICAgeWVhcjogZW5kRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBtb250aDogZW5kRGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2Rpc3BhdGNoQWN0aW9uLCBlbmREYXRlXSk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGBBcHBseWAgYWN0aW9uLiBCb3RoIHNpbmdsZSBhbmQgcmFuZ2VkIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmUuXG4gICAqL1xuICBjb25zdCBoYW5kbGVBcHBseSA9ICgpID0+IHtcbiAgICBzZXRTdGFydERhdGUoc3RhcnREYXRlLCB0cnVlKTtcbiAgICBzZXRFbmREYXRlKGVuZERhdGUgPz8gc3RhcnREYXRlLCB0cnVlKTtcblxuICAgIG9uQ2hhbmdlPy4oc3RhcnREYXRlLCBlbmREYXRlKTtcblxuICAgIHNldFZhbGlkYXRpb25TdGF0ZSgoKSA9PiB7XG4gICAgICAvLyB0aGlzIHdpbGwgb25seSBydW4gaWYgc3RhdHVzIGlzIHVuY29udHJvbGxlZFxuICAgICAgaWYgKHJlcXVpcmVkICYmICghaXNEYXRlKHN0YXJ0RGF0ZSkgfHwgKHJhbmdlTW9kZSAmJiAhaXNEYXRlKGVuZERhdGUpKSkpIHtcbiAgICAgICAgcmV0dXJuIFwiaW52YWxpZFwiO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gXCJ2YWxpZFwiO1xuICAgIH0pO1xuXG4gICAgc2V0Q2FsZW5kYXJPcGVuKGZhbHNlKTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYENhbmNlbGAgYWN0aW9uLiBCb3RoIHNpbmdsZSBhbmQgcmFuZ2VkIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmUuXG4gICAqL1xuICBjb25zdCBoYW5kbGVDYW5jZWwgPSAoKSA9PiB7XG4gICAgcm9sbGJhY2tTdGFydERhdGUoKTtcbiAgICByb2xsYmFja0VuZERhdGUoKTtcblxuICAgIG9uQ2FuY2VsPy4oKTtcblxuICAgIHNldENhbGVuZGFyT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGBDYW5jZWxgIGFjdGlvbi4gQm90aCBzaW5nbGUgYW5kIHJhbmdlZCBtb2RlcyBhcmUgaGFuZGxlZCBoZXJlLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlQ2xlYXIgPSAoKSA9PiB7XG4gICAgc2V0U3RhcnREYXRlKHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgIHNldEVuZERhdGUodW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgb25DbGVhcj8uKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2FsZW5kYXJDbG9zZSA9ICgpID0+IHtcbiAgICBjb25zdCBzaG91bGRTYXZlID0gIShyYW5nZU1vZGUgfHwgc2hvd0FjdGlvbnMpO1xuICAgIGlmIChzaG91bGRTYXZlKSB7XG4gICAgICBoYW5kbGVBcHBseSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gKGV2dCwgb3BlbikgPT4ge1xuICAgIC8qIFxuICAgICBJZiBldnQgaXMgbnVsbCB0aGlzIHRvZ2dsZSB3YXNuJ3QgdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLlxuICAgICBpbnN0ZWFkIGl0IHdhcyB0cmlnZ2VyZWQgYnkgdGhlIGJhc2VEcm9wZG93biB1c2VFZmZlY3QgYWZ0ZXJcbiAgICAgdGhlIGRhdGVwaWNrZXIgY2hhbmdlZCB0aGUgZXhwYW5kZWQgdmFsdWUgdGhpcyBiYXNlRHJvcGRvd24gYmVoYXZpb3IgbmVlZHMgYSByZXZpZXdcbiAgICAqL1xuICAgIGlmIChldnQgPT09IG51bGwpIHJldHVybjtcbiAgICBzZXRDYWxlbmRhck9wZW4ob3Blbik7XG4gICAgaWYgKCFvcGVuKSBoYW5kbGVDYWxlbmRhckNsb3NlKCk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNPbkNvbnRhaW5lciA9ICgpID0+IHtcbiAgICBmb2N1c1RhcmdldC5jdXJyZW50Py5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURhdGVDaGFuZ2UgPSAoZXZlbnQsIG5ld0RhdGUpID0+IHtcbiAgICBpZiAoIWlzRGF0ZShuZXdEYXRlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYXV0b1NhdmUgPSAhc2hvd0FjdGlvbnMgJiYgIXJhbmdlTW9kZTtcblxuICAgIGlmIChyYW5nZU1vZGUpIHtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8IChzdGFydERhdGUgJiYgZW5kRGF0ZSkgfHwgbmV3RGF0ZSA8IHN0YXJ0RGF0ZSkge1xuICAgICAgICBzZXRTdGFydERhdGUobmV3RGF0ZSk7XG4gICAgICAgIHNldEVuZERhdGUodW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEVuZERhdGUobmV3RGF0ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFN0YXJ0RGF0ZShuZXdEYXRlLCBhdXRvU2F2ZSk7XG4gICAgfVxuXG4gICAgaWYgKGF1dG9TYXZlKSB7XG4gICAgICBvbkNoYW5nZT8uKG5ld0RhdGUpO1xuXG4gICAgICBzZXRWYWxpZGF0aW9uU3RhdGUoKCkgPT4ge1xuICAgICAgICAvLyB0aGlzIHdpbGwgb25seSBydW4gaWYgc3RhdHVzIGlzIHVuY29udHJvbGxlZFxuICAgICAgICBpZiAocmVxdWlyZWQgJiYgIWlzRGF0ZShuZXdEYXRlKSkge1xuICAgICAgICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInZhbGlkXCI7XG4gICAgICB9KTtcblxuICAgICAgc2V0Q2FsZW5kYXJPcGVuKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSW5wdXREYXRlQ2hhbmdlID0gKGV2ZW50LCBuZXdEYXRlLCBwb3NpdGlvbikgPT4ge1xuICAgIGlmICghaXNEYXRlKG5ld0RhdGUpKSByZXR1cm47XG5cbiAgICBpZiAoIXJhbmdlTW9kZSkge1xuICAgICAgaGFuZGxlRGF0ZUNoYW5nZShldmVudCwgbmV3RGF0ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uID09PSBcImxlZnRcIikge1xuICAgICAgaWYgKGVuZERhdGUpIHNldFN0YXJ0RGF0ZShuZXdEYXRlID4gZW5kRGF0ZSA/IGVuZERhdGUgOiBuZXdEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgIGlmICghc3RhcnREYXRlKSB7XG4gICAgICAgIGlmIChlbmREYXRlKSBzZXRTdGFydERhdGUobmV3RGF0ZSA+IGVuZERhdGUgPyBlbmREYXRlIDogbmV3RGF0ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNldEVuZERhdGUobmV3RGF0ZSA8IHN0YXJ0RGF0ZSA/IHN0YXJ0RGF0ZSA6IG5ld0RhdGUpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgY29udGFpbmVyIGZvciB0aGUgYWN0aW9uIGVsZW1lbnRzLlxuICAgKi9cbiAgY29uc3QgcmVuZGVyQWN0aW9ucyA9ICgpID0+IChcbiAgICA8Q2xhc3NOYW1lcz5cbiAgICAgIHsoeyBjc3MgfSkgPT4gKFxuICAgICAgICA8SHZBY3Rpb25CYXJcbiAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgc2hvd0NsZWFyXG4gICAgICAgICAgICAgID8gY2xzeChcbiAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmFjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmFjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuYWN0aW9uQ29udGFpbmVyKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3dDbGVhciAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5sZWZ0Q29udGFpbmVyLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmxlZnRDb250YWluZXJcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEh2QnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9e3NldElkKGlkLCBcImFjdGlvblwiLCBcImNsZWFyXCIpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmFjdGlvbixcbiAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuYWN0aW9uKVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlHaG9zdFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2xlYXJ9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWxzPy5jbGVhckxhYmVsfVxuICAgICAgICAgICAgICA8L0h2QnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLnJpZ2h0Q29udGFpbmVyLFxuICAgICAgICAgICAgICBjbGFzc2VzPy5yaWdodENvbnRhaW5lclxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8SHZCdXR0b25cbiAgICAgICAgICAgICAgaWQ9e3NldElkKGlkLCBcImFjdGlvblwiLCBcImFwcGx5XCIpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmFjdGlvbixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmFjdGlvbilcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlHaG9zdFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUFwcGx5fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGFiZWxzPy5hcHBseUxhYmVsfVxuICAgICAgICAgICAgPC9IdkJ1dHRvbj5cbiAgICAgICAgICAgIDxIdkJ1dHRvblxuICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiYWN0aW9uXCIsIFwiY2FuY2VsXCIpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmFjdGlvbixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmFjdGlvbilcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlHaG9zdFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNhbmNlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xhYmVscz8uY2FuY2VsTGFiZWx9XG4gICAgICAgICAgICA8L0h2QnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0h2QWN0aW9uQmFyPlxuICAgICAgKX1cbiAgICA8L0NsYXNzTmFtZXM+XG4gICk7XG5cbiAgY29uc3Qgc3R5bGVkVHlwb2dyYXBoeSA9IChkYXRlU3RyaW5nLCB2YXJpYW50LCB0ZXh0KSA9PiB7XG4gICAgY29uc3QgU3R5bGVkVHlwb2dyYXBoeSA9IHN0eWxlZChIdlR5cG9ncmFwaHkpKHtcbiAgICAgIGNvbG9yOiBkYXRlU3RyaW5nXG4gICAgICAgID8gdGhlbWUuY29sb3JzLnNlY29uZGFyeVxuICAgICAgICA6IHRoZW1lLmRhdGVQaWNrZXIuZHJvcGRvd25QbGFjZWhvbGRlckNvbG9yLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIDxTdHlsZWRUeXBvZ3JhcGh5IHZhcmlhbnQ9e3ZhcmlhbnR9Pnt0ZXh0fTwvU3R5bGVkVHlwb2dyYXBoeT47XG4gIH07XG5cbiAgY29uc3QgcmVuZGVySW5wdXQgPSAoZGF0ZVN0cmluZykgPT5cbiAgICBzdHlsZWRUeXBvZ3JhcGh5KFxuICAgICAgZGF0ZVN0cmluZyxcbiAgICAgIGFjdGl2ZVRoZW1lPy5kYXRlUGlja2VyLnBsYWNlaG9sZGVyVmFyaWFudCxcbiAgICAgIChkYXRlU3RyaW5nIHx8IHBsYWNlaG9sZGVyKSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGRhdGVTdHJpbmcgfHwgcGxhY2Vob2xkZXJcbiAgICApO1xuXG4gIGNvbnN0IGRhdGVWYWx1ZSA9IHJhbmdlTW9kZSA/IHsgc3RhcnREYXRlLCBlbmREYXRlIH0gOiBzdGFydERhdGU7XG5cbiAgY29uc3QgaGFzTGFiZWwgPSBsYWJlbCAhPSBudWxsO1xuICBjb25zdCBoYXNEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGw7XG5cbiAgLy8gdGhlIGVycm9yIG1lc3NhZ2UgYXJlYSB3aWxsIG9ubHkgYmUgY3JlYXRlZCBpZjpcbiAgLy8gLSBhbiBleHRlcm5hbCBlbGVtZW50IHRoYXQgcHJvdmlkZXMgYW4gZXJyb3IgbWVzc2FnZSBpc24ndCBpZGVudGlmaWVkIHZpYSBhcmlhLWVycm9ybWVzc2FnZSBBTkRcbiAgLy8gICAtIGJvdGggc3RhdHVzIGFuZCBzdGF0dXNNZXNzYWdlIHByb3BlcnRpZXMgYXJlIGJlaW5nIGNvbnRyb2xsZWQgT1JcbiAgLy8gICAtIHN0YXR1cyBpcyB1bmNvbnRyb2xsZWQgYW5kIHJlcXVpcmVkIGlzIHRydWVcbiAgY29uc3QgY2FuU2hvd0Vycm9yID1cbiAgICBhcmlhRXJyb3JNZXNzYWdlID09IG51bGwgJiZcbiAgICAoKHN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIHN0YXR1c01lc3NhZ2UgIT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIChzdGF0dXMgPT09IHVuZGVmaW5lZCAmJiByZXF1aXJlZCkpO1xuXG4gIGNvbnN0IGlzU3RhdGVJbnZhbGlkID0gaXNJbnZhbGlkKHZhbGlkYXRpb25TdGF0ZSk7XG5cbiAgbGV0IGVycm9yTWVzc2FnZUlkO1xuICBpZiAoaXNTdGF0ZUludmFsaWQpIHtcbiAgICBlcnJvck1lc3NhZ2VJZCA9IGNhblNob3dFcnJvclxuICAgICAgPyBzZXRJZChlbGVtZW50SWQsIFwiZXJyb3JcIilcbiAgICAgIDogYXJpYUVycm9yTWVzc2FnZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENsYXNzTmFtZXM+XG4gICAgICB7KHsgY3NzIH0pID0+IChcbiAgICAgICAgPEh2Rm9ybUVsZW1lbnRcbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17ZGF0ZVZhbHVlfVxuICAgICAgICAgIHN0YXR1cz17dmFsaWRhdGlvblN0YXRlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMucm9vdCxcbiAgICAgICAgICAgIGNsYXNzZXM/LnJvb3QsXG4gICAgICAgICAgICBjc3Moc3R5bGVzLnJvb3QpXG4gICAgICAgICAgKX1cbiAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgey4uLm90aGVyc31cbiAgICAgICAgPlxuICAgICAgICAgIHsoaGFzTGFiZWwgfHwgaGFzRGVzY3JpcHRpb24pICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmxhYmVsQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmxhYmVsQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMubGFiZWxDb250YWluZXIpXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoYXNMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgPEh2TGFiZWxcbiAgICAgICAgICAgICAgICAgIGlkPXtzZXRJZChlbGVtZW50SWQsIFwibGFiZWxcIil9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5sYWJlbClcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7aGFzRGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICAgIDxIdkluZm9NZXNzYWdlXG4gICAgICAgICAgICAgICAgICBpZD17c2V0SWQoZWxlbWVudElkLCBcImRlc2NyaXB0aW9uXCIpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuZGVzY3JpcHRpb24pXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICA8L0h2SW5mb01lc3NhZ2U+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxIdkJhc2VEcm9wZG93blxuICAgICAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgICAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgcm9vdDogY2xzeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kcm9wZG93bixcbiAgICAgICAgICAgICAgICBjbGFzc2VzPy5kcm9wZG93bixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmRyb3Bkb3duKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBwYW5lbDogY2xzeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5wYW5lbCxcbiAgICAgICAgICAgICAgICBjbGFzc2VzPy5wYW5lbCxcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLnBhbmVsKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBoZWFkZXI6IGlzU3RhdGVJbnZhbGlkXG4gICAgICAgICAgICAgICAgPyBjbHN4KFxuICAgICAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kcm9wZG93bkhlYWRlckludmFsaWQsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRyb3Bkb3duSGVhZGVySW52YWxpZCxcbiAgICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5kcm9wZG93bkhlYWRlckludmFsaWQpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGhlYWRlck9wZW46IGNsc3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuZHJvcGRvd25IZWFkZXJPcGVuLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRyb3Bkb3duSGVhZGVyT3BlbixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmRyb3Bkb3duSGVhZGVyT3BlbilcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgICAgdmFyaWFibGVXaWR0aFxuICAgICAgICAgICAgcGxhY2VtZW50PXtob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgICAgZXhwYW5kZWQ9e2NhbGVuZGFyT3Blbn1cbiAgICAgICAgICAgIG9uVG9nZ2xlPXtoYW5kbGVUb2dnbGV9XG4gICAgICAgICAgICBvbkNsaWNrT3V0c2lkZT17aGFuZGxlQ2FsZW5kYXJDbG9zZX1cbiAgICAgICAgICAgIG9uQ29udGFpbmVyQ3JlYXRpb249e2ZvY3VzT25Db250YWluZXJ9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17cmVuZGVySW5wdXQoXG4gICAgICAgICAgICAgIGdldERhdGVMYWJlbChkYXRlVmFsdWUsIHJhbmdlTW9kZSwgbG9jYWxlKVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIGFkb3JubWVudD17XG4gICAgICAgICAgICAgIDxDYWxlbmRhclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmljb24sXG4gICAgICAgICAgICAgICAgICBjbGFzc2VzPy5pY29uLFxuICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5pY29uKVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgY29sb3I9e2Rpc2FibGVkID8gXCJzZWNvbmRhcnlfODBcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBvcHBlclByb3BzPXt7XG4gICAgICAgICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgICAgICAgIHsgbmFtZTogXCJwcmV2ZW50T3ZlcmZsb3dcIiwgZW5hYmxlZDogZXNjYXBlV2l0aFJlZmVyZW5jZSB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtcbiAgICAgICAgICAgICAgW2xhYmVsICYmIHNldElkKGVsZW1lbnRJZCwgXCJsYWJlbFwiKSwgYXJpYUxhYmVsbGVkQnldXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICAgICAgLnRyaW0oKSB8fCB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFyaWEtaW52YWxpZD17aXNTdGF0ZUludmFsaWQgPyB0cnVlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYXJpYS1lcnJvcm1lc3NhZ2U9e2Vycm9yTWVzc2FnZUlkfVxuICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICAgIFtkZXNjcmlwdGlvbiAmJiBzZXRJZChlbGVtZW50SWQsIFwiZGVzY3JpcHRpb25cIiksIGFyaWFEZXNjcmliZWRCeV1cbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgICAgICAudHJpbSgpIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgey4uLmRyb3Bkb3duUHJvcHN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiByZWY9e2ZvY3VzVGFyZ2V0fSB0YWJJbmRleD17LTF9IC8+XG4gICAgICAgICAgICA8SHZDYWxlbmRhclxuICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiY2FsZW5kYXJcIil9XG4gICAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtzdGFydEFkb3JubWVudH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZURhdGVDaGFuZ2V9XG4gICAgICAgICAgICAgIG9uSW5wdXRDaGFuZ2U9e2hhbmRsZUlucHV0RGF0ZUNoYW5nZX1cbiAgICAgICAgICAgICAgb25WaXNpYmxlRGF0ZUNoYW5nZT17KF9ldmVudCwgdHlwZSwgbW9udGgsIHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoQWN0aW9uKHsgdHlwZSwgdGFyZ2V0LCBtb250aCB9KTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgbG9jYWxlPXtsb2NhbGV9XG4gICAgICAgICAgICAgIHsuLi52aXNpYmxlRGF0ZX1cbiAgICAgICAgICAgICAgey4uLmNhbGVuZGFyUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyhyYW5nZU1vZGUgfHwgc2hvd0FjdGlvbnMpICYmIHJlbmRlckFjdGlvbnMoKX1cbiAgICAgICAgICA8L0h2QmFzZURyb3Bkb3duPlxuICAgICAgICAgIHtjYW5TaG93RXJyb3IgJiYgKFxuICAgICAgICAgICAgPEh2V2FybmluZ1RleHRcbiAgICAgICAgICAgICAgaWQ9e3NldElkKGVsZW1lbnRJZCwgXCJlcnJvclwiKX1cbiAgICAgICAgICAgICAgZGlzYWJsZUJvcmRlclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goZGF0ZVBpY2tlckNsYXNzZXMuZXJyb3IsIGNsYXNzZXM/LmVycm9yKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3ZhbGlkYXRpb25NZXNzYWdlfVxuICAgICAgICAgICAgPC9Idldhcm5pbmdUZXh0PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvSHZGb3JtRWxlbWVudD5cbiAgICAgICl9XG4gICAgPC9DbGFzc05hbWVzPlxuICApO1xufTtcbiJdfQ== */");
237
236
  return /* @__PURE__ */ jsx(StyledTypography, {
238
237
  variant,
239
238
  children: text
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport { clsx } from \"clsx\";\nimport { Calendar } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport {\n HvCalendar,\n HvInfoMessage,\n HvWarningText,\n HvCalendarProps,\n HvActionBar,\n HvButton,\n HvFormElement,\n HvTypography,\n HvBaseDropdown,\n HvLabel,\n} from \"@core/components\";\nimport { useControlled, useLabels, useTheme, useUniqueId } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { setId, useSavedState } from \"@core/utils\";\nimport { isInvalid } from \"../Forms/FormElement/validationStates\";\nimport { isDate } from \"../Calendar/utils\";\nimport { getDateLabel } from \"./utils\";\nimport useVisibleDate from \"./useVisibleDate\";\nimport { NAV_OPTIONS } from \"../Calendar/enums\";\nimport datePickerClasses, { HvDatePickerClasses } from \"./datePickerClasses\";\nimport { styles } from \"./DatePicker.styles\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear\",\n};\n\nexport type HvDatePickerStatus = \"standBy\" | \"valid\" | \"invalid\";\n\nexport interface HvDatePickerProps\n extends HvBaseProps<HTMLDivElement, { onChange }> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvDatePickerClasses;\n /**\n * Id to be applied to the form element root node.\n */\n id?: string;\n\n /**\n * The form element name.\n */\n name?: string;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-label\"?: string;\n /**\n * @ignore\n */\n \"aria-labelledby\"?: string;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-describedby\"?: string;\n /**\n * The placeholder value when nothing is selected.\n */\n placeholder?: string;\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\n required?: boolean;\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvDatePickerStatus;\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: React.ReactNode;\n /**\n * Identifies the element that provides an error message for the date picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\"?: string;\n\n /**\n * The callback fired when the value changes.\n */\n onChange?: (date?: Date, endDate?: Date) => void;\n /**\n * The callback fired when user clicks on cancel.\n */\n onCancel?: () => void;\n /**\n * The callback fired when user clicks on clear.\n */\n onClear?: () => void;\n /**\n * An object containing all the labels for the datepicker.\n */\n labels?: {\n /**\n * Apply button label.\n */\n applyLabel?: string;\n /**\n * Cancel button label.\n */\n cancelLabel?: string;\n /**\n * Clear button label.\n */\n clearLabel?: string;\n };\n\n /**\n * The initial value of the input when in single calendar mode.\n */\n value?: Date;\n /**\n * The initial value for the start date when in range mode.\n */\n startValue?: Date;\n /**\n * The initial value for the end date when in range mode.\n */\n endValue?: Date;\n /**\n * Flag informing if the the component should be in range mode or in single mode.\n */\n rangeMode?: boolean;\n /**\n * The placement where the calendar should be placed according to the input. Options are `left` or `right`.\n * Note this prop only affects the calendar when in `rangeMode`.\n */\n horizontalPlacement?: \"left\" | \"right\";\n /**\n * The calendar locale. If undefined, it uses calendar default\n */\n locale?: string;\n\n /**\n * Controls if actions buttons are visible at the calendar.\n */\n showActions?: boolean;\n /**\n * Controls if clear button is visible at the calendar,\n * only works if showing actions or in range mode.\n */\n showClear?: boolean;\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal?: boolean;\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference?: boolean;\n /**\n * An element placed before the Calendar\n */\n startAdornment?: React.ReactNode;\n /**\n * An object containing props to be passed onto the baseDropdown.\n */\n dropdownProps?: Object;\n /**\n * If `true` the DatePicker will be in read only mode, unable to be interacted.\n */\n readOnly?: boolean;\n /**\n * Additional props passed to the HvCalendar component.\n */\n calendarProps?: Partial<HvCalendarProps>;\n}\n\n/**\n * A date picker, popup calendar or date range picker is a graphical user\n * interface widget which allows the user to select a date from a calendar.\n */\nexport const HvDatePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n readOnly,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n\n labels: labelsProp,\n\n value,\n startValue,\n endValue,\n\n rangeMode = false,\n startAdornment,\n horizontalPlacement = \"right\",\n locale: localeProp,\n showActions = false,\n showClear = false,\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n calendarProps,\n ...others\n}: HvDatePickerProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const elementId = useUniqueId(id, \"hvdatepicker\");\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const locale = localeProp || \"en-US\";\n\n const [calendarOpen, setCalendarOpen] = useState(false);\n\n const [startDate, setStartDate, rollbackStartDate] = useSavedState(\n rangeMode ? startValue : value\n );\n const [endDate, setEndDate, rollbackEndDate] = useSavedState(endValue);\n\n const [visibleDate, dispatchAction] = useVisibleDate(startDate, endDate);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const { activeTheme } = useTheme();\n\n useEffect(() => {\n setStartDate(rangeMode ? startValue : value, true);\n setEndDate(endValue, true);\n }, [value, startValue, endValue, rangeMode]);\n\n const endDateIsSet = useRef(false);\n endDateIsSet.current = endDate != null;\n\n useEffect(() => {\n if (startDate != null) {\n dispatchAction({\n type: NAV_OPTIONS.MONTH_YEAR,\n target: endDateIsSet.current ? \"left\" : \"best\",\n year: startDate.getFullYear(),\n month: startDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, startDate]);\n\n useEffect(() => {\n if (endDate != null) {\n dispatchAction({\n type: NAV_OPTIONS.MONTH_YEAR,\n target: \"right\",\n year: endDate.getFullYear(),\n month: endDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, endDate]);\n\n /**\n * Handles the `Apply` action. Both single and ranged modes are handled here.\n */\n const handleApply = () => {\n setStartDate(startDate, true);\n setEndDate(endDate ?? startDate, true);\n\n onChange?.(startDate, endDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && (!isDate(startDate) || (rangeMode && !isDate(endDate)))) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleCancel = () => {\n rollbackStartDate();\n rollbackEndDate();\n\n onCancel?.();\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleClear = () => {\n setStartDate(undefined, false);\n setEndDate(undefined, false);\n onClear?.();\n };\n\n const handleCalendarClose = () => {\n const shouldSave = !(rangeMode || showActions);\n if (shouldSave) {\n handleApply();\n } else {\n handleCancel();\n }\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setCalendarOpen(open);\n if (!open) handleCalendarClose();\n };\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const handleDateChange = (event, newDate) => {\n if (!isDate(newDate)) return;\n\n const autoSave = !showActions && !rangeMode;\n\n if (rangeMode) {\n if (!startDate || (startDate && endDate) || newDate < startDate) {\n setStartDate(newDate);\n setEndDate(undefined);\n } else {\n setEndDate(newDate);\n }\n } else {\n setStartDate(newDate, autoSave);\n }\n\n if (autoSave) {\n onChange?.(newDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && !isDate(newDate)) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n }\n };\n\n const handleInputDateChange = (event, newDate, position) => {\n if (!isDate(newDate)) return;\n\n if (!rangeMode) {\n handleDateChange(event, newDate);\n return;\n }\n\n if (position === \"left\") {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n } else if (position === \"right\") {\n if (!startDate) {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n return;\n }\n setEndDate(newDate < startDate ? startDate : newDate);\n }\n };\n\n /**\n * Renders the container for the action elements.\n */\n const renderActions = () => (\n <ClassNames>\n {({ css }) => (\n <HvActionBar\n className={\n showClear\n ? clsx(\n datePickerClasses.actionContainer,\n classes?.actionContainer,\n css(styles.actionContainer)\n )\n : \"\"\n }\n >\n {showClear && (\n <div\n className={clsx(\n datePickerClasses.leftContainer,\n classes?.leftContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"clear\")}\n className={clsx(\n datePickerClasses.action,\n classes?.action,\n css(styles.action)\n )}\n variant=\"primaryGhost\"\n onClick={handleClear}\n >\n {labels?.clearLabel}\n </HvButton>\n </div>\n )}\n <div\n className={clsx(\n datePickerClasses.rightContainer,\n classes?.rightContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"apply\")}\n className={clsx(\n datePickerClasses.action,\n classes?.action,\n css(styles.action)\n )}\n variant=\"primaryGhost\"\n onClick={handleApply}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"action\", \"cancel\")}\n className={clsx(\n datePickerClasses.action,\n classes?.action,\n css(styles.action)\n )}\n variant=\"primaryGhost\"\n onClick={handleCancel}\n >\n {labels?.cancelLabel}\n </HvButton>\n </div>\n </HvActionBar>\n )}\n </ClassNames>\n );\n\n const styledTypography = (dateString, variant, text) => {\n const StyledTypography = styled(HvTypography)({\n color: dateString\n ? theme.colors.secondary\n : theme.datePicker.dropdownPlaceholderColor,\n });\n\n return <StyledTypography variant={variant}>{text}</StyledTypography>;\n };\n\n const renderInput = (dateString) =>\n styledTypography(\n dateString,\n activeTheme?.datePicker.placeholderVariant,\n (dateString || placeholder) === undefined ? \"\" : dateString || placeholder\n );\n\n const dateValue = rangeMode ? { startDate, endDate } : startDate;\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const isStateInvalid = isInvalid(validationState);\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n return (\n <ClassNames>\n {({ css }) => (\n <HvFormElement\n id={id}\n name={name}\n value={dateValue}\n status={validationState}\n disabled={disabled}\n required={required}\n className={clsx(\n className,\n datePickerClasses.root,\n classes?.root,\n css(styles.root)\n )}\n readOnly={readOnly}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div\n className={clsx(\n datePickerClasses.labelContainer,\n classes?.labelContainer,\n css(styles.labelContainer)\n )}\n >\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(\n datePickerClasses.label,\n classes?.label,\n css(styles.label)\n )}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n datePickerClasses.description,\n classes?.description,\n css(styles.description)\n )}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n role=\"combobox\"\n classes={{\n root: clsx(\n datePickerClasses.dropdown,\n classes?.dropdown,\n css(styles.dropdown)\n ),\n panel: clsx(\n datePickerClasses.panel,\n classes?.panel,\n css(styles.panel)\n ),\n header: isStateInvalid\n ? clsx(\n datePickerClasses.dropdownHeaderInvalid,\n classes?.dropdownHeaderInvalid,\n css(styles.dropdownHeaderInvalid)\n )\n : undefined,\n headerOpen: clsx(\n datePickerClasses.dropdownHeaderOpen,\n classes?.dropdownHeaderOpen,\n css(styles.dropdownHeaderOpen)\n ),\n }}\n readOnly={readOnly}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={calendarOpen}\n onToggle={handleToggle}\n onClickOutside={handleCalendarClose}\n onContainerCreation={focusOnContainer}\n placeholder={renderInput(\n getDateLabel(dateValue, rangeMode, locale)\n )}\n adornment={\n <Calendar\n className={clsx(\n datePickerClasses.icon,\n classes?.icon,\n css(styles.icon)\n )}\n color={disabled ? \"secondary_80\" : undefined}\n />\n }\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...dropdownProps}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <HvCalendar\n id={setId(id, \"calendar\")}\n startAdornment={startAdornment}\n onChange={handleDateChange}\n onInputChange={handleInputDateChange}\n onVisibleDateChange={(_event, type, month, target) => {\n dispatchAction({ type, target, month });\n }}\n locale={locale}\n {...visibleDate}\n {...calendarProps}\n />\n {(rangeMode || showActions) && renderActions()}\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(datePickerClasses.error, classes?.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n )}\n </ClassNames>\n );\n};\n"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","HvDatePicker","classes","className","id","name","required","disabled","readOnly","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","ariaErrorMessage","placeholder","labels","labelsProp","value","startValue","endValue","rangeMode","startAdornment","horizontalPlacement","locale","localeProp","showActions","showClear","disablePortal","escapeWithReference","dropdownProps","calendarProps","others","useLabels","elementId","useUniqueId","validationState","setValidationState","useControlled","validationMessage","calendarOpen","setCalendarOpen","useState","startDate","setStartDate","rollbackStartDate","useSavedState","endDate","setEndDate","rollbackEndDate","visibleDate","dispatchAction","useVisibleDate","focusTarget","useRef","activeTheme","useTheme","useEffect","endDateIsSet","current","type","NAV_OPTIONS","MONTH_YEAR","target","year","getFullYear","month","getMonth","handleApply","isDate","handleCancel","handleClear","undefined","handleCalendarClose","shouldSave","handleToggle","evt","open","focusOnContainer","focus","handleDateChange","event","newDate","autoSave","handleInputDateChange","position","renderActions","_jsx","ClassNames","children","css","HvActionBar","clsx","datePickerClasses","actionContainer","styles","leftContainer","HvButton","setId","action","variant","onClick","_jsxs","rightContainer","styledTypography","dateString","text","StyledTypography","HvTypography","process","env","NODE_ENV","color","theme","colors","secondary","datePicker","dropdownPlaceholderColor","renderInput","placeholderVariant","dateValue","hasLabel","hasDescription","canShowError","isStateInvalid","isInvalid","errorMessageId","HvFormElement","root","labelContainer","HvLabel","HvInfoMessage","HvBaseDropdown","role","dropdown","panel","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","variableWidth","placement","expanded","onToggle","onClickOutside","onContainerCreation","getDateLabel","adornment","Calendar","icon","popperProps","modifiers","enabled","join","trim","ref","tabIndex","HvCalendar","onInputChange","onVisibleDateChange","_event","HvWarningText","disableBorder","error"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport { clsx } from \"clsx\";\nimport { Calendar } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport {\n HvCalendar,\n HvInfoMessage,\n HvWarningText,\n HvCalendarProps,\n HvActionBar,\n HvButton,\n HvFormElement,\n HvTypography,\n HvBaseDropdown,\n HvLabel,\n} from \"@core/components\";\nimport { useControlled, useLabels, useTheme, useUniqueId } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { setId, useSavedState } from \"@core/utils\";\nimport { isInvalid } from \"../Forms/FormElement/validationStates\";\nimport { isDate } from \"../Calendar/utils\";\nimport { getDateLabel } from \"./utils\";\nimport useVisibleDate from \"./useVisibleDate\";\nimport datePickerClasses, { HvDatePickerClasses } from \"./datePickerClasses\";\nimport { styles } from \"./DatePicker.styles\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear\",\n};\n\nexport type HvDatePickerStatus = \"standBy\" | \"valid\" | \"invalid\";\n\nexport interface HvDatePickerProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvDatePickerClasses;\n /**\n * Id to be applied to the form element root node.\n */\n id?: string;\n\n /**\n * The form element name.\n */\n name?: string;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-label\"?: string;\n /**\n * @ignore\n */\n \"aria-labelledby\"?: string;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-describedby\"?: string;\n /**\n * The placeholder value when nothing is selected.\n */\n placeholder?: string;\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\n required?: boolean;\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvDatePickerStatus;\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: React.ReactNode;\n /**\n * Identifies the element that provides an error message for the date picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\"?: string;\n\n /**\n * The callback fired when the value changes.\n */\n onChange?: (date?: Date, endDate?: Date) => void;\n /**\n * The callback fired when user clicks on cancel.\n */\n onCancel?: () => void;\n /**\n * The callback fired when user clicks on clear.\n */\n onClear?: () => void;\n /**\n * An object containing all the labels for the datepicker.\n */\n labels?: {\n /**\n * Apply button label.\n */\n applyLabel?: string;\n /**\n * Cancel button label.\n */\n cancelLabel?: string;\n /**\n * Clear button label.\n */\n clearLabel?: string;\n };\n\n /**\n * The initial value of the input when in single calendar mode.\n */\n value?: Date;\n /**\n * The initial value for the start date when in range mode.\n */\n startValue?: Date;\n /**\n * The initial value for the end date when in range mode.\n */\n endValue?: Date;\n /**\n * Flag informing if the the component should be in range mode or in single mode.\n * TODO: remove this in favour of discriminated union\n */\n rangeMode?: boolean;\n /**\n * The placement where the calendar should be placed according to the input. Options are `left` or `right`.\n * Note this prop only affects the calendar when in `rangeMode`.\n */\n horizontalPlacement?: \"left\" | \"right\";\n /**\n * The calendar locale. If undefined, it uses calendar default\n */\n locale?: string;\n\n /**\n * Controls if actions buttons are visible at the calendar.\n */\n showActions?: boolean;\n /**\n * Controls if clear button is visible at the calendar,\n * only works if showing actions or in range mode.\n */\n showClear?: boolean;\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal?: boolean;\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference?: boolean;\n /**\n * An element placed before the Calendar\n */\n startAdornment?: React.ReactNode;\n /**\n * An object containing props to be passed onto the baseDropdown.\n */\n dropdownProps?: Object;\n /**\n * If `true` the DatePicker will be in read only mode, unable to be interacted.\n */\n readOnly?: boolean;\n /**\n * Additional props passed to the HvCalendar component.\n */\n calendarProps?: Partial<HvCalendarProps>;\n}\n\n/**\n * A date picker, popup calendar or date range picker is a graphical user\n * interface widget which allows the user to select a date from a calendar.\n */\nexport const HvDatePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n readOnly,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n\n labels: labelsProp,\n\n value,\n startValue,\n endValue,\n\n rangeMode = false,\n startAdornment,\n horizontalPlacement = \"right\",\n locale: localeProp,\n showActions = false,\n showClear = false,\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n calendarProps,\n ...others\n}: HvDatePickerProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const elementId = useUniqueId(id, \"hvdatepicker\");\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const locale = localeProp || \"en-US\";\n\n const [calendarOpen, setCalendarOpen] = useState(false);\n\n const [startDate, setStartDate, rollbackStartDate] = useSavedState(\n rangeMode ? startValue : value\n );\n const [endDate, setEndDate, rollbackEndDate] = useSavedState(endValue);\n\n const [visibleDate, dispatchAction] = useVisibleDate(startDate, endDate);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const { activeTheme } = useTheme();\n\n useEffect(() => {\n setStartDate(rangeMode ? startValue : value, true);\n setEndDate(endValue, true);\n }, [value, startValue, endValue, rangeMode]);\n\n const endDateIsSet = useRef(false);\n endDateIsSet.current = endDate != null;\n\n useEffect(() => {\n if (startDate != null) {\n dispatchAction({\n type: \"month_year\",\n target: endDateIsSet.current ? \"left\" : \"best\",\n year: startDate.getFullYear(),\n month: startDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, startDate]);\n\n useEffect(() => {\n if (endDate != null) {\n dispatchAction({\n type: \"month_year\",\n target: \"right\",\n year: endDate.getFullYear(),\n month: endDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, endDate]);\n\n /**\n * Handles the `Apply` action. Both single and ranged modes are handled here.\n */\n const handleApply = () => {\n setStartDate(startDate, true);\n setEndDate(endDate ?? startDate, true);\n\n onChange?.(startDate, endDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && (!isDate(startDate) || (rangeMode && !isDate(endDate)))) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleCancel = () => {\n rollbackStartDate();\n rollbackEndDate();\n\n onCancel?.();\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleClear = () => {\n setStartDate(undefined, false);\n setEndDate(undefined, false);\n onClear?.();\n };\n\n const handleCalendarClose = () => {\n const shouldSave = !(rangeMode || showActions);\n if (shouldSave) {\n handleApply();\n } else {\n handleCancel();\n }\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setCalendarOpen(open);\n if (!open) handleCalendarClose();\n };\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const handleDateChange = (event, newDate) => {\n if (!isDate(newDate)) return;\n\n const autoSave = !showActions && !rangeMode;\n\n if (rangeMode) {\n if (!startDate || (startDate && endDate) || newDate < startDate) {\n setStartDate(newDate);\n setEndDate(undefined);\n } else {\n setEndDate(newDate);\n }\n } else {\n setStartDate(newDate, autoSave);\n }\n\n if (autoSave) {\n onChange?.(newDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && !isDate(newDate)) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n }\n };\n\n const handleInputDateChange = (event, newDate, position) => {\n if (!isDate(newDate)) return;\n\n if (!rangeMode) {\n handleDateChange(event, newDate);\n return;\n }\n\n if (position === \"left\") {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n } else if (position === \"right\") {\n if (!startDate) {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n return;\n }\n setEndDate(newDate < startDate ? startDate : newDate);\n }\n };\n\n /**\n * Renders the container for the action elements.\n */\n const renderActions = () => (\n <ClassNames>\n {({ css }) => (\n <HvActionBar\n className={\n showClear\n ? clsx(\n datePickerClasses.actionContainer,\n classes?.actionContainer,\n css(styles.actionContainer)\n )\n : \"\"\n }\n >\n {showClear && (\n <div\n className={clsx(\n datePickerClasses.leftContainer,\n classes?.leftContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"clear\")}\n className={clsx(\n datePickerClasses.action,\n classes?.action,\n css(styles.action)\n )}\n variant=\"primaryGhost\"\n onClick={handleClear}\n >\n {labels?.clearLabel}\n </HvButton>\n </div>\n )}\n <div\n className={clsx(\n datePickerClasses.rightContainer,\n classes?.rightContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"apply\")}\n className={clsx(\n datePickerClasses.action,\n classes?.action,\n css(styles.action)\n )}\n variant=\"primaryGhost\"\n onClick={handleApply}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"action\", \"cancel\")}\n className={clsx(\n datePickerClasses.action,\n classes?.action,\n css(styles.action)\n )}\n variant=\"primaryGhost\"\n onClick={handleCancel}\n >\n {labels?.cancelLabel}\n </HvButton>\n </div>\n </HvActionBar>\n )}\n </ClassNames>\n );\n\n const styledTypography = (dateString, variant, text) => {\n const StyledTypography = styled(HvTypography)({\n color: dateString\n ? theme.colors.secondary\n : theme.datePicker.dropdownPlaceholderColor,\n });\n\n return <StyledTypography variant={variant}>{text}</StyledTypography>;\n };\n\n const renderInput = (dateString) =>\n styledTypography(\n dateString,\n activeTheme?.datePicker.placeholderVariant,\n (dateString || placeholder) === undefined ? \"\" : dateString || placeholder\n );\n\n const dateValue = rangeMode ? { startDate, endDate } : startDate;\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const isStateInvalid = isInvalid(validationState);\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n return (\n <ClassNames>\n {({ css }) => (\n <HvFormElement\n id={id}\n name={name}\n value={dateValue}\n status={validationState}\n disabled={disabled}\n required={required}\n className={clsx(\n className,\n datePickerClasses.root,\n classes?.root,\n css(styles.root)\n )}\n readOnly={readOnly}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div\n className={clsx(\n datePickerClasses.labelContainer,\n classes?.labelContainer,\n css(styles.labelContainer)\n )}\n >\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(\n datePickerClasses.label,\n classes?.label,\n css(styles.label)\n )}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n datePickerClasses.description,\n classes?.description,\n css(styles.description)\n )}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n role=\"combobox\"\n classes={{\n root: clsx(\n datePickerClasses.dropdown,\n classes?.dropdown,\n css(styles.dropdown)\n ),\n panel: clsx(\n datePickerClasses.panel,\n classes?.panel,\n css(styles.panel)\n ),\n header: isStateInvalid\n ? clsx(\n datePickerClasses.dropdownHeaderInvalid,\n classes?.dropdownHeaderInvalid,\n css(styles.dropdownHeaderInvalid)\n )\n : undefined,\n headerOpen: clsx(\n datePickerClasses.dropdownHeaderOpen,\n classes?.dropdownHeaderOpen,\n css(styles.dropdownHeaderOpen)\n ),\n }}\n readOnly={readOnly}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={calendarOpen}\n onToggle={handleToggle}\n onClickOutside={handleCalendarClose}\n onContainerCreation={focusOnContainer}\n placeholder={renderInput(\n getDateLabel(dateValue, rangeMode, locale)\n )}\n adornment={\n <Calendar\n className={clsx(\n datePickerClasses.icon,\n classes?.icon,\n css(styles.icon)\n )}\n color={disabled ? \"secondary_80\" : undefined}\n />\n }\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...dropdownProps}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <HvCalendar\n id={setId(id, \"calendar\")}\n startAdornment={startAdornment}\n onChange={handleDateChange}\n onInputChange={handleInputDateChange}\n onVisibleDateChange={(_event, type, month, target) => {\n dispatchAction({ type, target, month });\n }}\n locale={locale}\n {...visibleDate}\n {...calendarProps}\n />\n {(rangeMode || showActions) && renderActions()}\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(datePickerClasses.error, classes?.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n )}\n </ClassNames>\n );\n};\n"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","HvDatePicker","classes","className","id","name","required","disabled","readOnly","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","ariaErrorMessage","placeholder","labels","labelsProp","value","startValue","endValue","rangeMode","startAdornment","horizontalPlacement","locale","localeProp","showActions","showClear","disablePortal","escapeWithReference","dropdownProps","calendarProps","others","useLabels","elementId","useUniqueId","validationState","setValidationState","useControlled","validationMessage","calendarOpen","setCalendarOpen","useState","startDate","setStartDate","rollbackStartDate","useSavedState","endDate","setEndDate","rollbackEndDate","visibleDate","dispatchAction","useVisibleDate","focusTarget","useRef","activeTheme","useTheme","useEffect","endDateIsSet","current","type","target","year","getFullYear","month","getMonth","handleApply","isDate","handleCancel","handleClear","undefined","handleCalendarClose","shouldSave","handleToggle","evt","open","focusOnContainer","focus","handleDateChange","event","newDate","autoSave","handleInputDateChange","position","renderActions","_jsx","ClassNames","children","css","HvActionBar","clsx","datePickerClasses","actionContainer","styles","leftContainer","HvButton","setId","action","variant","onClick","_jsxs","rightContainer","styledTypography","dateString","text","StyledTypography","HvTypography","process","env","NODE_ENV","color","theme","colors","secondary","datePicker","dropdownPlaceholderColor","renderInput","placeholderVariant","dateValue","hasLabel","hasDescription","canShowError","isStateInvalid","isInvalid","errorMessageId","HvFormElement","root","labelContainer","HvLabel","HvInfoMessage","HvBaseDropdown","role","dropdown","panel","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","variableWidth","placement","expanded","onToggle","onClickOutside","onContainerCreation","getDateLabel","adornment","Calendar","icon","popperProps","modifiers","enabled","join","trim","ref","tabIndex","HvCalendar","onInputChange","onVisibleDateChange","_event","HvWarningText","disableBorder","error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"datePickerClasses.js","sources":["../../../../src/components/DatePicker/datePickerClasses.tsx"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport type HvDatePickerClasses = {\n root?: string;\n labelContainer?: string;\n label?: string;\n description?: string;\n error?: string;\n placeholder?: string;\n selectionDisabled?: string;\n dropdown?: string;\n panel?: string;\n action?: string;\n icon?: string;\n dropdownHeader?: string;\n dropdownHeaderInvalid?: string;\n dropdownHeaderOpen?: string;\n actionContainer?: string;\n leftContainer?: string;\n rightContainer?: string;\n};\n\nconst classKeys: string[] = [\n \"root\",\n \"labelContainer\",\n \"label\",\n \"description\",\n \"error\",\n \"placeholder\",\n \"selectionDisabled\",\n \"dropdown\",\n \"panel\",\n \"action\",\n \"icon\",\n \"dropdownHeader\",\n \"dropdownHeaderInvalid\",\n \"dropdownHeaderOpen\",\n \"actionContainer\",\n \"leftContainer\",\n \"rightContainer\",\n];\n\nconst datePickerClasses = getClasses<HvDatePickerClasses>(\n classKeys,\n \"HvDatePicker\"\n);\n\nexport default datePickerClasses;\n"],"names":["classKeys","datePickerClasses","getClasses"],"mappings":";AAsBA,MAAMA,YAAsB,CAC1B,QACA,kBACA,SACA,eACA,SACA,eACA,qBACA,YACA,SACA,UACA,QACA,kBACA,yBACA,sBACA,mBACA,iBACA,gBAAgB;AAGlB,MAAMC,oBAAoBC,WACxBF,WACA,cAAc;AAGhB,MAAA,sBAAeC;"}
1
+ {"version":3,"file":"datePickerClasses.js","sources":["../../../../src/components/DatePicker/datePickerClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport type HvDatePickerClasses = {\n root?: string;\n labelContainer?: string;\n label?: string;\n description?: string;\n error?: string;\n placeholder?: string;\n selectionDisabled?: string;\n dropdown?: string;\n panel?: string;\n action?: string;\n icon?: string;\n dropdownHeader?: string;\n dropdownHeaderInvalid?: string;\n dropdownHeaderOpen?: string;\n actionContainer?: string;\n leftContainer?: string;\n rightContainer?: string;\n};\n\nconst classKeys: (keyof HvDatePickerClasses)[] = [\n \"root\",\n \"labelContainer\",\n \"label\",\n \"description\",\n \"error\",\n \"placeholder\",\n \"selectionDisabled\",\n \"dropdown\",\n \"panel\",\n \"action\",\n \"icon\",\n \"dropdownHeader\",\n \"dropdownHeaderInvalid\",\n \"dropdownHeaderOpen\",\n \"actionContainer\",\n \"leftContainer\",\n \"rightContainer\",\n];\n\nconst datePickerClasses = getClasses(classKeys, \"HvDatePicker\");\n\nexport default datePickerClasses;\n"],"names":["classKeys","datePickerClasses","getClasses"],"mappings":";AAsBA,MAAMA,YAA2C,CAC/C,QACA,kBACA,SACA,eACA,SACA,eACA,qBACA,YACA,SACA,UACA,QACA,kBACA,yBACA,sBACA,mBACA,iBACA,gBAAgB;AAGlB,MAAMC,oBAAoBC,WAAWF,WAAW,cAAc;AAE9D,MAAA,sBAAeC;"}
@@ -1,6 +1,5 @@
1
1
  import { useReducer } from "react";
2
2
  import { validateDate } from "./utils.js";
3
- import { NAV_OPTIONS } from "../Calendar/enums.js";
4
3
  function stateToLeftRight({
5
4
  visibleYear,
6
5
  visibleMonth,
@@ -91,41 +90,41 @@ function ensureNoOverlap(left, right, keepRight = false) {
91
90
  function isSameYearMonth(d1, d2) {
92
91
  return d1.year === d2.year && d1.month === d2.month;
93
92
  }
94
- function visibleDateReducer(state, action) {
93
+ const visibleDateReducer = (state, action) => {
95
94
  let {
96
95
  left,
97
96
  right
98
97
  } = stateToLeftRight(state);
99
98
  switch (action.type) {
100
- case NAV_OPTIONS.PREVIOUS_YEAR:
99
+ case "previous_year":
101
100
  if (action.target === "right") {
102
101
  right = subtractYear(right);
103
102
  return ensureNoOverlap(left, right, true);
104
103
  }
105
104
  left = subtractYear(left);
106
105
  return ensureNoOverlap(left, right, false);
107
- case NAV_OPTIONS.NEXT_YEAR:
106
+ case "next_year":
108
107
  if (action.target === "right") {
109
108
  right = addYear(right);
110
109
  return ensureNoOverlap(left, right, true);
111
110
  }
112
111
  left = addYear(left);
113
112
  return ensureNoOverlap(left, right, false);
114
- case NAV_OPTIONS.PREVIOUS_MONTH:
113
+ case "previous_month":
115
114
  if (action.target === "right") {
116
115
  right = subtractMonth(right);
117
116
  return ensureNoOverlap(left, right, true);
118
117
  }
119
118
  left = subtractMonth(left);
120
119
  return ensureNoOverlap(left, right, false);
121
- case NAV_OPTIONS.NEXT_MONTH:
120
+ case "next_month":
122
121
  if (action.target === "right") {
123
122
  right = addMonth(right);
124
123
  return ensureNoOverlap(left, right, true);
125
124
  }
126
125
  left = addMonth(left);
127
126
  return ensureNoOverlap(left, right, false);
128
- case NAV_OPTIONS.MONTH:
127
+ case "month":
129
128
  if (action.month != null) {
130
129
  if (action.target === "right") {
131
130
  if (right.month !== action.month) {
@@ -144,7 +143,7 @@ function visibleDateReducer(state, action) {
144
143
  }
145
144
  }
146
145
  break;
147
- case NAV_OPTIONS.MONTH_YEAR:
146
+ case "month_year":
148
147
  if (action.month != null && action.year != null) {
149
148
  if (action.target === "right") {
150
149
  if (!isSameYearMonth(left, action) && !isSameYearMonth(right, action)) {
@@ -165,7 +164,7 @@ function visibleDateReducer(state, action) {
165
164
  break;
166
165
  }
167
166
  return state;
168
- }
167
+ };
169
168
  function stateFromRange(startDate, endDate) {
170
169
  const initialStartDate = validateDate(startDate);
171
170
  const initialEndDate = endDate != null ? validateDate(endDate) : initialStartDate;
@@ -178,13 +177,10 @@ function stateFromRange(startDate, endDate) {
178
177
  });
179
178
  }
180
179
  function useVisibleDate(startDate, endDate) {
181
- const [state, dispatchAction] = useReducer(visibleDateReducer, {
180
+ return useReducer(visibleDateReducer, {
182
181
  startDate,
183
182
  endDate
184
- }, (initData) => {
185
- return stateFromRange(initData.startDate, initData.endDate);
186
- });
187
- return [state, dispatchAction];
183
+ }, (initData) => stateFromRange(initData.startDate, initData.endDate));
188
184
  }
189
185
  export {
190
186
  useVisibleDate as default,