@muraldevkit/ui-toolkit 4.72.0 → 4.73.0-dev-t0WE.1
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/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js +8 -1
- package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +14 -4
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
- package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +8 -1
- package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
- package/dist/cjs/components/button/MrlButton/MrlButton.js +3 -3
- package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
- package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +8 -1
- package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
- package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js +21 -2
- package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
- package/dist/cjs/components/callout/MrlCallout/MrlCallout.js +36 -3
- package/dist/cjs/components/callout/MrlCallout/MrlCallout.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilter/MrlFilter.js +18 -2
- package/dist/cjs/components/filter/MrlFilter/MrlFilter.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js +11 -1
- package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
- package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +17 -1
- package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
- package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +24 -1
- package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
- package/dist/cjs/components/form/date-picker/MrlDatePicker.js +17 -2
- package/dist/cjs/components/form/date-picker/MrlDatePicker.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +11 -2
- package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +8 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js +19 -1
- package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +19 -1
- package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
- package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +42 -2
- package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +42 -2
- package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js +34 -2
- package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js +34 -2
- package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
- package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js +14 -2
- package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
- package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +10 -1
- package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +20 -3
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js +20 -3
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -3
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js +38 -1
- package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
- package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js +12 -2
- package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
- package/dist/cjs/components/link/MrlLink/MrlLink.js +21 -2
- package/dist/cjs/components/link/MrlLink/MrlLink.js.map +1 -1
- package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js +12 -1
- package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenu/MrlMenu.js +20 -1
- package/dist/cjs/components/menu/MrlMenu/MrlMenu.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js +18 -1
- package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -1
- package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
- package/dist/cjs/components/modal/MrlModal/MrlModal.js +22 -1
- package/dist/cjs/components/modal/MrlModal/MrlModal.js.map +1 -1
- package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js +27 -1
- package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
- package/dist/cjs/components/notification/MrlToast/MrlToast.js +28 -3
- package/dist/cjs/components/notification/MrlToast/MrlToast.js.map +1 -1
- package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js +18 -2
- package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
- package/dist/cjs/components/panel/MrlPanel/MrlPanel.js +24 -4
- package/dist/cjs/components/panel/MrlPanel/MrlPanel.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/MrlPopover.js +18 -1
- package/dist/cjs/components/popover/MrlPopover/MrlPopover.js.map +1 -1
- package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +31 -2
- package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
- package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js +13 -3
- package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTab/MrlTab.js +10 -1
- package/dist/cjs/components/tabs/MrlTab/MrlTab.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js +10 -1
- package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
- package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +19 -3
- package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
- package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +23 -1
- package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
- package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js +7 -7
- package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/components/avatar/MrlAvatarButton/MrlAvatarButton.d.ts +6 -1
- package/dist/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.d.ts +5 -0
- package/dist/components/button/MrlButton/MrlButton.d.ts +1 -1
- package/dist/components/button/MrlIconButton/MrlIconButton.d.ts +5 -0
- package/dist/components/callout/MrlCallout/MrlCallout.d.ts +7 -0
- package/dist/components/filter/MrlFilter/MrlFilter.d.ts +7 -0
- package/dist/components/filter/MrlFilterItem/MrlFilterItem.d.ts +7 -0
- package/dist/components/form/checkbox/MrlCheckbox/MrlCheckbox.d.ts +6 -1
- package/dist/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.d.ts +6 -1
- package/dist/components/form/date-picker/MrlDatePicker.d.ts +7 -0
- package/dist/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.d.ts +6 -1
- package/dist/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.d.ts +8 -1
- package/dist/components/form/radio/MrlRadioButton/MrlRadioButton.d.ts +6 -1
- package/dist/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.d.ts +6 -1
- package/dist/components/form/select/MrlCreatableSelect/MrlCreatableSelect.d.ts +7 -0
- package/dist/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.d.ts +7 -0
- package/dist/components/form/select/MrlMultiSelect/MrlMultiSelect.d.ts +7 -0
- package/dist/components/form/select/MrlSelect/MrlSelect.d.ts +7 -0
- package/dist/components/form/switch/MrlSwitch/MrlSwitch.d.ts +6 -1
- package/dist/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.d.ts +6 -1
- package/dist/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.d.ts +8 -0
- package/dist/components/form/text-input/MrlTextInput/MrlTextInput.d.ts +8 -0
- package/dist/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.d.ts +8 -0
- package/dist/components/form/textarea/MrlTextarea/MrlTextarea.d.ts +9 -1
- package/dist/components/layout/MrlSidebar/MrlSidebar.d.ts +8 -1
- package/dist/components/link/MrlLink/MrlLink.d.ts +6 -1
- package/dist/components/link/MrlLinkButton/MrlLinkButton.d.ts +5 -0
- package/dist/components/menu/MrlMenu/MrlMenu.d.ts +6 -1
- package/dist/components/menu/MrlMenuItem/MrlMenuItem.d.ts +6 -1
- package/dist/components/menu/MrlMenuItemLink/MrlMenuItemLink.d.ts +6 -1
- package/dist/components/modal/MrlModal/MrlModal.d.ts +5 -0
- package/dist/components/notification/MrlBlockNotification/MrlBlockNotification.d.ts +7 -0
- package/dist/components/notification/MrlToast/MrlToast.d.ts +8 -1
- package/dist/components/pagination/MrlPaginationButton/MrlPaginationButton.d.ts +6 -1
- package/dist/components/panel/MrlPanel/MrlPanel.d.ts +8 -0
- package/dist/components/popover/MrlPopover/MrlPopover.d.ts +6 -1
- package/dist/components/table/MrlSmartTable/MrlSmartTable.d.ts +7 -0
- package/dist/components/table/MrlTableRow/MrlTableRow.d.ts +7 -0
- package/dist/components/tabs/MrlTab/MrlTab.d.ts +6 -1
- package/dist/components/tabs/MrlTabLink/MrlTabLink.d.ts +6 -1
- package/dist/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +5 -0
- package/dist/components/tooltip/MrlTooltip/MrlTooltip.d.ts +8 -0
- package/dist/contexts/MrlAnalyticsContext/types.d.ts +1 -1
- package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js +8 -1
- package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
- package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +14 -4
- package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
- package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +8 -1
- package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
- package/dist/esm/components/button/MrlButton/MrlButton.js +3 -3
- package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
- package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +8 -1
- package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
- package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js +21 -2
- package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
- package/dist/esm/components/callout/MrlCallout/MrlCallout.js +36 -3
- package/dist/esm/components/callout/MrlCallout/MrlCallout.js.map +1 -1
- package/dist/esm/components/filter/MrlFilter/MrlFilter.js +18 -2
- package/dist/esm/components/filter/MrlFilter/MrlFilter.js.map +1 -1
- package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js +11 -1
- package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
- package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +17 -1
- package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
- package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +24 -1
- package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
- package/dist/esm/components/form/date-picker/MrlDatePicker.js +17 -2
- package/dist/esm/components/form/date-picker/MrlDatePicker.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +11 -2
- package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +8 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
- package/dist/esm/components/form/radio/MrlRadioButton/MrlRadioButton.js +19 -1
- package/dist/esm/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
- package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +19 -1
- package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
- package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +42 -2
- package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +42 -2
- package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js +34 -2
- package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlSelect/MrlSelect.js +34 -2
- package/dist/esm/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
- package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js +14 -2
- package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
- package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +10 -1
- package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +20 -3
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js +20 -3
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -3
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js +38 -1
- package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
- package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js +12 -2
- package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
- package/dist/esm/components/link/MrlLink/MrlLink.js +21 -2
- package/dist/esm/components/link/MrlLink/MrlLink.js.map +1 -1
- package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js +12 -1
- package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
- package/dist/esm/components/menu/MrlMenu/MrlMenu.js +20 -1
- package/dist/esm/components/menu/MrlMenu/MrlMenu.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js +18 -1
- package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -1
- package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
- package/dist/esm/components/modal/MrlModal/MrlModal.js +22 -1
- package/dist/esm/components/modal/MrlModal/MrlModal.js.map +1 -1
- package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js +27 -1
- package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
- package/dist/esm/components/notification/MrlToast/MrlToast.js +28 -3
- package/dist/esm/components/notification/MrlToast/MrlToast.js.map +1 -1
- package/dist/esm/components/pagination/MrlPaginationButton/MrlPaginationButton.js +18 -2
- package/dist/esm/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
- package/dist/esm/components/panel/MrlPanel/MrlPanel.js +24 -4
- package/dist/esm/components/panel/MrlPanel/MrlPanel.js.map +1 -1
- package/dist/esm/components/popover/MrlPopover/MrlPopover.js +18 -1
- package/dist/esm/components/popover/MrlPopover/MrlPopover.js.map +1 -1
- package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +31 -2
- package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
- package/dist/esm/components/table/MrlTableRow/MrlTableRow.js +13 -3
- package/dist/esm/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
- package/dist/esm/components/tabs/MrlTab/MrlTab.js +10 -1
- package/dist/esm/components/tabs/MrlTab/MrlTab.js.map +1 -1
- package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js +10 -1
- package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
- package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +19 -3
- package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
- package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +23 -1
- package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
- package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js +7 -7
- package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +4 -4
- package/dist/types/components/avatar/MrlAvatarButton/MrlAvatarButton.d.ts +6 -1
- package/dist/types/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.d.ts +5 -0
- package/dist/types/components/button/MrlButton/MrlButton.d.ts +1 -1
- package/dist/types/components/button/MrlIconButton/MrlIconButton.d.ts +5 -0
- package/dist/types/components/callout/MrlCallout/MrlCallout.d.ts +7 -0
- package/dist/types/components/filter/MrlFilter/MrlFilter.d.ts +7 -0
- package/dist/types/components/filter/MrlFilterItem/MrlFilterItem.d.ts +7 -0
- package/dist/types/components/form/checkbox/MrlCheckbox/MrlCheckbox.d.ts +6 -1
- package/dist/types/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.d.ts +6 -1
- package/dist/types/components/form/date-picker/MrlDatePicker.d.ts +7 -0
- package/dist/types/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.d.ts +6 -1
- package/dist/types/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.d.ts +8 -1
- package/dist/types/components/form/radio/MrlRadioButton/MrlRadioButton.d.ts +6 -1
- package/dist/types/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.d.ts +6 -1
- package/dist/types/components/form/select/MrlCreatableSelect/MrlCreatableSelect.d.ts +7 -0
- package/dist/types/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.d.ts +7 -0
- package/dist/types/components/form/select/MrlMultiSelect/MrlMultiSelect.d.ts +7 -0
- package/dist/types/components/form/select/MrlSelect/MrlSelect.d.ts +7 -0
- package/dist/types/components/form/switch/MrlSwitch/MrlSwitch.d.ts +6 -1
- package/dist/types/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.d.ts +6 -1
- package/dist/types/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.d.ts +8 -0
- package/dist/types/components/form/text-input/MrlTextInput/MrlTextInput.d.ts +8 -0
- package/dist/types/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.d.ts +8 -0
- package/dist/types/components/form/textarea/MrlTextarea/MrlTextarea.d.ts +9 -1
- package/dist/types/components/layout/MrlSidebar/MrlSidebar.d.ts +8 -1
- package/dist/types/components/link/MrlLink/MrlLink.d.ts +6 -1
- package/dist/types/components/link/MrlLinkButton/MrlLinkButton.d.ts +5 -0
- package/dist/types/components/menu/MrlMenu/MrlMenu.d.ts +6 -1
- package/dist/types/components/menu/MrlMenuItem/MrlMenuItem.d.ts +6 -1
- package/dist/types/components/menu/MrlMenuItemLink/MrlMenuItemLink.d.ts +6 -1
- package/dist/types/components/modal/MrlModal/MrlModal.d.ts +5 -0
- package/dist/types/components/notification/MrlBlockNotification/MrlBlockNotification.d.ts +7 -0
- package/dist/types/components/notification/MrlToast/MrlToast.d.ts +8 -1
- package/dist/types/components/pagination/MrlPaginationButton/MrlPaginationButton.d.ts +6 -1
- package/dist/types/components/panel/MrlPanel/MrlPanel.d.ts +8 -0
- package/dist/types/components/popover/MrlPopover/MrlPopover.d.ts +6 -1
- package/dist/types/components/table/MrlSmartTable/MrlSmartTable.d.ts +7 -0
- package/dist/types/components/table/MrlTableRow/MrlTableRow.d.ts +7 -0
- package/dist/types/components/tabs/MrlTab/MrlTab.d.ts +6 -1
- package/dist/types/components/tabs/MrlTabLink/MrlTabLink.d.ts +6 -1
- package/dist/types/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +5 -0
- package/dist/types/components/tooltip/MrlTooltip/MrlTooltip.d.ts +8 -0
- package/dist/types/contexts/MrlAnalyticsContext/types.d.ts +1 -1
- package/dist/types/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +4 -4
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ var MrlSmartTable_module = require('./MrlSmartTable.module.scss.js');
|
|
|
11
11
|
var getScrollableContainer = require('../../../utils/getScrollableContainer/getScrollableContainer.js');
|
|
12
12
|
var hasHorizontalScroll = require('../../../utils/hasHorizontalScroll/hasHorizontalScroll.js');
|
|
13
13
|
var DefaultCellContent = require('./components/DefaultCellContent.js');
|
|
14
|
+
var useMrlAnalytics = require('../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
|
|
14
15
|
var setAttributes = require('../../../utils/setAttributes/setAttributes.js');
|
|
15
16
|
var MrlTableColumn = require('../MrlTableColumn/MrlTableColumn.js');
|
|
16
17
|
var MrlCheckboxStandalone = require('../../form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js');
|
|
@@ -49,7 +50,7 @@ var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
|
49
50
|
var debounce__default = /*#__PURE__*/_interopDefault(debounce);
|
|
50
51
|
|
|
51
52
|
var _excluded = ["horizontalAlign"],
|
|
52
|
-
_excluded2 = ["columns", "dataQaPrefix", "emptyStateText", "emptyState", "id", "items", "selectionOptions", "defaultSortDescriptor", "customSortItems", "enableVirtualization"];
|
|
53
|
+
_excluded2 = ["columns", "dataQaPrefix", "emptyStateText", "emptyState", "id", "items", "selectionOptions", "defaultSortDescriptor", "customSortItems", "enableVirtualization", "eventId"];
|
|
53
54
|
var ROW_HEIGHT_PX = 48;
|
|
54
55
|
var sortItems = (columns, items, sortDescriptor) => {
|
|
55
56
|
var sortColumn = columns.find(col => col.id === sortDescriptor.column);
|
|
@@ -186,7 +187,9 @@ function MrlSmartTable(props) {
|
|
|
186
187
|
customSortItems = props.customSortItems,
|
|
187
188
|
_props$enableVirtuali = props.enableVirtualization,
|
|
188
189
|
enableVirtualization = _props$enableVirtuali === void 0 ? false : _props$enableVirtuali,
|
|
190
|
+
eventId = props.eventId,
|
|
189
191
|
ariaProps = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded2);
|
|
192
|
+
var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlSmartTable', eventId);
|
|
190
193
|
var idRef = React__namespace.useRef(id || setAttributes.getUniqueId('mrl-smart-table'));
|
|
191
194
|
var tableRef = React__namespace.useRef(null);
|
|
192
195
|
var _React$useState = React__namespace.useState(null),
|
|
@@ -242,6 +245,15 @@ function MrlSmartTable(props) {
|
|
|
242
245
|
var direction = sortDescriptor.direction,
|
|
243
246
|
name = sortDescriptor.name,
|
|
244
247
|
column = sortDescriptor.column;
|
|
248
|
+
|
|
249
|
+
// the column id is a developer-defined key; the column's data is never emitted.
|
|
250
|
+
trackInteraction({
|
|
251
|
+
action: 'sort',
|
|
252
|
+
metadata: {
|
|
253
|
+
column: String(column),
|
|
254
|
+
direction
|
|
255
|
+
}
|
|
256
|
+
});
|
|
245
257
|
if (customSortItems) {
|
|
246
258
|
var sortColumn = columns.find(col => col.id === column);
|
|
247
259
|
if (!sortColumn) {
|
|
@@ -290,8 +302,25 @@ function MrlSmartTable(props) {
|
|
|
290
302
|
keys.delete(itemId);
|
|
291
303
|
onSelectionChange(keys);
|
|
292
304
|
};
|
|
293
|
-
var onSelectAllClick = () =>
|
|
305
|
+
var onSelectAllClick = () => {
|
|
306
|
+
// row content is never emitted — only the scope of the selection.
|
|
307
|
+
trackInteraction({
|
|
308
|
+
action: 'select',
|
|
309
|
+
metadata: {
|
|
310
|
+
scope: isAnySelected ? 'none' : 'all'
|
|
311
|
+
},
|
|
312
|
+
variant: mode
|
|
313
|
+
});
|
|
314
|
+
isAnySelected ? selectNone() : selectAll();
|
|
315
|
+
};
|
|
294
316
|
var onSelectClick = itemId => {
|
|
317
|
+
trackInteraction({
|
|
318
|
+
action: 'select',
|
|
319
|
+
metadata: {
|
|
320
|
+
scope: selectedKeys.has(itemId) ? 'deselect-row' : 'select-row'
|
|
321
|
+
},
|
|
322
|
+
variant: mode
|
|
323
|
+
});
|
|
295
324
|
if (mode === 'multiple') {
|
|
296
325
|
selectedKeys.has(itemId) ? selectRemove(itemId) : selectAdd(itemId);
|
|
297
326
|
} else if (mode === 'single') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlSmartTable.js","sources":["../../../../../src/components/table/MrlSmartTable/MrlSmartTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n\tMrlCheckboxStandalone,\n\tMrlLiveRegion,\n\tMrlSvg,\n\tMrlTable,\n\tMrlTableBody,\n\tMrlTableCell,\n\tMrlTableColumn,\n\tMrlTableHeader,\n\tMrlTableRow,\n\tMrlTooltip\n} from '../../';\nimport { MrlTableProps } from '../MrlTable';\nimport { MrlTableEmptyState } from '../MrlTableEmptyState';\nimport {\n\tMrlSortDirection,\n\tMrlTableCellHorizontalAlign,\n\tMrlTableColumnId,\n\tMrlTableColumnSortDescriptor,\n\tMrlTableItemId,\n\tMrlTableSelectionMode\n} from '../constants';\nimport { getUniqueId } from '../../../utils';\nimport {\n\tkeyFor,\n\tnextSortDirection,\n\tsortAlphabeticallyAsCoercedStrings,\n\tsortIcon,\n\tsortText\n} from '../utils';\nimport { info } from '@muraldevkit/ds-icons';\n\nimport styles from './MrlSmartTable.module.scss';\nimport { getScrollableContainer } from '../../../utils/getScrollableContainer/getScrollableContainer';\nimport { hasHorizontalScroll } from '../../../utils/hasHorizontalScroll/hasHorizontalScroll';\nimport { MemoizedDefaultCellContent } from './components/DefaultCellContent';\n\nconst ROW_HEIGHT_PX = 48;\n\nconst sortItems = (\n\tcolumns: MrlSmartTableColumn[],\n\titems: MrlTableItem[],\n\tsortDescriptor: MrlTableColumnSortDescriptor\n): MrlTableItem[] => {\n\tconst sortColumn = columns.find((col) => col.id === sortDescriptor.column);\n\tif (!sortColumn) {\n\t\tconsole.error(`No column found for sort descriptor key: ${sortDescriptor.column}`);\n\t\treturn items;\n\t}\n\n\tconst { sortByRowContext, sortBy } = sortColumn;\n\n\tif (sortByRowContext) {\n\t\treturn [...items].sort((a, b) => sortByRowContext(a, b) * sortDescriptor.direction);\n\t}\n\n\tconst sortComparator = sortBy || sortAlphabeticallyAsCoercedStrings;\n\n\treturn [...items].sort((a, b) => {\n\t\tconst aSortValue = a[sortColumn.id];\n\t\tconst bSortValue = b[sortColumn.id];\n\t\treturn sortComparator(aSortValue, bSortValue) * sortDescriptor.direction;\n\t});\n};\n\nfunction EmptyStateWrapper({\n\tchildren,\n\tvisibleColumnCount\n}: {\n\tchildren: React.ReactNode;\n\tvisibleColumnCount: number;\n}): JSX.Element {\n\treturn (\n\t\t<tr role=\"row\">\n\t\t\t<td role=\"gridcell\" colSpan={visibleColumnCount}>\n\t\t\t\t{children}\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n\ninterface VisuallyHiddenAccessibleButtonProps extends React.HTMLProps<HTMLButtonElement> {\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nconst VisuallyHiddenAccessibleButton = (props: VisuallyHiddenAccessibleButtonProps) => {\n\tconst { horizontalAlign, ...rest } = props;\n\n\treturn (\n\t\t<button\n\t\t\t{...rest}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(styles['MrlSmartTable--accessible-visually-hidden-button'], {\n\t\t\t\t[styles['align-right']]: horizontalAlign === 'right'\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport interface MrlSmartColumnRendererProps {\n\t/**\n\t * The column being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * A function to change current sort descriptor.\n\t */\n\thandleSortClick: ({\n\t\tcolumn,\n\t\tdirection,\n\t\tname\n\t}: {\n\t\tcolumn: MrlSmartTableColumn['id'];\n\t\tdirection: MrlSortDirection;\n\t\tname: string;\n\t}) => void;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\t/**\n\t * The current sort descriptor.\n\t */\n\tsortDescriptor?: MrlTableColumnSortDescriptor;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nexport interface MrlSmartCellRendererProps {\n\t/**\n\t * The item for the cell being rendered.\n\t */\n\titem: MrlTableItem;\n\t/**\n\t * The column for the cell being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n}\n\nconst DefaultColumnContent = ({\n\tcolumn,\n\tdataQaPrefix,\n\ttableElementId,\n\thandleSortClick,\n\tsortDescriptor,\n\thasScrollShadowLeft,\n\thasScrollShadowRight\n}: MrlSmartColumnRendererProps) => {\n\tconst { allowsSorting, horizontalAlign, id, name, sticky, tooltip } = column;\n\tconst elementId = keyFor(tableElementId, 'column', id);\n\tconst dataQa = keyFor(dataQaPrefix, 'column', id);\n\tconst columnProps = {\n\t\t'data-qa': dataQa,\n\t\thasScrollShadowLeft,\n\t\thasScrollShadowRight,\n\t\thorizontalAlign,\n\t\tid: elementId,\n\t\tscope: 'col',\n\t\tsticky\n\t};\n\n\tconst memoizedTooltip = React.useMemo(\n\t\t() => (\n\t\t\t<MrlTooltip\n\t\t\t\tanchor=\"center\"\n\t\t\t\tdataQa={`${dataQa}-tooltip`}\n\t\t\t\tposition=\"bottom\"\n\t\t\t\ttext={tooltip || ''}\n\t\t\t>\n\t\t\t\t{/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n\t\t\t\t<span data-qa={`${dataQa}-tooltip-trigger`} tabIndex={0}>\n\t\t\t\t\t<MrlSvg className=\"MrlTableColumn--tooltip\" svg={info} size=\"small\" />\n\t\t\t\t</span>\n\t\t\t</MrlTooltip>\n\t\t),\n\t\t[dataQa, tooltip]\n\t);\n\n\tconst tooltipContent = tooltip ? memoizedTooltip : undefined;\n\n\tif (!allowsSorting) {\n\t\treturn (\n\t\t\t<MrlTableColumn {...columnProps}>\n\t\t\t\t{name}\n\t\t\t\t{tooltipContent}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t}\n\n\tconst currentDirection = sortDescriptor?.column === id ? sortDescriptor.direction : undefined;\n\tconst nextDirection = nextSortDirection(currentDirection);\n\tconst onSortClick = () => {\n\t\thandleSortClick({ column: id, direction: nextDirection, name: name });\n\t};\n\n\treturn (\n\t\t<MrlTableColumn onClick={onSortClick} {...columnProps}>\n\t\t\t<VisuallyHiddenAccessibleButton\n\t\t\t\taria-label={`Sort ${sortText(nextDirection)} by ${name}`}\n\t\t\t\thorizontalAlign={horizontalAlign}\n\t\t\t\tonClick={onSortClick}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(styles['allowsSorting'], {\n\t\t\t\t\t\t[styles['align-right']]: horizontalAlign === 'right',\n\t\t\t\t\t\t[styles['noSortSelected']]: horizontalAlign === 'right' && !currentDirection\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{name}\n\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t{currentDirection ? (\n\t\t\t\t\t\t<MrlSvg\n\t\t\t\t\t\t\tclassName=\"MrlTableColumn--sort-indicator\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tsvg={sortIcon(currentDirection)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\thorizontalAlign !== 'right' && <span className={styles['empty-icon-space']}></span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</VisuallyHiddenAccessibleButton>\n\t\t</MrlTableColumn>\n\t);\n};\n\nexport interface MrlTableItem extends Record<string, unknown> {\n\t/**\n\t * A unique identifier for the row item.\n\t */\n\tid: MrlTableItemId;\n\t/**\n\t * This makes the row item not selectable.\n\t */\n\tisSelectable?: boolean;\n\t/**\n\t * This makes the row item visually disabled.\n\t */\n\tisDisabled?: boolean;\n\t/**\n\t * A ref to the table row element\n\t * The ref is an object where the key is the item id and the value is the table row element\n\t */\n\trowRef?: React.MutableRefObject<Record<MrlTableItemId, HTMLTableRowElement>>;\n}\n\nexport type MrlTableColumnSticky = 'left' | 'right';\n\nexport interface MrlSmartTableColumn {\n\t/**\n\t * The key used to retrieve the cell value from the item object,\n\t * e.g. `item[key]`.\n\t */\n\tid: MrlTableColumnId;\n\t/**\n\t * The display name of the column.\n\t */\n\tname: string;\n\t/**\n\t * The horizontal alignment of the column content.\n\t * If not provided, the default alignment is left.\n\t */\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n\t/**\n\t * A component used to override rendering for each column cell. The\n\t * component is expected to render a MrlTableColumn.\n\t */\n\trenderColumn?: (props: MrlSmartColumnRendererProps) => JSX.Element;\n\t/**\n\t * A component used to override rendering for each row cell. The\n\t * component is expected to render a MrlTableCell.\n\t */\n\trenderCell?: (props: MrlSmartCellRendererProps) => JSX.Element;\n\t/**\n\t * Whether the column allows sorting.\n\t */\n\tallowsSorting?: boolean;\n\t/**\n\t * A sort comparator function for the column.\n\t *\n\t * @default sortAlphabeticallyAsCoercedStrings\n\t */\n\tsortBy?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * A sort comparator function for the column that receives the entire\n\t * row context. Will override the `sortBy` function (if provided).\n\t *\n\t * @param aValue\n\t * @param bValue\n\t * @returns number\n\t */\n\tsortByRowContext?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * Whether the column is sticky\n\t * the sticky effect will only work on the first or last column.\n\t * Set to 'left' for the first column and 'right' for the last column\n\t *\n\t * @example The container of the table will need overflow:scroll/auto\n\t * and the width will need to be constrained in order for\n\t * the columns to be 'sticky'\n\t */\n\tsticky?: MrlTableColumnSticky;\n\t/**\n\t * A tooltip to display on the column header.\n\t */\n\ttooltip?: string;\n}\n\n/**\n * A set of item ids.\n */\nexport type MrlTableSelection = Set<MrlTableItemId>;\n\nexport interface MrlSmartTableSelectionOptions {\n\t/**\n\t * The type of selection that is allowed in the collection.\n\t *\n\t * @default none\n\t */\n\tmode: MrlTableSelectionMode;\n\t/**\n\t * The currently selected keys in the collection (controlled).\n\t */\n\tselectedKeys: MrlTableSelection;\n\t/**\n\t * Handler that is called when the selection changes.\n\t */\n\tonSelectionChange: (keys: MrlTableSelection) => void;\n}\n\nexport interface MrlTableColumnSortOptions {\n\t/**\n\t * The column to sort by.\n\t */\n\tsortColumn: MrlSmartTableColumn;\n\t/**\n\t * The details of the sort.\n\t */\n\tsortDescriptor: MrlTableColumnSortDescriptor;\n}\n\nexport interface MrlSmartTableProps\n\textends Partial<\n\t\tPick<MrlTableProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-details'>\n\t> {\n\t/**\n\t * A list of table columns.\n\t */\n\tcolumns: MrlSmartTableColumn[];\n\t/**\n\t * A list of items to populate the table.\n\t */\n\titems: MrlTableItem[];\n\t/**\n\t * When provided, enables and controls table selection.\n\t */\n\tselectionOptions?: MrlSmartTableSelectionOptions;\n\t/**\n\t * A prefix applied to each data-qa element within the table.\n\t *\n\t * @default \"mrl-smart-table\"\n\t */\n\tdataQaPrefix?: string;\n\t/**\n\t * Text to be displayed when there are no rows in the table.\n\t * Will be ignored if `emptyState` is provided.\n\t *\n\t * @default \"There's no data available to be displayed in this table.\"\n\t */\n\temptyStateText?: string;\n\t/**\n\t * Provides content to display when there are no rows in the table.\n\t *\n\t * @default MrlTableEmptyState\n\t */\n\temptyState?: JSX.Element;\n\t/**\n\t * An element id (and if not provided, a unique value decorated\n\t * to prevent conflict with aria controls will be generated).\n\t *\n\t * @default ${id}-mrl-smart-table\n\t */\n\tid?: string;\n\t/**\n\t * A function to override the default sort items when a sort descriptor is set.\n\t */\n\tcustomSortItems?: ({ sortColumn, sortDescriptor }: MrlTableColumnSortOptions) => void;\n\t/**\n\t * Provides information on how the table should be sorted on initialization.\n\t */\n\tdefaultSortDescriptor?: MrlTableColumnSortDescriptor;\n\t/**\n\t * Enables row virtualization using @tanstack/react-virtual. The table must live\n\t * inside a container with a fixed height and vertical scroll for virtualization\n\t * to function correctly.\n\t *\n\t * @default false\n\t */\n\tenableVirtualization?: boolean;\n}\n\n/**\n * MrlSmartTable Component\n *\n * @param {MrlSmartTableProps} props - MrlSmartTable component props\n * @returns a table\n */\nexport function MrlSmartTable(props: MrlSmartTableProps): JSX.Element {\n\tconst {\n\t\tcolumns,\n\t\tdataQaPrefix = 'mrl-smart-table',\n\t\temptyStateText,\n\t\temptyState = <MrlTableEmptyState text={emptyStateText} />,\n\t\tid,\n\t\titems,\n\t\tselectionOptions,\n\t\tdefaultSortDescriptor,\n\t\tcustomSortItems,\n\t\tenableVirtualization = false,\n\t\t...ariaProps\n\t} = props;\n\tconst idRef = React.useRef<string>(id || getUniqueId('mrl-smart-table'));\n\tconst tableRef = React.useRef<HTMLTableElement>(null);\n\tconst [scrollContainer, setScrollContainer] = React.useState<HTMLElement | null>(null);\n\tconst tableElementId = idRef.current;\n\tconst [srContent, setSrContent] = React.useState<string>('');\n\tconst [scrollShadowLeft, setScrollShadowLeft] = React.useState<boolean>(false);\n\tconst [scrollShadowRight, setScrollShadowRight] = React.useState<boolean>(false);\n\n\tconst hasStickyLeftColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'left'),\n\t\t[columns]\n\t);\n\n\tconst hasStickyRightColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'right'),\n\t\t[columns]\n\t);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current) return;\n\t\tconst container = getScrollableContainer(tableRef.current);\n\t\tsetScrollContainer(container);\n\t}, []);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current || !scrollContainer) return;\n\t\tif (!hasStickyLeftColumn && !hasStickyRightColumn) return;\n\n\t\tfunction scrollHandler() {\n\t\t\tif (!tableRef.current || !scrollContainer) return;\n\t\t\tconst { hasScrollLeft, hasScrollRight } = hasHorizontalScroll(scrollContainer);\n\t\t\tsetScrollShadowLeft(hasScrollLeft);\n\t\t\tsetScrollShadowRight(hasScrollRight);\n\t\t}\n\t\tconst debouncedScrollHandler = debounce(scrollHandler, 25);\n\n\t\tconst observer = new ResizeObserver(scrollHandler);\n\t\tobserver.observe(tableRef.current);\n\n\t\tdocument.addEventListener('scroll', debouncedScrollHandler, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('scroll', debouncedScrollHandler, true);\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [hasStickyLeftColumn, hasStickyRightColumn, scrollContainer]);\n\n\tconst visibleColumnCount = columns.length + (selectionOptions ? 1 : 0);\n\tconst [sortDescriptor, setSortDescriptor] = React.useState<\n\t\tMrlTableColumnSortDescriptor | undefined\n\t>(defaultSortDescriptor);\n\n\tconst handleSortClick = (sortDescriptor: MrlTableColumnSortDescriptor) => {\n\t\tconst { direction, name, column } = sortDescriptor;\n\n\t\tif (customSortItems) {\n\t\t\tconst sortColumn = columns.find((col) => col.id === column);\n\t\t\tif (!sortColumn) {\n\t\t\t\tconsole.error(`No column found for sort descriptor key: ${column}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcustomSortItems({ sortColumn, sortDescriptor });\n\t\t}\n\t\tsetSortDescriptor(sortDescriptor);\n\n\t\tconst announcement = `Now sorting ${sortText(direction)} by ${name}`;\n\t\tsetSrContent(announcement);\n\t};\n\n\tconst memoizedItems = React.useMemo(() => {\n\t\t// sort items if sort descriptor is set and custom sort items functions is not provided\n\t\treturn !customSortItems && sortDescriptor ? sortItems(columns, items, sortDescriptor) : items;\n\t}, [columns, customSortItems, items, sortDescriptor]);\n\n\tconst rowVirtualizer = useVirtualizer({\n\t\tcount: memoizedItems.length,\n\t\tenabled: enableVirtualization,\n\t\testimateSize: () => ROW_HEIGHT_PX,\n\t\tgetItemKey: React.useCallback(\n\t\t\t(index: number) => {\n\t\t\t\treturn keyFor(tableElementId, 'row', memoizedItems[index].id);\n\t\t\t},\n\t\t\t[tableElementId, memoizedItems]\n\t\t),\n\t\tgetScrollElement: () => scrollContainer,\n\t\toverscan: 6,\n\t\tuseAnimationFrameWithResizeObserver: true\n\t});\n\n\tlet tableHeaderSelectionColumn: JSX.Element | undefined;\n\tlet rowItemSelectionCell: ((item: MrlTableItem) => JSX.Element) | undefined;\n\n\tif (selectionOptions) {\n\t\tconst { mode, onSelectionChange, selectedKeys } = selectionOptions;\n\t\tconst isAnySelected = memoizedItems.length > 0 && selectedKeys.size > 0;\n\t\tconst isAllSelected = isAnySelected && selectedKeys.size === memoizedItems.length;\n\n\t\tconst selectionColumnStickyValue = hasStickyLeftColumn ? 'left' : undefined;\n\t\tconst selectNone = () => onSelectionChange(new Set());\n\t\tconst selectAll = () =>\n\t\t\tonSelectionChange(\n\t\t\t\tnew Set(memoizedItems.filter((item) => item.isSelectable !== false).map((item) => item.id))\n\t\t\t);\n\t\tconst selectOne = (itemId: MrlTableItemId) => onSelectionChange(new Set([itemId]));\n\t\tconst selectAdd = (itemId: MrlTableItemId) =>\n\t\t\tonSelectionChange(new Set([...selectedKeys, itemId]));\n\t\tconst selectRemove = (itemId: MrlTableItemId) => {\n\t\t\tconst keys = new Set(selectedKeys);\n\t\t\tkeys.delete(itemId);\n\t\t\tonSelectionChange(keys);\n\t\t};\n\n\t\tconst onSelectAllClick = (): void => (isAnySelected ? selectNone() : selectAll());\n\t\tconst onSelectClick = (itemId: MrlTableItemId): void => {\n\t\t\tif (mode === 'multiple') {\n\t\t\t\tselectedKeys.has(itemId) ? selectRemove(itemId) : selectAdd(itemId);\n\t\t\t} else if (mode === 'single') {\n\t\t\t\tselectedKeys.has(itemId) ? selectNone() : selectOne(itemId);\n\t\t\t}\n\t\t};\n\n\t\ttableHeaderSelectionColumn = (\n\t\t\t<MrlTableColumn\n\t\t\t\tid={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection')}\n\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tscope=\"col\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t>\n\t\t\t\t{selectionOptions.mode === 'multiple' && (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': 'Select all rows',\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'column', 'selection-select-all-checkbox'),\n\t\t\t\t\t\t\tonChange: onSelectAllClick\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tselected={isAllSelected ? 'checked' : isAnySelected ? 'indeterminate' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t\trowItemSelectionCell = ({ id, isSelectable = true }: MrlTableItem) => (\n\t\t\t<MrlTableCell\n\t\t\t\tid={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row-cell', 'selection', id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t>\n\t\t\t\t{isSelectable ? (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': `Select row with id: ${id}`,\n\t\t\t\t\t\t\t'data-qa': keyFor(dataQaPrefix, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tonChange: () => onSelectClick(id)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox')}\n\t\t\t\t\t\tselected={selectionOptions.selectedKeys.has(id) ? 'checked' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t) : undefined}\n\t\t\t</MrlTableCell>\n\t\t);\n\t}\n\n\tconst tableHeaderContent = (\n\t\t<>\n\t\t\t{tableHeaderSelectionColumn}\n\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\tconst { id, renderColumn } = column;\n\t\t\t\tconst ColumnContent = renderColumn ? renderColumn : DefaultColumnContent;\n\t\t\t\treturn (\n\t\t\t\t\t<ColumnContent\n\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', id)}\n\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\thandleSortClick={handleSortClick}\n\t\t\t\t\t\tsortDescriptor={sortDescriptor}\n\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n\n\tlet tableBodyContent: React.JSX.Element | React.JSX.Element[];\n\n\tif (enableVirtualization) {\n\t\tconst virtualRows = rowVirtualizer.getVirtualItems();\n\t\tconst paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n\t\tconst paddingBottom =\n\t\t\tvirtualRows.length > 0\n\t\t\t\t? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end\n\t\t\t\t: 0;\n\n\t\ttableBodyContent = (\n\t\t\t<>\n\t\t\t\t{paddingTop > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingTop }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t\t{virtualRows.map((virtualRow) => {\n\t\t\t\t\tconst item = memoizedItems[virtualRow.index];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MrlTableRow\n\t\t\t\t\t\t\tclassName={classNames({\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\t\t\t\titemId={item.id}\n\t\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\t\t\t\tkey={virtualRow.key}\n\t\t\t\t\t\t\tstyle={{ height: virtualRow.size }}\n\t\t\t\t\t\t\tref={item.rowRef}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\t\t\t\tconst CellContent = column.renderCell\n\t\t\t\t\t\t\t\t\t? column.renderCell\n\t\t\t\t\t\t\t\t\t: MemoizedDefaultCellContent;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</MrlTableRow>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{paddingBottom > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingBottom }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t} else {\n\t\ttableBodyContent = memoizedItems.map((item) => (\n\t\t\t<MrlTableRow\n\t\t\t\tclassName={classNames({\n\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t})}\n\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\titemId={item.id}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\tref={item.rowRef}\n\t\t\t>\n\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\tconst CellContent = column.renderCell ? column.renderCell : MemoizedDefaultCellContent;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</MrlTableRow>\n\t\t));\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MrlTable data-qa={dataQaPrefix} id={tableElementId} ref={tableRef} {...ariaProps}>\n\t\t\t\t<MrlTableHeader\n\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'header')}\n\t\t\t\t\tid={keyFor(tableElementId, 'header')}\n\t\t\t\t>\n\t\t\t\t\t{tableHeaderContent}\n\t\t\t\t</MrlTableHeader>\n\t\t\t\t<MrlTableBody data-qa={keyFor(dataQaPrefix, 'body')} id={keyFor(tableElementId, 'body')}>\n\t\t\t\t\t{memoizedItems.length === 0 ? (\n\t\t\t\t\t\t<EmptyStateWrapper visibleColumnCount={visibleColumnCount}>\n\t\t\t\t\t\t\t{emptyState}\n\t\t\t\t\t\t</EmptyStateWrapper>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttableBodyContent\n\t\t\t\t\t)}\n\t\t\t\t</MrlTableBody>\n\t\t\t</MrlTable>\n\t\t\t<MrlLiveRegion\n\t\t\t\tariaLive=\"assertive\"\n\t\t\t\tvisible={false}\n\t\t\t\tsrContent={srContent}\n\t\t\t\tshouldClearContent={true}\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"names":["ROW_HEIGHT_PX","sortItems","columns","items","sortDescriptor","sortColumn","find","col","id","column","console","error","concat","sortByRowContext","sortBy","sort","a","b","direction","sortComparator","sortAlphabeticallyAsCoercedStrings","aSortValue","bSortValue","EmptyStateWrapper","_ref","children","visibleColumnCount","React","createElement","role","colSpan","VisuallyHiddenAccessibleButton","props","horizontalAlign","rest","_objectWithoutProperties","_excluded","_extends","type","className","classNames","styles","DefaultColumnContent","_ref2","dataQaPrefix","tableElementId","handleSortClick","hasScrollShadowLeft","hasScrollShadowRight","allowsSorting","name","sticky","tooltip","elementId","keyFor","dataQa","columnProps","scope","memoizedTooltip","useMemo","MrlTooltip","anchor","position","text","tabIndex","MrlSvg","svg","info","size","tooltipContent","undefined","MrlTableColumn","currentDirection","nextDirection","nextSortDirection","onSortClick","onClick","sortText","sortIcon","MrlSmartTable","_props$dataQaPrefix","emptyStateText","_props$emptyState","emptyState","MrlTableEmptyState","selectionOptions","defaultSortDescriptor","customSortItems","_props$enableVirtuali","enableVirtualization","ariaProps","_excluded2","idRef","useRef","getUniqueId","tableRef","_React$useState","useState","_React$useState2","_slicedToArray","scrollContainer","setScrollContainer","current","_React$useState3","_React$useState4","srContent","setSrContent","_React$useState5","_React$useState6","scrollShadowLeft","setScrollShadowLeft","_React$useState7","_React$useState8","scrollShadowRight","setScrollShadowRight","hasStickyLeftColumn","some","hasStickyRightColumn","useLayoutEffect","container","getScrollableContainer","scrollHandler","_hasHorizontalScroll","hasHorizontalScroll","hasScrollLeft","hasScrollRight","debouncedScrollHandler","debounce","observer","ResizeObserver","observe","document","addEventListener","removeEventListener","disconnect","length","_React$useState9","_React$useState0","setSortDescriptor","announcement","memoizedItems","rowVirtualizer","useVirtualizer","count","enabled","estimateSize","getItemKey","useCallback","index","getScrollElement","overscan","useAnimationFrameWithResizeObserver","tableHeaderSelectionColumn","rowItemSelectionCell","mode","onSelectionChange","selectedKeys","isAnySelected","isAllSelected","selectionColumnStickyValue","selectNone","Set","selectAll","filter","item","isSelectable","map","selectOne","itemId","selectAdd","selectRemove","keys","delete","onSelectAllClick","onSelectClick","has","key","MrlCheckboxStandalone","attrs","onChange","selected","_ref3","_ref3$isSelectable","MrlTableCell","tableHeaderContent","Fragment","renderColumn","ColumnContent","tableBodyContent","virtualRows","getVirtualItems","paddingTop","start","paddingBottom","getTotalSize","end","style","height","virtualRow","_rowItemSelectionCell","MrlTableRow","isDisabled","ref","rowRef","CellContent","renderCell","MemoizedDefaultCellContent","_rowItemSelectionCell2","MrlTable","MrlTableHeader","MrlTableBody","MrlLiveRegion","ariaLive","visible","shouldClearContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MrlSmartTable.js","sources":["../../../../../src/components/table/MrlSmartTable/MrlSmartTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n\tMrlCheckboxStandalone,\n\tMrlLiveRegion,\n\tMrlSvg,\n\tMrlTable,\n\tMrlTableBody,\n\tMrlTableCell,\n\tMrlTableColumn,\n\tMrlTableHeader,\n\tMrlTableRow,\n\tMrlTooltip\n} from '../../';\nimport { MrlTableProps } from '../MrlTable';\nimport { MrlTableEmptyState } from '../MrlTableEmptyState';\nimport {\n\tMrlSortDirection,\n\tMrlTableCellHorizontalAlign,\n\tMrlTableColumnId,\n\tMrlTableColumnSortDescriptor,\n\tMrlTableItemId,\n\tMrlTableSelectionMode\n} from '../constants';\nimport { getUniqueId } from '../../../utils';\nimport {\n\tkeyFor,\n\tnextSortDirection,\n\tsortAlphabeticallyAsCoercedStrings,\n\tsortIcon,\n\tsortText\n} from '../utils';\nimport { info } from '@muraldevkit/ds-icons';\n\nimport styles from './MrlSmartTable.module.scss';\nimport { getScrollableContainer } from '../../../utils/getScrollableContainer/getScrollableContainer';\nimport { hasHorizontalScroll } from '../../../utils/hasHorizontalScroll/hasHorizontalScroll';\nimport { MemoizedDefaultCellContent } from './components/DefaultCellContent';\nimport { useMrlTrackInteraction } from '../../../hooks/useMrlAnalytics';\n\nconst ROW_HEIGHT_PX = 48;\n\nconst sortItems = (\n\tcolumns: MrlSmartTableColumn[],\n\titems: MrlTableItem[],\n\tsortDescriptor: MrlTableColumnSortDescriptor\n): MrlTableItem[] => {\n\tconst sortColumn = columns.find((col) => col.id === sortDescriptor.column);\n\tif (!sortColumn) {\n\t\tconsole.error(`No column found for sort descriptor key: ${sortDescriptor.column}`);\n\t\treturn items;\n\t}\n\n\tconst { sortByRowContext, sortBy } = sortColumn;\n\n\tif (sortByRowContext) {\n\t\treturn [...items].sort((a, b) => sortByRowContext(a, b) * sortDescriptor.direction);\n\t}\n\n\tconst sortComparator = sortBy || sortAlphabeticallyAsCoercedStrings;\n\n\treturn [...items].sort((a, b) => {\n\t\tconst aSortValue = a[sortColumn.id];\n\t\tconst bSortValue = b[sortColumn.id];\n\t\treturn sortComparator(aSortValue, bSortValue) * sortDescriptor.direction;\n\t});\n};\n\nfunction EmptyStateWrapper({\n\tchildren,\n\tvisibleColumnCount\n}: {\n\tchildren: React.ReactNode;\n\tvisibleColumnCount: number;\n}): JSX.Element {\n\treturn (\n\t\t<tr role=\"row\">\n\t\t\t<td role=\"gridcell\" colSpan={visibleColumnCount}>\n\t\t\t\t{children}\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n\ninterface VisuallyHiddenAccessibleButtonProps extends React.HTMLProps<HTMLButtonElement> {\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nconst VisuallyHiddenAccessibleButton = (props: VisuallyHiddenAccessibleButtonProps) => {\n\tconst { horizontalAlign, ...rest } = props;\n\n\treturn (\n\t\t<button\n\t\t\t{...rest}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(styles['MrlSmartTable--accessible-visually-hidden-button'], {\n\t\t\t\t[styles['align-right']]: horizontalAlign === 'right'\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport interface MrlSmartColumnRendererProps {\n\t/**\n\t * The column being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * A function to change current sort descriptor.\n\t */\n\thandleSortClick: ({\n\t\tcolumn,\n\t\tdirection,\n\t\tname\n\t}: {\n\t\tcolumn: MrlSmartTableColumn['id'];\n\t\tdirection: MrlSortDirection;\n\t\tname: string;\n\t}) => void;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\t/**\n\t * The current sort descriptor.\n\t */\n\tsortDescriptor?: MrlTableColumnSortDescriptor;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nexport interface MrlSmartCellRendererProps {\n\t/**\n\t * The item for the cell being rendered.\n\t */\n\titem: MrlTableItem;\n\t/**\n\t * The column for the cell being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n}\n\nconst DefaultColumnContent = ({\n\tcolumn,\n\tdataQaPrefix,\n\ttableElementId,\n\thandleSortClick,\n\tsortDescriptor,\n\thasScrollShadowLeft,\n\thasScrollShadowRight\n}: MrlSmartColumnRendererProps) => {\n\tconst { allowsSorting, horizontalAlign, id, name, sticky, tooltip } = column;\n\tconst elementId = keyFor(tableElementId, 'column', id);\n\tconst dataQa = keyFor(dataQaPrefix, 'column', id);\n\tconst columnProps = {\n\t\t'data-qa': dataQa,\n\t\thasScrollShadowLeft,\n\t\thasScrollShadowRight,\n\t\thorizontalAlign,\n\t\tid: elementId,\n\t\tscope: 'col',\n\t\tsticky\n\t};\n\n\tconst memoizedTooltip = React.useMemo(\n\t\t() => (\n\t\t\t<MrlTooltip\n\t\t\t\tanchor=\"center\"\n\t\t\t\tdataQa={`${dataQa}-tooltip`}\n\t\t\t\tposition=\"bottom\"\n\t\t\t\ttext={tooltip || ''}\n\t\t\t>\n\t\t\t\t{/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n\t\t\t\t<span data-qa={`${dataQa}-tooltip-trigger`} tabIndex={0}>\n\t\t\t\t\t<MrlSvg className=\"MrlTableColumn--tooltip\" svg={info} size=\"small\" />\n\t\t\t\t</span>\n\t\t\t</MrlTooltip>\n\t\t),\n\t\t[dataQa, tooltip]\n\t);\n\n\tconst tooltipContent = tooltip ? memoizedTooltip : undefined;\n\n\tif (!allowsSorting) {\n\t\treturn (\n\t\t\t<MrlTableColumn {...columnProps}>\n\t\t\t\t{name}\n\t\t\t\t{tooltipContent}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t}\n\n\tconst currentDirection = sortDescriptor?.column === id ? sortDescriptor.direction : undefined;\n\tconst nextDirection = nextSortDirection(currentDirection);\n\tconst onSortClick = () => {\n\t\thandleSortClick({ column: id, direction: nextDirection, name: name });\n\t};\n\n\treturn (\n\t\t<MrlTableColumn onClick={onSortClick} {...columnProps}>\n\t\t\t<VisuallyHiddenAccessibleButton\n\t\t\t\taria-label={`Sort ${sortText(nextDirection)} by ${name}`}\n\t\t\t\thorizontalAlign={horizontalAlign}\n\t\t\t\tonClick={onSortClick}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(styles['allowsSorting'], {\n\t\t\t\t\t\t[styles['align-right']]: horizontalAlign === 'right',\n\t\t\t\t\t\t[styles['noSortSelected']]: horizontalAlign === 'right' && !currentDirection\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{name}\n\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t{currentDirection ? (\n\t\t\t\t\t\t<MrlSvg\n\t\t\t\t\t\t\tclassName=\"MrlTableColumn--sort-indicator\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tsvg={sortIcon(currentDirection)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\thorizontalAlign !== 'right' && <span className={styles['empty-icon-space']}></span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</VisuallyHiddenAccessibleButton>\n\t\t</MrlTableColumn>\n\t);\n};\n\nexport interface MrlTableItem extends Record<string, unknown> {\n\t/**\n\t * A unique identifier for the row item.\n\t */\n\tid: MrlTableItemId;\n\t/**\n\t * This makes the row item not selectable.\n\t */\n\tisSelectable?: boolean;\n\t/**\n\t * This makes the row item visually disabled.\n\t */\n\tisDisabled?: boolean;\n\t/**\n\t * A ref to the table row element\n\t * The ref is an object where the key is the item id and the value is the table row element\n\t */\n\trowRef?: React.MutableRefObject<Record<MrlTableItemId, HTMLTableRowElement>>;\n}\n\nexport type MrlTableColumnSticky = 'left' | 'right';\n\nexport interface MrlSmartTableColumn {\n\t/**\n\t * The key used to retrieve the cell value from the item object,\n\t * e.g. `item[key]`.\n\t */\n\tid: MrlTableColumnId;\n\t/**\n\t * The display name of the column.\n\t */\n\tname: string;\n\t/**\n\t * The horizontal alignment of the column content.\n\t * If not provided, the default alignment is left.\n\t */\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n\t/**\n\t * A component used to override rendering for each column cell. The\n\t * component is expected to render a MrlTableColumn.\n\t */\n\trenderColumn?: (props: MrlSmartColumnRendererProps) => JSX.Element;\n\t/**\n\t * A component used to override rendering for each row cell. The\n\t * component is expected to render a MrlTableCell.\n\t */\n\trenderCell?: (props: MrlSmartCellRendererProps) => JSX.Element;\n\t/**\n\t * Whether the column allows sorting.\n\t */\n\tallowsSorting?: boolean;\n\t/**\n\t * A sort comparator function for the column.\n\t *\n\t * @default sortAlphabeticallyAsCoercedStrings\n\t */\n\tsortBy?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * A sort comparator function for the column that receives the entire\n\t * row context. Will override the `sortBy` function (if provided).\n\t *\n\t * @param aValue\n\t * @param bValue\n\t * @returns number\n\t */\n\tsortByRowContext?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * Whether the column is sticky\n\t * the sticky effect will only work on the first or last column.\n\t * Set to 'left' for the first column and 'right' for the last column\n\t *\n\t * @example The container of the table will need overflow:scroll/auto\n\t * and the width will need to be constrained in order for\n\t * the columns to be 'sticky'\n\t */\n\tsticky?: MrlTableColumnSticky;\n\t/**\n\t * A tooltip to display on the column header.\n\t */\n\ttooltip?: string;\n}\n\n/**\n * A set of item ids.\n */\nexport type MrlTableSelection = Set<MrlTableItemId>;\n\nexport interface MrlSmartTableSelectionOptions {\n\t/**\n\t * The type of selection that is allowed in the collection.\n\t *\n\t * @default none\n\t */\n\tmode: MrlTableSelectionMode;\n\t/**\n\t * The currently selected keys in the collection (controlled).\n\t */\n\tselectedKeys: MrlTableSelection;\n\t/**\n\t * Handler that is called when the selection changes.\n\t */\n\tonSelectionChange: (keys: MrlTableSelection) => void;\n}\n\nexport interface MrlTableColumnSortOptions {\n\t/**\n\t * The column to sort by.\n\t */\n\tsortColumn: MrlSmartTableColumn;\n\t/**\n\t * The details of the sort.\n\t */\n\tsortDescriptor: MrlTableColumnSortDescriptor;\n}\n\nexport interface MrlSmartTableProps\n\textends Partial<\n\t\tPick<MrlTableProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-details'>\n\t> {\n\t/**\n\t * A list of table columns.\n\t */\n\tcolumns: MrlSmartTableColumn[];\n\t/**\n\t * A list of items to populate the table.\n\t */\n\titems: MrlTableItem[];\n\t/**\n\t * When provided, enables and controls table selection.\n\t */\n\tselectionOptions?: MrlSmartTableSelectionOptions;\n\t/**\n\t * A prefix applied to each data-qa element within the table.\n\t *\n\t * @default \"mrl-smart-table\"\n\t */\n\tdataQaPrefix?: string;\n\t/**\n\t * Text to be displayed when there are no rows in the table.\n\t * Will be ignored if `emptyState` is provided.\n\t *\n\t * @default \"There's no data available to be displayed in this table.\"\n\t */\n\temptyStateText?: string;\n\t/**\n\t * Provides content to display when there are no rows in the table.\n\t *\n\t * @default MrlTableEmptyState\n\t */\n\temptyState?: JSX.Element;\n\t/**\n\t * An element id (and if not provided, a unique value decorated\n\t * to prevent conflict with aria controls will be generated).\n\t *\n\t * @default ${id}-mrl-smart-table\n\t */\n\tid?: string;\n\t/**\n\t * A function to override the default sort items when a sort descriptor is set.\n\t */\n\tcustomSortItems?: ({ sortColumn, sortDescriptor }: MrlTableColumnSortOptions) => void;\n\t/**\n\t * Provides information on how the table should be sorted on initialization.\n\t */\n\tdefaultSortDescriptor?: MrlTableColumnSortDescriptor;\n\t/**\n\t * Enables row virtualization using @tanstack/react-virtual. The table must live\n\t * inside a container with a fixed height and vertical scroll for virtualization\n\t * to function correctly.\n\t *\n\t * @default false\n\t */\n\tenableVirtualization?: boolean;\n\t/**\n\t * Enables interaction tracking for this table. Provide a stable, non-PII id\n\t * (e.g. 'workspace-members-table'). When omitted, the table emits no analytics.\n\t *\n\t * Note: row content is never emitted — selection events carry counts only.\n\t */\n\teventId?: string;\n}\n\n/**\n * MrlSmartTable Component\n *\n * @param {MrlSmartTableProps} props - MrlSmartTable component props\n * @returns a table\n */\nexport function MrlSmartTable(props: MrlSmartTableProps): JSX.Element {\n\tconst {\n\t\tcolumns,\n\t\tdataQaPrefix = 'mrl-smart-table',\n\t\temptyStateText,\n\t\temptyState = <MrlTableEmptyState text={emptyStateText} />,\n\t\tid,\n\t\titems,\n\t\tselectionOptions,\n\t\tdefaultSortDescriptor,\n\t\tcustomSortItems,\n\t\tenableVirtualization = false,\n\t\teventId,\n\t\t...ariaProps\n\t} = props;\n\tconst trackInteraction = useMrlTrackInteraction('MrlSmartTable', eventId);\n\tconst idRef = React.useRef<string>(id || getUniqueId('mrl-smart-table'));\n\tconst tableRef = React.useRef<HTMLTableElement>(null);\n\tconst [scrollContainer, setScrollContainer] = React.useState<HTMLElement | null>(null);\n\tconst tableElementId = idRef.current;\n\tconst [srContent, setSrContent] = React.useState<string>('');\n\tconst [scrollShadowLeft, setScrollShadowLeft] = React.useState<boolean>(false);\n\tconst [scrollShadowRight, setScrollShadowRight] = React.useState<boolean>(false);\n\n\tconst hasStickyLeftColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'left'),\n\t\t[columns]\n\t);\n\n\tconst hasStickyRightColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'right'),\n\t\t[columns]\n\t);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current) return;\n\t\tconst container = getScrollableContainer(tableRef.current);\n\t\tsetScrollContainer(container);\n\t}, []);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current || !scrollContainer) return;\n\t\tif (!hasStickyLeftColumn && !hasStickyRightColumn) return;\n\n\t\tfunction scrollHandler() {\n\t\t\tif (!tableRef.current || !scrollContainer) return;\n\t\t\tconst { hasScrollLeft, hasScrollRight } = hasHorizontalScroll(scrollContainer);\n\t\t\tsetScrollShadowLeft(hasScrollLeft);\n\t\t\tsetScrollShadowRight(hasScrollRight);\n\t\t}\n\t\tconst debouncedScrollHandler = debounce(scrollHandler, 25);\n\n\t\tconst observer = new ResizeObserver(scrollHandler);\n\t\tobserver.observe(tableRef.current);\n\n\t\tdocument.addEventListener('scroll', debouncedScrollHandler, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('scroll', debouncedScrollHandler, true);\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [hasStickyLeftColumn, hasStickyRightColumn, scrollContainer]);\n\n\tconst visibleColumnCount = columns.length + (selectionOptions ? 1 : 0);\n\tconst [sortDescriptor, setSortDescriptor] = React.useState<\n\t\tMrlTableColumnSortDescriptor | undefined\n\t>(defaultSortDescriptor);\n\n\tconst handleSortClick = (sortDescriptor: MrlTableColumnSortDescriptor) => {\n\t\tconst { direction, name, column } = sortDescriptor;\n\n\t\t// the column id is a developer-defined key; the column's data is never emitted.\n\t\ttrackInteraction({ action: 'sort', metadata: { column: String(column), direction } });\n\n\t\tif (customSortItems) {\n\t\t\tconst sortColumn = columns.find((col) => col.id === column);\n\t\t\tif (!sortColumn) {\n\t\t\t\tconsole.error(`No column found for sort descriptor key: ${column}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcustomSortItems({ sortColumn, sortDescriptor });\n\t\t}\n\t\tsetSortDescriptor(sortDescriptor);\n\n\t\tconst announcement = `Now sorting ${sortText(direction)} by ${name}`;\n\t\tsetSrContent(announcement);\n\t};\n\n\tconst memoizedItems = React.useMemo(() => {\n\t\t// sort items if sort descriptor is set and custom sort items functions is not provided\n\t\treturn !customSortItems && sortDescriptor ? sortItems(columns, items, sortDescriptor) : items;\n\t}, [columns, customSortItems, items, sortDescriptor]);\n\n\tconst rowVirtualizer = useVirtualizer({\n\t\tcount: memoizedItems.length,\n\t\tenabled: enableVirtualization,\n\t\testimateSize: () => ROW_HEIGHT_PX,\n\t\tgetItemKey: React.useCallback(\n\t\t\t(index: number) => {\n\t\t\t\treturn keyFor(tableElementId, 'row', memoizedItems[index].id);\n\t\t\t},\n\t\t\t[tableElementId, memoizedItems]\n\t\t),\n\t\tgetScrollElement: () => scrollContainer,\n\t\toverscan: 6,\n\t\tuseAnimationFrameWithResizeObserver: true\n\t});\n\n\tlet tableHeaderSelectionColumn: JSX.Element | undefined;\n\tlet rowItemSelectionCell: ((item: MrlTableItem) => JSX.Element) | undefined;\n\n\tif (selectionOptions) {\n\t\tconst { mode, onSelectionChange, selectedKeys } = selectionOptions;\n\t\tconst isAnySelected = memoizedItems.length > 0 && selectedKeys.size > 0;\n\t\tconst isAllSelected = isAnySelected && selectedKeys.size === memoizedItems.length;\n\n\t\tconst selectionColumnStickyValue = hasStickyLeftColumn ? 'left' : undefined;\n\t\tconst selectNone = () => onSelectionChange(new Set());\n\t\tconst selectAll = () =>\n\t\t\tonSelectionChange(\n\t\t\t\tnew Set(memoizedItems.filter((item) => item.isSelectable !== false).map((item) => item.id))\n\t\t\t);\n\t\tconst selectOne = (itemId: MrlTableItemId) => onSelectionChange(new Set([itemId]));\n\t\tconst selectAdd = (itemId: MrlTableItemId) =>\n\t\t\tonSelectionChange(new Set([...selectedKeys, itemId]));\n\t\tconst selectRemove = (itemId: MrlTableItemId) => {\n\t\t\tconst keys = new Set(selectedKeys);\n\t\t\tkeys.delete(itemId);\n\t\t\tonSelectionChange(keys);\n\t\t};\n\n\t\tconst onSelectAllClick = (): void => {\n\t\t\t// row content is never emitted — only the scope of the selection.\n\t\t\ttrackInteraction({\n\t\t\t\taction: 'select',\n\t\t\t\tmetadata: { scope: isAnySelected ? 'none' : 'all' },\n\t\t\t\tvariant: mode\n\t\t\t});\n\n\t\t\tisAnySelected ? selectNone() : selectAll();\n\t\t};\n\t\tconst onSelectClick = (itemId: MrlTableItemId): void => {\n\t\t\ttrackInteraction({\n\t\t\t\taction: 'select',\n\t\t\t\tmetadata: { scope: selectedKeys.has(itemId) ? 'deselect-row' : 'select-row' },\n\t\t\t\tvariant: mode\n\t\t\t});\n\n\t\t\tif (mode === 'multiple') {\n\t\t\t\tselectedKeys.has(itemId) ? selectRemove(itemId) : selectAdd(itemId);\n\t\t\t} else if (mode === 'single') {\n\t\t\t\tselectedKeys.has(itemId) ? selectNone() : selectOne(itemId);\n\t\t\t}\n\t\t};\n\n\t\ttableHeaderSelectionColumn = (\n\t\t\t<MrlTableColumn\n\t\t\t\tid={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection')}\n\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tscope=\"col\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t>\n\t\t\t\t{selectionOptions.mode === 'multiple' && (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': 'Select all rows',\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'column', 'selection-select-all-checkbox'),\n\t\t\t\t\t\t\tonChange: onSelectAllClick\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tselected={isAllSelected ? 'checked' : isAnySelected ? 'indeterminate' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t\trowItemSelectionCell = ({ id, isSelectable = true }: MrlTableItem) => (\n\t\t\t<MrlTableCell\n\t\t\t\tid={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row-cell', 'selection', id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t>\n\t\t\t\t{isSelectable ? (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': `Select row with id: ${id}`,\n\t\t\t\t\t\t\t'data-qa': keyFor(dataQaPrefix, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tonChange: () => onSelectClick(id)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox')}\n\t\t\t\t\t\tselected={selectionOptions.selectedKeys.has(id) ? 'checked' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t) : undefined}\n\t\t\t</MrlTableCell>\n\t\t);\n\t}\n\n\tconst tableHeaderContent = (\n\t\t<>\n\t\t\t{tableHeaderSelectionColumn}\n\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\tconst { id, renderColumn } = column;\n\t\t\t\tconst ColumnContent = renderColumn ? renderColumn : DefaultColumnContent;\n\t\t\t\treturn (\n\t\t\t\t\t<ColumnContent\n\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', id)}\n\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\thandleSortClick={handleSortClick}\n\t\t\t\t\t\tsortDescriptor={sortDescriptor}\n\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n\n\tlet tableBodyContent: React.JSX.Element | React.JSX.Element[];\n\n\tif (enableVirtualization) {\n\t\tconst virtualRows = rowVirtualizer.getVirtualItems();\n\t\tconst paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n\t\tconst paddingBottom =\n\t\t\tvirtualRows.length > 0\n\t\t\t\t? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end\n\t\t\t\t: 0;\n\n\t\ttableBodyContent = (\n\t\t\t<>\n\t\t\t\t{paddingTop > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingTop }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t\t{virtualRows.map((virtualRow) => {\n\t\t\t\t\tconst item = memoizedItems[virtualRow.index];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MrlTableRow\n\t\t\t\t\t\t\tclassName={classNames({\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\t\t\t\titemId={item.id}\n\t\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\t\t\t\tkey={virtualRow.key}\n\t\t\t\t\t\t\tstyle={{ height: virtualRow.size }}\n\t\t\t\t\t\t\tref={item.rowRef}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\t\t\t\tconst CellContent = column.renderCell\n\t\t\t\t\t\t\t\t\t? column.renderCell\n\t\t\t\t\t\t\t\t\t: MemoizedDefaultCellContent;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</MrlTableRow>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{paddingBottom > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingBottom }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t} else {\n\t\ttableBodyContent = memoizedItems.map((item) => (\n\t\t\t<MrlTableRow\n\t\t\t\tclassName={classNames({\n\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t})}\n\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\titemId={item.id}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\tref={item.rowRef}\n\t\t\t>\n\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\tconst CellContent = column.renderCell ? column.renderCell : MemoizedDefaultCellContent;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</MrlTableRow>\n\t\t));\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MrlTable data-qa={dataQaPrefix} id={tableElementId} ref={tableRef} {...ariaProps}>\n\t\t\t\t<MrlTableHeader\n\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'header')}\n\t\t\t\t\tid={keyFor(tableElementId, 'header')}\n\t\t\t\t>\n\t\t\t\t\t{tableHeaderContent}\n\t\t\t\t</MrlTableHeader>\n\t\t\t\t<MrlTableBody data-qa={keyFor(dataQaPrefix, 'body')} id={keyFor(tableElementId, 'body')}>\n\t\t\t\t\t{memoizedItems.length === 0 ? (\n\t\t\t\t\t\t<EmptyStateWrapper visibleColumnCount={visibleColumnCount}>\n\t\t\t\t\t\t\t{emptyState}\n\t\t\t\t\t\t</EmptyStateWrapper>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttableBodyContent\n\t\t\t\t\t)}\n\t\t\t\t</MrlTableBody>\n\t\t\t</MrlTable>\n\t\t\t<MrlLiveRegion\n\t\t\t\tariaLive=\"assertive\"\n\t\t\t\tvisible={false}\n\t\t\t\tsrContent={srContent}\n\t\t\t\tshouldClearContent={true}\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"names":["ROW_HEIGHT_PX","sortItems","columns","items","sortDescriptor","sortColumn","find","col","id","column","console","error","concat","sortByRowContext","sortBy","sort","a","b","direction","sortComparator","sortAlphabeticallyAsCoercedStrings","aSortValue","bSortValue","EmptyStateWrapper","_ref","children","visibleColumnCount","React","createElement","role","colSpan","VisuallyHiddenAccessibleButton","props","horizontalAlign","rest","_objectWithoutProperties","_excluded","_extends","type","className","classNames","styles","DefaultColumnContent","_ref2","dataQaPrefix","tableElementId","handleSortClick","hasScrollShadowLeft","hasScrollShadowRight","allowsSorting","name","sticky","tooltip","elementId","keyFor","dataQa","columnProps","scope","memoizedTooltip","useMemo","MrlTooltip","anchor","position","text","tabIndex","MrlSvg","svg","info","size","tooltipContent","undefined","MrlTableColumn","currentDirection","nextDirection","nextSortDirection","onSortClick","onClick","sortText","sortIcon","MrlSmartTable","_props$dataQaPrefix","emptyStateText","_props$emptyState","emptyState","MrlTableEmptyState","selectionOptions","defaultSortDescriptor","customSortItems","_props$enableVirtuali","enableVirtualization","eventId","ariaProps","_excluded2","trackInteraction","useMrlTrackInteraction","idRef","useRef","getUniqueId","tableRef","_React$useState","useState","_React$useState2","_slicedToArray","scrollContainer","setScrollContainer","current","_React$useState3","_React$useState4","srContent","setSrContent","_React$useState5","_React$useState6","scrollShadowLeft","setScrollShadowLeft","_React$useState7","_React$useState8","scrollShadowRight","setScrollShadowRight","hasStickyLeftColumn","some","hasStickyRightColumn","useLayoutEffect","container","getScrollableContainer","scrollHandler","_hasHorizontalScroll","hasHorizontalScroll","hasScrollLeft","hasScrollRight","debouncedScrollHandler","debounce","observer","ResizeObserver","observe","document","addEventListener","removeEventListener","disconnect","length","_React$useState9","_React$useState0","setSortDescriptor","action","metadata","String","announcement","memoizedItems","rowVirtualizer","useVirtualizer","count","enabled","estimateSize","getItemKey","useCallback","index","getScrollElement","overscan","useAnimationFrameWithResizeObserver","tableHeaderSelectionColumn","rowItemSelectionCell","mode","onSelectionChange","selectedKeys","isAnySelected","isAllSelected","selectionColumnStickyValue","selectNone","Set","selectAll","filter","item","isSelectable","map","selectOne","itemId","selectAdd","selectRemove","keys","delete","onSelectAllClick","variant","onSelectClick","has","key","MrlCheckboxStandalone","attrs","onChange","selected","_ref3","_ref3$isSelectable","MrlTableCell","tableHeaderContent","Fragment","renderColumn","ColumnContent","tableBodyContent","virtualRows","getVirtualItems","paddingTop","start","paddingBottom","getTotalSize","end","style","height","virtualRow","_rowItemSelectionCell","MrlTableRow","isDisabled","ref","rowRef","CellContent","renderCell","MemoizedDefaultCellContent","_rowItemSelectionCell2","MrlTable","MrlTableHeader","MrlTableBody","MrlLiveRegion","ariaLive","visible","shouldClearContent"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var classnames = require('classnames');
|
|
6
6
|
var MrlTableRow_module = require('./MrlTableRow.module.scss.js');
|
|
7
7
|
var setAttributes = require('../../../utils/setAttributes/setAttributes.js');
|
|
8
|
+
var useMrlAnalytics = require('../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
|
|
@@ -29,7 +30,7 @@ function _interopNamespace(e) {
|
|
|
29
30
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
30
31
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
31
32
|
|
|
32
|
-
var _excluded = ["className", "itemId", "onClick"];
|
|
33
|
+
var _excluded = ["className", "itemId", "onClick", "eventId"];
|
|
33
34
|
var COMPONENT_NAME = 'MrlTableRow';
|
|
34
35
|
/**
|
|
35
36
|
* MrlTableRow Component
|
|
@@ -41,13 +42,22 @@ var MrlTableRow = /*#__PURE__*/React__namespace.forwardRef(function MrlTableRow(
|
|
|
41
42
|
var className = _ref.className,
|
|
42
43
|
itemId = _ref.itemId,
|
|
43
44
|
onClick = _ref.onClick,
|
|
45
|
+
eventId = _ref.eventId,
|
|
44
46
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
45
47
|
var id = rest.id;
|
|
46
48
|
var idRef = React__namespace.useRef(id || setAttributes.getUniqueId('mrl-table-row'));
|
|
47
49
|
var classes = classnames__default.default(className, COMPONENT_NAME, MrlTableRow_module.default[COMPONENT_NAME]);
|
|
50
|
+
var trackInteraction = useMrlAnalytics.useMrlTrackInteraction(COMPONENT_NAME, eventId);
|
|
51
|
+
var handleClick = e => {
|
|
52
|
+
// row content is consumer data and is never emitted.
|
|
53
|
+
trackInteraction({
|
|
54
|
+
action: 'click'
|
|
55
|
+
});
|
|
56
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
57
|
+
};
|
|
48
58
|
var handleKeyDown = e => {
|
|
49
59
|
if (e.key === 'Enter' && onClick) {
|
|
50
|
-
|
|
60
|
+
handleClick(e);
|
|
51
61
|
}
|
|
52
62
|
};
|
|
53
63
|
var getRef = element => {
|
|
@@ -66,7 +76,7 @@ var MrlTableRow = /*#__PURE__*/React__namespace.forwardRef(function MrlTableRow(
|
|
|
66
76
|
id: idRef.current,
|
|
67
77
|
ref: getRef
|
|
68
78
|
}, onClick && {
|
|
69
|
-
onClick,
|
|
79
|
+
onClick: handleClick,
|
|
70
80
|
onKeyDown: handleKeyDown,
|
|
71
81
|
tabIndex: 0
|
|
72
82
|
}, rest));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlTableRow.js","sources":["../../../../../src/components/table/MrlTableRow/MrlTableRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { getUniqueId } from '../../../utils';\n\nimport styles from './MrlTableRow.module.scss';\n\nconst COMPONENT_NAME = 'MrlTableRow';\n\nexport interface MrlTableRowProps extends React.ComponentPropsWithoutRef<'tr'> {\n\t/**\n\t * An element id (and if not provided, a unique value decorated\n\t * to prevent conflict with aria controls will be generated).\n\t *\n\t * @default `${id}-mrl-table-row`\n\t */\n\tid?: string;\n\t/**\n\t * Id of the MrlTableItem associated with the table row\n\t */\n\titemId?: string;\n\t/**\n\t *\n\t * Custom click handler to be used for mouse and keyboard selection of table row\n\t */\n\tonClick?: (e: React.MouseEvent<HTMLElement> | React.KeyboardEvent) => void;\n}\n\n/**\n * MrlTableRow Component\n *\n * @param {MrlTableRowProps} props - MrlTableRow component props\n * @returns a table row element\n */\nexport const MrlTableRow = React.forwardRef<Record<string, HTMLTableRowElement>, MrlTableRowProps>(\n\tfunction MrlTableRow(\n\t\t{ className, itemId, onClick, ...rest }: MrlTableRowProps,\n\t\tref\n\t): JSX.Element {\n\t\tconst { id } = rest;\n\t\tconst idRef = React.useRef<string>(id || getUniqueId('mrl-table-row'));\n\t\tconst classes = classnames(className, COMPONENT_NAME, styles[COMPONENT_NAME]);\n\n\t\tconst handleKeyDown = (e: React.KeyboardEvent) => {\n\t\t\tif (e.key === 'Enter' && onClick) {\n\t\t\t\
|
|
1
|
+
{"version":3,"file":"MrlTableRow.js","sources":["../../../../../src/components/table/MrlTableRow/MrlTableRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { getUniqueId } from '../../../utils';\nimport { useMrlTrackInteraction } from '../../../hooks/useMrlAnalytics';\n\nimport styles from './MrlTableRow.module.scss';\n\nconst COMPONENT_NAME = 'MrlTableRow';\n\nexport interface MrlTableRowProps extends React.ComponentPropsWithoutRef<'tr'> {\n\t/**\n\t * An element id (and if not provided, a unique value decorated\n\t * to prevent conflict with aria controls will be generated).\n\t *\n\t * @default `${id}-mrl-table-row`\n\t */\n\tid?: string;\n\t/**\n\t * Id of the MrlTableItem associated with the table row\n\t */\n\titemId?: string;\n\t/**\n\t *\n\t * Custom click handler to be used for mouse and keyboard selection of table row\n\t */\n\tonClick?: (e: React.MouseEvent<HTMLElement> | React.KeyboardEvent) => void;\n\t/**\n\t * Enables interaction tracking for this row. Provide a stable, non-PII id\n\t * (e.g. 'members-table-row'). When omitted, the row emits no analytics.\n\t *\n\t * Note: row content is never emitted.\n\t */\n\teventId?: string;\n}\n\n/**\n * MrlTableRow Component\n *\n * @param {MrlTableRowProps} props - MrlTableRow component props\n * @returns a table row element\n */\nexport const MrlTableRow = React.forwardRef<Record<string, HTMLTableRowElement>, MrlTableRowProps>(\n\tfunction MrlTableRow(\n\t\t{ className, itemId, onClick, eventId, ...rest }: MrlTableRowProps,\n\t\tref\n\t): JSX.Element {\n\t\tconst { id } = rest;\n\t\tconst idRef = React.useRef<string>(id || getUniqueId('mrl-table-row'));\n\t\tconst classes = classnames(className, COMPONENT_NAME, styles[COMPONENT_NAME]);\n\n\t\tconst trackInteraction = useMrlTrackInteraction(COMPONENT_NAME, eventId);\n\n\t\tconst handleClick = (e: React.MouseEvent<HTMLElement> | React.KeyboardEvent) => {\n\t\t\t// row content is consumer data and is never emitted.\n\t\t\ttrackInteraction({ action: 'click' });\n\n\t\t\tonClick?.(e);\n\t\t};\n\n\t\tconst handleKeyDown = (e: React.KeyboardEvent) => {\n\t\t\tif (e.key === 'Enter' && onClick) {\n\t\t\t\thandleClick(e);\n\t\t\t}\n\t\t};\n\n\t\tconst getRef = (element: HTMLTableRowElement | null) => {\n\t\t\tif (element && itemId) {\n\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\tref({ [itemId]: element });\n\t\t\t\t} else if (ref?.current) {\n\t\t\t\t\tref.current[itemId] = element;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<tr\n\t\t\t\tclassName={classes}\n\t\t\t\tid={idRef.current}\n\t\t\t\tref={getRef}\n\t\t\t\t{...(onClick && { onClick: handleClick, onKeyDown: handleKeyDown, tabIndex: 0 })}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t}\n);\n"],"names":["COMPONENT_NAME","MrlTableRow","React","forwardRef","_ref","ref","className","itemId","onClick","eventId","rest","_objectWithoutProperties","_excluded","id","idRef","useRef","getUniqueId","classes","classnames","styles","trackInteraction","useMrlTrackInteraction","handleClick","e","action","handleKeyDown","key","getRef","element","current","createElement","_extends","onKeyDown","tabIndex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,cAAc,GAAG,aAAa;AA4BpC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,WAAW,gBAAGC,gBAAK,CAACC,UAAU,CAC1C,SAASF,WAAWA,CAAAG,IAAA,EAEnBC,GAAG,EACW;AAAA,EAAA,IAFZC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAEC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAEC,OAAO,GAAAL,IAAA,CAAPK,OAAO;AAAKC,IAAAA,IAAI,GAAAC,iDAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA;AAG9C,EAAA,IAAQC,EAAE,GAAKH,IAAI,CAAXG,EAAE;AACV,EAAA,IAAMC,KAAK,GAAGZ,gBAAK,CAACa,MAAM,CAASF,EAAE,IAAIG,yBAAW,CAAC,eAAe,CAAC,CAAC;AACtE,EAAA,IAAMC,OAAO,GAAGC,2BAAU,CAACZ,SAAS,EAAEN,cAAc,EAAEmB,0BAAM,CAACnB,cAAc,CAAC,CAAC;AAE7E,EAAA,IAAMoB,gBAAgB,GAAGC,sCAAsB,CAACrB,cAAc,EAAES,OAAO,CAAC;EAExE,IAAMa,WAAW,GAAIC,CAAsD,IAAK;AAC/E;AACAH,IAAAA,gBAAgB,CAAC;AAAEI,MAAAA,MAAM,EAAE;AAAQ,KAAC,CAAC;AAErChB,IAAAA,OAAO,aAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAGe,CAAC,CAAC;EACb,CAAC;EAED,IAAME,aAAa,GAAIF,CAAsB,IAAK;AACjD,IAAA,IAAIA,CAAC,CAACG,GAAG,KAAK,OAAO,IAAIlB,OAAO,EAAE;MACjCc,WAAW,CAACC,CAAC,CAAC;AACf,IAAA;EACD,CAAC;EAED,IAAMI,MAAM,GAAIC,OAAmC,IAAK;IACvD,IAAIA,OAAO,IAAIrB,MAAM,EAAE;AACtB,MAAA,IAAI,OAAOF,GAAG,KAAK,UAAU,EAAE;AAC9BA,QAAAA,GAAG,CAAC;AAAE,UAAA,CAACE,MAAM,GAAGqB;AAAQ,SAAC,CAAC;MAC3B,CAAC,MAAM,IAAIvB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,IAAHA,GAAG,CAAEwB,OAAO,EAAE;AACxBxB,QAAAA,GAAG,CAACwB,OAAO,CAACtB,MAAM,CAAC,GAAGqB,OAAO;AAC9B,MAAA;AACD,IAAA;EACD,CAAC;AAED,EAAA,oBACC1B,gBAAA,CAAA4B,aAAA,CAAA,IAAA,EAAAC,iCAAA,CAAA;AACCzB,IAAAA,SAAS,EAAEW,OAAQ;IACnBJ,EAAE,EAAEC,KAAK,CAACe,OAAQ;AAClBxB,IAAAA,GAAG,EAAEsB;AAAO,GAAA,EACPnB,OAAO,IAAI;AAAEA,IAAAA,OAAO,EAAEc,WAAW;AAAEU,IAAAA,SAAS,EAAEP,aAAa;AAAEQ,IAAAA,QAAQ,EAAE;GAAG,EAC3EvB,IAAI,CACR,CAAC;AAEJ,CACD;;;;"}
|
|
@@ -5,6 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var classnames = require('classnames');
|
|
6
6
|
var MrlTab_module = require('./MrlTab.module.scss.js');
|
|
7
7
|
var MrlTabs = require('../MrlTabs/MrlTabs.js');
|
|
8
|
+
var useMrlAnalytics = require('../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
|
|
@@ -29,7 +30,7 @@ function _interopNamespace(e) {
|
|
|
29
30
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
30
31
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
31
32
|
|
|
32
|
-
var _excluded = ["className", "icon", "id", "hookClick", "text"];
|
|
33
|
+
var _excluded = ["className", "icon", "id", "hookClick", "text", "eventId"];
|
|
33
34
|
/**
|
|
34
35
|
* Renders a tab component
|
|
35
36
|
* @param {MrlTabProps} props the props for your MrlTab
|
|
@@ -41,10 +42,12 @@ var MrlTab = _ref => {
|
|
|
41
42
|
id = _ref.id,
|
|
42
43
|
hookClick = _ref.hookClick,
|
|
43
44
|
text = _ref.text,
|
|
45
|
+
eventId = _ref.eventId,
|
|
44
46
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
45
47
|
var _useMrlTabContext = MrlTabs.useMrlTabContext(),
|
|
46
48
|
activeTab = _useMrlTabContext.activeTab,
|
|
47
49
|
setActiveTab = _useMrlTabContext.setActiveTab;
|
|
50
|
+
var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlTab', eventId);
|
|
48
51
|
var active = activeTab === id;
|
|
49
52
|
var buttonClasses = classnames__default.default(className, 'mrl-tab', {
|
|
50
53
|
[MrlTab_module.default['MrlTab']]: true,
|
|
@@ -54,6 +57,12 @@ var MrlTab = _ref => {
|
|
|
54
57
|
[MrlTab_module.default['MrlTab-Text']]: true
|
|
55
58
|
});
|
|
56
59
|
var handleClick = id => {
|
|
60
|
+
trackInteraction({
|
|
61
|
+
action: 'select',
|
|
62
|
+
metadata: {
|
|
63
|
+
tabId: id
|
|
64
|
+
}
|
|
65
|
+
});
|
|
57
66
|
if (hookClick) {
|
|
58
67
|
hookClick();
|
|
59
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlTab.js","sources":["../../../../../src/components/tabs/MrlTab/MrlTab.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { useMrlTabContext } from '../../..';\n\n/** MrlTab and MrlTabLink share styles as they should look identical */\nimport styles from './MrlTab.module.scss';\n\nexport interface MrlTabProps extends React.ComponentProps<'button'> {\n\t/** Class to be applied to the button element of the MrlTab */\n\tclassName?: string;\n\ticon?: React.ReactElement;\n\t/**\n\t * The id that will be passed to the MrlTabContext to set the active state.\n\t * NOTE: This must match the `tabId` set on `MrlTabContent`!\n\t */\n\tid: string;\n\t/** An addition function to call when clicking on a tab */\n\thookClick?: () => void;\n\ttext: string;\n}\n\n/**\n * Renders a tab component\n * @param {MrlTabProps} props the props for your MrlTab\n * @returns {React.ReactElement} an a element containing the text you pass\n */\nexport const MrlTab = ({\n\tclassName,\n\ticon,\n\tid,\n\thookClick,\n\ttext,\n\t...rest\n}: MrlTabProps): React.ReactElement => {\n\tconst { activeTab, setActiveTab } = useMrlTabContext();\n\tconst active = activeTab === id;\n\tconst buttonClasses = classnames(className, 'mrl-tab', {\n\t\t[styles['MrlTab']]: true,\n\t\t[styles['MrlTab-selected']]: active\n\t});\n\n\tconst textClasses = classnames('mrl-tab--text', {\n\t\t[styles['MrlTab-Text']]: true\n\t});\n\n\tconst handleClick = (id: string) => {\n\t\tif (hookClick) {\n\t\t\thookClick();\n\t\t}\n\n\t\tsetActiveTab(id);\n\t};\n\n\treturn (\n\t\t<button\n\t\t\t{...rest}\n\t\t\taria-selected={active}\n\t\t\tclassName={buttonClasses}\n\t\t\tdata-qa={`${id}-tab`}\n\t\t\tdata-roving=\"true\"\n\t\t\tid={id}\n\t\t\tonClick={() => handleClick(id)}\n\t\t\trole=\"tab\"\n\t\t\ttabIndex={active ? 0 : -1}\n\t\t\ttype=\"button\"\n\t\t>\n\t\t\t{!!icon && <span className={styles['MrlTab-icon']}>{icon}</span>}\n\t\t\t<span className={textClasses}>{text}</span>\n\t\t</button>\n\t);\n};\n"],"names":["MrlTab","_ref","className","icon","id","hookClick","text","rest","_objectWithoutProperties","_excluded","_useMrlTabContext","useMrlTabContext","activeTab","setActiveTab","active","buttonClasses","classnames","styles","textClasses","handleClick","React","createElement","_extends","concat","onClick","role","tabIndex","type"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MrlTab.js","sources":["../../../../../src/components/tabs/MrlTab/MrlTab.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { useMrlTabContext } from '../../..';\nimport { useMrlTrackInteraction } from '../../../hooks/useMrlAnalytics';\n\n/** MrlTab and MrlTabLink share styles as they should look identical */\nimport styles from './MrlTab.module.scss';\n\nexport interface MrlTabProps extends React.ComponentProps<'button'> {\n\t/** Class to be applied to the button element of the MrlTab */\n\tclassName?: string;\n\ticon?: React.ReactElement;\n\t/**\n\t * The id that will be passed to the MrlTabContext to set the active state.\n\t * NOTE: This must match the `tabId` set on `MrlTabContent`!\n\t */\n\tid: string;\n\t/** An addition function to call when clicking on a tab */\n\thookClick?: () => void;\n\ttext: string;\n\t/**\n\t * Enables interaction tracking for this tab. Provide a stable, non-PII id\n\t * (e.g. 'settings-tabs'). When omitted, the tab emits no analytics.\n\t */\n\teventId?: string;\n}\n\n/**\n * Renders a tab component\n * @param {MrlTabProps} props the props for your MrlTab\n * @returns {React.ReactElement} an a element containing the text you pass\n */\nexport const MrlTab = ({\n\tclassName,\n\ticon,\n\tid,\n\thookClick,\n\ttext,\n\teventId,\n\t...rest\n}: MrlTabProps): React.ReactElement => {\n\tconst { activeTab, setActiveTab } = useMrlTabContext();\n\tconst trackInteraction = useMrlTrackInteraction('MrlTab', eventId);\n\tconst active = activeTab === id;\n\tconst buttonClasses = classnames(className, 'mrl-tab', {\n\t\t[styles['MrlTab']]: true,\n\t\t[styles['MrlTab-selected']]: active\n\t});\n\n\tconst textClasses = classnames('mrl-tab--text', {\n\t\t[styles['MrlTab-Text']]: true\n\t});\n\n\tconst handleClick = (id: string) => {\n\t\ttrackInteraction({ action: 'select', metadata: { tabId: id } });\n\n\t\tif (hookClick) {\n\t\t\thookClick();\n\t\t}\n\n\t\tsetActiveTab(id);\n\t};\n\n\treturn (\n\t\t<button\n\t\t\t{...rest}\n\t\t\taria-selected={active}\n\t\t\tclassName={buttonClasses}\n\t\t\tdata-qa={`${id}-tab`}\n\t\t\tdata-roving=\"true\"\n\t\t\tid={id}\n\t\t\tonClick={() => handleClick(id)}\n\t\t\trole=\"tab\"\n\t\t\ttabIndex={active ? 0 : -1}\n\t\t\ttype=\"button\"\n\t\t>\n\t\t\t{!!icon && <span className={styles['MrlTab-icon']}>{icon}</span>}\n\t\t\t<span className={textClasses}>{text}</span>\n\t\t</button>\n\t);\n};\n"],"names":["MrlTab","_ref","className","icon","id","hookClick","text","eventId","rest","_objectWithoutProperties","_excluded","_useMrlTabContext","useMrlTabContext","activeTab","setActiveTab","trackInteraction","useMrlTrackInteraction","active","buttonClasses","classnames","styles","textClasses","handleClick","action","metadata","tabId","React","createElement","_extends","concat","onClick","role","tabIndex","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,GAAGC,IAAA,IAQiB;AAAA,EAAA,IAPtCC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,EAAE,GAAAH,IAAA,CAAFG,EAAE;IACFC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IACJC,OAAO,GAAAN,IAAA,CAAPM,OAAO;AACJC,IAAAA,IAAI,GAAAC,iDAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA;AAEP,EAAA,IAAAC,iBAAA,GAAoCC,wBAAgB,EAAE;IAA9CC,SAAS,GAAAF,iBAAA,CAATE,SAAS;IAAEC,YAAY,GAAAH,iBAAA,CAAZG,YAAY;AAC/B,EAAA,IAAMC,gBAAgB,GAAGC,sCAAsB,CAAC,QAAQ,EAAET,OAAO,CAAC;AAClE,EAAA,IAAMU,MAAM,GAAGJ,SAAS,KAAKT,EAAE;AAC/B,EAAA,IAAMc,aAAa,GAAGC,2BAAU,CAACjB,SAAS,EAAE,SAAS,EAAE;AACtD,IAAA,CAACkB,qBAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;AACxB,IAAA,CAACA,qBAAM,CAAC,iBAAiB,CAAC,GAAGH;AAC9B,GAAC,CAAC;AAEF,EAAA,IAAMI,WAAW,GAAGF,2BAAU,CAAC,eAAe,EAAE;AAC/C,IAAA,CAACC,qBAAM,CAAC,aAAa,CAAC,GAAG;AAC1B,GAAC,CAAC;EAEF,IAAME,WAAW,GAAIlB,EAAU,IAAK;AACnCW,IAAAA,gBAAgB,CAAC;AAAEQ,MAAAA,MAAM,EAAE,QAAQ;AAAEC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,KAAK,EAAErB;AAAG;AAAE,KAAC,CAAC;AAE/D,IAAA,IAAIC,SAAS,EAAE;AACdA,MAAAA,SAAS,EAAE;AACZ,IAAA;IAEAS,YAAY,CAACV,EAAE,CAAC;EACjB,CAAC;AAED,EAAA,oBACCsB,gBAAA,CAAAC,aAAA,CAAA,QAAA,EAAAC,iCAAA,KACKpB,IAAI,EAAA;AACR,IAAA,eAAA,EAAeS,MAAO;AACtBf,IAAAA,SAAS,EAAEgB,aAAc;IACzB,SAAA,EAAA,EAAA,CAAAW,MAAA,CAAYzB,EAAE,EAAA,MAAA,CAAO;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBA,IAAAA,EAAE,EAAEA,EAAG;AACP0B,IAAAA,OAAO,EAAEA,MAAMR,WAAW,CAAClB,EAAE,CAAE;AAC/B2B,IAAAA,IAAI,EAAC,KAAK;AACVC,IAAAA,QAAQ,EAAEf,MAAM,GAAG,CAAC,GAAG,EAAG;AAC1BgB,IAAAA,IAAI,EAAC;AAAQ,GAAA,CAAA,EAEZ,CAAC,CAAC9B,IAAI,iBAAIuB,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMzB,SAAS,EAAEkB,qBAAM,CAAC,aAAa;AAAE,GAAA,EAAEjB,IAAW,CAAC,eAChEuB,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMzB,IAAAA,SAAS,EAAEmB;GAAY,EAAEf,IAAW,CACnC,CAAC;AAEX;;;;"}
|
|
@@ -5,6 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var classnames = require('classnames');
|
|
6
6
|
var reactRouterDom = require('react-router-dom');
|
|
7
7
|
var MrlTab_module = require('../MrlTab/MrlTab.module.scss.js');
|
|
8
|
+
var useMrlAnalytics = require('../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
|
|
8
9
|
var MrlTabs = require('../MrlTabs/MrlTabs.js');
|
|
9
10
|
|
|
10
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -30,7 +31,7 @@ function _interopNamespace(e) {
|
|
|
30
31
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
31
32
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
32
33
|
|
|
33
|
-
var _excluded = ["className", "children", "icon", "id", "hookClick", "text", "to"];
|
|
34
|
+
var _excluded = ["className", "children", "icon", "id", "hookClick", "text", "to", "eventId"];
|
|
34
35
|
/**
|
|
35
36
|
* Renders a tab component
|
|
36
37
|
*
|
|
@@ -45,10 +46,12 @@ var MrlTabLink = _ref => {
|
|
|
45
46
|
hookClick = _ref.hookClick,
|
|
46
47
|
text = _ref.text,
|
|
47
48
|
to = _ref.to,
|
|
49
|
+
eventId = _ref.eventId,
|
|
48
50
|
remainingProps = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
49
51
|
var _useMrlTabContext = MrlTabs.useMrlTabContext(),
|
|
50
52
|
activeTab = _useMrlTabContext.activeTab,
|
|
51
53
|
setActiveTab = _useMrlTabContext.setActiveTab;
|
|
54
|
+
var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlTabLink', eventId);
|
|
52
55
|
var active = activeTab === id;
|
|
53
56
|
var buttonClasses = classnames__default.default(className, 'mrl-tab', {
|
|
54
57
|
[MrlTab_module.default['MrlTab']]: true,
|
|
@@ -58,6 +61,12 @@ var MrlTabLink = _ref => {
|
|
|
58
61
|
[MrlTab_module.default['MrlTab-Text']]: true
|
|
59
62
|
});
|
|
60
63
|
var handleClick = id => {
|
|
64
|
+
trackInteraction({
|
|
65
|
+
action: 'select',
|
|
66
|
+
metadata: {
|
|
67
|
+
tabId: id
|
|
68
|
+
}
|
|
69
|
+
});
|
|
61
70
|
if (hookClick) {
|
|
62
71
|
hookClick();
|
|
63
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlTabLink.js","sources":["../../../../../src/components/tabs/MrlTabLink/MrlTabLink.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { NavLink, NavLinkProps } from 'react-router-dom';\nimport { useMrlTabContext } from '../../..';\n\n/** MrlTab and MrlTabLink share styles as they should look identical */\nimport styles from '../MrlTab/MrlTab.module.scss';\n\nexport interface MrlTabLinkProps extends NavLinkProps {\n\t/** Class to be applied to the NavLink element of the MrlTabLink */\n\tclassName?: string;\n\t/** Children to be rendered within the text component */\n\tchildren?: React.ReactNode;\n\ticon?: React.ReactElement;\n\t/**\n\t * The id that will be passed to the MrlTabContext to set the active state.\n\t * NOTE: This must match the `tabId` set on `MrlTabContent`!\n\t */\n\tid: string;\n\t/** An addition function to call when clicking on a tab */\n\thookClick?: () => void;\n\t/**\n\t * Textual content when it's a static string; if you have nested elements,\n\t * use children to provide content\n\t */\n\ttext?: string;\n}\n\n/**\n * Renders a tab component\n *\n * @param {MrlTabLinkProps} props the props for your MrlTabLink\n * @returns {React.ReactElement} an a element containing the text you pass\n */\nexport const MrlTabLink = ({\n\tclassName,\n\tchildren,\n\ticon,\n\tid,\n\thookClick,\n\ttext,\n\tto,\n\t...remainingProps\n}: MrlTabLinkProps): React.ReactElement => {\n\tconst { activeTab, setActiveTab } = useMrlTabContext();\n\tconst active = activeTab === id;\n\tconst buttonClasses = classnames(className, 'mrl-tab', {\n\t\t[styles['MrlTab']]: true,\n\t\t[styles['MrlTab-selected']]: active\n\t});\n\n\tconst textClasses = classnames('mrl-tab--text', {\n\t\t[styles['MrlTab-Text']]: true\n\t});\n\n\tconst handleClick = (id: string) => {\n\t\tif (hookClick) {\n\t\t\thookClick();\n\t\t}\n\n\t\tsetActiveTab(id);\n\t};\n\n\treturn (\n\t\t<NavLink\n\t\t\taria-selected={active}\n\t\t\tclassName={buttonClasses}\n\t\t\tdata-qa={`${id}-tab`}\n\t\t\tdata-roving=\"true\"\n\t\t\tid={id}\n\t\t\tonClick={() => handleClick(id)}\n\t\t\trole=\"tab\"\n\t\t\ttabIndex={active ? 0 : -1}\n\t\t\tto={to}\n\t\t\t{...remainingProps}\n\t\t>\n\t\t\t{!!icon && <span className={styles['MrlTab-icon']}>{icon}</span>}\n\t\t\t{!!text && <span className={textClasses}>{text}</span>}\n\t\t\t{!!children && <span className={textClasses}>{children}</span>}\n\t\t</NavLink>\n\t);\n};\n"],"names":["MrlTabLink","_ref","className","children","icon","id","hookClick","text","to","remainingProps","_objectWithoutProperties","_excluded","_useMrlTabContext","useMrlTabContext","activeTab","setActiveTab","active","buttonClasses","classnames","styles","textClasses","handleClick","React","createElement","NavLink","_extends","concat","onClick","role","tabIndex"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MrlTabLink.js","sources":["../../../../../src/components/tabs/MrlTabLink/MrlTabLink.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { NavLink, NavLinkProps } from 'react-router-dom';\nimport { useMrlTabContext } from '../../..';\nimport { useMrlTrackInteraction } from '../../../hooks/useMrlAnalytics';\n\n/** MrlTab and MrlTabLink share styles as they should look identical */\nimport styles from '../MrlTab/MrlTab.module.scss';\n\nexport interface MrlTabLinkProps extends NavLinkProps {\n\t/** Class to be applied to the NavLink element of the MrlTabLink */\n\tclassName?: string;\n\t/** Children to be rendered within the text component */\n\tchildren?: React.ReactNode;\n\ticon?: React.ReactElement;\n\t/**\n\t * The id that will be passed to the MrlTabContext to set the active state.\n\t * NOTE: This must match the `tabId` set on `MrlTabContent`!\n\t */\n\tid: string;\n\t/** An addition function to call when clicking on a tab */\n\thookClick?: () => void;\n\t/**\n\t * Textual content when it's a static string; if you have nested elements,\n\t * use children to provide content\n\t */\n\ttext?: string;\n\t/**\n\t * Enables interaction tracking for this tab. Provide a stable, non-PII id\n\t * (e.g. 'workspace-nav-tabs'). When omitted, the tab emits no analytics.\n\t */\n\teventId?: string;\n}\n\n/**\n * Renders a tab component\n *\n * @param {MrlTabLinkProps} props the props for your MrlTabLink\n * @returns {React.ReactElement} an a element containing the text you pass\n */\nexport const MrlTabLink = ({\n\tclassName,\n\tchildren,\n\ticon,\n\tid,\n\thookClick,\n\ttext,\n\tto,\n\teventId,\n\t...remainingProps\n}: MrlTabLinkProps): React.ReactElement => {\n\tconst { activeTab, setActiveTab } = useMrlTabContext();\n\tconst trackInteraction = useMrlTrackInteraction('MrlTabLink', eventId);\n\tconst active = activeTab === id;\n\tconst buttonClasses = classnames(className, 'mrl-tab', {\n\t\t[styles['MrlTab']]: true,\n\t\t[styles['MrlTab-selected']]: active\n\t});\n\n\tconst textClasses = classnames('mrl-tab--text', {\n\t\t[styles['MrlTab-Text']]: true\n\t});\n\n\tconst handleClick = (id: string) => {\n\t\ttrackInteraction({ action: 'select', metadata: { tabId: id } });\n\n\t\tif (hookClick) {\n\t\t\thookClick();\n\t\t}\n\n\t\tsetActiveTab(id);\n\t};\n\n\treturn (\n\t\t<NavLink\n\t\t\taria-selected={active}\n\t\t\tclassName={buttonClasses}\n\t\t\tdata-qa={`${id}-tab`}\n\t\t\tdata-roving=\"true\"\n\t\t\tid={id}\n\t\t\tonClick={() => handleClick(id)}\n\t\t\trole=\"tab\"\n\t\t\ttabIndex={active ? 0 : -1}\n\t\t\tto={to}\n\t\t\t{...remainingProps}\n\t\t>\n\t\t\t{!!icon && <span className={styles['MrlTab-icon']}>{icon}</span>}\n\t\t\t{!!text && <span className={textClasses}>{text}</span>}\n\t\t\t{!!children && <span className={textClasses}>{children}</span>}\n\t\t</NavLink>\n\t);\n};\n"],"names":["MrlTabLink","_ref","className","children","icon","id","hookClick","text","to","eventId","remainingProps","_objectWithoutProperties","_excluded","_useMrlTabContext","useMrlTabContext","activeTab","setActiveTab","trackInteraction","useMrlTrackInteraction","active","buttonClasses","classnames","styles","textClasses","handleClick","action","metadata","tabId","React","createElement","NavLink","_extends","concat","onClick","role","tabIndex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,UAAU,GAAGC,IAAA,IAUiB;AAAA,EAAA,IAT1CC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,EAAE,GAAAJ,IAAA,CAAFI,EAAE;IACFC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,IAAI,GAAAN,IAAA,CAAJM,IAAI;IACJC,EAAE,GAAAP,IAAA,CAAFO,EAAE;IACFC,OAAO,GAAAR,IAAA,CAAPQ,OAAO;AACJC,IAAAA,cAAc,GAAAC,iDAAA,CAAAV,IAAA,EAAAW,SAAA,CAAA;AAEjB,EAAA,IAAAC,iBAAA,GAAoCC,wBAAgB,EAAE;IAA9CC,SAAS,GAAAF,iBAAA,CAATE,SAAS;IAAEC,YAAY,GAAAH,iBAAA,CAAZG,YAAY;AAC/B,EAAA,IAAMC,gBAAgB,GAAGC,sCAAsB,CAAC,YAAY,EAAET,OAAO,CAAC;AACtE,EAAA,IAAMU,MAAM,GAAGJ,SAAS,KAAKV,EAAE;AAC/B,EAAA,IAAMe,aAAa,GAAGC,2BAAU,CAACnB,SAAS,EAAE,SAAS,EAAE;AACtD,IAAA,CAACoB,qBAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;AACxB,IAAA,CAACA,qBAAM,CAAC,iBAAiB,CAAC,GAAGH;AAC9B,GAAC,CAAC;AAEF,EAAA,IAAMI,WAAW,GAAGF,2BAAU,CAAC,eAAe,EAAE;AAC/C,IAAA,CAACC,qBAAM,CAAC,aAAa,CAAC,GAAG;AAC1B,GAAC,CAAC;EAEF,IAAME,WAAW,GAAInB,EAAU,IAAK;AACnCY,IAAAA,gBAAgB,CAAC;AAAEQ,MAAAA,MAAM,EAAE,QAAQ;AAAEC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,KAAK,EAAEtB;AAAG;AAAE,KAAC,CAAC;AAE/D,IAAA,IAAIC,SAAS,EAAE;AACdA,MAAAA,SAAS,EAAE;AACZ,IAAA;IAEAU,YAAY,CAACX,EAAE,CAAC;EACjB,CAAC;AAED,EAAA,oBACCuB,gBAAA,CAAAC,aAAA,CAACC,sBAAO,EAAAC,iCAAA,CAAA;AACP,IAAA,eAAA,EAAeZ,MAAO;AACtBjB,IAAAA,SAAS,EAAEkB,aAAc;IACzB,SAAA,EAAA,EAAA,CAAAY,MAAA,CAAY3B,EAAE,EAAA,MAAA,CAAO;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBA,IAAAA,EAAE,EAAEA,EAAG;AACP4B,IAAAA,OAAO,EAAEA,MAAMT,WAAW,CAACnB,EAAE,CAAE;AAC/B6B,IAAAA,IAAI,EAAC,KAAK;AACVC,IAAAA,QAAQ,EAAEhB,MAAM,GAAG,CAAC,GAAG,EAAG;AAC1BX,IAAAA,EAAE,EAAEA;GAAG,EACHE,cAAc,GAEjB,CAAC,CAACN,IAAI,iBAAIwB,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAM3B,SAAS,EAAEoB,qBAAM,CAAC,aAAa;GAAE,EAAElB,IAAW,CAAC,EAC/D,CAAC,CAACG,IAAI,iBAAIqB,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM3B,IAAAA,SAAS,EAAEqB;GAAY,EAAEhB,IAAW,CAAC,EACrD,CAAC,CAACJ,QAAQ,iBAAIyB,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM3B,IAAAA,SAAS,EAAEqB;GAAY,EAAEpB,QAAe,CACrD,CAAC;AAEZ;;;;"}
|
|
@@ -4,6 +4,7 @@ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHel
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var MrlToolbarButton_module = require('./MrlToolbarButton.module.scss.js');
|
|
6
6
|
var classnames = require('classnames');
|
|
7
|
+
var useMrlAnalytics = require('../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
|
|
7
8
|
var MrlMenuItem = require('../../menu/MrlMenuItem/MrlMenuItem.js');
|
|
8
9
|
var MrlIconButton = require('../../button/MrlIconButton/MrlIconButton.js');
|
|
9
10
|
|
|
@@ -30,7 +31,7 @@ function _interopNamespace(e) {
|
|
|
30
31
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
31
32
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
32
33
|
|
|
33
|
-
var _excluded = ["className", "icon", "includeInRoving", "menuItemProps", "onClick", "qa", "renderInMenu", "text", "toolbarButtonProps"];
|
|
34
|
+
var _excluded = ["className", "icon", "includeInRoving", "menuItemProps", "onClick", "qa", "renderInMenu", "text", "toolbarButtonProps", "eventId"];
|
|
34
35
|
|
|
35
36
|
/**
|
|
36
37
|
* Props for the MrlToolbarButton component.
|
|
@@ -57,13 +58,28 @@ var MrlToolbarButton = /*#__PURE__*/React__namespace.forwardRef(function MrlTool
|
|
|
57
58
|
size: 'small',
|
|
58
59
|
state: 'default'
|
|
59
60
|
} : _props$toolbarButtonP,
|
|
61
|
+
eventId = props.eventId,
|
|
60
62
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
|
|
61
63
|
var classes = classnames__default.default('MrlToolbarButton', className);
|
|
64
|
+
var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlToolbarButton', eventId);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Handle onClick events
|
|
68
|
+
*
|
|
69
|
+
* @param {React.MouseEvent<HTMLButtonElement>} e - mouse event
|
|
70
|
+
*/
|
|
71
|
+
var handleOnClick = e => {
|
|
72
|
+
trackInteraction({
|
|
73
|
+
action: 'click',
|
|
74
|
+
variant: renderInMenu ? 'menu' : 'toolbar'
|
|
75
|
+
});
|
|
76
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
77
|
+
};
|
|
62
78
|
if (renderInMenu) {
|
|
63
79
|
return /*#__PURE__*/React__namespace.createElement(MrlMenuItem.MrlMenuItem, _rollupPluginBabelHelpers.extends({}, menuItemProps, {
|
|
64
80
|
className: classes,
|
|
65
81
|
"data-qa": qa,
|
|
66
|
-
onClick:
|
|
82
|
+
onClick: handleOnClick
|
|
67
83
|
}), /*#__PURE__*/React__namespace.createElement("span", {
|
|
68
84
|
className: MrlToolbarButton_module.default.MrlToolbarButtonIcon
|
|
69
85
|
}, icon), text);
|
|
@@ -73,7 +89,7 @@ var MrlToolbarButton = /*#__PURE__*/React__namespace.forwardRef(function MrlTool
|
|
|
73
89
|
"data-qa": qa,
|
|
74
90
|
"data-roving": includeInRoving ? 'true' : undefined,
|
|
75
91
|
icon: icon,
|
|
76
|
-
onClick:
|
|
92
|
+
onClick: handleOnClick,
|
|
77
93
|
ref: ref,
|
|
78
94
|
text: text
|
|
79
95
|
}));
|