@hitachivantara/uikit-react-lab 3.38.0 → 3.39.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.
- package/CHANGELOG.md +19 -0
- package/LICENSE.txt +201 -0
- package/dist/AppSwitcherPanel/Action/Action.js +2 -2
- package/dist/AppSwitcherPanel/Action/Action.js.map +1 -1
- package/dist/AppSwitcherPanel/AppSwitcherPanel.js +2 -2
- package/dist/AppSwitcherPanel/AppSwitcherPanel.js.map +1 -1
- package/dist/AppSwitcherPanel/TitleWithTooltip.js +2 -2
- package/dist/AppSwitcherPanel/TitleWithTooltip.js.map +1 -1
- package/dist/ColorPicker/ColorPicker.js +2 -2
- package/dist/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/ColorPicker/Fields/Fields.js +2 -2
- package/dist/ColorPicker/Fields/Fields.js.map +1 -1
- package/dist/ColorPicker/PresetColors/PresetColors.js +2 -2
- package/dist/ColorPicker/PresetColors/PresetColors.js.map +1 -1
- package/dist/Drawer/Drawer.js +8 -6
- package/dist/Drawer/Drawer.js.map +1 -1
- package/dist/FormComposer/FormComposer.js +2 -2
- package/dist/FormComposer/FormComposer.js.map +1 -1
- package/dist/InlineEditor/InlineEditor.js +2 -2
- package/dist/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/NavigationAnchors/NavigationAnchors.js +2 -2
- package/dist/NavigationAnchors/NavigationAnchors.js.map +1 -1
- package/dist/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js +5 -3
- package/dist/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js.map +1 -1
- package/dist/NotificationPanel/Notification/Notification.js +2 -2
- package/dist/NotificationPanel/Notification/Notification.js.map +1 -1
- package/dist/NotificationPanel/NotificationPanel.js +2 -2
- package/dist/NotificationPanel/NotificationPanel.js.map +1 -1
- package/dist/NotificationPanel/NotificationsIndicator/NotificationsIndicator.js +2 -2
- package/dist/NotificationPanel/NotificationsIndicator/NotificationsIndicator.js.map +1 -1
- package/dist/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js +2 -2
- package/dist/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/QueryBuilder/QueryBuilder.js +2 -2
- package/dist/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/QueryBuilder/Rule/Attribute/Attribute.js +2 -2
- package/dist/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
- package/dist/QueryBuilder/Rule/Operator/Operator.js +2 -2
- package/dist/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
- package/dist/QueryBuilder/Rule/Rule.js +5 -3
- package/dist/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +2 -2
- package/dist/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
- package/dist/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
- package/dist/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
- package/dist/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +2 -2
- package/dist/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/QueryBuilder/Rule/Value/TextValue/TextValue.js +2 -2
- package/dist/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
- package/dist/QueryBuilder/Rule/Value/Value.js +2 -2
- package/dist/QueryBuilder/Rule/Value/Value.js.map +1 -1
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js +10 -8
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/Slider/KnobRing/KnobRing.js +2 -2
- package/dist/Slider/KnobRing/KnobRing.js.map +1 -1
- package/dist/Slider/Slider.js +2 -2
- package/dist/Slider/Slider.js.map +1 -1
- package/dist/Table/Table.js +2 -2
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableBody/TableBody.js +2 -2
- package/dist/Table/TableBody/TableBody.js.map +1 -1
- package/dist/Table/TableCell/TableCell.js +2 -2
- package/dist/Table/TableCell/TableCell.js.map +1 -1
- package/dist/Table/TableContainer/TableContainer.js +2 -2
- package/dist/Table/TableContainer/TableContainer.js.map +1 -1
- package/dist/Table/TableHead/TableHead.js +2 -2
- package/dist/Table/TableHead/TableHead.js.map +1 -1
- package/dist/Table/TableHeader/TableHeader.js +2 -2
- package/dist/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/Table/TableRow/TableRow.js +2 -2
- package/dist/Table/TableRow/TableRow.js.map +1 -1
- package/dist/Table/hooks/useRowExpand.js +5 -4
- package/dist/Table/hooks/useRowExpand.js.map +1 -1
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.js +28 -0
- package/dist/Table/index.js.map +1 -1
- package/dist/Table/renderers/DateColumnCell/DateColumnCell.d.ts +12 -0
- package/dist/Table/renderers/DateColumnCell/DateColumnCell.js +61 -0
- package/dist/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -0
- package/dist/Table/renderers/DateColumnCell/index.js +16 -0
- package/dist/Table/renderers/DateColumnCell/index.js.map +1 -0
- package/dist/Table/renderers/DateColumnCell/index.ts +1 -0
- package/dist/Table/renderers/DropdownColumnCell/DropdownColumnCell.d.ts +24 -0
- package/dist/Table/renderers/DropdownColumnCell/DropdownColumnCell.js +75 -0
- package/dist/Table/renderers/DropdownColumnCell/DropdownColumnCell.js.map +1 -0
- package/dist/Table/renderers/DropdownColumnCell/index.d.ts +1 -0
- package/dist/Table/renderers/DropdownColumnCell/index.js +16 -0
- package/dist/Table/renderers/DropdownColumnCell/index.js.map +1 -0
- package/dist/Table/renderers/ProgressColumnCell/ProgressColumnCell.d.ts +16 -0
- package/dist/Table/renderers/ProgressColumnCell/ProgressColumnCell.js +66 -0
- package/dist/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +1 -0
- package/dist/Table/renderers/ProgressColumnCell/index.js +49 -0
- package/dist/Table/renderers/ProgressColumnCell/index.js.map +1 -0
- package/dist/Table/renderers/ProgressColumnCell/index.ts +2 -0
- package/dist/Table/renderers/ProgressColumnCell/styles.js +36 -0
- package/dist/Table/renderers/ProgressColumnCell/styles.js.map +1 -0
- package/dist/Table/renderers/SwitchColumnCell/SwitchColumnCell.d.ts +29 -0
- package/dist/Table/renderers/SwitchColumnCell/SwitchColumnCell.js +83 -0
- package/dist/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -0
- package/dist/Table/renderers/SwitchColumnCell/index.js +16 -0
- package/dist/Table/renderers/SwitchColumnCell/index.js.map +1 -0
- package/dist/Table/renderers/SwitchColumnCell/index.ts +1 -0
- package/dist/Table/renderers/SwitchColumnCell/styles.js +26 -0
- package/dist/Table/renderers/SwitchColumnCell/styles.js.map +1 -0
- package/dist/Table/renderers/index.d.ts +14 -0
- package/dist/Table/renderers/index.js +80 -0
- package/dist/Table/renderers/index.js.map +1 -0
- package/dist/Table/renderers/renderers.d.ts +53 -0
- package/dist/Table/renderers/renderers.js +238 -0
- package/dist/Table/renderers/renderers.js.map +1 -0
- package/dist/Table/stories/TableColumnRenderers.stories.mdx +193 -0
- package/dist/Table/utils/fallbacks.d.ts +6 -0
- package/dist/Table/utils/fallbacks.js +32 -0
- package/dist/Table/utils/fallbacks.js.map +1 -0
- package/dist/Table/utils/index.d.ts +3 -0
- package/dist/Table/utils/index.js +26 -0
- package/dist/Table/utils/index.js.map +1 -0
- package/dist/Tag/Tag.js +2 -2
- package/dist/Tag/Tag.js.map +1 -1
- package/dist/TimeAgo/TimeAgo.js +2 -2
- package/dist/TimeAgo/TimeAgo.js.map +1 -1
- package/dist/TimePicker/PeriodPicker/PeriodPicker.js +2 -2
- package/dist/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -1
- package/dist/TimePicker/TimePicker.js +2 -2
- package/dist/TimePicker/TimePicker.js.map +1 -1
- package/dist/TimePicker/UnitTimePicker/UnitTimePicker.js +2 -2
- package/dist/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -1
- package/dist/legacy/AppSwitcherPanel/Action/Action.js +2 -2
- package/dist/legacy/AppSwitcherPanel/Action/Action.js.map +1 -1
- package/dist/legacy/AppSwitcherPanel/AppSwitcherPanel.js +2 -2
- package/dist/legacy/AppSwitcherPanel/AppSwitcherPanel.js.map +1 -1
- package/dist/legacy/AppSwitcherPanel/TitleWithTooltip.js +2 -2
- package/dist/legacy/AppSwitcherPanel/TitleWithTooltip.js.map +1 -1
- package/dist/legacy/ColorPicker/ColorPicker.js +2 -2
- package/dist/legacy/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/legacy/ColorPicker/Fields/Fields.js +2 -2
- package/dist/legacy/ColorPicker/Fields/Fields.js.map +1 -1
- package/dist/legacy/ColorPicker/PresetColors/PresetColors.js +2 -2
- package/dist/legacy/ColorPicker/PresetColors/PresetColors.js.map +1 -1
- package/dist/legacy/Drawer/Drawer.js +7 -4
- package/dist/legacy/Drawer/Drawer.js.map +1 -1
- package/dist/legacy/FormComposer/FormComposer.js +2 -2
- package/dist/legacy/FormComposer/FormComposer.js.map +1 -1
- package/dist/legacy/InlineEditor/InlineEditor.js +2 -2
- package/dist/legacy/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/legacy/NavigationAnchors/NavigationAnchors.js +2 -2
- package/dist/legacy/NavigationAnchors/NavigationAnchors.js.map +1 -1
- package/dist/legacy/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js +5 -3
- package/dist/legacy/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js.map +1 -1
- package/dist/legacy/NotificationPanel/Notification/Notification.js +2 -2
- package/dist/legacy/NotificationPanel/Notification/Notification.js.map +1 -1
- package/dist/legacy/NotificationPanel/NotificationPanel.js +2 -2
- package/dist/legacy/NotificationPanel/NotificationPanel.js.map +1 -1
- package/dist/legacy/NotificationPanel/NotificationsIndicator/NotificationsIndicator.js +2 -2
- package/dist/legacy/NotificationPanel/NotificationsIndicator/NotificationsIndicator.js.map +1 -1
- package/dist/legacy/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js +2 -2
- package/dist/legacy/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/legacy/QueryBuilder/QueryBuilder.js +2 -2
- package/dist/legacy/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Attribute/Attribute.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Operator/Operator.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Rule.js +5 -3
- package/dist/legacy/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Value/TextValue/TextValue.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
- package/dist/legacy/QueryBuilder/Rule/Value/Value.js +2 -2
- package/dist/legacy/QueryBuilder/Rule/Value/Value.js.map +1 -1
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js +9 -6
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/legacy/Slider/KnobRing/KnobRing.js +2 -2
- package/dist/legacy/Slider/KnobRing/KnobRing.js.map +1 -1
- package/dist/legacy/Slider/Slider.js +2 -2
- package/dist/legacy/Slider/Slider.js.map +1 -1
- package/dist/legacy/Table/Table.js +2 -2
- package/dist/legacy/Table/Table.js.map +1 -1
- package/dist/legacy/Table/TableBody/TableBody.js +2 -2
- package/dist/legacy/Table/TableBody/TableBody.js.map +1 -1
- package/dist/legacy/Table/TableCell/TableCell.js +2 -2
- package/dist/legacy/Table/TableCell/TableCell.js.map +1 -1
- package/dist/legacy/Table/TableContainer/TableContainer.js +2 -2
- package/dist/legacy/Table/TableContainer/TableContainer.js.map +1 -1
- package/dist/legacy/Table/TableHead/TableHead.js +2 -2
- package/dist/legacy/Table/TableHead/TableHead.js.map +1 -1
- package/dist/legacy/Table/TableHeader/TableHeader.js +2 -2
- package/dist/legacy/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/legacy/Table/TableRow/TableRow.js +2 -2
- package/dist/legacy/Table/TableRow/TableRow.js.map +1 -1
- package/dist/legacy/Table/hooks/useRowExpand.js +4 -1
- package/dist/legacy/Table/hooks/useRowExpand.js.map +1 -1
- package/dist/legacy/Table/index.d.ts +2 -0
- package/dist/legacy/Table/index.js +2 -0
- package/dist/legacy/Table/index.js.map +1 -1
- package/dist/legacy/Table/renderers/DateColumnCell/DateColumnCell.d.ts +12 -0
- package/dist/legacy/Table/renderers/DateColumnCell/DateColumnCell.js +30 -0
- package/dist/legacy/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -0
- package/dist/legacy/Table/renderers/DateColumnCell/index.js +2 -0
- package/dist/legacy/Table/renderers/DateColumnCell/index.js.map +1 -0
- package/dist/legacy/Table/renderers/DateColumnCell/index.ts +1 -0
- package/dist/legacy/Table/renderers/DropdownColumnCell/DropdownColumnCell.d.ts +24 -0
- package/dist/legacy/Table/renderers/DropdownColumnCell/DropdownColumnCell.js +59 -0
- package/dist/legacy/Table/renderers/DropdownColumnCell/DropdownColumnCell.js.map +1 -0
- package/dist/legacy/Table/renderers/DropdownColumnCell/index.d.ts +1 -0
- package/dist/legacy/Table/renderers/DropdownColumnCell/index.js +2 -0
- package/dist/legacy/Table/renderers/DropdownColumnCell/index.js.map +1 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/ProgressColumnCell.d.ts +16 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/ProgressColumnCell.js +50 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +1 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/index.js +3 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/index.js.map +1 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/index.ts +2 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/styles.js +27 -0
- package/dist/legacy/Table/renderers/ProgressColumnCell/styles.js.map +1 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/SwitchColumnCell.d.ts +29 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/SwitchColumnCell.js +68 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/index.js +2 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/index.js.map +1 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/index.ts +1 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/styles.js +17 -0
- package/dist/legacy/Table/renderers/SwitchColumnCell/styles.js.map +1 -0
- package/dist/legacy/Table/renderers/index.d.ts +14 -0
- package/dist/legacy/Table/renderers/index.js +5 -0
- package/dist/legacy/Table/renderers/index.js.map +1 -0
- package/dist/legacy/Table/renderers/renderers.d.ts +53 -0
- package/dist/legacy/Table/renderers/renderers.js +193 -0
- package/dist/legacy/Table/renderers/renderers.js.map +1 -0
- package/dist/legacy/Table/stories/TableColumnRenderers.stories.mdx +193 -0
- package/dist/legacy/Table/utils/fallbacks.d.ts +6 -0
- package/dist/legacy/Table/utils/fallbacks.js +14 -0
- package/dist/legacy/Table/utils/fallbacks.js.map +1 -0
- package/dist/legacy/Table/utils/index.d.ts +3 -0
- package/dist/legacy/Table/utils/index.js +2 -0
- package/dist/legacy/Table/utils/index.js.map +1 -0
- package/dist/legacy/Tag/Tag.js +2 -2
- package/dist/legacy/Tag/Tag.js.map +1 -1
- package/dist/legacy/TimeAgo/TimeAgo.js +2 -2
- package/dist/legacy/TimeAgo/TimeAgo.js.map +1 -1
- package/dist/legacy/TimePicker/PeriodPicker/PeriodPicker.js +2 -2
- package/dist/legacy/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -1
- package/dist/legacy/TimePicker/TimePicker.js +2 -2
- package/dist/legacy/TimePicker/TimePicker.js.map +1 -1
- package/dist/legacy/TimePicker/UnitTimePicker/UnitTimePicker.js +2 -2
- package/dist/legacy/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -1
- package/dist/modern/AppSwitcherPanel/Action/Action.js +2 -2
- package/dist/modern/AppSwitcherPanel/Action/Action.js.map +1 -1
- package/dist/modern/AppSwitcherPanel/AppSwitcherPanel.js +2 -2
- package/dist/modern/AppSwitcherPanel/AppSwitcherPanel.js.map +1 -1
- package/dist/modern/AppSwitcherPanel/TitleWithTooltip.js +2 -2
- package/dist/modern/AppSwitcherPanel/TitleWithTooltip.js.map +1 -1
- package/dist/modern/ColorPicker/ColorPicker.js +2 -2
- package/dist/modern/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/modern/ColorPicker/Fields/Fields.js +2 -2
- package/dist/modern/ColorPicker/Fields/Fields.js.map +1 -1
- package/dist/modern/ColorPicker/PresetColors/PresetColors.js +2 -2
- package/dist/modern/ColorPicker/PresetColors/PresetColors.js.map +1 -1
- package/dist/modern/Drawer/Drawer.js +7 -4
- package/dist/modern/Drawer/Drawer.js.map +1 -1
- package/dist/modern/FormComposer/FormComposer.js +2 -2
- package/dist/modern/FormComposer/FormComposer.js.map +1 -1
- package/dist/modern/InlineEditor/InlineEditor.js +2 -2
- package/dist/modern/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/modern/NavigationAnchors/NavigationAnchors.js +2 -2
- package/dist/modern/NavigationAnchors/NavigationAnchors.js.map +1 -1
- package/dist/modern/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js +5 -3
- package/dist/modern/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js.map +1 -1
- package/dist/modern/NotificationPanel/Notification/Notification.js +2 -2
- package/dist/modern/NotificationPanel/Notification/Notification.js.map +1 -1
- package/dist/modern/NotificationPanel/NotificationPanel.js +2 -2
- package/dist/modern/NotificationPanel/NotificationPanel.js.map +1 -1
- package/dist/modern/NotificationPanel/NotificationsIndicator/NotificationsIndicator.js +2 -2
- package/dist/modern/NotificationPanel/NotificationsIndicator/NotificationsIndicator.js.map +1 -1
- package/dist/modern/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js +2 -2
- package/dist/modern/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/modern/QueryBuilder/QueryBuilder.js +2 -2
- package/dist/modern/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Attribute/Attribute.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Operator/Operator.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Rule.js +5 -3
- package/dist/modern/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Value/TextValue/TextValue.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
- package/dist/modern/QueryBuilder/Rule/Value/Value.js +2 -2
- package/dist/modern/QueryBuilder/Rule/Value/Value.js.map +1 -1
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js +9 -6
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/modern/Slider/KnobRing/KnobRing.js +2 -2
- package/dist/modern/Slider/KnobRing/KnobRing.js.map +1 -1
- package/dist/modern/Slider/Slider.js +2 -2
- package/dist/modern/Slider/Slider.js.map +1 -1
- package/dist/modern/Table/Table.js +2 -2
- package/dist/modern/Table/Table.js.map +1 -1
- package/dist/modern/Table/TableBody/TableBody.js +2 -2
- package/dist/modern/Table/TableBody/TableBody.js.map +1 -1
- package/dist/modern/Table/TableCell/TableCell.js +2 -2
- package/dist/modern/Table/TableCell/TableCell.js.map +1 -1
- package/dist/modern/Table/TableContainer/TableContainer.js +2 -2
- package/dist/modern/Table/TableContainer/TableContainer.js.map +1 -1
- package/dist/modern/Table/TableHead/TableHead.js +2 -2
- package/dist/modern/Table/TableHead/TableHead.js.map +1 -1
- package/dist/modern/Table/TableHeader/TableHeader.js +2 -2
- package/dist/modern/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/modern/Table/TableRow/TableRow.js +2 -2
- package/dist/modern/Table/TableRow/TableRow.js.map +1 -1
- package/dist/modern/Table/hooks/useRowExpand.js +3 -1
- package/dist/modern/Table/hooks/useRowExpand.js.map +1 -1
- package/dist/modern/Table/index.d.ts +2 -0
- package/dist/modern/Table/index.js +2 -0
- package/dist/modern/Table/index.js.map +1 -1
- package/dist/modern/Table/renderers/DateColumnCell/DateColumnCell.d.ts +12 -0
- package/dist/modern/Table/renderers/DateColumnCell/DateColumnCell.js +31 -0
- package/dist/modern/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -0
- package/dist/modern/Table/renderers/DateColumnCell/index.js +2 -0
- package/dist/modern/Table/renderers/DateColumnCell/index.js.map +1 -0
- package/dist/modern/Table/renderers/DateColumnCell/index.ts +1 -0
- package/dist/modern/Table/renderers/DropdownColumnCell/DropdownColumnCell.d.ts +24 -0
- package/dist/modern/Table/renderers/DropdownColumnCell/DropdownColumnCell.js +58 -0
- package/dist/modern/Table/renderers/DropdownColumnCell/DropdownColumnCell.js.map +1 -0
- package/dist/modern/Table/renderers/DropdownColumnCell/index.d.ts +1 -0
- package/dist/modern/Table/renderers/DropdownColumnCell/index.js +2 -0
- package/dist/modern/Table/renderers/DropdownColumnCell/index.js.map +1 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/ProgressColumnCell.d.ts +16 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/ProgressColumnCell.js +50 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +1 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/index.js +3 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/index.js.map +1 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/index.ts +2 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/styles.js +25 -0
- package/dist/modern/Table/renderers/ProgressColumnCell/styles.js.map +1 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/SwitchColumnCell.d.ts +29 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/SwitchColumnCell.js +69 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/index.js +2 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/index.js.map +1 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/index.ts +1 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/styles.js +15 -0
- package/dist/modern/Table/renderers/SwitchColumnCell/styles.js.map +1 -0
- package/dist/modern/Table/renderers/index.d.ts +14 -0
- package/dist/modern/Table/renderers/index.js +5 -0
- package/dist/modern/Table/renderers/index.js.map +1 -0
- package/dist/modern/Table/renderers/renderers.d.ts +53 -0
- package/dist/modern/Table/renderers/renderers.js +186 -0
- package/dist/modern/Table/renderers/renderers.js.map +1 -0
- package/dist/modern/Table/stories/TableColumnRenderers.stories.mdx +193 -0
- package/dist/modern/Table/utils/fallbacks.d.ts +6 -0
- package/dist/modern/Table/utils/fallbacks.js +12 -0
- package/dist/modern/Table/utils/fallbacks.js.map +1 -0
- package/dist/modern/Table/utils/index.d.ts +3 -0
- package/dist/modern/Table/utils/index.js +2 -0
- package/dist/modern/Table/utils/index.js.map +1 -0
- package/dist/modern/Tag/Tag.js +2 -2
- package/dist/modern/Tag/Tag.js.map +1 -1
- package/dist/modern/TimeAgo/TimeAgo.js +2 -2
- package/dist/modern/TimeAgo/TimeAgo.js.map +1 -1
- package/dist/modern/TimePicker/PeriodPicker/PeriodPicker.js +2 -2
- package/dist/modern/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -1
- package/dist/modern/TimePicker/TimePicker.js +2 -2
- package/dist/modern/TimePicker/TimePicker.js.map +1 -1
- package/dist/modern/TimePicker/UnitTimePicker/UnitTimePicker.js +2 -2
- package/dist/modern/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -1
- package/package.json +5 -5
package/dist/Drawer/Drawer.js
CHANGED
|
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
require("core-js/modules/es.string.anchor.js");
|
|
11
|
-
|
|
12
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
11
|
|
|
12
|
+
require("core-js/modules/es.string.anchor.js");
|
|
13
|
+
|
|
14
14
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
15
|
|
|
16
16
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -27,6 +27,8 @@ var _uikitReactCore = require("@hitachivantara/uikit-react-core");
|
|
|
27
27
|
|
|
28
28
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
29
29
|
|
|
30
|
+
var _Close;
|
|
31
|
+
|
|
30
32
|
var _excluded = ["className", "classes", "id", "children", "open", "onClose", "anchor", "buttonTitle"];
|
|
31
33
|
|
|
32
34
|
/**
|
|
@@ -48,9 +50,9 @@ var HvDrawer = function HvDrawer(_ref) {
|
|
|
48
50
|
others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
49
51
|
|
|
50
52
|
var closeButtonDisplay = function closeButtonDisplay() {
|
|
51
|
-
return /*#__PURE__*/_react.default.createElement(_uikitReactIcons.Close, {
|
|
53
|
+
return _Close || (_Close = /*#__PURE__*/_react.default.createElement(_uikitReactIcons.Close, {
|
|
52
54
|
role: "presentation"
|
|
53
|
-
});
|
|
55
|
+
}));
|
|
54
56
|
};
|
|
55
57
|
|
|
56
58
|
var CloseButtonTooltipWrapper = buttonTitle ? (0, _uikitReactCore.withTooltip)(closeButtonDisplay, buttonTitle, "top") : closeButtonDisplay;
|
|
@@ -81,7 +83,7 @@ var HvDrawer = function HvDrawer(_ref) {
|
|
|
81
83
|
}, /*#__PURE__*/_react.default.createElement(CloseButtonTooltipWrapper, null)), children);
|
|
82
84
|
};
|
|
83
85
|
|
|
84
|
-
HvDrawer.propTypes = {
|
|
86
|
+
process.env.NODE_ENV !== "production" ? HvDrawer.propTypes = {
|
|
85
87
|
/**
|
|
86
88
|
* Class names to be applied.
|
|
87
89
|
*/
|
|
@@ -145,7 +147,7 @@ HvDrawer.propTypes = {
|
|
|
145
147
|
* Title for the button close.
|
|
146
148
|
*/
|
|
147
149
|
buttonTitle: _propTypes.default.string
|
|
148
|
-
};
|
|
150
|
+
} : void 0;
|
|
149
151
|
|
|
150
152
|
var _default = (0, _core.withStyles)(_styles.default, {
|
|
151
153
|
name: "HvDrawer"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Drawer/Drawer.js"],"names":["HvDrawer","className","classes","id","children","open","onClose","anchor","buttonTitle","others","closeButtonDisplay","CloseButtonTooltipWrapper","root","paper","background","event","reason","closeButton","propTypes","PropTypes","string","shape","isRequired","node","bool","func","oneOf","styles","name"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA
|
|
1
|
+
{"version":3,"sources":["../../src/Drawer/Drawer.js"],"names":["HvDrawer","className","classes","id","children","open","onClose","anchor","buttonTitle","others","closeButtonDisplay","CloseButtonTooltipWrapper","root","paper","background","event","reason","closeButton","propTypes","PropTypes","string","shape","isRequired","node","bool","func","oneOf","styles","name"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { Drawer, withStyles } from \"@material-ui/core\";\nimport { Close } from \"@hitachivantara/uikit-react-icons\";\nimport { HvButton, withTooltip, setId } from \"@hitachivantara/uikit-react-core\";\nimport styles from \"./styles\";\n\n/**\n * The Drawer component provides a foundation to create a sliding pane.\n * It only provides the pane with a close button, the rest of the\n * content can be customized.\n */\nconst HvDrawer = ({\n className,\n classes,\n id,\n children,\n open,\n onClose,\n anchor = \"right\",\n buttonTitle = \"Close\",\n ...others\n}) => {\n const closeButtonDisplay = () => <Close role=\"presentation\" />;\n\n const CloseButtonTooltipWrapper = buttonTitle\n ? withTooltip(closeButtonDisplay, buttonTitle, \"top\")\n : closeButtonDisplay;\n\n return (\n <Drawer\n className={clsx(classes.root, className)}\n id={id}\n anchor={anchor}\n open={open}\n PaperProps={{\n classes: {\n root: classes.paper,\n },\n }}\n BackdropProps={{\n classes: {\n root: classes.background,\n },\n }}\n onClose={(event, reason) => onClose(event, reason)}\n {...others}\n >\n <HvButton\n id={setId(id, \"close\")}\n className={classes.closeButton}\n category=\"ghost\"\n onClick={onClose}\n aria-label={buttonTitle}\n >\n <CloseButtonTooltipWrapper />\n </HvButton>\n {children}\n </Drawer>\n );\n};\n\nHvDrawer.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Style applied to the background (outside) of the component.\n */\n background: PropTypes.string,\n /**\n * Style applied to the component (root).\n */\n paper: PropTypes.string,\n /**\n * Style applied to the close button.\n */\n closeButton: PropTypes.string,\n }).isRequired,\n /**\n * Components of the Drawer.\n */\n children: PropTypes.node.isRequired,\n /**\n * Current state of the Drawer.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Function executed on close.\n * Extended from Modal from material-ui\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * The side the drawer opens from.\n */\n anchor: PropTypes.oneOf([\"left\", \"top\", \"right\", \"bottom\"]),\n /**\n * Title for the button close.\n */\n buttonTitle: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvDrawer\" })(HvDrawer);\n"],"file":"Drawer.js"}
|
|
@@ -205,7 +205,7 @@ var HvFormComposer = /*#__PURE__*/function (_React$Component) {
|
|
|
205
205
|
return HvFormComposer;
|
|
206
206
|
}(_react.default.Component);
|
|
207
207
|
|
|
208
|
-
HvFormComposer.propTypes = {
|
|
208
|
+
process.env.NODE_ENV !== "production" ? HvFormComposer.propTypes = {
|
|
209
209
|
/**
|
|
210
210
|
* A Jss Object used to override or extend the styles applied to the form composer.
|
|
211
211
|
*/
|
|
@@ -238,7 +238,7 @@ HvFormComposer.propTypes = {
|
|
|
238
238
|
* Content to be shown on the footer.
|
|
239
239
|
*/
|
|
240
240
|
footerContent: _propTypes.default.node
|
|
241
|
-
};
|
|
241
|
+
} : void 0;
|
|
242
242
|
/**
|
|
243
243
|
* Default properties.
|
|
244
244
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/FormComposer/FormComposer.js"],"names":["HvFormComposer","props","groups","componentValues","forEach","group","children","child","name","value","state","originalHandler","undefined","getValues","onChange","newComponentValues","setState","getInitialValuesFromComponents","classes","mainTitle","hasNavigation","hasFooter","footerContent","footerElements","map","i","key","React","cloneElement","onClick","getValuesHandler","navigationOptions","groupedComponents","push","label","title","event","childOnChangeHandler","root","mainContainer","navContainer","componentContainer","footer","Component","propTypes","PropTypes","instanceOf","Object","isRequired","string","arrayOf","node","bool","defaultProps","styles"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/FormComposer/FormComposer.js"],"names":["HvFormComposer","props","groups","componentValues","forEach","group","children","child","name","value","state","originalHandler","undefined","getValues","onChange","newComponentValues","setState","getInitialValuesFromComponents","classes","mainTitle","hasNavigation","hasFooter","footerContent","footerElements","map","i","key","React","cloneElement","onClick","getValuesHandler","navigationOptions","groupedComponents","push","label","title","event","childOnChangeHandler","root","mainContainer","navContainer","componentContainer","footer","Component","propTypes","PropTypes","instanceOf","Object","isRequired","string","arrayOf","node","bool","defaultProps","styles"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes, { shape } from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport { HvTypography } from \"@hitachivantara/uikit-react-core\";\nimport HvNavigationAnchors from \"../NavigationAnchors\";\nimport styles from \"./styles\";\n\n/**\n * A form composer component used to create a form dynamically, still in development\n */\nclass HvFormComposer extends React.Component {\n constructor(props) {\n super(props);\n\n const { groups } = this.props;\n\n this.state = {\n componentValues: this.getInitialValuesFromComponents(groups),\n };\n }\n\n /**\n * Gets the values that are set on each component inside the groups.\n *\n * @param {Object} groups - Initial group object containing all the component elements.\n * @return {Object} - { key (Component name): value (Value set on the component) }\n */\n getInitialValuesFromComponents = (groups) => {\n const componentValues = {};\n groups.forEach((group) => {\n group.children.forEach((child) => {\n componentValues[child.props.name] = child.props.value;\n });\n });\n\n return componentValues;\n };\n\n /**\n * Gets the values stored in the state of each component.\n */\n getValues = () => {\n const { componentValues } = this.state;\n return componentValues;\n };\n\n /**\n * Handler to retrieve the values.\n *\n * @param {Function} originalHandler - The handler that was originally triggered.\n */\n getValuesHandler = (originalHandler) => {\n if (originalHandler !== undefined && typeof originalHandler === \"function\") {\n originalHandler(this.getValues());\n }\n };\n\n /**\n * Stores the value on the state when a child component onChange event is triggered.\n *\n * @param {*} value - Value that will be stored on the state.\n * @param {string} name - Name of the component.\n * @param {Function} onChange - Original function triggered by the component.\n */\n childOnChangeHandler = (value, name, onChange) => {\n const { componentValues } = this.state;\n\n const newComponentValues = { ...componentValues };\n newComponentValues[name] = value;\n\n this.setState({ componentValues: newComponentValues });\n\n if (onChange !== undefined && typeof onChange === \"function\") {\n return onChange(value);\n }\n // The UI-KIT input forced to have the value explicitly returned on the onChanged function.\n return value;\n };\n\n render() {\n const { classes, mainTitle, groups, hasNavigation, hasFooter, footerContent } = this.props;\n\n const footerElements = footerContent.map((child, i) => {\n const key = `fc-${i}`;\n return React.cloneElement(child, {\n onClick: () => this.getValuesHandler(child.props.onClick),\n key,\n });\n });\n\n const navigationOptions = [];\n\n const groupedComponents = groups.map((group) => {\n navigationOptions.push({ label: group.title, value: group.title });\n\n return (\n <div key={group.title}>\n <HvTypography id={group.title} variant=\"mTitle\">\n {group.title}\n </HvTypography>\n {group.children.map((child, i) => {\n const key = `fc-${group.title}-${i}`;\n return (\n <div key={key}>\n {React.cloneElement(child, {\n onChange: (event, value) =>\n this.childOnChangeHandler(value, child.props.name, child.props.onChange),\n })}\n </div>\n );\n })}\n </div>\n );\n });\n\n return (\n <div className={classes.root}>\n <HvTypography variant=\"xlTitle\" className={classes.title}>\n {mainTitle}\n </HvTypography>\n <div className={classes.mainContainer}>\n {hasNavigation && (\n <div className={classes.navContainer}>\n <HvNavigationAnchors options={navigationOptions} floating={false} />\n </div>\n )}\n <div className={classes.componentContainer}>{groupedComponents}</div>\n </div>\n {hasFooter && <div className={classes.footer}>{footerElements}</div>}\n </div>\n );\n }\n}\n\nHvFormComposer.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the form composer.\n */\n classes: PropTypes.instanceOf(Object).isRequired,\n /**\n * Main title to be displayed.\n */\n mainTitle: PropTypes.string,\n /**\n * The group of component that will be added to the Form composer.\n */\n groups: PropTypes.arrayOf(\n shape({\n title: PropTypes.string,\n children: PropTypes.node,\n })\n ).isRequired,\n /**\n * Shows navigation bar.\n */\n hasNavigation: PropTypes.bool,\n /**\n * Shows footer.\n */\n hasFooter: PropTypes.bool,\n /**\n * Content to be shown on the footer.\n */\n footerContent: PropTypes.node,\n};\n\n/**\n * Default properties.\n */\nHvFormComposer.defaultProps = {\n mainTitle: \"\",\n hasNavigation: false,\n hasFooter: false,\n footerContent: [],\n};\n\nexport default withStyles(styles, { name: \"HvFormComposer\" })(HvFormComposer);\n"],"file":"FormComposer.js"}
|
|
@@ -174,7 +174,7 @@ var HvInlineEditor = function HvInlineEditor(props) {
|
|
|
174
174
|
})));
|
|
175
175
|
};
|
|
176
176
|
|
|
177
|
-
HvInlineEditor.propTypes = {
|
|
177
|
+
process.env.NODE_ENV !== "production" ? HvInlineEditor.propTypes = {
|
|
178
178
|
/**
|
|
179
179
|
* Class names to be applied.
|
|
180
180
|
*/
|
|
@@ -250,7 +250,7 @@ HvInlineEditor.propTypes = {
|
|
|
250
250
|
* Props passed to the HvTypography text component
|
|
251
251
|
*/
|
|
252
252
|
typographyProps: _propTypes.default.instanceOf(Object)
|
|
253
|
-
};
|
|
253
|
+
} : void 0;
|
|
254
254
|
|
|
255
255
|
var _default = (0, _core.withStyles)(_styles.default, {
|
|
256
256
|
name: "HvInlineEditor"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InlineEditor/InlineEditor.js"],"names":["HvInlineEditor","props","className","classes","valueProp","value","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","setValue","editMode","setEditMode","cachedValue","setCachedValue","inputRef","theme","typographyStyles","hv","typography","lineHeight","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","KeyboardCodes","Esc","handleChange","val","root","inputRoot","inputBorderContainer","style","height","undefined","button","parseInt","largeText","text","textEmpty","icon","iconVisible","propTypes","PropTypes","string","shape","isRequired","bool","elementType","func","instanceOf","Object","styles","name"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAQA;;AAEA;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,KAAD,EAAW;AAChC,MACEC,SADF,GAeID,KAfJ,CACEC,SADF;AAAA,MAEEC,OAFF,GAeIF,KAfJ,CAEEE,OAFF;AAAA,MAGSC,SAHT,GAeIH,KAfJ,CAGEI,KAHF;AAAA,MAIEC,YAJF,GAeIL,KAfJ,CAIEK,YAJF;AAAA,MAKEC,QALF,GAeIN,KAfJ,CAKEM,QALF;AAAA,yBAeIN,KAfJ,CAMEO,SANF;AAAA,MAMaC,cANb,iCAM8BC,uBAN9B;AAAA,uBAeIT,KAfJ,CAOEU,OAPF;AAAA,MAOEA,OAPF,+BAOY,YAPZ;AAAA,2BAeIV,KAfJ,CAQEW,WARF;AAAA,MAQEA,WARF,mCAQgB,YARhB;AAAA,MASEC,MATF,GAeIZ,KAfJ,CASEY,MATF;AAAA,MAUEC,QAVF,GAeIb,KAfJ,CAUEa,QAVF;AAAA,MAWEC,SAXF,GAeId,KAfJ,CAWEc,SAXF;AAAA,MAYEC,WAZF,GAeIf,KAfJ,CAYEe,WAZF;AAAA,MAaEC,eAbF,GAeIhB,KAfJ,CAaEgB,eAbF;AAAA,MAcKC,MAdL,0CAeIjB,KAfJ;;AAgBA,uBAA0B,mCAAcG,SAAd,EAAyBE,YAAzB,CAA1B;AAAA;AAAA,MAAOD,KAAP;AAAA,MAAcc,QAAd;;AACA,kBAAgC,qBAAS,KAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAsC,qBAAShB,KAAT,CAAtC;AAAA;AAAA,MAAOiB,WAAP;AAAA,MAAoBC,cAApB;;AACA,MAAMC,QAAQ,GAAG,oBAAjB;AACA,MAAMC,KAAK,GAAG,qBAAd;AAEA,MAAMC,gBAAgB,GAAGD,KAAK,CAACE,EAAN,CAASC,UAAT,CAAoBjB,OAApB,KAAgC,EAAzD;AACA,MAAQkB,UAAR,GAAuBH,gBAAvB,CAAQG,UAAR;AAEA,8BAAgB,YAAM;AACpB,QAAMC,KAAK,GAAGN,QAAQ,CAACO,OAAvB;;AACA,QAAIX,QAAQ,IAAIU,KAAhB,EAAuB;AACrBA,MAAAA,KAAK,CAACE,KAAN;AACAF,MAAAA,KAAK,CAACG,MAAN;AACD;AACF,GAND,EAMG,CAACb,QAAD,CANH;;AAQA,MAAMc,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBb,IAAAA,WAAW,CAAC,IAAD,CAAX;AACAE,IAAAA,cAAc,CAAClB,KAAD,CAAd;AACD,GAHD;;AAKA,MAAM8B,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAW;AAC5Bf,IAAAA,WAAW,CAAC,KAAD,CAAX;AAEA,QAAMgB,QAAQ,GAAGhC,KAAK,IAAIiB,WAA1B,CAH4B,CAGW;;AACvCH,IAAAA,QAAQ,CAACkB,QAAD,CAAR;AACAxB,IAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAGuB,KAAH,EAAUC,QAAV,CAAN;AACD,GAND;;AAQA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACF,KAAD,EAAW;AAC/B,QAAI,gCAAWA,KAAX,EAAkBG,8BAAcC,GAAhC,CAAJ,EAA0C;AACxCnB,MAAAA,WAAW,CAAC,KAAD,CAAX;AACAF,MAAAA,QAAQ,CAACG,WAAD,CAAR;AACD;;AACDP,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGqB,KAAH,CAAT;AACD,GAND;;AAQA,MAAMK,YAAY,GAAG,SAAfA,YAAe,CAACL,KAAD,EAAQM,GAAR,EAAgB;AACnCvB,IAAAA,QAAQ,CAACuB,GAAD,CAAR;AACA5B,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGsB,KAAH,EAAUM,GAAV,CAAR;AACD,GAHD;;AAKA,sBACE;AAAK,IAAA,SAAS,EAAE,mBAAKxC,SAAL,EAAgBC,OAAO,CAACwC,IAAxB;AAAhB,KACGvB,QAAQ,gBACP,6BAAC,cAAD;AACE,IAAA,QAAQ,EAAEI,QADZ;AAEE,IAAA,OAAO,EAAE;AACPmB,MAAAA,IAAI,EAAExC,OAAO,CAACyC,SADP;AAEPd,MAAAA,KAAK,EAAE3B,OAAO,CAAC2B,KAFR;AAGPe,MAAAA,oBAAoB,EAAE1C,OAAO,CAAC0C;AAHvB,KAFX;AAOE,IAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,kCACApB,gBADA;AAEHqB,QAAAA,MAAM,EAAEtC,cAAc,KAAKC,uBAAnB,GAA6BmB,UAA7B,GAA0CmB;AAF/C;AADK,KAPd;AAaE,IAAA,KAAK,EAAE3C,KAbT;AAcE,IAAA,MAAM,EAAE8B,UAdV;AAeE,IAAA,QAAQ,EAAEM,YAfZ;AAgBE,IAAA,SAAS,EAAEH;AAhBb,KAiBMpB,MAjBN,EADO,gBAqBP,6BAAC,wBAAD;AACE,IAAA,QAAQ,EAAC,OADX;AAEE,IAAA,kBAAkB,EAAE,KAFtB;AAGE,IAAA,SAAS,EAAE,mBAAKf,OAAO,CAAC8C,MAAb,EACYC,QAAQ,CAACrB,UAAD,EAAa,EAAb,CAAR,IAA4B,EADxC,IACR1B,OAAO,CAACgD,SADA,CAHb;AAME,IAAA,OAAO,EAAEjB;AANX,KAOMlB,WAPN,gBASE,6BAAC,4BAAD;AACE,IAAA,OAAO,EAAEL,OADX;AAEE,IAAA,SAAS,EAAE,mBAAKR,OAAO,CAACiD,IAAb,EAA0C,CAAC/C,KAA3C,IAAsBF,OAAO,CAACkD,SAA9B;AAFb,KAGMpC,eAHN,GAKGZ,KAAK,IAAIO,WALZ,CATF,eAgBE,6BAAC,qBAAD;AACE,IAAA,KAAK,EAAC,OADR;AAEE,IAAA,IAAI,EAAC,cAFP;AAGE,IAAA,SAAS,EAAE,mBAAKT,OAAO,CAACmD,IAAb,EACc/C,QADd,IACRJ,OAAO,CAACoD,WADA;AAHb,IAhBF,CAtBJ,CADF;AAkDD,CA9GD;;AAgHAvD,cAAc,CAACwD,SAAf,GAA2B;AACzB;AACF;AACA;AACEtD,EAAAA,SAAS,EAAEuD,mBAAUC,MAJI;;AAKzB;AACF;AACA;AACEvD,EAAAA,OAAO,EAAEsD,mBAAUE,KAAV,CAAgB;AACvBhB,IAAAA,IAAI,EAAEc,mBAAUC,MADO;AAEvB5B,IAAAA,KAAK,EAAE2B,mBAAUC,MAFM;AAGvBd,IAAAA,SAAS,EAAEa,mBAAUC,MAHE;AAIvBb,IAAAA,oBAAoB,EAAEY,mBAAUC,MAJT;AAKvBN,IAAAA,IAAI,EAAEK,mBAAUC,MALO;AAMvBL,IAAAA,SAAS,EAAEI,mBAAUC,MANE;AAOvBT,IAAAA,MAAM,EAAEQ,mBAAUC,MAPK;AAQvBJ,IAAAA,IAAI,EAAEG,mBAAUC,MARO;AASvBH,IAAAA,WAAW,EAAEE,mBAAUC,MATA;AAUvBP,IAAAA,SAAS,EAAEM,mBAAUC;AAVE,GAAhB,EAWNE,UAnBsB;;AAoBzB;AACF;AACA;AACEvD,EAAAA,KAAK,EAAEoD,mBAAUC,MAvBQ;;AAwBzB;AACF;AACA;AACEpD,EAAAA,YAAY,EAAEmD,mBAAUC,MA3BC;;AA4BzB;AACF;AACA;AACEnD,EAAAA,QAAQ,EAAEkD,mBAAUI,IA/BK;;AAgCzB;AACF;AACA;AACErD,EAAAA,SAAS,EAAEiD,mBAAUK,WAnCI;;AAoCzB;AACF;AACA;AACEnD,EAAAA,OAAO,EAAE8C,mBAAUC,MAvCM;;AAwCzB;AACF;AACA;AACE9C,EAAAA,WAAW,EAAE6C,mBAAUC,MA3CE;;AA4CzB;AACF;AACA;AACE7C,EAAAA,MAAM,EAAE4C,mBAAUM,IA/CO;;AAgDzB;AACF;AACA;AACEjD,EAAAA,QAAQ,EAAE2C,mBAAUM,IAnDK;;AAoDzB;AACF;AACA;AACEhD,EAAAA,SAAS,EAAE0C,mBAAUM,IAvDI;;AAwDzB;AACF;AACA;AACE/C,EAAAA,WAAW,EAAEyC,mBAAUO,UAAV,CAAqBC,MAArB,CA3DY;;AA4DzB;AACF;AACA;AACEhD,EAAAA,eAAe,EAAEwC,mBAAUO,UAAV,CAAqBC,MAArB;AA/DQ,CAA3B;;eAkEe,sBAAWC,eAAX,EAAmB;AAAEC,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAA+CnE,cAA/C,C","sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { withStyles, useTheme } from \"@material-ui/core\";\nimport {\n HvButton,\n HvInput,\n HvTypography,\n isKeypress,\n KeyboardCodes,\n useControlled,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\n\nimport styles from \"./styles\";\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nconst HvInlineEditor = (props) => {\n const {\n className,\n classes,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"normalText\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n } = props;\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef();\n const theme = useTheme();\n\n const typographyStyles = theme.hv.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown = (event) => {\n if (isKeypress(event, KeyboardCodes.Esc)) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event);\n };\n\n const handleChange = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={clsx(className, classes.root)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n category=\"ghost\"\n overrideIconColors={false}\n className={clsx(classes.button, {\n [classes.largeText]: parseInt(lineHeight, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n className={clsx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n <Edit\n color=\"atmo5\"\n role=\"presentation\"\n className={clsx(classes.icon, {\n [classes.iconVisible]: showIcon,\n })}\n />\n </HvButton>\n )}\n </div>\n );\n};\n\nHvInlineEditor.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n input: PropTypes.string,\n inputRoot: PropTypes.string,\n inputBorderContainer: PropTypes.string,\n text: PropTypes.string,\n textEmpty: PropTypes.string,\n button: PropTypes.string,\n icon: PropTypes.string,\n iconVisible: PropTypes.string,\n largeText: PropTypes.string,\n }).isRequired,\n /**\n * The value of the input element, for controlled usage.\n */\n value: PropTypes.string,\n /**\n * The default value of the input element, for uncontrolled usage.\n */\n defaultValue: PropTypes.string,\n /**\n * Whether the Edit icon should always be visible\n */\n showIcon: PropTypes.bool,\n /**\n * Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`)\n */\n component: PropTypes.elementType,\n /**\n * Variant of the HvTypography to display\n */\n variant: PropTypes.string,\n /**\n * The placeholder value of the HvTypography.\n */\n placeholder: PropTypes.string,\n /**\n * Called when the input is blurred.\n */\n onBlur: PropTypes.func,\n /**\n * Called when the input value is changed.\n */\n onChange: PropTypes.func,\n /**\n * Called when a key is pressed on the input.\n */\n onKeyDown: PropTypes.func,\n /**\n * Props passed to the HvButton component\n */\n buttonProps: PropTypes.instanceOf(Object),\n /**\n * Props passed to the HvTypography text component\n */\n typographyProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvInlineEditor\" })(HvInlineEditor);\n"],"file":"InlineEditor.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/InlineEditor/InlineEditor.js"],"names":["HvInlineEditor","props","className","classes","valueProp","value","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","setValue","editMode","setEditMode","cachedValue","setCachedValue","inputRef","theme","typographyStyles","hv","typography","lineHeight","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","KeyboardCodes","Esc","handleChange","val","root","inputRoot","inputBorderContainer","style","height","undefined","button","parseInt","largeText","text","textEmpty","icon","iconVisible","propTypes","PropTypes","string","shape","isRequired","bool","elementType","func","instanceOf","Object","styles","name"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { withStyles, useTheme } from \"@material-ui/core\";\nimport {\n HvButton,\n HvInput,\n HvTypography,\n isKeypress,\n KeyboardCodes,\n useControlled,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\n\nimport styles from \"./styles\";\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nconst HvInlineEditor = (props) => {\n const {\n className,\n classes,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"normalText\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n } = props;\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef();\n const theme = useTheme();\n\n const typographyStyles = theme.hv.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown = (event) => {\n if (isKeypress(event, KeyboardCodes.Esc)) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event);\n };\n\n const handleChange = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={clsx(className, classes.root)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n category=\"ghost\"\n overrideIconColors={false}\n className={clsx(classes.button, {\n [classes.largeText]: parseInt(lineHeight, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n className={clsx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n <Edit\n color=\"atmo5\"\n role=\"presentation\"\n className={clsx(classes.icon, {\n [classes.iconVisible]: showIcon,\n })}\n />\n </HvButton>\n )}\n </div>\n );\n};\n\nHvInlineEditor.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n input: PropTypes.string,\n inputRoot: PropTypes.string,\n inputBorderContainer: PropTypes.string,\n text: PropTypes.string,\n textEmpty: PropTypes.string,\n button: PropTypes.string,\n icon: PropTypes.string,\n iconVisible: PropTypes.string,\n largeText: PropTypes.string,\n }).isRequired,\n /**\n * The value of the input element, for controlled usage.\n */\n value: PropTypes.string,\n /**\n * The default value of the input element, for uncontrolled usage.\n */\n defaultValue: PropTypes.string,\n /**\n * Whether the Edit icon should always be visible\n */\n showIcon: PropTypes.bool,\n /**\n * Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`)\n */\n component: PropTypes.elementType,\n /**\n * Variant of the HvTypography to display\n */\n variant: PropTypes.string,\n /**\n * The placeholder value of the HvTypography.\n */\n placeholder: PropTypes.string,\n /**\n * Called when the input is blurred.\n */\n onBlur: PropTypes.func,\n /**\n * Called when the input value is changed.\n */\n onChange: PropTypes.func,\n /**\n * Called when a key is pressed on the input.\n */\n onKeyDown: PropTypes.func,\n /**\n * Props passed to the HvButton component\n */\n buttonProps: PropTypes.instanceOf(Object),\n /**\n * Props passed to the HvTypography text component\n */\n typographyProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvInlineEditor\" })(HvInlineEditor);\n"],"file":"InlineEditor.js"}
|
|
@@ -302,7 +302,7 @@ var NavigationAnchors = function NavigationAnchors(_ref) {
|
|
|
302
302
|
}));
|
|
303
303
|
};
|
|
304
304
|
|
|
305
|
-
NavigationAnchors.propTypes = {
|
|
305
|
+
process.env.NODE_ENV !== "production" ? NavigationAnchors.propTypes = {
|
|
306
306
|
/**
|
|
307
307
|
* Class names to be applied.
|
|
308
308
|
*/
|
|
@@ -364,7 +364,7 @@ NavigationAnchors.propTypes = {
|
|
|
364
364
|
* Each element can also have a specific offset via the options property.
|
|
365
365
|
*/
|
|
366
366
|
offset: _propTypes.default.number
|
|
367
|
-
};
|
|
367
|
+
} : void 0;
|
|
368
368
|
|
|
369
369
|
var _default = (0, _core.withStyles)(_styles.default, {
|
|
370
370
|
name: "HvNavigationAnchors"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/NavigationAnchors/NavigationAnchors.js"],"names":["RETRY_MAX","getScrollTop","c","window","scrollY","pageYOffset","document","documentElement","scrollTop","body","verticalScrollOffset","t","getBoundingClientRect","top","getComputedStyle","position","offsetTop","scrollElement","element","container","offset","elemTop","scrollTo","behavior","isScrolledToTheBottom","containerScrollTop","scrollHeight","innerHeight","offsetHeight","findFirstVisibleElement","options","boundsTop","i","length","ele","getElementById","value","NavigationAnchors","selectedIndex","selectedIndexProp","scrollElementId","href","onClick","className","classes","floating","other","setSelectedIndex","scrollEle","requestedAnimationFrame","lastContainerScrollTop","selectedIndexRef","current","checkScroll","requestAnimationFrame","firstVisibleElementIndex","newSelectedIndex","isScrollingDown","addEventListener","removeEventListener","cancelAnimationFrame","checkRenderedInterval","hashValue","location","hash","split","option","find","o","retry","setInterval","clearInterval","handleListItemClick","event","id","index","history","pushState","navOptions","map","label","root","NavOpt","selected","listItemSelected","gutters","listItemGutters","key","propTypes","PropTypes","string","shape","isRequired","arrayOf","number","bool","func","styles","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport { HvListContainer, HvListItem } from \"@hitachivantara/uikit-react-core\";\nimport styles from \"./styles\";\nimport navigationOption from \"./NavigationOption\";\n\nconst RETRY_MAX = 5;\n\nconst getScrollTop = (c = window) => {\n if (c === window) {\n return (\n window.scrollY ||\n window.pageYOffset ||\n (document.documentElement && document.documentElement.scrollTop) ||\n document.body.scrollTop\n );\n }\n\n return c.scrollTop;\n};\n\nconst verticalScrollOffset = (t, c = window) => {\n if (c === window) {\n return (t?.getBoundingClientRect?.().top || 0) + (window.scrollY || window.pageYOffset);\n }\n if (getComputedStyle(c).position !== \"static\") {\n return t.offsetTop;\n }\n\n return t.offsetTop - c.offsetTop;\n};\n\nconst scrollElement = (element, container, offset = 0) => {\n const elemTop = verticalScrollOffset(element, container);\n container.scrollTo({\n top: elemTop - offset,\n behavior: \"smooth\",\n });\n};\n\nconst isScrolledToTheBottom = (container) => {\n const containerScrollTop = getScrollTop(container);\n\n if (container === window) {\n // accounting for cases where html/body are set to height:100%\n const scrollHeight =\n (document.documentElement && document.documentElement.scrollHeight) ||\n document.body.scrollHeight;\n\n return containerScrollTop + window.innerHeight >= scrollHeight;\n }\n\n return containerScrollTop + container.offsetHeight >= container.scrollHeight;\n};\n\n// find the last nav item that whose top scrolled out of the container's visible area\nconst findFirstVisibleElement = (container, options, offset) => {\n const boundsTop = verticalScrollOffset(container);\n\n let i = 0;\n // find index of first element whose top is still visible inside the container\n for (; i < options.length; i += 1) {\n const ele = document.getElementById(options[i].value);\n\n if (ele) {\n const elemTop = verticalScrollOffset(ele) - (options[i].offset || offset);\n\n if (elemTop > boundsTop) {\n break;\n }\n }\n }\n\n // return the previous index, the element that last scrolled past the top\n return i - 1;\n};\n\n/**\n * A navigation component to help in changing views, still in development\n */\nconst NavigationAnchors = ({\n selectedIndex: selectedIndexProp = 0,\n scrollElementId,\n href = true,\n onClick,\n className,\n classes,\n options,\n floating,\n offset = 0,\n ...other\n}) => {\n const [selectedIndex, setSelectedIndex] = useState(selectedIndexProp);\n\n const scrollEle = useRef();\n const requestedAnimationFrame = useRef(0);\n\n const lastContainerScrollTop = useRef();\n\n // ref to use a often-changing value in useCallback, has recommended in\n // https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n const selectedIndexRef = useRef(selectedIndex);\n useEffect(() => {\n selectedIndexRef.current = selectedIndex;\n }, [selectedIndex]);\n\n // get and store the container's dom element\n useEffect(() => {\n scrollEle.current = (scrollElementId && document.getElementById(scrollElementId)) || window;\n lastContainerScrollTop.current = verticalScrollOffset(scrollEle.current);\n }, [scrollElementId]);\n\n const checkScroll = useCallback(() => {\n if (requestedAnimationFrame.current === 0 && window?.requestAnimationFrame) {\n requestedAnimationFrame.current = window.requestAnimationFrame(() => {\n requestedAnimationFrame.current = 0;\n\n const firstVisibleElementIndex = findFirstVisibleElement(\n scrollEle.current,\n options,\n offset\n );\n\n let newSelectedIndex = firstVisibleElementIndex;\n\n // select the first element when all elements are bellow the container's top\n if (firstVisibleElementIndex < 0) {\n newSelectedIndex = 0;\n }\n\n // if the user has reached the bottom of the container, select the first nav item still visible\n // (usually this selects the last nav item, when it can't reach the top the container)\n // in theory only needed when scrolling down, but no... because of the Safari bouncing behaviour\n if (newSelectedIndex < options.length - 1 && isScrolledToTheBottom(scrollEle.current)) {\n newSelectedIndex += 1;\n }\n\n const containerScrollTop = getScrollTop(scrollEle.current);\n const isScrollingDown = containerScrollTop > lastContainerScrollTop.current;\n lastContainerScrollTop.current = containerScrollTop;\n\n // only update the selected item if the scroll direction is moving away from it\n if (isScrollingDown) {\n if (newSelectedIndex < selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n } else if (newSelectedIndex > selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n\n setSelectedIndex(newSelectedIndex);\n });\n }\n }, [offset, options]);\n\n // registers and unregisters the scroll listener\n useEffect(() => {\n if (scrollEle.current) {\n scrollEle.current.addEventListener(\"scroll\", checkScroll, false);\n }\n\n return () => {\n if (scrollEle.current) {\n scrollEle.current.removeEventListener(\"scroll\", checkScroll);\n }\n\n if (requestedAnimationFrame.current !== 0) {\n window.cancelAnimationFrame(requestedAnimationFrame.current);\n requestedAnimationFrame.current = 0;\n }\n };\n }, [checkScroll]);\n\n // waits for the elements to be rendered and scrolls to the one referenced\n // in the URL hash, if any\n useEffect(() => {\n let checkRenderedInterval;\n\n if (href) {\n const hashValue = document.location.hash.split(\"#\")[1] || \"\";\n\n const option = options.find((o) => o.value === hashValue);\n\n if (option) {\n let retry = 0;\n checkRenderedInterval = setInterval(() => {\n const ele = document.getElementById(option.value);\n\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n clearInterval(checkRenderedInterval);\n } else {\n retry += 1;\n if (retry === RETRY_MAX) {\n clearInterval(checkRenderedInterval);\n }\n }\n }, 1000);\n }\n }\n\n return () => {\n clearInterval(checkRenderedInterval);\n };\n\n // we really want to run this just in the first load\n // in fact this doesn't even belong here, the logic should be external\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleListItemClick = (event, id, index) => {\n const option = options.find((o) => o.value === id);\n\n if (option) {\n const ele = document.getElementById(id);\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n }\n\n if (!href && onClick) {\n onClick(event, index, option);\n } else if (href) {\n window.history.pushState({}, \"\", `#${options[index].value}`);\n }\n\n setSelectedIndex(index);\n\n // Safari scrolls immediately (no smooth scroll support),\n // so this ref value must be updated asap\n selectedIndexRef.current = index;\n }\n };\n\n const navOptions = useMemo(() => {\n return options.map((option) => {\n return navigationOption(option.label);\n });\n }, [options]);\n\n return (\n <HvListContainer interactive className={clsx(className, classes.root)} {...other}>\n {options.map((option, index) => {\n const NavOpt = navOptions[index];\n\n return (\n <HvListItem\n classes={{\n selected: classes.listItemSelected,\n gutters: classes.listItemGutters,\n }}\n key={option.key || option.label}\n onClick={(event) => handleListItemClick(event, option.value, index)}\n selected={selectedIndex === index}\n >\n <NavOpt />\n </HvListItem>\n );\n })}\n </HvListContainer>\n );\n};\n\nNavigationAnchors.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n listItemGutters: PropTypes.string,\n listItemSelected: PropTypes.string,\n }).isRequired,\n /**\n * An Array of Objects with Label and Value. Label is the displayed Element and Value is the local navigation location applied\n */\n options: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n value: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n offset: PropTypes.number,\n })\n ).isRequired,\n /**\n * True if the href location link should be applied. It will create an a element around every list item\n */\n href: PropTypes.bool,\n /**\n * A callback called on click of every list item, if the href is false\n */\n onClick: PropTypes.func,\n /**\n * Whether the anchors are always in a fixed position\n *\n * @deprecated Currently does nothing. Style the component instead.\n */\n floating: deprecatedPropType(PropTypes.bool),\n /**\n * Currently selected index passed from the parent.\n */\n selectedIndex: PropTypes.number,\n /**\n * The Id of the scrollable container containing displayed elements.\n *\n * Defaults to `window` if unspecified.\n */\n scrollElementId: PropTypes.string,\n /**\n * Defines the offset from the top of each element for getting an optimal viewing region in the container.\n * This allows to exclude regions of the container that are obscured by other content (such as fixed-positioned toolbars or titles)\n * or to put more breathing room between the targeted element and the edges of the container.\n *\n * Each element can also have a specific offset via the options property.\n */\n offset: PropTypes.number,\n};\n\nexport default withStyles(styles, { name: \"HvNavigationAnchors\" })(NavigationAnchors);\n"],"file":"NavigationAnchors.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/NavigationAnchors/NavigationAnchors.js"],"names":["RETRY_MAX","getScrollTop","c","window","scrollY","pageYOffset","document","documentElement","scrollTop","body","verticalScrollOffset","t","getBoundingClientRect","top","getComputedStyle","position","offsetTop","scrollElement","element","container","offset","elemTop","scrollTo","behavior","isScrolledToTheBottom","containerScrollTop","scrollHeight","innerHeight","offsetHeight","findFirstVisibleElement","options","boundsTop","i","length","ele","getElementById","value","NavigationAnchors","selectedIndex","selectedIndexProp","scrollElementId","href","onClick","className","classes","floating","other","setSelectedIndex","scrollEle","requestedAnimationFrame","lastContainerScrollTop","selectedIndexRef","current","checkScroll","requestAnimationFrame","firstVisibleElementIndex","newSelectedIndex","isScrollingDown","addEventListener","removeEventListener","cancelAnimationFrame","checkRenderedInterval","hashValue","location","hash","split","option","find","o","retry","setInterval","clearInterval","handleListItemClick","event","id","index","history","pushState","navOptions","map","label","root","NavOpt","selected","listItemSelected","gutters","listItemGutters","key","propTypes","PropTypes","string","shape","isRequired","arrayOf","number","bool","func","styles","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport { HvListContainer, HvListItem } from \"@hitachivantara/uikit-react-core\";\nimport styles from \"./styles\";\nimport navigationOption from \"./NavigationOption\";\n\nconst RETRY_MAX = 5;\n\nconst getScrollTop = (c = window) => {\n if (c === window) {\n return (\n window.scrollY ||\n window.pageYOffset ||\n (document.documentElement && document.documentElement.scrollTop) ||\n document.body.scrollTop\n );\n }\n\n return c.scrollTop;\n};\n\nconst verticalScrollOffset = (t, c = window) => {\n if (c === window) {\n return (t?.getBoundingClientRect?.().top || 0) + (window.scrollY || window.pageYOffset);\n }\n if (getComputedStyle(c).position !== \"static\") {\n return t.offsetTop;\n }\n\n return t.offsetTop - c.offsetTop;\n};\n\nconst scrollElement = (element, container, offset = 0) => {\n const elemTop = verticalScrollOffset(element, container);\n container.scrollTo({\n top: elemTop - offset,\n behavior: \"smooth\",\n });\n};\n\nconst isScrolledToTheBottom = (container) => {\n const containerScrollTop = getScrollTop(container);\n\n if (container === window) {\n // accounting for cases where html/body are set to height:100%\n const scrollHeight =\n (document.documentElement && document.documentElement.scrollHeight) ||\n document.body.scrollHeight;\n\n return containerScrollTop + window.innerHeight >= scrollHeight;\n }\n\n return containerScrollTop + container.offsetHeight >= container.scrollHeight;\n};\n\n// find the last nav item that whose top scrolled out of the container's visible area\nconst findFirstVisibleElement = (container, options, offset) => {\n const boundsTop = verticalScrollOffset(container);\n\n let i = 0;\n // find index of first element whose top is still visible inside the container\n for (; i < options.length; i += 1) {\n const ele = document.getElementById(options[i].value);\n\n if (ele) {\n const elemTop = verticalScrollOffset(ele) - (options[i].offset || offset);\n\n if (elemTop > boundsTop) {\n break;\n }\n }\n }\n\n // return the previous index, the element that last scrolled past the top\n return i - 1;\n};\n\n/**\n * A navigation component to help in changing views, still in development\n */\nconst NavigationAnchors = ({\n selectedIndex: selectedIndexProp = 0,\n scrollElementId,\n href = true,\n onClick,\n className,\n classes,\n options,\n floating,\n offset = 0,\n ...other\n}) => {\n const [selectedIndex, setSelectedIndex] = useState(selectedIndexProp);\n\n const scrollEle = useRef();\n const requestedAnimationFrame = useRef(0);\n\n const lastContainerScrollTop = useRef();\n\n // ref to use a often-changing value in useCallback, has recommended in\n // https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n const selectedIndexRef = useRef(selectedIndex);\n useEffect(() => {\n selectedIndexRef.current = selectedIndex;\n }, [selectedIndex]);\n\n // get and store the container's dom element\n useEffect(() => {\n scrollEle.current = (scrollElementId && document.getElementById(scrollElementId)) || window;\n lastContainerScrollTop.current = verticalScrollOffset(scrollEle.current);\n }, [scrollElementId]);\n\n const checkScroll = useCallback(() => {\n if (requestedAnimationFrame.current === 0 && window?.requestAnimationFrame) {\n requestedAnimationFrame.current = window.requestAnimationFrame(() => {\n requestedAnimationFrame.current = 0;\n\n const firstVisibleElementIndex = findFirstVisibleElement(\n scrollEle.current,\n options,\n offset\n );\n\n let newSelectedIndex = firstVisibleElementIndex;\n\n // select the first element when all elements are bellow the container's top\n if (firstVisibleElementIndex < 0) {\n newSelectedIndex = 0;\n }\n\n // if the user has reached the bottom of the container, select the first nav item still visible\n // (usually this selects the last nav item, when it can't reach the top the container)\n // in theory only needed when scrolling down, but no... because of the Safari bouncing behaviour\n if (newSelectedIndex < options.length - 1 && isScrolledToTheBottom(scrollEle.current)) {\n newSelectedIndex += 1;\n }\n\n const containerScrollTop = getScrollTop(scrollEle.current);\n const isScrollingDown = containerScrollTop > lastContainerScrollTop.current;\n lastContainerScrollTop.current = containerScrollTop;\n\n // only update the selected item if the scroll direction is moving away from it\n if (isScrollingDown) {\n if (newSelectedIndex < selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n } else if (newSelectedIndex > selectedIndexRef.current) {\n newSelectedIndex = selectedIndexRef.current;\n }\n\n setSelectedIndex(newSelectedIndex);\n });\n }\n }, [offset, options]);\n\n // registers and unregisters the scroll listener\n useEffect(() => {\n if (scrollEle.current) {\n scrollEle.current.addEventListener(\"scroll\", checkScroll, false);\n }\n\n return () => {\n if (scrollEle.current) {\n scrollEle.current.removeEventListener(\"scroll\", checkScroll);\n }\n\n if (requestedAnimationFrame.current !== 0) {\n window.cancelAnimationFrame(requestedAnimationFrame.current);\n requestedAnimationFrame.current = 0;\n }\n };\n }, [checkScroll]);\n\n // waits for the elements to be rendered and scrolls to the one referenced\n // in the URL hash, if any\n useEffect(() => {\n let checkRenderedInterval;\n\n if (href) {\n const hashValue = document.location.hash.split(\"#\")[1] || \"\";\n\n const option = options.find((o) => o.value === hashValue);\n\n if (option) {\n let retry = 0;\n checkRenderedInterval = setInterval(() => {\n const ele = document.getElementById(option.value);\n\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n clearInterval(checkRenderedInterval);\n } else {\n retry += 1;\n if (retry === RETRY_MAX) {\n clearInterval(checkRenderedInterval);\n }\n }\n }, 1000);\n }\n }\n\n return () => {\n clearInterval(checkRenderedInterval);\n };\n\n // we really want to run this just in the first load\n // in fact this doesn't even belong here, the logic should be external\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleListItemClick = (event, id, index) => {\n const option = options.find((o) => o.value === id);\n\n if (option) {\n const ele = document.getElementById(id);\n if (ele) {\n scrollElement(ele, scrollEle.current, option.offset || offset);\n }\n\n if (!href && onClick) {\n onClick(event, index, option);\n } else if (href) {\n window.history.pushState({}, \"\", `#${options[index].value}`);\n }\n\n setSelectedIndex(index);\n\n // Safari scrolls immediately (no smooth scroll support),\n // so this ref value must be updated asap\n selectedIndexRef.current = index;\n }\n };\n\n const navOptions = useMemo(() => {\n return options.map((option) => {\n return navigationOption(option.label);\n });\n }, [options]);\n\n return (\n <HvListContainer interactive className={clsx(className, classes.root)} {...other}>\n {options.map((option, index) => {\n const NavOpt = navOptions[index];\n\n return (\n <HvListItem\n classes={{\n selected: classes.listItemSelected,\n gutters: classes.listItemGutters,\n }}\n key={option.key || option.label}\n onClick={(event) => handleListItemClick(event, option.value, index)}\n selected={selectedIndex === index}\n >\n <NavOpt />\n </HvListItem>\n );\n })}\n </HvListContainer>\n );\n};\n\nNavigationAnchors.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n listItemGutters: PropTypes.string,\n listItemSelected: PropTypes.string,\n }).isRequired,\n /**\n * An Array of Objects with Label and Value. Label is the displayed Element and Value is the local navigation location applied\n */\n options: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n value: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n offset: PropTypes.number,\n })\n ).isRequired,\n /**\n * True if the href location link should be applied. It will create an a element around every list item\n */\n href: PropTypes.bool,\n /**\n * A callback called on click of every list item, if the href is false\n */\n onClick: PropTypes.func,\n /**\n * Whether the anchors are always in a fixed position\n *\n * @deprecated Currently does nothing. Style the component instead.\n */\n floating: deprecatedPropType(PropTypes.bool),\n /**\n * Currently selected index passed from the parent.\n */\n selectedIndex: PropTypes.number,\n /**\n * The Id of the scrollable container containing displayed elements.\n *\n * Defaults to `window` if unspecified.\n */\n scrollElementId: PropTypes.string,\n /**\n * Defines the offset from the top of each element for getting an optimal viewing region in the container.\n * This allows to exclude regions of the container that are obscured by other content (such as fixed-positioned toolbars or titles)\n * or to put more breathing room between the targeted element and the edges of the container.\n *\n * Each element can also have a specific offset via the options property.\n */\n offset: PropTypes.number,\n};\n\nexport default withStyles(styles, { name: \"HvNavigationAnchors\" })(NavigationAnchors);\n"],"file":"NavigationAnchors.js"}
|
|
@@ -19,6 +19,8 @@ var _core = require("@material-ui/core");
|
|
|
19
19
|
|
|
20
20
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
21
21
|
|
|
22
|
+
var _Alert;
|
|
23
|
+
|
|
22
24
|
var EmptyStatePanel = function EmptyStatePanel(_ref) {
|
|
23
25
|
var id = _ref.id,
|
|
24
26
|
classes = _ref.classes,
|
|
@@ -30,7 +32,7 @@ var EmptyStatePanel = function EmptyStatePanel(_ref) {
|
|
|
30
32
|
id: id,
|
|
31
33
|
title: title,
|
|
32
34
|
message: message,
|
|
33
|
-
icon: icon || /*#__PURE__*/_react.default.createElement(_uikitReactIcons.Alert, null),
|
|
35
|
+
icon: icon || _Alert || (_Alert = /*#__PURE__*/_react.default.createElement(_uikitReactIcons.Alert, null)),
|
|
34
36
|
className: className,
|
|
35
37
|
classes: {
|
|
36
38
|
root: classes.emptyStateRoot,
|
|
@@ -41,7 +43,7 @@ var EmptyStatePanel = function EmptyStatePanel(_ref) {
|
|
|
41
43
|
});
|
|
42
44
|
};
|
|
43
45
|
|
|
44
|
-
EmptyStatePanel.propTypes = {
|
|
46
|
+
process.env.NODE_ENV !== "production" ? EmptyStatePanel.propTypes = {
|
|
45
47
|
/**
|
|
46
48
|
* Id of the EmptyStatePanel
|
|
47
49
|
*/
|
|
@@ -91,7 +93,7 @@ EmptyStatePanel.propTypes = {
|
|
|
91
93
|
* Empty Panel Icon
|
|
92
94
|
*/
|
|
93
95
|
icon: _propTypes.default.element
|
|
94
|
-
};
|
|
96
|
+
} : void 0;
|
|
95
97
|
|
|
96
98
|
var _default = (0, _core.withStyles)(_styles.default, {
|
|
97
99
|
name: "HvEmptyStatePanel"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js"],"names":["EmptyStatePanel","id","classes","className","title","message","icon","root","emptyStateRoot","container","emptyStateContainer","iconContainer","emptyStateIconContainer","titleContainer","emptyStateTitleContainer","propTypes","PropTypes","string","isRequired","shape","element","styles","name"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA
|
|
1
|
+
{"version":3,"sources":["../../../src/NotificationPanel/EmptyStatePanel/EmptyStatePanel.js"],"names":["EmptyStatePanel","id","classes","className","title","message","icon","root","emptyStateRoot","container","emptyStateContainer","iconContainer","emptyStateIconContainer","titleContainer","emptyStateTitleContainer","propTypes","PropTypes","string","isRequired","shape","element","styles","name"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,OAAsD;AAAA,MAAnDC,EAAmD,QAAnDA,EAAmD;AAAA,MAA/CC,OAA+C,QAA/CA,OAA+C;AAAA,MAAtCC,SAAsC,QAAtCA,SAAsC;AAAA,MAA3BC,KAA2B,QAA3BA,KAA2B;AAAA,MAApBC,OAAoB,QAApBA,OAAoB;AAAA,MAAXC,IAAW,QAAXA,IAAW;AAC5E,sBACE,6BAAC,4BAAD;AACE,IAAA,EAAE,EAAEL,EADN;AAEE,IAAA,KAAK,EAAEG,KAFT;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,IAAI,EAAEC,IAAI,qCAAI,6BAAC,sBAAD,OAAJ,CAJZ;AAKE,IAAA,SAAS,EAAEH,SALb;AAME,IAAA,OAAO,EAAE;AACPI,MAAAA,IAAI,EAAEL,OAAO,CAACM,cADP;AAEPC,MAAAA,SAAS,EAAEP,OAAO,CAACQ,mBAFZ;AAGPC,MAAAA,aAAa,EAAET,OAAO,CAACU,uBAHhB;AAIPC,MAAAA,cAAc,EAAEX,OAAO,CAACY;AAJjB;AANX,IADF;AAeD,CAhBD;;AAkBA,wCAAAd,eAAe,CAACe,SAAhB,GAA4B;AAC1B;AACF;AACA;AACEd,EAAAA,EAAE,EAAEe,mBAAUC,MAAV,CAAiBC,UAJK;;AAK1B;AACF;AACA;AACEhB,EAAAA,OAAO,EAAEc,mBAAUG,KAAV,CAAgB;AACvB;AACJ;AACA;AACIX,IAAAA,cAAc,EAAEQ,mBAAUC,MAJH;;AAKvB;AACJ;AACA;AACIP,IAAAA,mBAAmB,EAAEM,mBAAUC,MARR;;AAUvB;AACJ;AACA;AACIL,IAAAA,uBAAuB,EAAEI,mBAAUC,MAbZ;;AAevB;AACJ;AACA;AACIH,IAAAA,wBAAwB,EAAEE,mBAAUC;AAlBb,GAAhB,EAmBNC,UA3BuB;;AA6B1B;AACF;AACA;AACEf,EAAAA,SAAS,EAAEa,mBAAUC,MAhCK;;AAiC1B;AACF;AACA;AACEb,EAAAA,KAAK,EAAEY,mBAAUC,MAAV,CAAiBC,UApCE;;AAqC1B;AACF;AACA;AACEb,EAAAA,OAAO,EAAEW,mBAAUC,MAAV,CAAiBC,UAxCA;;AAyC1B;AACF;AACA;AACEZ,EAAAA,IAAI,EAAEU,mBAAUI;AA5CU,CAA5B;;eA8Ce,sBAAWC,eAAX,EAAmB;AAAEC,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAkDtB,eAAlD,C","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { HvEmptyState } from \"@hitachivantara/uikit-react-core\";\nimport { Alert } from \"@hitachivantara/uikit-react-icons\";\n\nimport { withStyles } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\nconst EmptyStatePanel = ({ id, classes, className, title, message, icon }) => {\n return (\n <HvEmptyState\n id={id}\n title={title}\n message={message}\n icon={icon || <Alert />}\n className={className}\n classes={{\n root: classes.emptyStateRoot,\n container: classes.emptyStateContainer,\n iconContainer: classes.emptyStateIconContainer,\n titleContainer: classes.emptyStateTitleContainer,\n }}\n />\n );\n};\n\nEmptyStatePanel.propTypes = {\n /**\n * Id of the EmptyStatePanel\n */\n id: PropTypes.string.isRequired,\n /**\n * A Jss Object used to override or extend the component styles.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root of the panel.\n */\n emptyStateRoot: PropTypes.string,\n /**\n * Styles applied to the EmptyStatePanel container.\n */\n emptyStateContainer: PropTypes.string,\n\n /**\n * Styles applied to the empty state container icon.\n */\n emptyStateIconContainer: PropTypes.string,\n\n /**\n * Styles applied to the EmptyStatePanel title.\n */\n emptyStateTitleContainer: PropTypes.string,\n }).isRequired,\n\n /**\n * Class names to be applied to the accordion.\n */\n className: PropTypes.string,\n /**\n * Title of the EmptyStatePanel\n */\n title: PropTypes.string.isRequired,\n /**\n * Message of the EmptyStatePanel\n */\n message: PropTypes.string.isRequired,\n /**\n * Empty Panel Icon\n */\n icon: PropTypes.element,\n};\nexport default withStyles(styles, { name: \"HvEmptyStatePanel\" })(EmptyStatePanel);\n"],"file":"EmptyStatePanel.js"}
|
|
@@ -98,7 +98,7 @@ var Notification = function Notification(_ref) {
|
|
|
98
98
|
}, rightContainer));
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
Notification.propTypes = {
|
|
101
|
+
process.env.NODE_ENV !== "production" ? Notification.propTypes = {
|
|
102
102
|
/**
|
|
103
103
|
* A Jss Object used to override or extend the component styles.
|
|
104
104
|
*/
|
|
@@ -213,7 +213,7 @@ Notification.propTypes = {
|
|
|
213
213
|
* Denotes index of clicked notification
|
|
214
214
|
*/
|
|
215
215
|
isHighlighted: _propTypes.default.bool
|
|
216
|
-
};
|
|
216
|
+
} : void 0;
|
|
217
217
|
|
|
218
218
|
var _default = (0, _core.withStyles)(_styles.default, {
|
|
219
219
|
name: "HvNotificationPanelNotification"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/NotificationPanel/Notification/Notification.js"],"names":["dayjs","extend","relativeTime","hideTooltip","evt","target","scrollHeight","clientHeight","wrapperTooltip","Component","label","ComponentFunction","style","Notification","classes","className","notificationId","title","isRead","icon","date","onClick","onKeyPress","rightContainer","isHighlighted","getTime","fromNow","d","format","isSame","Date","now","NotificationWithTooltip","messageContainer","event","root","notificationWrapperDropdown","read","notificationWrapper","notificationDropdownOpen","iconContainer","timeContainer","bullet","hide","time","notificationActionWrapper","propTypes","PropTypes","shape","string","isRequired","bool","oneOfType","number","object","element","func","node","styles","name"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/NotificationPanel/Notification/Notification.js"],"names":["dayjs","extend","relativeTime","hideTooltip","evt","target","scrollHeight","clientHeight","wrapperTooltip","Component","label","ComponentFunction","style","Notification","classes","className","notificationId","title","isRead","icon","date","onClick","onKeyPress","rightContainer","isHighlighted","getTime","fromNow","d","format","isSame","Date","now","NotificationWithTooltip","messageContainer","event","root","notificationWrapperDropdown","read","notificationWrapper","notificationDropdownOpen","iconContainer","timeContainer","bullet","hide","time","notificationActionWrapper","propTypes","PropTypes","shape","string","isRequired","bool","oneOfType","number","object","element","func","node","styles","name"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\nimport { HvTypography, withTooltip } from \"@hitachivantara/uikit-react-core\";\nimport { withStyles } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\ndayjs.extend(relativeTime);\n\nconst hideTooltip = (evt) => evt.target.scrollHeight <= evt.target.clientHeight;\n\nconst wrapperTooltip = (Component, label) => {\n const ComponentFunction = () => Component;\n // override thr withTooltip styles as we want to use the styles of the component\n return withTooltip(ComponentFunction, label, \"top\", hideTooltip, { style: {} });\n};\n\nconst Notification = ({\n classes,\n className,\n notificationId,\n title,\n isRead,\n icon,\n date,\n onClick,\n onKeyPress,\n rightContainer,\n isHighlighted,\n}) => {\n const getTime = () => {\n if (!isRead) {\n return dayjs(date).fromNow();\n }\n\n const d = dayjs(date);\n let format = \"D MMMM YYYY, h:mm A\";\n\n if (d.isSame(Date.now(), \"week\")) {\n format = \"ddd, h:mm A\";\n }\n\n return d.format(format);\n };\n\n const NotificationWithTooltip = wrapperTooltip(\n <div className={classes.messageContainer}>\n <HvTypography variant={isRead ? \"normalText\" : \"highlightText\"}>{title}</HvTypography>\n </div>,\n title\n );\n\n return (\n <div\n onClick={(event) => onClick(event, notificationId)}\n onKeyPress={(event) => onKeyPress(event, notificationId)}\n className={clsx(className, classes.root, {\n [classes.notificationWrapperDropdown]: isHighlighted,\n [classes.read]: isRead,\n })}\n role=\"button\"\n tabIndex={0}\n >\n <div\n className={clsx(classes.notificationWrapper, {\n [classes.notificationDropdownOpen]: isHighlighted,\n })}\n >\n <div className={classes.iconContainer}>{icon}</div>\n <div>\n <NotificationWithTooltip />\n <div className={classes.timeContainer}>\n <div\n className={clsx(classes.bullet, {\n [classes.hide]: isRead,\n })}\n />\n <div className={classes.time}>{getTime()}</div>\n </div>\n </div>\n </div>\n <div className={classes.notificationActionWrapper}>{rightContainer}</div>\n </div>\n );\n};\n\nNotification.propTypes = {\n /**\n * A Jss Object used to override or extend the component styles.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root of the accordion.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the notification wrapper.\n */\n notificationWrapper: PropTypes.string,\n\n /**\n * Styles applied to the notification wrapper when the actions dropdown is open.\n */\n notificationWrapperDropdown: PropTypes.string,\n\n /**\n * Styles applied to the notification icon container.\n */\n iconContainer: PropTypes.string,\n\n /**\n * Styles applied to the notification message container.\n */\n messageContainer: PropTypes.string,\n\n /**\n * Styles applied to the notification time container.\n */\n timeContainer: PropTypes.string,\n\n /**\n * Styles applied to the notification bullet.\n */\n bullet: PropTypes.string,\n\n /**\n * Styles applied to the content when it is hidden.\n */\n hide: PropTypes.string,\n\n /**\n * Styles applied to the notification time indicator.\n */\n time: PropTypes.string,\n /**\n * Styles applied to the notification is read.\n */\n read: PropTypes.string,\n /**\n * Styles applied when the notification dropdown is open.\n */\n notificationDropdownOpen: PropTypes.string,\n\n /**\n * Styles applied to the notification message actions dropdown.\n */\n notificationActionWrapper: PropTypes.string,\n }).isRequired,\n\n /**\n * Class names to be applied to the accordion.\n */\n className: PropTypes.string,\n /**\n * Notification id\n */\n notificationId: PropTypes.string,\n /**\n * Title of the notification\n */\n title: PropTypes.string.isRequired,\n /**\n * 'true' if the notification has been read or 'false' if it has not been read\n */\n isRead: PropTypes.bool.isRequired,\n /**\n * date the notification was created\n */\n date: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).isRequired,\n /**\n * renderable icon that denotes the status of the notification\n */\n icon: PropTypes.element,\n /**\n * Click action applied to the notification\n */\n onClick: PropTypes.func,\n /**\n * On Key Press action applied to the notification\n */\n onKeyPress: PropTypes.func,\n /**\n * Actions to be executed by the notification, available in the dropdown menu\n */\n rightContainer: PropTypes.node,\n /**\n * Denotes index of clicked notification\n */\n isHighlighted: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvNotificationPanelNotification\" })(Notification);\n"],"file":"Notification.js"}
|
|
@@ -278,7 +278,7 @@ var HvNotificationPanel = function HvNotificationPanel(_ref3) {
|
|
|
278
278
|
}, footer));
|
|
279
279
|
};
|
|
280
280
|
|
|
281
|
-
HvNotificationPanel.propTypes = {
|
|
281
|
+
process.env.NODE_ENV !== "production" ? HvNotificationPanel.propTypes = {
|
|
282
282
|
/**
|
|
283
283
|
* Id to be applied to the root node of the panel.
|
|
284
284
|
*/
|
|
@@ -416,7 +416,7 @@ HvNotificationPanel.propTypes = {
|
|
|
416
416
|
* The locale to be used on the notification date, if undefined it will use the one from the HvProvider
|
|
417
417
|
*/
|
|
418
418
|
locale: _propTypes.default.string
|
|
419
|
-
};
|
|
419
|
+
} : void 0;
|
|
420
420
|
|
|
421
421
|
var _default = (0, _core.withStyles)(_styles.default, {
|
|
422
422
|
name: "HvNotificationPanel"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/NotificationPanel/NotificationPanel.js"],"names":["DEFAULT_LABELS","notificationGroupHeader","newNotifications","olderNotifications","notificationIndicator","label","buttonLabel","getGenericLocale","locale","includes","substr","indexOf","importAndLoadLocale","then","dayjs","catch","genericLocale","console","warn","HvNotificationPanel","id","className","classes","open","footer","notifications","hasNewNotifications","emptyStatePanelTitle","emptyStatePanelMessage","emptyStatePanelIcon","labelsProp","labels","newNotificationsButtonAction","localeProp","others","localeFromProvider","undefined","highlighted","setHighlighted","isExpanded","setIsExpanded","isLocaleLoaded","setIsLocaleLoaded","isMounted","generateNotificationsActions","notificationId","onToggle","actions","expand","dList","values","e","item","callback","event","s","dropDownMenuProps","notificationElementGenerator","notificationsToRender","map","notification","notificationIsHighlighted","title","isRead","icon","date","onClick","onKeyPress","hasNotifications","length","renderNotifications","root","closed","panel","emptyState","actionBarRoot","actionBar","propTypes","PropTypes","string","bool","shape","notificationsIndicator","isRequired","arrayOf","oneOfType","number","object","element","func","action","instanceOf","Object","node","styles","name"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport dayjs from \"dayjs\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport {\n HvPanel,\n HvActionBar,\n HvDropDownMenu,\n setId,\n useLabels,\n useLocale,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport styles from \"./styles\";\n\nimport Notification from \"./Notification\";\nimport EmptyStatePanel from \"./EmptyStatePanel\";\nimport NotificationsIndicator from \"./NotificationsIndicator\";\n\nconst DEFAULT_LABELS = {\n notificationGroupHeader: {\n newNotifications: \"New\",\n olderNotifications: \"Earlier\",\n },\n notificationIndicator: {\n label: \"You have new notifications\",\n buttonLabel: \"Update\",\n },\n};\n\n/**\n * Obtains a simplified locale, if possible, e.g: \"en-US\" returns \"en\".\n *\n * @param {string} locale - The locale to be used\n * @returns The more generic locale if found\n */\nexport const getGenericLocale = (locale) =>\n locale.includes(\"-\") && locale.substr(0, locale.indexOf(\"-\"));\n\n/**\n * Imports and load the received locale in order to be used by dayjs. If the provided locale or a generic one\n * obtained is not possible to load, then dayjs will fallback to its default.\n *\n * @param {string} locale - The locale to be used\n */\nconst importAndLoadLocale = async (locale) => {\n await import(`dayjs/locale/${locale}.js`)\n .then(() => {\n dayjs.locale(locale);\n })\n .catch(async () => {\n const genericLocale = getGenericLocale(locale);\n await import(`dayjs/locale/${genericLocale}.js`)\n .then(() => dayjs.locale(genericLocale))\n // eslint-disable-next-line no-console\n .catch(() => console.warn(`Unable to load locale: ${locale}. Falling back to the default`));\n });\n};\n\n/**\n * Notification Panel displays all of read and unread notifications. Still in development\n */\nconst HvNotificationPanel = ({\n id,\n className,\n classes,\n open,\n footer,\n notifications,\n hasNewNotifications = false,\n emptyStatePanelTitle = \"No notifications\",\n emptyStatePanelMessage = \"You currently have no notifications.\",\n emptyStatePanelIcon,\n labels: labelsProp,\n newNotificationsButtonAction,\n locale: localeProp,\n ...others\n}) => {\n const localeFromProvider = useLocale();\n\n const locale = localeProp || localeFromProvider;\n\n const [highlighted, setHighlighted] = useState(undefined);\n const [isExpanded, setIsExpanded] = useState(false);\n const [isLocaleLoaded, setIsLocaleLoaded] = useState(false);\n\n useEffect(() => {\n // We're using this mount logic to avoid potential memory leak problems.\n let isMounted = true;\n\n if (!isLocaleLoaded) {\n importAndLoadLocale(locale).then(() => {\n if (isMounted) {\n setIsLocaleLoaded(true);\n }\n });\n }\n return () => {\n isMounted = false;\n };\n });\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const generateNotificationsActions = (notificationId, onToggle, actions) => {\n const expand = notificationId === highlighted;\n const dList = [...actions.values];\n return (\n <HvDropDownMenu\n expanded={expand}\n onClick={(e, item) => {\n setHighlighted(undefined);\n item?.callback?.(notificationId);\n }}\n dataList={dList}\n onToggle={(event, s) => {\n onToggle?.(event, s);\n if (s) {\n setHighlighted(notificationId);\n } else {\n setHighlighted(undefined);\n }\n setIsExpanded(!isExpanded);\n }}\n {...actions.dropDownMenuProps}\n />\n );\n };\n\n const notificationElementGenerator = (notificationsToRender) => {\n return notificationsToRender.map((notification) => {\n const notificationIsHighlighted = highlighted === notification.id;\n return (\n <Notification\n key={notification.id}\n notificationId={notification.id}\n title={notification.title}\n isRead={notification.isRead}\n icon={notification.icon}\n date={notification.date}\n onClick={notification.onClick}\n onKeyPress={notification.onKeyPress}\n rightContainer={generateNotificationsActions(\n notification.id,\n notification.onToggle,\n notification.actions\n )}\n isHighlighted={notificationIsHighlighted}\n locale={locale}\n />\n );\n });\n };\n\n const hasNotifications = notifications.length > 0;\n\n const renderNotifications = (notificationsToRender) =>\n notificationElementGenerator(notificationsToRender);\n\n return (\n <HvPanel\n id={id}\n className={clsx(className, classes.root, {\n [classes.closed]: open === false,\n [classes.open]: open,\n })}\n {...others}\n >\n {hasNewNotifications && (\n <NotificationsIndicator\n labels={labels.notificationIndicator}\n onClick={newNotificationsButtonAction}\n />\n )}\n {hasNotifications ? (\n <div className={classes.panel}>\n {notifications.length > 0 && renderNotifications(notifications)}\n </div>\n ) : (\n <EmptyStatePanel\n id={setId(id, \"empty-state\")}\n title={emptyStatePanelTitle}\n message={emptyStatePanelMessage}\n icon={emptyStatePanelIcon}\n className={classes.emptyState}\n />\n )}\n {footer && (\n <HvActionBar\n id={setId(id, \"action-bar\")}\n classes={{\n root: classes.actionBarRoot,\n }}\n className={classes.actionBar}\n >\n {footer}\n </HvActionBar>\n )}\n </HvPanel>\n );\n};\n\nHvNotificationPanel.propTypes = {\n /**\n * Id to be applied to the root node of the panel.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied to the root element.\n */\n className: PropTypes.string,\n /**\n * 'true' if panel is open or 'false' if the panel is not open\n *\n * @deprecated This logic should be external, i.e. using the HvAppSwitcherPanel inside a Drawer component.\n */\n open: deprecatedPropType(PropTypes.bool),\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * styles object applied to the root\n */\n root: PropTypes.string,\n /**\n * styles object applied to the root when closed\n */\n closed: PropTypes.string,\n /**\n * styles object applied to the root when open\n */\n open: PropTypes.string,\n /**\n * styles object applied to the panel\n */\n panel: PropTypes.string,\n /**\n * styles object applied to the action bar\n */\n actionBar: PropTypes.string,\n /**\n * styles object applied to the root of the action bar\n */\n actionBarRoot: PropTypes.string,\n /**\n * styles object applied to the new notification indicator\n */\n notificationsIndicator: PropTypes.string,\n /**\n * styles object applied to the empty state panel\n */\n emptyState: PropTypes.string,\n }).isRequired,\n /**\n * The properties of the notifications to be rendered in the Panel.\n */\n notifications: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n isRead: PropTypes.bool.isRequired,\n date: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).isRequired,\n icon: PropTypes.element,\n onClick: PropTypes.func,\n onKeyPress: PropTypes.func,\n onToggle: PropTypes.func,\n actions: PropTypes.shape({\n label: PropTypes.bool,\n action: PropTypes.string,\n callback: PropTypes.func,\n dropDownMenuProps: PropTypes.instanceOf(Object),\n }),\n })\n ),\n /**\n * Whether to render the new notifications indicator\n */\n hasNewNotifications: PropTypes.bool,\n /**\n * Action buttons to render in footer\n */\n footer: PropTypes.node,\n /**\n * Title of the EmptyStatePanel\n */\n emptyStatePanelTitle: PropTypes.string,\n /**\n * Message of the EmptyStatePanel\n */\n emptyStatePanelMessage: PropTypes.string,\n /**\n * Empty Panel custom Icon\n */\n emptyStatePanelIcon: PropTypes.node,\n /**\n * Labels to apply to the Panel\n */\n labels: PropTypes.shape({\n /**\n * Labels to apply to the groups separating newer and older notifications\n */\n notificationGroupHeader: {\n olderNotifications: PropTypes.string,\n newNotifications: PropTypes.string,\n },\n /**\n * Labels to apply to the element of the New Notifications Indicator\n */\n notificationIndicator: {\n label: PropTypes.string,\n buttonLabel: PropTypes.string,\n },\n }),\n /**\n * Function to be supplied to the notification update button\n */\n newNotificationsButtonAction: PropTypes.func,\n /**\n * The locale to be used on the notification date, if undefined it will use the one from the HvProvider\n */\n locale: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvNotificationPanel\" })(HvNotificationPanel);\n"],"file":"NotificationPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/NotificationPanel/NotificationPanel.js"],"names":["DEFAULT_LABELS","notificationGroupHeader","newNotifications","olderNotifications","notificationIndicator","label","buttonLabel","getGenericLocale","locale","includes","substr","indexOf","importAndLoadLocale","then","dayjs","catch","genericLocale","console","warn","HvNotificationPanel","id","className","classes","open","footer","notifications","hasNewNotifications","emptyStatePanelTitle","emptyStatePanelMessage","emptyStatePanelIcon","labelsProp","labels","newNotificationsButtonAction","localeProp","others","localeFromProvider","undefined","highlighted","setHighlighted","isExpanded","setIsExpanded","isLocaleLoaded","setIsLocaleLoaded","isMounted","generateNotificationsActions","notificationId","onToggle","actions","expand","dList","values","e","item","callback","event","s","dropDownMenuProps","notificationElementGenerator","notificationsToRender","map","notification","notificationIsHighlighted","title","isRead","icon","date","onClick","onKeyPress","hasNotifications","length","renderNotifications","root","closed","panel","emptyState","actionBarRoot","actionBar","propTypes","PropTypes","string","bool","shape","notificationsIndicator","isRequired","arrayOf","oneOfType","number","object","element","func","action","instanceOf","Object","node","styles","name"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport dayjs from \"dayjs\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport {\n HvPanel,\n HvActionBar,\n HvDropDownMenu,\n setId,\n useLabels,\n useLocale,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport styles from \"./styles\";\n\nimport Notification from \"./Notification\";\nimport EmptyStatePanel from \"./EmptyStatePanel\";\nimport NotificationsIndicator from \"./NotificationsIndicator\";\n\nconst DEFAULT_LABELS = {\n notificationGroupHeader: {\n newNotifications: \"New\",\n olderNotifications: \"Earlier\",\n },\n notificationIndicator: {\n label: \"You have new notifications\",\n buttonLabel: \"Update\",\n },\n};\n\n/**\n * Obtains a simplified locale, if possible, e.g: \"en-US\" returns \"en\".\n *\n * @param {string} locale - The locale to be used\n * @returns The more generic locale if found\n */\nexport const getGenericLocale = (locale) =>\n locale.includes(\"-\") && locale.substr(0, locale.indexOf(\"-\"));\n\n/**\n * Imports and load the received locale in order to be used by dayjs. If the provided locale or a generic one\n * obtained is not possible to load, then dayjs will fallback to its default.\n *\n * @param {string} locale - The locale to be used\n */\nconst importAndLoadLocale = async (locale) => {\n await import(`dayjs/locale/${locale}.js`)\n .then(() => {\n dayjs.locale(locale);\n })\n .catch(async () => {\n const genericLocale = getGenericLocale(locale);\n await import(`dayjs/locale/${genericLocale}.js`)\n .then(() => dayjs.locale(genericLocale))\n // eslint-disable-next-line no-console\n .catch(() => console.warn(`Unable to load locale: ${locale}. Falling back to the default`));\n });\n};\n\n/**\n * Notification Panel displays all of read and unread notifications. Still in development\n */\nconst HvNotificationPanel = ({\n id,\n className,\n classes,\n open,\n footer,\n notifications,\n hasNewNotifications = false,\n emptyStatePanelTitle = \"No notifications\",\n emptyStatePanelMessage = \"You currently have no notifications.\",\n emptyStatePanelIcon,\n labels: labelsProp,\n newNotificationsButtonAction,\n locale: localeProp,\n ...others\n}) => {\n const localeFromProvider = useLocale();\n\n const locale = localeProp || localeFromProvider;\n\n const [highlighted, setHighlighted] = useState(undefined);\n const [isExpanded, setIsExpanded] = useState(false);\n const [isLocaleLoaded, setIsLocaleLoaded] = useState(false);\n\n useEffect(() => {\n // We're using this mount logic to avoid potential memory leak problems.\n let isMounted = true;\n\n if (!isLocaleLoaded) {\n importAndLoadLocale(locale).then(() => {\n if (isMounted) {\n setIsLocaleLoaded(true);\n }\n });\n }\n return () => {\n isMounted = false;\n };\n });\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const generateNotificationsActions = (notificationId, onToggle, actions) => {\n const expand = notificationId === highlighted;\n const dList = [...actions.values];\n return (\n <HvDropDownMenu\n expanded={expand}\n onClick={(e, item) => {\n setHighlighted(undefined);\n item?.callback?.(notificationId);\n }}\n dataList={dList}\n onToggle={(event, s) => {\n onToggle?.(event, s);\n if (s) {\n setHighlighted(notificationId);\n } else {\n setHighlighted(undefined);\n }\n setIsExpanded(!isExpanded);\n }}\n {...actions.dropDownMenuProps}\n />\n );\n };\n\n const notificationElementGenerator = (notificationsToRender) => {\n return notificationsToRender.map((notification) => {\n const notificationIsHighlighted = highlighted === notification.id;\n return (\n <Notification\n key={notification.id}\n notificationId={notification.id}\n title={notification.title}\n isRead={notification.isRead}\n icon={notification.icon}\n date={notification.date}\n onClick={notification.onClick}\n onKeyPress={notification.onKeyPress}\n rightContainer={generateNotificationsActions(\n notification.id,\n notification.onToggle,\n notification.actions\n )}\n isHighlighted={notificationIsHighlighted}\n locale={locale}\n />\n );\n });\n };\n\n const hasNotifications = notifications.length > 0;\n\n const renderNotifications = (notificationsToRender) =>\n notificationElementGenerator(notificationsToRender);\n\n return (\n <HvPanel\n id={id}\n className={clsx(className, classes.root, {\n [classes.closed]: open === false,\n [classes.open]: open,\n })}\n {...others}\n >\n {hasNewNotifications && (\n <NotificationsIndicator\n labels={labels.notificationIndicator}\n onClick={newNotificationsButtonAction}\n />\n )}\n {hasNotifications ? (\n <div className={classes.panel}>\n {notifications.length > 0 && renderNotifications(notifications)}\n </div>\n ) : (\n <EmptyStatePanel\n id={setId(id, \"empty-state\")}\n title={emptyStatePanelTitle}\n message={emptyStatePanelMessage}\n icon={emptyStatePanelIcon}\n className={classes.emptyState}\n />\n )}\n {footer && (\n <HvActionBar\n id={setId(id, \"action-bar\")}\n classes={{\n root: classes.actionBarRoot,\n }}\n className={classes.actionBar}\n >\n {footer}\n </HvActionBar>\n )}\n </HvPanel>\n );\n};\n\nHvNotificationPanel.propTypes = {\n /**\n * Id to be applied to the root node of the panel.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied to the root element.\n */\n className: PropTypes.string,\n /**\n * 'true' if panel is open or 'false' if the panel is not open\n *\n * @deprecated This logic should be external, i.e. using the HvAppSwitcherPanel inside a Drawer component.\n */\n open: deprecatedPropType(PropTypes.bool),\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * styles object applied to the root\n */\n root: PropTypes.string,\n /**\n * styles object applied to the root when closed\n */\n closed: PropTypes.string,\n /**\n * styles object applied to the root when open\n */\n open: PropTypes.string,\n /**\n * styles object applied to the panel\n */\n panel: PropTypes.string,\n /**\n * styles object applied to the action bar\n */\n actionBar: PropTypes.string,\n /**\n * styles object applied to the root of the action bar\n */\n actionBarRoot: PropTypes.string,\n /**\n * styles object applied to the new notification indicator\n */\n notificationsIndicator: PropTypes.string,\n /**\n * styles object applied to the empty state panel\n */\n emptyState: PropTypes.string,\n }).isRequired,\n /**\n * The properties of the notifications to be rendered in the Panel.\n */\n notifications: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n isRead: PropTypes.bool.isRequired,\n date: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).isRequired,\n icon: PropTypes.element,\n onClick: PropTypes.func,\n onKeyPress: PropTypes.func,\n onToggle: PropTypes.func,\n actions: PropTypes.shape({\n label: PropTypes.bool,\n action: PropTypes.string,\n callback: PropTypes.func,\n dropDownMenuProps: PropTypes.instanceOf(Object),\n }),\n })\n ),\n /**\n * Whether to render the new notifications indicator\n */\n hasNewNotifications: PropTypes.bool,\n /**\n * Action buttons to render in footer\n */\n footer: PropTypes.node,\n /**\n * Title of the EmptyStatePanel\n */\n emptyStatePanelTitle: PropTypes.string,\n /**\n * Message of the EmptyStatePanel\n */\n emptyStatePanelMessage: PropTypes.string,\n /**\n * Empty Panel custom Icon\n */\n emptyStatePanelIcon: PropTypes.node,\n /**\n * Labels to apply to the Panel\n */\n labels: PropTypes.shape({\n /**\n * Labels to apply to the groups separating newer and older notifications\n */\n notificationGroupHeader: {\n olderNotifications: PropTypes.string,\n newNotifications: PropTypes.string,\n },\n /**\n * Labels to apply to the element of the New Notifications Indicator\n */\n notificationIndicator: {\n label: PropTypes.string,\n buttonLabel: PropTypes.string,\n },\n }),\n /**\n * Function to be supplied to the notification update button\n */\n newNotificationsButtonAction: PropTypes.func,\n /**\n * The locale to be used on the notification date, if undefined it will use the one from the HvProvider\n */\n locale: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvNotificationPanel\" })(HvNotificationPanel);\n"],"file":"NotificationPanel.js"}
|