@gooddata/sdk-ui-dashboard 10.19.0-alpha.9 → 10.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.d.ts.map +1 -1
- package/esm/__version.js +1 -1
- package/esm/__version.js.map +1 -1
- package/esm/_staging/automation/index.d.ts +1 -0
- package/esm/_staging/automation/index.d.ts.map +1 -1
- package/esm/_staging/automation/index.js +14 -1
- package/esm/_staging/automation/index.js.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/interfaces.d.ts +81 -0
- package/esm/_staging/dashboard/flexibleLayout/builder/interfaces.d.ts.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/item.d.ts +4 -3
- package/esm/_staging/dashboard/flexibleLayout/builder/item.d.ts.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/item.js +12 -4
- package/esm/_staging/dashboard/flexibleLayout/builder/item.js.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/layout.d.ts +14 -10
- package/esm/_staging/dashboard/flexibleLayout/builder/layout.d.ts.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/layout.js +160 -50
- package/esm/_staging/dashboard/flexibleLayout/builder/layout.js.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/section.d.ts +0 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/section.d.ts.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/builder/section.js +1 -5
- package/esm/_staging/dashboard/flexibleLayout/builder/section.js.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/facade/interfaces.d.ts +2 -1
- package/esm/_staging/dashboard/flexibleLayout/facade/interfaces.d.ts.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/facade/layout.d.ts +2 -1
- package/esm/_staging/dashboard/flexibleLayout/facade/layout.d.ts.map +1 -1
- package/esm/_staging/dashboard/flexibleLayout/facade/layout.js +18 -2
- package/esm/_staging/dashboard/flexibleLayout/facade/layout.js.map +1 -1
- package/esm/_staging/layout/coordinates.d.ts +1 -1
- package/esm/_staging/layout/coordinates.d.ts.map +1 -1
- package/esm/_staging/layout/coordinates.js +4 -5
- package/esm/_staging/layout/coordinates.js.map +1 -1
- package/esm/_staging/layout/sizing.d.ts +16 -7
- package/esm/_staging/layout/sizing.d.ts.map +1 -1
- package/esm/_staging/layout/sizing.js +108 -57
- package/esm/_staging/layout/sizing.js.map +1 -1
- package/esm/model/commandHandlers/layout/addLayoutSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/addLayoutSectionHandler.js +6 -2
- package/esm/model/commandHandlers/layout/addLayoutSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/addSectionItemsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/addSectionItemsHandler.js +3 -1
- package/esm/model/commandHandlers/layout/addSectionItemsHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/containerHeightSanitization.d.ts +10 -0
- package/esm/model/commandHandlers/layout/containerHeightSanitization.d.ts.map +1 -0
- package/esm/model/commandHandlers/layout/containerHeightSanitization.js +82 -0
- package/esm/model/commandHandlers/layout/containerHeightSanitization.js.map +1 -0
- package/esm/model/commandHandlers/layout/moveLayoutSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/moveLayoutSectionHandler.js +5 -2
- package/esm/model/commandHandlers/layout/moveLayoutSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemHandler.js +5 -2
- package/esm/model/commandHandlers/layout/moveSectionItemHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.js +6 -3
- package/esm/model/commandHandlers/layout/moveSectionItemToNewSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/removeLayoutSectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/removeLayoutSectionHandler.js +4 -2
- package/esm/model/commandHandlers/layout/removeLayoutSectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.js +4 -1
- package/esm/model/commandHandlers/layout/removeSectionItemHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/replaceSectionItemHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/replaceSectionItemHandler.js +3 -1
- package/esm/model/commandHandlers/layout/replaceSectionItemHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/resizeHeightHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/resizeHeightHandler.js +15 -10
- package/esm/model/commandHandlers/layout/resizeHeightHandler.js.map +1 -1
- package/esm/model/commandHandlers/layout/resizeWidthHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/layout/resizeWidthHandler.js +10 -6
- package/esm/model/commandHandlers/layout/resizeWidthHandler.js.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +60 -15
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js.map +1 -1
- package/esm/model/events/index.d.ts +4 -4
- package/esm/model/events/index.d.ts.map +1 -1
- package/esm/model/events/index.js +1 -1
- package/esm/model/events/index.js.map +1 -1
- package/esm/model/index.d.ts +1 -1
- package/esm/model/index.d.ts.map +1 -1
- package/esm/model/index.js +1 -1
- package/esm/model/index.js.map +1 -1
- package/esm/model/react/useDashboardCommand.d.ts +1 -1
- package/esm/model/react/useDashboardCommand.d.ts.map +1 -1
- package/esm/model/react/useDashboardCommandProcessing.d.ts +4 -0
- package/esm/model/react/useDashboardCommandProcessing.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.d.ts +7 -3
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +10 -4
- package/esm/model/store/config/configSelectors.js.map +1 -1
- package/esm/model/store/index.d.ts +1 -1
- package/esm/model/store/index.d.ts.map +1 -1
- package/esm/model/store/index.js +1 -1
- package/esm/model/store/index.js.map +1 -1
- package/esm/model/store/layout/index.d.ts +6 -0
- package/esm/model/store/layout/index.d.ts.map +1 -1
- package/esm/model/store/layout/layoutReducers.d.ts +5 -1
- package/esm/model/store/layout/layoutReducers.d.ts.map +1 -1
- package/esm/model/store/layout/layoutReducers.js +19 -0
- package/esm/model/store/layout/layoutReducers.js.map +1 -1
- package/esm/model/store/layout/layoutSelectors.d.ts.map +1 -1
- package/esm/model/store/layout/layoutSelectors.js +29 -15
- package/esm/model/store/layout/layoutSelectors.js.map +1 -1
- package/esm/model/types/commonTypes.d.ts +33 -4
- package/esm/model/types/commonTypes.d.ts.map +1 -1
- package/esm/model/types/commonTypes.js.map +1 -1
- package/esm/model/types/layoutTypes.d.ts +10 -0
- package/esm/model/types/layoutTypes.d.ts.map +1 -1
- package/esm/model/types/layoutTypes.js +1 -1
- package/esm/model/types/layoutTypes.js.map +1 -1
- package/esm/plugins/customizationApis/fluidLayoutCustomizer.d.ts +5 -2
- package/esm/plugins/customizationApis/fluidLayoutCustomizer.d.ts.map +1 -1
- package/esm/plugins/customizationApis/fluidLayoutCustomizer.js +40 -19
- package/esm/plugins/customizationApis/fluidLayoutCustomizer.js.map +1 -1
- package/esm/plugins/customizer.d.ts +34 -1
- package/esm/plugins/customizer.d.ts.map +1 -1
- package/esm/presentation/dragAndDrop/types.d.ts +1 -0
- package/esm/presentation/dragAndDrop/types.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.d.ts +1 -1
- package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +15 -3
- package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js.map +1 -1
- package/esm/presentation/flexibleLayout/DashboardLayoutWidget.d.ts +1 -1
- package/esm/presentation/flexibleLayout/DashboardLayoutWidget.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DashboardLayoutWidget.js +12 -6
- package/esm/presentation/flexibleLayout/DashboardLayoutWidget.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayout.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayout.js +5 -4
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayout.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutEditSectionHeaderRenderer.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutEditSectionHeaderRenderer.js +5 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutEditSectionHeaderRenderer.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRow.d.ts +1 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRow.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRow.js +3 -3
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRow.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRowEdit.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRowEdit.js +5 -3
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRowEdit.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItem.d.ts +1 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItem.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItem.js +3 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItem.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItemRenderer.js +3 -3
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItemRenderer.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItemViewRenderer.js +2 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutItemViewRenderer.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.js +5 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderRenderer.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderRenderer.js +5 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderRenderer.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutViewSectionHeaderRenderer.js +2 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutViewSectionHeaderRenderer.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/EditableHeader/SectionHeaderEditable.js +2 -2
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/EditableHeader/SectionHeaderEditable.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.d.ts +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.js +8 -7
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/GridLayoutElement.js.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/interfaces.d.ts +8 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/interfaces.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/useItemWidthValidation.d.ts +7 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/useItemWidthValidation.d.ts.map +1 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/useItemWidthValidation.js +18 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/useItemWidthValidation.js.map +1 -0
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/utils/sizing.d.ts +0 -9
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/utils/sizing.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/utils/sizing.js +2 -33
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/utils/sizing.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/DragLayerPreview/WidthResizerDragPreview.d.ts +0 -12
- package/esm/presentation/flexibleLayout/dragAndDrop/DragLayerPreview/WidthResizerDragPreview.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/DragLayerPreview/WidthResizerDragPreview.js +2 -4
- package/esm/presentation/flexibleLayout/dragAndDrop/DragLayerPreview/WidthResizerDragPreview.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.d.ts +4 -3
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.js +9 -7
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.d.ts +2 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.js +7 -7
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/WidthResizerHotspot.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/EmptyNestedLayoutDropZone.d.ts +3 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/EmptyNestedLayoutDropZone.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/EmptyNestedLayoutDropZone.js +13 -5
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/EmptyNestedLayoutDropZone.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.d.ts +1 -0
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.js +2 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/RowEndHotspot.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZone.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZone.js +4 -3
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZone.js.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneBox.d.ts +1 -0
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneBox.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneBox.js +17 -4
- package/esm/presentation/flexibleLayout/dragAndDrop/draggableWidget/WidgetDropZoneBox.js.map +1 -1
- package/esm/presentation/layout/DashboardLayoutWidget.js +2 -2
- package/esm/presentation/layout/DashboardLayoutWidget.js.map +1 -1
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRowEdit.d.ts.map +1 -1
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRowEdit.js +4 -2
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/DashboardLayoutGridRowEdit.js.map +1 -1
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/utils/sizing.d.ts +0 -8
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/utils/sizing.d.ts.map +1 -1
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/utils/sizing.js +2 -2
- package/esm/presentation/layout/DefaultDashboardLayoutRenderer/utils/sizing.js.map +1 -1
- package/esm/presentation/layout/dragAndDrop/Resize/HeightResizerHotspot.d.ts +4 -3
- package/esm/presentation/layout/dragAndDrop/Resize/HeightResizerHotspot.d.ts.map +1 -1
- package/esm/presentation/layout/dragAndDrop/Resize/HeightResizerHotspot.js +9 -7
- package/esm/presentation/layout/dragAndDrop/Resize/HeightResizerHotspot.js.map +1 -1
- package/esm/presentation/layout/dragAndDrop/Resize/WidthResizerHotspot.d.ts.map +1 -1
- package/esm/presentation/layout/dragAndDrop/Resize/WidthResizerHotspot.js +3 -2
- package/esm/presentation/layout/dragAndDrop/Resize/WidthResizerHotspot.js.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.json +5 -1
- package/esm/presentation/localization/bundles/en-AU.json +5 -1
- package/esm/presentation/localization/bundles/en-GB.json +5 -1
- package/esm/presentation/localization/bundles/en-US.json +20 -0
- package/esm/presentation/localization/bundles/es-419.json +5 -1
- package/esm/presentation/localization/bundles/es-ES.json +5 -1
- package/esm/presentation/localization/bundles/fi-FI.json +5 -1
- package/esm/presentation/localization/bundles/fr-CA.json +5 -1
- package/esm/presentation/localization/bundles/fr-FR.json +5 -1
- package/esm/presentation/localization/bundles/it-IT.json +5 -1
- package/esm/presentation/localization/bundles/ja-JP.json +5 -1
- package/esm/presentation/localization/bundles/nl-NL.json +5 -1
- package/esm/presentation/localization/bundles/pt-BR.json +5 -1
- package/esm/presentation/localization/bundles/pt-PT.json +5 -1
- package/esm/presentation/localization/bundles/zh-HK.json +5 -1
- package/esm/presentation/localization/bundles/zh-Hans.json +5 -1
- package/esm/presentation/localization/bundles/zh-Hant.json +5 -1
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.d.ts +1 -0
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.d.ts.map +1 -1
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.js +5 -4
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +2 -2
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.d.ts +8 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js +10 -24
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts +8 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js +51 -22
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +2 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +13 -4
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/utils/users.d.ts +5 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/utils/users.d.ts.map +1 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/utils/users.js +35 -0
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/utils/users.js.map +1 -0
- package/esm/presentation/widget/common/useWidgetHighlighting.d.ts +7 -0
- package/esm/presentation/widget/common/useWidgetHighlighting.d.ts.map +1 -0
- package/esm/presentation/widget/common/useWidgetHighlighting.js +66 -0
- package/esm/presentation/widget/common/useWidgetHighlighting.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.d.ts +4 -4
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.js +2 -4
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js +15 -5
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.d.ts +2 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.js +54 -3
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts +2 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js +41 -33
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useThresholdValue.d.ts +11 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useThresholdValue.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useThresholdValue.js +40 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useThresholdValue.js.map +1 -0
- package/esm/presentation/widget/widget/DefaultDashboardWidget.d.ts.map +1 -1
- package/esm/presentation/widget/widget/DefaultDashboardWidget.js +32 -36
- package/esm/presentation/widget/widget/DefaultDashboardWidget.js.map +1 -1
- package/esm/presentation/widget/widget/InsightWidget/DefaultDashboardInsightWidget.d.ts.map +1 -1
- package/esm/presentation/widget/widget/InsightWidget/DefaultDashboardInsightWidget.js +6 -22
- package/esm/presentation/widget/widget/InsightWidget/DefaultDashboardInsightWidget.js.map +1 -1
- package/esm/presentation/widget/widget/RichTextWidget/DefaultDashboardRichTextWidget.d.ts.map +1 -1
- package/esm/presentation/widget/widget/RichTextWidget/DefaultDashboardRichTextWidget.js +6 -2
- package/esm/presentation/widget/widget/RichTextWidget/DefaultDashboardRichTextWidget.js.map +1 -1
- package/esm/presentation/widget/widget/VisualizationSwitcherWidget/DefaultDashboardVisualizationSwitcherWidget.d.ts.map +1 -1
- package/esm/presentation/widget/widget/VisualizationSwitcherWidget/DefaultDashboardVisualizationSwitcherWidget.js +6 -2
- package/esm/presentation/widget/widget/VisualizationSwitcherWidget/DefaultDashboardVisualizationSwitcherWidget.js.map +1 -1
- package/esm/presentation/widget/widget/types.d.ts +10 -0
- package/esm/presentation/widget/widget/types.d.ts.map +1 -1
- package/esm/sdk-ui-dashboard.d.ts +173 -15
- package/package.json +15 -15
- package/styles/css/dashboard.css +21 -7
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/dashboardNestedLayoutWidget.css +3 -0
- package/styles/css/dashboardNestedLayoutWidget.css.map +1 -1
- package/styles/css/dragAndDrop.css +10 -0
- package/styles/css/dragAndDrop.css.map +1 -1
- package/styles/css/export.css +10 -4
- package/styles/css/export.css.map +1 -1
- package/styles/css/layout.css +4 -0
- package/styles/css/layout.css.map +1 -1
- package/styles/css/main.css +46 -13
- package/styles/css/main.css.map +1 -1
- package/styles/css/resizing.css +2 -2
- package/styles/css/scheduled_mail_recipients.css +14 -4
- package/styles/css/scheduled_mail_recipients.css.map +1 -1
- package/styles/scss/_zIndexes.scss +2 -0
- package/styles/scss/dashboard.scss +3 -3
- package/styles/scss/dashboardNestedLayoutWidget.scss +4 -0
- package/styles/scss/dragAndDrop.scss +14 -0
- package/styles/scss/export.scss +23 -4
- package/styles/scss/layout.scss +6 -0
- package/styles/scss/resizing.scss +2 -2
- package/styles/scss/scheduled_mail_recipients.scss +5 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IWidget } from "@gooddata/sdk-model";
|
|
3
|
+
export declare const useWidgetHighlighting: (widget: IWidget) => {
|
|
4
|
+
elementRef: import("react").RefObject<HTMLDivElement>;
|
|
5
|
+
highlighted: boolean;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=useWidgetHighlighting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetHighlighting.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/common/useWidgetHighlighting.ts"],"names":[],"mappings":";AAEA,OAAO,EAAkD,OAAO,EAAkB,MAAM,qBAAqB,CAAC;AA8D9G,eAAO,MAAM,qBAAqB,WAAY,OAAO;;;CA8BpD,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { isInsightWidget, isVisualizationSwitcherWidget, objRefToString } from "@gooddata/sdk-model";
|
|
3
|
+
import { selectDashboardUserAutomations, selectFocusObject, selectIsDashboardExecuted, selectWidgets, useDashboardSelector, } from "../../../model/index.js";
|
|
4
|
+
import { createSelector } from "@reduxjs/toolkit";
|
|
5
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
6
|
+
const selectIsWidgetHighlighted = (widget) => createSelector(selectFocusObject, selectDashboardUserAutomations, selectIsDashboardExecuted, selectWidgets, (dashboardFocusObject, automations, dashboardExecuted, widgets) => {
|
|
7
|
+
const { automationId, widgetId, visualizationId } = dashboardFocusObject;
|
|
8
|
+
const isAutomationContext = !!automationId &&
|
|
9
|
+
automations?.some((a) => a.id === automationId && a.metadata?.widget === widget.identifier);
|
|
10
|
+
const isCurrentWidget = widget.identifier === widgetId;
|
|
11
|
+
const isWidgetInsideVisualizationSwitcher = isVisualizationSwitcherWidget(widget) &&
|
|
12
|
+
widget.visualizations.some((v) => v.identifier === widgetId);
|
|
13
|
+
const isWidgetContext = isCurrentWidget || isWidgetInsideVisualizationSwitcher;
|
|
14
|
+
// Specific visualization may be repeatedly found in widgets, so we only take the first one
|
|
15
|
+
const firstWidgetWithVisualization = widgets.find((w) => {
|
|
16
|
+
if (isInsightWidget(w)) {
|
|
17
|
+
return objRefToString(w.insight) === visualizationId;
|
|
18
|
+
}
|
|
19
|
+
else if (isVisualizationSwitcherWidget(w)) {
|
|
20
|
+
return w.visualizations.some((v) => objRefToString(v.insight) === visualizationId);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const isVisualizationContext = visualizationId && firstWidgetWithVisualization?.identifier === widget.identifier;
|
|
27
|
+
// Do not highlight widget if dashboard is already executed to avoid repeating event when switching dashboard modes
|
|
28
|
+
return !dashboardExecuted && (isAutomationContext || isWidgetContext || isVisualizationContext);
|
|
29
|
+
});
|
|
30
|
+
const useOutsideClick = (ref, callbackFn) => {
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
const handleClickOutside = (event) => {
|
|
33
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
34
|
+
callbackFn();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
38
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
39
|
+
}, [ref, callbackFn]);
|
|
40
|
+
};
|
|
41
|
+
export const useWidgetHighlighting = (widget) => {
|
|
42
|
+
const { automationId, widgetId, visualizationId } = useDashboardSelector(selectFocusObject);
|
|
43
|
+
const isHighlighted = useDashboardSelector(selectIsWidgetHighlighted(widget));
|
|
44
|
+
const [keepHighlight, setKeepHighlight] = useState(false);
|
|
45
|
+
const elementRef = useRef(null);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (isHighlighted && !keepHighlight) {
|
|
48
|
+
// We only want to scroll to element when one context property is specified at a time
|
|
49
|
+
const shouldScrollTo = [automationId, widgetId, visualizationId].filter(Boolean).length === 1;
|
|
50
|
+
if (elementRef.current && shouldScrollTo) {
|
|
51
|
+
elementRef.current.scrollIntoView({ behavior: "smooth", block: "center" });
|
|
52
|
+
}
|
|
53
|
+
setKeepHighlight(true);
|
|
54
|
+
}
|
|
55
|
+
// We intentionally exclude keepHighlight
|
|
56
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
57
|
+
}, [isHighlighted, automationId, visualizationId, widgetId]);
|
|
58
|
+
// Remove highlight on outside click
|
|
59
|
+
const removeHighlight = useCallback(() => setKeepHighlight(false), []);
|
|
60
|
+
useOutsideClick(elementRef, removeHighlight);
|
|
61
|
+
return {
|
|
62
|
+
elementRef,
|
|
63
|
+
highlighted: keepHighlight,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=useWidgetHighlighting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetHighlighting.js","sourceRoot":"","sources":["../../../../src/presentation/widget/common/useWidgetHighlighting.ts"],"names":[],"mappings":"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"}
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ICatalogAttribute, ICatalogDateDataset } from "@gooddata/sdk-model";
|
|
2
|
+
import { IAttributeMetadataObject, ICatalogAttribute, ICatalogDateDataset } from "@gooddata/sdk-model";
|
|
3
3
|
import { AlertAttribute } from "../../types.js";
|
|
4
|
-
import { IExecutionResultEnvelope } from "../../../../../model/index.js";
|
|
5
4
|
import { AttributeValue } from "./hooks/useAttributeValuesFromExecResults.js";
|
|
6
5
|
export interface IAlertAttributeSelectProps {
|
|
7
|
-
execResult: IExecutionResultEnvelope | undefined;
|
|
8
6
|
selectedAttribute: AlertAttribute | undefined;
|
|
9
7
|
selectedValue: string | null | undefined;
|
|
10
8
|
onAttributeChange: (attribute: AlertAttribute | undefined, value: AttributeValue | undefined) => void;
|
|
11
9
|
attributes: AlertAttribute[];
|
|
12
10
|
catalogAttributes: ICatalogAttribute[];
|
|
13
11
|
catalogDateDatasets: ICatalogDateDataset[];
|
|
12
|
+
getAttributeValues: (attr: IAttributeMetadataObject) => AttributeValue[];
|
|
13
|
+
isResultLoading?: boolean;
|
|
14
14
|
}
|
|
15
|
-
export declare const AlertAttributeSelect: ({ selectedAttribute: selectedAttributeProp,
|
|
15
|
+
export declare const AlertAttributeSelect: ({ selectedAttribute: selectedAttributeProp, getAttributeValues, isResultLoading, selectedValue, onAttributeChange, attributes, catalogAttributes, catalogDateDatasets, }: IAlertAttributeSelectProps) => React.JSX.Element | null;
|
|
16
16
|
//# sourceMappingURL=AlertAttributeSelect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertAttributeSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAYzD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertAttributeSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAYzD,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAG9E,MAAM,WAAW,0BAA0B;IACvC,iBAAiB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,iBAAiB,EAAE,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC;IACtG,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,cAAc,EAAE,CAAC;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,oBAAoB,6KAS9B,0BAA0B,6BAgP5B,CAAC"}
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
// (C) 2019-
|
|
1
|
+
// (C) 2019-2025 GoodData Corporation
|
|
2
2
|
import React, { useMemo, useRef, useState } from "react";
|
|
3
3
|
import { Button, Menu, ItemsWrapper, Item, SubMenu, Separator, InvertableSelectSearchBar, } from "@gooddata/sdk-ui-kit";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
6
6
|
import { DASHBOARD_DIALOG_OVERS_Z_INDEX, IGNORED_CONFIGURATION_MENU_CLICK_CLASS, } from "../../../../constants/index.js";
|
|
7
|
-
import { useAttributeValuesFromExecResults, } from "./hooks/useAttributeValuesFromExecResults.js";
|
|
8
7
|
import { getSelectedCatalogAttribute, getSelectedCatalogAttributeValue } from "./utils/getters.js";
|
|
9
|
-
export const AlertAttributeSelect = ({ selectedAttribute: selectedAttributeProp,
|
|
8
|
+
export const AlertAttributeSelect = ({ selectedAttribute: selectedAttributeProp, getAttributeValues, isResultLoading, selectedValue, onAttributeChange, attributes, catalogAttributes, catalogDateDatasets, }) => {
|
|
10
9
|
const intl = useIntl();
|
|
11
10
|
const ref = useRef(null);
|
|
12
11
|
const availableAttributes = useMemo(() => {
|
|
@@ -15,7 +14,6 @@ export const AlertAttributeSelect = ({ selectedAttribute: selectedAttributeProp,
|
|
|
15
14
|
const [searchString, setSearchString] = useState("");
|
|
16
15
|
const [isOpen, setIsOpen] = useState(false);
|
|
17
16
|
const [isOpenAttribute, setIsOpenAttribute] = useState(null);
|
|
18
|
-
const { isResultLoading, getAttributeValues } = useAttributeValuesFromExecResults(execResult);
|
|
19
17
|
const selectedAttribute = useMemo(() => {
|
|
20
18
|
return (selectedAttributeProp &&
|
|
21
19
|
getSelectedCatalogAttribute(catalogAttributes, catalogDateDatasets, selectedAttributeProp));
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertAttributeSelect.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EACH,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,SAAS,EACT,yBAAyB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIvD,OAAO,EACH,8BAA8B,EAC9B,sCAAsC,GACzC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,
|
|
1
|
+
{"version":3,"file":"AlertAttributeSelect.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,yBAAyB,EACzB,mCAAmC,EACnC,kCAAkC,EAClC,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAMH,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"EditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,yBAAyB,EACzB,mCAAmC,EACnC,kCAAkC,EAClC,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAMH,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuC7D,UAAU,eAAe;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,yBAAyB,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,kCAAkC,EAAE,CAAC;IACnD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmS/C,CAAC"}
|
|
@@ -11,9 +11,11 @@ import { EditAlertConfiguration } from "./EditAlertConfiguration.js";
|
|
|
11
11
|
import { useEditAlert } from "./hooks/useEditAlert.js";
|
|
12
12
|
import { useAlertValidation } from "./hooks/useAlertValidation.js";
|
|
13
13
|
import { AlertComparisonPeriodSelect } from "./AlertComparisonPeriodSelect.js";
|
|
14
|
-
import { getAlertAttribute, getAlertCompareOperator, getAlertComparison, getAlertFilters, getAlertMeasure, getAlertRelativeOperator,
|
|
14
|
+
import { getAlertAttribute, getAlertCompareOperator, getAlertComparison, getAlertFilters, getAlertMeasure, getAlertRelativeOperator, getValueSuffix, } from "./utils/getters.js";
|
|
15
15
|
import { AlertAttributeSelect } from "./AlertAttributeSelect.js";
|
|
16
16
|
import { translateGranularity } from "./utils/granularity.js";
|
|
17
|
+
import { useAttributeValuesFromExecResults } from "./hooks/useAttributeValuesFromExecResults.js";
|
|
18
|
+
import { useThresholdValue } from "./hooks/useThresholdValue.js";
|
|
17
19
|
const TOOLTIP_ALIGN_POINTS = [{ align: "cl cr" }, { align: "cr cl" }];
|
|
18
20
|
const messages = defineMessages({
|
|
19
21
|
invalidDefault: {
|
|
@@ -28,7 +30,7 @@ const invalidMessagesObj = {
|
|
|
28
30
|
missingWidget: messages.invalidWidget,
|
|
29
31
|
};
|
|
30
32
|
export const EditAlert = ({ alert, execResult, isNewAlert, hasAlerts, destinations, users, attributes, measures, onClose, onCancel, onCreate, onUpdate, maxAutomationsReached = false, maxAutomationsRecipients, overlayPositionType, catalogMeasures, catalogAttributes, catalogDateDatasets, canManageAttributes, canManageComparison, }) => {
|
|
31
|
-
const { viewMode, updatedAlert, canSubmit,
|
|
33
|
+
const { defaultUser, viewMode, updatedAlert, canSubmit, allowExternalRecipients, allowOnlyLoggedUserRecipients, warningMessage,
|
|
32
34
|
//
|
|
33
35
|
changeComparisonOperator, changeRelativeOperator, changeMeasure, changeAttribute, changeValue, changeDestination, changeComparisonType, changeRecipients,
|
|
34
36
|
//
|
|
@@ -55,6 +57,8 @@ export const EditAlert = ({ alert, execResult, isNewAlert, hasAlerts, destinatio
|
|
|
55
57
|
const selectedRelativeOperator = getAlertRelativeOperator(updatedAlert.alert);
|
|
56
58
|
const { isValid, invalidityReason } = useAlertValidation(alert, isNewAlert);
|
|
57
59
|
const showFilterInfo = filters.length > 0 || Boolean(selectedComparator?.granularity);
|
|
60
|
+
const { isResultLoading, getAttributeValues, getMetricValue } = useAttributeValuesFromExecResults(execResult);
|
|
61
|
+
const { value, setTouched } = useThresholdValue(changeValue, getMetricValue, isNewAlert, updatedAlert.alert, selectedRelativeOperator, selectedMeasure, selectedAttribute, selectedValue);
|
|
58
62
|
return viewMode === "edit" ? (React.createElement(DashboardInsightSubmenuContainer, { title: isNewAlert
|
|
59
63
|
? intl.formatMessage({ id: "insightAlert.config.createAlert" })
|
|
60
64
|
: intl.formatMessage({ id: "insightAlert.config.editAlert" }), onClose: onClose, onBack: hasAlerts ? onCancel : undefined },
|
|
@@ -65,7 +69,7 @@ export const EditAlert = ({ alert, execResult, isNewAlert, hasAlerts, destinatio
|
|
|
65
69
|
React.createElement(FormattedMessage, { id: "insightAlert.config.when" })),
|
|
66
70
|
React.createElement(AlertMeasureSelect, { selectedMeasure: selectedMeasure, onMeasureChange: changeMeasure, measures: measures, overlayPositionType: overlayPositionType }),
|
|
67
71
|
Boolean(canManageAttributes) && (React.createElement(React.Fragment, null,
|
|
68
|
-
React.createElement(AlertAttributeSelect, {
|
|
72
|
+
React.createElement(AlertAttributeSelect, { selectedAttribute: selectedAttribute, selectedValue: selectedValue, onAttributeChange: changeAttribute, attributes: attributes, catalogAttributes: catalogAttributes, catalogDateDatasets: catalogDateDatasets, getAttributeValues: getAttributeValues, isResultLoading: isResultLoading }))),
|
|
69
73
|
showFilterInfo ? (React.createElement("div", { className: "gd-edit-alert__measure-info" },
|
|
70
74
|
Boolean(selectedComparator?.granularity) && (React.createElement(FormattedMessage, { tagName: "span", id: "insightAlert.config.for.filter", values: {
|
|
71
75
|
granularity: [
|
|
@@ -86,12 +90,18 @@ export const EditAlert = ({ alert, execResult, isNewAlert, hasAlerts, destinatio
|
|
|
86
90
|
spacer: (React.createElement("div", { className: "gd-alert-comparison-operator-tooltip-spacer" })),
|
|
87
91
|
} })))))))) : null,
|
|
88
92
|
React.createElement(AlertComparisonOperatorSelect, { measure: selectedMeasure, selectedComparisonOperator: selectedComparisonOperator, selectedRelativeOperator: selectedRelativeOperator, onComparisonOperatorChange: changeComparisonOperator, onRelativeOperatorChange: changeRelativeOperator, overlayPositionType: overlayPositionType }),
|
|
89
|
-
React.createElement(Input, { className: "gd-edit-alert__value-input s-alert-value-input", isSmall: true, autofocus: true, value:
|
|
93
|
+
React.createElement(Input, { className: "gd-edit-alert__value-input s-alert-value-input", isSmall: true, autofocus: true, value: value, onChange: (e, event) => {
|
|
94
|
+
changeValue(e !== "" ? parseFloat(e) : undefined);
|
|
95
|
+
// Set touched state when user changes the value
|
|
96
|
+
if (event) {
|
|
97
|
+
setTouched(true);
|
|
98
|
+
}
|
|
99
|
+
}, type: "number", suffix: getValueSuffix(updatedAlert.alert) }),
|
|
90
100
|
React.createElement(AlertComparisonPeriodSelect, { measure: selectedMeasure, alert: updatedAlert, selectedComparison: selectedComparator?.comparator, onComparisonChange: (comparisonType) => {
|
|
91
101
|
changeComparisonType(selectedMeasure, selectedRelativeOperator, comparisonType);
|
|
92
102
|
}, overlayPositionType: overlayPositionType, canManageComparison: canManageComparison }),
|
|
93
103
|
destinations.length > 1 && (React.createElement(AlertDestinationSelect, { selectedDestination: updatedAlert.notificationChannel, onDestinationChange: changeDestination, destinations: destinations, overlayPositionType: overlayPositionType })),
|
|
94
|
-
|
|
104
|
+
React.createElement(RecipientsSelect, { loggedUser: defaultUser, users: users, value: updatedAlert.recipients ?? [], originalValue: alert.recipients || [], onChange: changeRecipients, allowEmptySelection: true, allowOnlyLoggedUserRecipients: allowOnlyLoggedUserRecipients, allowExternalRecipients: allowExternalRecipients, maxRecipients: maxAutomationsRecipients, className: "gd-edit-alert__recipients", notificationChannels: destinations, notificationChannelId: updatedAlert.notificationChannel })),
|
|
95
105
|
warningMessage ? React.createElement(Message, { type: "warning" }, warningMessage) : null,
|
|
96
106
|
!isValid ? (React.createElement(Message, { type: "error" },
|
|
97
107
|
React.createElement(FormattedMessage, { id: invalidMessagesObj[invalidityReason].id }))) : null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditAlert.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EACH,MAAM,EACN,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,OAAO,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAqB,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1F,OAAO,EAAE,gCAAgC,EAAE,MAAM,2GAA2G,CAAC;AAC7J,OAAO,EAAE,gBAAgB,EAAE,MAAM,wGAAwG,CAAC;AAI1I,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EACH,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"EditAlert.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAttributeMetadataObject } from "@gooddata/sdk-model";
|
|
1
|
+
import { IAttributeMetadataObject, IAttribute, IMeasure } from "@gooddata/sdk-model";
|
|
2
2
|
import { IExecutionResultEnvelope } from "../../../../../../model/index.js";
|
|
3
3
|
export type AttributeValue = {
|
|
4
4
|
title: string;
|
|
@@ -8,5 +8,6 @@ export type AttributeValue = {
|
|
|
8
8
|
export declare function useAttributeValuesFromExecResults(execResult: IExecutionResultEnvelope | undefined): {
|
|
9
9
|
isResultLoading: boolean;
|
|
10
10
|
getAttributeValues: (attr: IAttributeMetadataObject) => AttributeValue[];
|
|
11
|
+
getMetricValue: (measure?: IMeasure, attr?: IAttribute, value?: string | null) => number | undefined;
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=useAttributeValuesFromExecResults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributeValuesFromExecResults.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"useAttributeValuesFromExecResults.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,wBAAwB,EACxB,UAAU,EACV,QAAQ,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,wBAAwB,GAAG,SAAS;;+BAcnF,wBAAwB,KAAG,cAAc,EAAE;+BASvC,QAAQ,SAAS,UAAU,UAAU,MAAM,GAAG,IAAI;EAyBpE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// (C) 2019-
|
|
1
|
+
// (C) 2019-2025 GoodData Corporation
|
|
2
2
|
import { useCallback, useEffect, useState } from "react";
|
|
3
3
|
import { DataViewFacade } from "@gooddata/sdk-ui";
|
|
4
4
|
import { areObjRefsEqual, isResultAttributeHeader, } from "@gooddata/sdk-model";
|
|
@@ -14,16 +14,56 @@ export function useAttributeValuesFromExecResults(execResult) {
|
|
|
14
14
|
}
|
|
15
15
|
}, [execResult]);
|
|
16
16
|
const getAttributeValues = useCallback((attr) => {
|
|
17
|
-
const header =
|
|
17
|
+
const header = findAttributeHeader(dataView, attr);
|
|
18
18
|
const indexes = findDimIndexes(dataView, header);
|
|
19
19
|
return findAttributeValues(dataView, indexes);
|
|
20
20
|
}, [dataView]);
|
|
21
|
+
const getMetricValue = useCallback((measure, attr, value) => {
|
|
22
|
+
if (!measure || !dataView) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const data = Array.from(dataView.data().series().allForMeasure(measure));
|
|
26
|
+
if (!attr && !value) {
|
|
27
|
+
return calculatePredictedValue(data);
|
|
28
|
+
}
|
|
29
|
+
const header = findAttributeHeader2(dataView, attr);
|
|
30
|
+
const indexes = findDimIndexes(dataView, header);
|
|
31
|
+
const values = calculateValues(dataView, indexes, value);
|
|
32
|
+
const result = calculatePredictedValue(data, values);
|
|
33
|
+
return result === 0 ? undefined : result;
|
|
34
|
+
}, [dataView]);
|
|
21
35
|
return {
|
|
22
36
|
isResultLoading,
|
|
23
37
|
getAttributeValues,
|
|
38
|
+
getMetricValue,
|
|
24
39
|
};
|
|
25
40
|
}
|
|
26
|
-
function
|
|
41
|
+
function calculatePredictedValue(data, values) {
|
|
42
|
+
return data.reduce((total, series) => {
|
|
43
|
+
return (total +
|
|
44
|
+
Array.from(series).reduce((acc, item) => {
|
|
45
|
+
if (item.total) {
|
|
46
|
+
return acc;
|
|
47
|
+
}
|
|
48
|
+
if (!values ||
|
|
49
|
+
item.seriesDesc.scopeTitles().some((title) => title && values.includes(title))) {
|
|
50
|
+
return acc + parseFloat(String(item.rawValue || "0"));
|
|
51
|
+
}
|
|
52
|
+
return acc;
|
|
53
|
+
}, 0));
|
|
54
|
+
}, 0);
|
|
55
|
+
}
|
|
56
|
+
function calculateValues(dataView, indexes, value) {
|
|
57
|
+
return findAttributeValues(dataView, indexes)
|
|
58
|
+
.map((v) => v.title)
|
|
59
|
+
.filter((v) => {
|
|
60
|
+
if (value) {
|
|
61
|
+
return v === value;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function findAttributeHeader(dataView, attr) {
|
|
27
67
|
if (!dataView) {
|
|
28
68
|
return null;
|
|
29
69
|
}
|
|
@@ -37,6 +77,17 @@ function findHeader(dataView, attr) {
|
|
|
37
77
|
}));
|
|
38
78
|
}) ?? null);
|
|
39
79
|
}
|
|
80
|
+
function findAttributeHeader2(dataView, attr) {
|
|
81
|
+
if (!dataView || !attr) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return (dataView
|
|
85
|
+
.meta()
|
|
86
|
+
.attributeDescriptors()
|
|
87
|
+
.find((descriptor) => {
|
|
88
|
+
return areObjRefsEqual(descriptor.attributeHeader.ref, attr.attribute.displayForm);
|
|
89
|
+
}) ?? null);
|
|
90
|
+
}
|
|
40
91
|
/**
|
|
41
92
|
* This will find attribute elements array indexes for provided attribute descriptor in the execution results data view.
|
|
42
93
|
* @param dataView - DataViewFacade object to work with execution results data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributeValuesFromExecResults.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"useAttributeValuesFromExecResults.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAttributeValuesFromExecResults.ts"],"names":[],"mappings":"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"}
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts
CHANGED
|
@@ -12,10 +12,11 @@ export interface IUseEditAlertProps {
|
|
|
12
12
|
onUpdate?: (alert: IAutomationMetadataObject) => void;
|
|
13
13
|
}
|
|
14
14
|
export declare const useEditAlert: ({ metrics, attributes, alert, onCreate, onUpdate, catalogMeasures, destinations, }: IUseEditAlertProps) => {
|
|
15
|
+
defaultUser: import("@gooddata/sdk-model").IWorkspaceUser;
|
|
15
16
|
viewMode: "configuration" | "edit";
|
|
16
17
|
updatedAlert: IAutomationMetadataObject;
|
|
17
18
|
canSubmit: boolean | undefined;
|
|
18
|
-
|
|
19
|
+
allowOnlyLoggedUserRecipients: boolean;
|
|
19
20
|
allowExternalRecipients: boolean;
|
|
20
21
|
warningMessage: string | undefined;
|
|
21
22
|
changeComparisonOperator: (measure: AlertMetric, comparisonOperator: IAlertComparisonOperator) => void;
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,kCAAkC,
|
|
1
|
+
{"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,kCAAkC,EAIrC,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAa3F,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,EAAE,yBAAyB,CAAC;IACjC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,YAAY,EAAE,kCAAkC,EAAE,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,YAAY,uFAQtB,kBAAkB;;;;;;;;wCAyCH,WAAW,sBAAsB,wBAAwB;sCAUtD,WAAW,oBACF,sBAAsB,sBACpB,gCAAgC;6BAnC9C,WAAW;iCAQN,cAAc,GAAG,SAAS;eAGpB,MAAM;eACN,MAAM;cACP,MAAM;;yBAsCU,MAAM;uCAK1B,MAAM;oCAiCT,WAAW,GAAG,SAAS,oBACd,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,GAAG,SAAS,kBACxE,yBAAyB;mCAqBC,oBAAoB,EAAE;;oCAgB5D,yBAAyB;;;;CA8DxC,CAAC"}
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// (C) 2022-2025 GoodData Corporation
|
|
2
|
-
import { useState } from "react";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
3
|
import { useIntl } from "react-intl";
|
|
4
|
-
import { isAutomationExternalUserRecipient, isAutomationUserRecipient, } from "@gooddata/sdk-model";
|
|
4
|
+
import { isAutomationExternalUserRecipient, isAutomationUnknownUserRecipient, isAutomationUserRecipient, } from "@gooddata/sdk-model";
|
|
5
5
|
import isEqual from "lodash/isEqual.js";
|
|
6
6
|
import { isAlertRecipientsValid, isAlertValueDefined } from "../utils/guards.js";
|
|
7
7
|
import { transformAlertByAttribute, transformAlertByComparisonOperator, transformAlertByDestination, transformAlertByMetric, transformAlertByRelativeOperator, transformAlertByValue, } from "../utils/transformation.js";
|
|
8
8
|
import { selectCurrentUser, selectEnableExternalRecipients, selectUsers, useDashboardSelector, } from "../../../../../../model/index.js";
|
|
9
|
-
import { convertCurrentUserToAutomationRecipient } from "../../../../../../_staging/automation/index.js";
|
|
9
|
+
import { convertCurrentUserToAutomationRecipient, convertCurrentUserToWorkspaceUser, } from "../../../../../../_staging/automation/index.js";
|
|
10
10
|
import { isEmail } from "../../../../../scheduledEmail/DefaultScheduledEmailDialog/utils/validate.js";
|
|
11
11
|
export const useEditAlert = ({ metrics, attributes, alert, onCreate, onUpdate, catalogMeasures, destinations, }) => {
|
|
12
12
|
const [viewMode, setViewMode] = useState("edit");
|
|
@@ -17,24 +17,25 @@ export const useEditAlert = ({ metrics, attributes, alert, onCreate, onUpdate, c
|
|
|
17
17
|
const enabledExternalRecipients = useDashboardSelector(selectEnableExternalRecipients);
|
|
18
18
|
const intl = useIntl();
|
|
19
19
|
const selectedDestination = destinations.find((destination) => destination.id === updatedAlert.notificationChannel);
|
|
20
|
-
const
|
|
20
|
+
const defaultUser = convertCurrentUserToWorkspaceUser(users ?? [], currentUser);
|
|
21
21
|
const allowExternalRecipients = selectedDestination?.allowedRecipients === "external" && enabledExternalRecipients;
|
|
22
|
-
const
|
|
22
|
+
const allowOnlyLoggedUserRecipients = selectedDestination?.allowedRecipients === "creator";
|
|
23
|
+
const changeMeasure = useCallback((measure) => {
|
|
23
24
|
setUpdatedAlert((alert) => transformAlertByMetric(metrics, alert, measure, catalogMeasures));
|
|
24
|
-
};
|
|
25
|
-
const changeAttribute = (attribute, value) => {
|
|
25
|
+
}, [catalogMeasures, metrics]);
|
|
26
|
+
const changeAttribute = useCallback((attribute, value) => {
|
|
26
27
|
setUpdatedAlert((alert) => transformAlertByAttribute(attributes, alert, attribute, value));
|
|
27
|
-
};
|
|
28
|
-
const changeComparisonOperator = (measure, comparisonOperator) => {
|
|
28
|
+
}, [attributes]);
|
|
29
|
+
const changeComparisonOperator = useCallback((measure, comparisonOperator) => {
|
|
29
30
|
setUpdatedAlert((alert) => transformAlertByComparisonOperator(metrics, alert, measure, comparisonOperator));
|
|
30
|
-
};
|
|
31
|
-
const changeRelativeOperator = (measure, relativeOperator, arithmeticOperator) => {
|
|
31
|
+
}, [metrics]);
|
|
32
|
+
const changeRelativeOperator = useCallback((measure, relativeOperator, arithmeticOperator) => {
|
|
32
33
|
setUpdatedAlert((alert) => transformAlertByRelativeOperator(metrics, alert, measure, relativeOperator, arithmeticOperator, catalogMeasures));
|
|
33
|
-
};
|
|
34
|
-
const changeValue = (value) => {
|
|
34
|
+
}, [catalogMeasures, metrics]);
|
|
35
|
+
const changeValue = useCallback((value) => {
|
|
35
36
|
setUpdatedAlert((alert) => transformAlertByValue(alert, value));
|
|
36
|
-
};
|
|
37
|
-
const changeDestination = (destinationId) => {
|
|
37
|
+
}, []);
|
|
38
|
+
const changeDestination = useCallback((destinationId) => {
|
|
38
39
|
const previousDestination = destinations.find((channel) => alert.notificationChannel === channel.id);
|
|
39
40
|
const selectedDestination = destinations.find((channel) => destinationId === channel.id);
|
|
40
41
|
/**
|
|
@@ -52,51 +53,58 @@ export const useEditAlert = ({ metrics, attributes, alert, onCreate, onUpdate, c
|
|
|
52
53
|
? [convertCurrentUserToAutomationRecipient(users ?? [], currentUser)]
|
|
53
54
|
: undefined;
|
|
54
55
|
setUpdatedAlert((alert) => transformAlertByDestination(alert, destinationId, updatedRecipients));
|
|
55
|
-
};
|
|
56
|
-
const changeComparisonType = (measure, relativeOperator, comparisonType) => {
|
|
56
|
+
}, [alert.notificationChannel, currentUser, destinations, intl, users]);
|
|
57
|
+
const changeComparisonType = useCallback((measure, relativeOperator, comparisonType) => {
|
|
57
58
|
if (!measure || !relativeOperator || !relativeOperator) {
|
|
58
59
|
return;
|
|
59
60
|
}
|
|
60
61
|
const [relativeOperatorValue, arithmeticOperator] = relativeOperator;
|
|
61
62
|
setUpdatedAlert((alert) => transformAlertByRelativeOperator(metrics, alert, measure, relativeOperatorValue, arithmeticOperator, catalogMeasures, comparisonType));
|
|
62
|
-
};
|
|
63
|
-
const changeRecipients = (recipients) => {
|
|
63
|
+
}, [catalogMeasures, metrics]);
|
|
64
|
+
const changeRecipients = useCallback((recipients) => {
|
|
64
65
|
setUpdatedAlert((alert) => ({
|
|
65
66
|
...alert,
|
|
66
67
|
recipients,
|
|
67
68
|
}));
|
|
68
|
-
};
|
|
69
|
-
const configureAlert = () => {
|
|
69
|
+
}, []);
|
|
70
|
+
const configureAlert = useCallback(() => {
|
|
70
71
|
setViewMode("configuration");
|
|
71
|
-
};
|
|
72
|
-
const
|
|
72
|
+
}, []);
|
|
73
|
+
const cancelAlertConfiguration = useCallback(() => {
|
|
74
|
+
setViewMode("edit");
|
|
75
|
+
}, []);
|
|
76
|
+
const saveAlertConfiguration = useCallback((alert) => {
|
|
73
77
|
setUpdatedAlert(alert);
|
|
74
78
|
cancelAlertConfiguration();
|
|
75
|
-
};
|
|
76
|
-
const
|
|
77
|
-
setViewMode("edit");
|
|
78
|
-
};
|
|
79
|
-
const createAlert = () => {
|
|
79
|
+
}, [cancelAlertConfiguration]);
|
|
80
|
+
const createAlert = useCallback(() => {
|
|
80
81
|
onCreate?.(updatedAlert);
|
|
81
|
-
};
|
|
82
|
-
const updateAlert = () => {
|
|
82
|
+
}, [onCreate, updatedAlert]);
|
|
83
|
+
const updateAlert = useCallback(() => {
|
|
83
84
|
onUpdate?.(updatedAlert);
|
|
84
|
-
};
|
|
85
|
+
}, [onUpdate, updatedAlert]);
|
|
85
86
|
const isValueDefined = isAlertValueDefined(updatedAlert.alert);
|
|
86
87
|
const isRecipientsValid = isAlertRecipientsValid(updatedAlert);
|
|
87
88
|
const isExternalRecipientsValid = allowExternalRecipients
|
|
88
89
|
? true
|
|
89
90
|
: !updatedAlert.recipients?.some(isAutomationExternalUserRecipient);
|
|
91
|
+
const hasNoUnknownRecipients = !updatedAlert.recipients?.some(isAutomationUnknownUserRecipient);
|
|
90
92
|
const isAlertChanged = !isEqual(updatedAlert, alert);
|
|
91
93
|
const areEmailsValid = selectedDestination?.destinationType === "smtp"
|
|
92
94
|
? updatedAlert.recipients?.every((v) => isAutomationUserRecipient(v) ? isEmail(v.email ?? "") : true)
|
|
93
95
|
: true;
|
|
94
|
-
const canSubmit = isValueDefined &&
|
|
96
|
+
const canSubmit = isValueDefined &&
|
|
97
|
+
isAlertChanged &&
|
|
98
|
+
isRecipientsValid &&
|
|
99
|
+
areEmailsValid &&
|
|
100
|
+
isExternalRecipientsValid &&
|
|
101
|
+
hasNoUnknownRecipients;
|
|
95
102
|
return {
|
|
103
|
+
defaultUser,
|
|
96
104
|
viewMode,
|
|
97
105
|
updatedAlert,
|
|
98
106
|
canSubmit,
|
|
99
|
-
|
|
107
|
+
allowOnlyLoggedUserRecipients,
|
|
100
108
|
allowExternalRecipients,
|
|
101
109
|
warningMessage,
|
|
102
110
|
//
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditAlert.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useEditAlert.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.ts"],"names":[],"mappings":"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"}
|