@gooddata/sdk-ui-metric-component 0.0.0-stage → 11.65.0-alpha.4
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/LICENSE +29 -0
- package/NOTICE +71721 -0
- package/README.md +13 -2
- package/esm/MaqlEditor/components/ExpandableTooltip.d.ts +50 -0
- package/esm/MaqlEditor/components/ExpandableTooltip.d.ts.map +1 -0
- package/esm/MaqlEditor/components/ExpandableTooltip.js +150 -0
- package/esm/MaqlEditor/components/ExpandableTooltipContext.d.ts +10 -0
- package/esm/MaqlEditor/components/ExpandableTooltipContext.d.ts.map +1 -0
- package/esm/MaqlEditor/components/ExpandableTooltipContext.js +17 -0
- package/esm/MaqlEditor/components/hooks/useExpandableTooltip.d.ts +3 -0
- package/esm/MaqlEditor/components/hooks/useExpandableTooltip.d.ts.map +1 -0
- package/esm/MaqlEditor/components/hooks/useExpandableTooltip.js +10 -0
- package/esm/MaqlEditor/components/hooks/useOutsideEvents.d.ts +10 -0
- package/esm/MaqlEditor/components/hooks/useOutsideEvents.d.ts.map +1 -0
- package/esm/MaqlEditor/components/hooks/useOutsideEvents.js +43 -0
- package/esm/MaqlEditor/components/hooks/useRePosition.d.ts +20 -0
- package/esm/MaqlEditor/components/hooks/useRePosition.d.ts.map +1 -0
- package/esm/MaqlEditor/components/hooks/useRePosition.js +108 -0
- package/esm/MaqlEditor/components/hooks/utils.d.ts +4 -0
- package/esm/MaqlEditor/components/hooks/utils.d.ts.map +1 -0
- package/esm/MaqlEditor/components/hooks/utils.js +18 -0
- package/esm/MaqlEditor/hooks/useAutoformat.d.ts +3 -0
- package/esm/MaqlEditor/hooks/useAutoformat.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useAutoformat.js +15 -0
- package/esm/MaqlEditor/hooks/useCleanCallback.d.ts +4 -0
- package/esm/MaqlEditor/hooks/useCleanCallback.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useCleanCallback.js +12 -0
- package/esm/MaqlEditor/hooks/useCodeTheme.d.ts +3 -0
- package/esm/MaqlEditor/hooks/useCodeTheme.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useCodeTheme.js +48 -0
- package/esm/MaqlEditor/hooks/useCopyToClipboard.d.ts +3 -0
- package/esm/MaqlEditor/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useCopyToClipboard.js +16 -0
- package/esm/MaqlEditor/hooks/useMountCallback.d.ts +13 -0
- package/esm/MaqlEditor/hooks/useMountCallback.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useMountCallback.js +26 -0
- package/esm/MaqlEditor/hooks/useUpdateCallback.d.ts +19 -0
- package/esm/MaqlEditor/hooks/useUpdateCallback.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useUpdateCallback.js +63 -0
- package/esm/MaqlEditor/hooks/useValueCallbacks.d.ts +6 -0
- package/esm/MaqlEditor/hooks/useValueCallbacks.d.ts.map +1 -0
- package/esm/MaqlEditor/hooks/useValueCallbacks.js +14 -0
- package/esm/MaqlEditor/languageService/LanguageServiceContext.d.ts +13 -0
- package/esm/MaqlEditor/languageService/LanguageServiceContext.d.ts.map +1 -0
- package/esm/MaqlEditor/languageService/LanguageServiceContext.js +20 -0
- package/esm/MaqlEditor/maql/MaqlEditor.d.ts +30 -0
- package/esm/MaqlEditor/maql/MaqlEditor.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/MaqlEditor.js +42 -0
- package/esm/MaqlEditor/maql/MaqlEditor.styles.d.ts +8 -0
- package/esm/MaqlEditor/maql/MaqlEditor.styles.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/MaqlEditor.styles.js +154 -0
- package/esm/MaqlEditor/maql/MaqlEditor.tooltip.d.ts +36 -0
- package/esm/MaqlEditor/maql/MaqlEditor.tooltip.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/MaqlEditor.tooltip.js +187 -0
- package/esm/MaqlEditor/maql/constants.d.ts +2 -0
- package/esm/MaqlEditor/maql/constants.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/constants.js +2 -0
- package/esm/MaqlEditor/maql/formatter.d.ts +6 -0
- package/esm/MaqlEditor/maql/formatter.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/formatter.js +14 -0
- package/esm/MaqlEditor/maql/hooks/hover/doHover.d.ts +12 -0
- package/esm/MaqlEditor/maql/hooks/hover/doHover.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/hover/doHover.js +126 -0
- package/esm/MaqlEditor/maql/hooks/hover/useHoverEvent.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/hover/useHoverEvent.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/hover/useHoverEvent.js +32 -0
- package/esm/MaqlEditor/maql/hooks/useAutocomplete.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/useAutocomplete.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useAutocomplete.js +60 -0
- package/esm/MaqlEditor/maql/hooks/useDecoration.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/useDecoration.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useDecoration.js +73 -0
- package/esm/MaqlEditor/maql/hooks/useDocumentFormatting.d.ts +3 -0
- package/esm/MaqlEditor/maql/hooks/useDocumentFormatting.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useDocumentFormatting.js +29 -0
- package/esm/MaqlEditor/maql/hooks/useHover.d.ts +6 -0
- package/esm/MaqlEditor/maql/hooks/useHover.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useHover.js +77 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageConfiguration.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageConfiguration.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageConfiguration.js +21 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageService.d.ts +3 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageService.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageService.js +21 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageServiceInitializer.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageServiceInitializer.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useLanguageServiceInitializer.js +11 -0
- package/esm/MaqlEditor/maql/hooks/useMonaco.d.ts +21 -0
- package/esm/MaqlEditor/maql/hooks/useMonaco.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useMonaco.js +75 -0
- package/esm/MaqlEditor/maql/hooks/useSemanticHighlight.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/useSemanticHighlight.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useSemanticHighlight.js +33 -0
- package/esm/MaqlEditor/maql/hooks/useSyntaxHighlight.d.ts +2 -0
- package/esm/MaqlEditor/maql/hooks/useSyntaxHighlight.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useSyntaxHighlight.js +28 -0
- package/esm/MaqlEditor/maql/hooks/useValidation.d.ts +4 -0
- package/esm/MaqlEditor/maql/hooks/useValidation.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/hooks/useValidation.js +56 -0
- package/esm/MaqlEditor/maql/utils.d.ts +4 -0
- package/esm/MaqlEditor/maql/utils.d.ts.map +1 -0
- package/esm/MaqlEditor/maql/utils.js +6 -0
- package/esm/MaqlEditor/mock/monaco-shim.d.ts +2 -0
- package/esm/MaqlEditor/mock/monaco-shim.d.ts.map +1 -0
- package/esm/MaqlEditor/mock/monaco-shim.js +36 -0
- package/esm/MaqlEditor/monaco/MonacoEditor.d.ts +49 -0
- package/esm/MaqlEditor/monaco/MonacoEditor.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/MonacoEditor.js +71 -0
- package/esm/MaqlEditor/monaco/MonacoEditor.styles.d.ts +47 -0
- package/esm/MaqlEditor/monaco/MonacoEditor.styles.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/MonacoEditor.styles.js +427 -0
- package/esm/MaqlEditor/monaco/hooks/useAutofocus.d.ts +3 -0
- package/esm/MaqlEditor/monaco/hooks/useAutofocus.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/hooks/useAutofocus.js +33 -0
- package/esm/MaqlEditor/monaco/hooks/useDefaultValue.d.ts +3 -0
- package/esm/MaqlEditor/monaco/hooks/useDefaultValue.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/hooks/useDefaultValue.js +14 -0
- package/esm/MaqlEditor/monaco/hooks/useEditorInit.d.ts +3 -0
- package/esm/MaqlEditor/monaco/hooks/useEditorInit.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/hooks/useEditorInit.js +84 -0
- package/esm/MaqlEditor/monaco/hooks/useEditorOptions.d.ts +3 -0
- package/esm/MaqlEditor/monaco/hooks/useEditorOptions.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/hooks/useEditorOptions.js +51 -0
- package/esm/MaqlEditor/monaco/hooks/useMonaco.d.ts +3 -0
- package/esm/MaqlEditor/monaco/hooks/useMonaco.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/hooks/useMonaco.js +24 -0
- package/esm/MaqlEditor/monaco/monacoContributions.d.ts +74 -0
- package/esm/MaqlEditor/monaco/monacoContributions.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/monacoContributions.js +88 -0
- package/esm/MaqlEditor/monaco/monacoWorkers.d.ts +12 -0
- package/esm/MaqlEditor/monaco/monacoWorkers.d.ts.map +1 -0
- package/esm/MaqlEditor/monaco/monacoWorkers.js +63 -0
- package/esm/MaqlEditor/sql/SqlEditor.d.ts +21 -0
- package/esm/MaqlEditor/sql/SqlEditor.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/SqlEditor.js +45 -0
- package/esm/MaqlEditor/sql/SqlEditor.styles.d.ts +3 -0
- package/esm/MaqlEditor/sql/SqlEditor.styles.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/SqlEditor.styles.js +3 -0
- package/esm/MaqlEditor/sql/constants.d.ts +2 -0
- package/esm/MaqlEditor/sql/constants.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/constants.js +2 -0
- package/esm/MaqlEditor/sql/formatter.d.ts +6 -0
- package/esm/MaqlEditor/sql/formatter.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/formatter.js +17 -0
- package/esm/MaqlEditor/sql/hooks/useDocumentFormatting.d.ts +2 -0
- package/esm/MaqlEditor/sql/hooks/useDocumentFormatting.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/hooks/useDocumentFormatting.js +26 -0
- package/esm/MaqlEditor/sql/hooks/useLanguageConfiguration.d.ts +4 -0
- package/esm/MaqlEditor/sql/hooks/useLanguageConfiguration.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/hooks/useLanguageConfiguration.js +29 -0
- package/esm/MaqlEditor/sql/hooks/useMonaco.d.ts +14 -0
- package/esm/MaqlEditor/sql/hooks/useMonaco.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/hooks/useMonaco.js +26 -0
- package/esm/MaqlEditor/sql/hooks/useSyntaxHighlight.d.ts +2 -0
- package/esm/MaqlEditor/sql/hooks/useSyntaxHighlight.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/hooks/useSyntaxHighlight.js +796 -0
- package/esm/MaqlEditor/sql/utils.d.ts +4 -0
- package/esm/MaqlEditor/sql/utils.d.ts.map +1 -0
- package/esm/MaqlEditor/sql/utils.js +6 -0
- package/esm/MaqlEditor/statusBar/SuggestionStatusBar.d.ts +9 -0
- package/esm/MaqlEditor/statusBar/SuggestionStatusBar.d.ts.map +1 -0
- package/esm/MaqlEditor/statusBar/SuggestionStatusBar.js +38 -0
- package/esm/MaqlEditor/theme/default.d.ts +204 -0
- package/esm/MaqlEditor/theme/default.d.ts.map +1 -0
- package/esm/MaqlEditor/theme/default.js +223 -0
- package/esm/MaqlEditor/theme/styles.d.ts +411 -0
- package/esm/MaqlEditor/theme/styles.d.ts.map +1 -0
- package/esm/MaqlEditor/theme/styles.js +5 -0
- package/esm/MaqlEditor/theme/theme.d.ts +206 -0
- package/esm/MaqlEditor/theme/theme.d.ts.map +1 -0
- package/esm/MaqlEditor/theme/theme.js +9 -0
- package/esm/MetricComponent/ConflictContext/ConflictContext.d.ts +9 -0
- package/esm/MetricComponent/ConflictContext/ConflictContext.d.ts.map +1 -0
- package/esm/MetricComponent/ConflictContext/ConflictContext.js +9 -0
- package/esm/MetricComponent/ConflictContext/useConflictDetection.d.ts +8 -0
- package/esm/MetricComponent/ConflictContext/useConflictDetection.d.ts.map +1 -0
- package/esm/MetricComponent/ConflictContext/useConflictDetection.js +48 -0
- package/esm/MetricComponent/Content/EditMetricContent.d.ts +3 -0
- package/esm/MetricComponent/Content/EditMetricContent.d.ts.map +1 -0
- package/esm/MetricComponent/Content/EditMetricContent.data.d.ts +52 -0
- package/esm/MetricComponent/Content/EditMetricContent.data.d.ts.map +1 -0
- package/esm/MetricComponent/Content/EditMetricContent.data.js +12 -0
- package/esm/MetricComponent/Content/EditMetricContent.events.d.ts +9 -0
- package/esm/MetricComponent/Content/EditMetricContent.events.d.ts.map +1 -0
- package/esm/MetricComponent/Content/EditMetricContent.events.js +21 -0
- package/esm/MetricComponent/Content/EditMetricContent.js +27 -0
- package/esm/MetricComponent/DeleteMetric.d.ts +12 -0
- package/esm/MetricComponent/DeleteMetric.d.ts.map +1 -0
- package/esm/MetricComponent/DeleteMetric.events.d.ts +10 -0
- package/esm/MetricComponent/DeleteMetric.events.d.ts.map +1 -0
- package/esm/MetricComponent/DeleteMetric.events.js +24 -0
- package/esm/MetricComponent/DeleteMetric.js +8 -0
- package/esm/MetricComponent/DeleteMetricConfirmDialog/DeleteMetricConfirmDialog.d.ts +6 -0
- package/esm/MetricComponent/DeleteMetricConfirmDialog/DeleteMetricConfirmDialog.d.ts.map +1 -0
- package/esm/MetricComponent/DeleteMetricConfirmDialog/DeleteMetricConfirmDialog.js +19 -0
- package/esm/MetricComponent/EditMetric.d.ts +48 -0
- package/esm/MetricComponent/EditMetric.d.ts.map +1 -0
- package/esm/MetricComponent/EditMetric.events.d.ts +16 -0
- package/esm/MetricComponent/EditMetric.events.d.ts.map +1 -0
- package/esm/MetricComponent/EditMetric.events.js +55 -0
- package/esm/MetricComponent/EditMetric.js +30 -0
- package/esm/MetricComponent/FeaturesAndSettings/index.d.ts +18 -0
- package/esm/MetricComponent/FeaturesAndSettings/index.d.ts.map +1 -0
- package/esm/MetricComponent/FeaturesAndSettings/index.js +25 -0
- package/esm/MetricComponent/Form/CloseButton/CloseButton.d.ts +6 -0
- package/esm/MetricComponent/Form/CloseButton/CloseButton.d.ts.map +1 -0
- package/esm/MetricComponent/Form/CloseButton/CloseButton.js +14 -0
- package/esm/MetricComponent/Form/EditMetricCenterForm.d.ts +15 -0
- package/esm/MetricComponent/Form/EditMetricCenterForm.d.ts.map +1 -0
- package/esm/MetricComponent/Form/EditMetricCenterForm.js +157 -0
- package/esm/MetricComponent/Form/EditMetricContentForm.d.ts +45 -0
- package/esm/MetricComponent/Form/EditMetricContentForm.d.ts.map +1 -0
- package/esm/MetricComponent/Form/EditMetricContentForm.events.d.ts +13 -0
- package/esm/MetricComponent/Form/EditMetricContentForm.events.d.ts.map +1 -0
- package/esm/MetricComponent/Form/EditMetricContentForm.events.js +32 -0
- package/esm/MetricComponent/Form/EditMetricContentForm.js +106 -0
- package/esm/MetricComponent/Form/EditableRow/EditableRow.d.ts +16 -0
- package/esm/MetricComponent/Form/EditableRow/EditableRow.d.ts.map +1 -0
- package/esm/MetricComponent/Form/EditableRow/EditableRow.js +82 -0
- package/esm/MetricComponent/Form/EditableRow/EditableRowError.d.ts +13 -0
- package/esm/MetricComponent/Form/EditableRow/EditableRowError.d.ts.map +1 -0
- package/esm/MetricComponent/Form/EditableRow/EditableRowError.js +5 -0
- package/esm/MetricComponent/Form/EditableRow/InlineEditableValue.d.ts +27 -0
- package/esm/MetricComponent/Form/EditableRow/InlineEditableValue.d.ts.map +1 -0
- package/esm/MetricComponent/Form/EditableRow/InlineEditableValue.js +125 -0
- package/esm/MetricComponent/Form/Footer/EditMetricContentFooter.d.ts +9 -0
- package/esm/MetricComponent/Form/Footer/EditMetricContentFooter.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Footer/EditMetricContentFooter.events.d.ts +7 -0
- package/esm/MetricComponent/Form/Footer/EditMetricContentFooter.events.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Footer/EditMetricContentFooter.events.js +11 -0
- package/esm/MetricComponent/Form/Footer/EditMetricContentFooter.js +63 -0
- package/esm/MetricComponent/Form/Footer/EditMetricSaveMessage.d.ts +8 -0
- package/esm/MetricComponent/Form/Footer/EditMetricSaveMessage.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Footer/EditMetricSaveMessage.js +22 -0
- package/esm/MetricComponent/Form/Header/EditMetricContentHeader.d.ts +28 -0
- package/esm/MetricComponent/Form/Header/EditMetricContentHeader.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/EditMetricContentHeader.events.d.ts +7 -0
- package/esm/MetricComponent/Form/Header/EditMetricContentHeader.events.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/EditMetricContentHeader.events.js +11 -0
- package/esm/MetricComponent/Form/Header/EditMetricContentHeader.js +48 -0
- package/esm/MetricComponent/Form/Header/LockedBubble.d.ts +3 -0
- package/esm/MetricComponent/Form/Header/LockedBubble.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/LockedBubble.js +14 -0
- package/esm/MetricComponent/Form/Header/MetricDescriptionField.d.ts +10 -0
- package/esm/MetricComponent/Form/Header/MetricDescriptionField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/MetricDescriptionField.js +24 -0
- package/esm/MetricComponent/Form/Header/MetricIdField.d.ts +9 -0
- package/esm/MetricComponent/Form/Header/MetricIdField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/MetricIdField.js +80 -0
- package/esm/MetricComponent/Form/Header/MetricTagsField.d.ts +8 -0
- package/esm/MetricComponent/Form/Header/MetricTagsField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/MetricTagsField.js +61 -0
- package/esm/MetricComponent/Form/Header/MetricTitleField.d.ts +8 -0
- package/esm/MetricComponent/Form/Header/MetricTitleField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/MetricTitleField.js +40 -0
- package/esm/MetricComponent/Form/Header/MetricTypeField.d.ts +8 -0
- package/esm/MetricComponent/Form/Header/MetricTypeField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/MetricTypeField.js +42 -0
- package/esm/MetricComponent/Form/Header/Usage/Usage.d.ts +13 -0
- package/esm/MetricComponent/Form/Header/Usage/Usage.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/Usage/Usage.js +68 -0
- package/esm/MetricComponent/Form/Header/Usage/UsageItems.d.ts +11 -0
- package/esm/MetricComponent/Form/Header/Usage/UsageItems.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/Usage/UsageItems.js +88 -0
- package/esm/MetricComponent/Form/Header/Usage/UsagesOverlay.d.ts +17 -0
- package/esm/MetricComponent/Form/Header/Usage/UsagesOverlay.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/Usage/UsagesOverlay.js +119 -0
- package/esm/MetricComponent/Form/Header/share/MetricAccessChip.d.ts +9 -0
- package/esm/MetricComponent/Form/Header/share/MetricAccessChip.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/share/MetricAccessChip.js +39 -0
- package/esm/MetricComponent/Form/Header/share/MetricShare.d.ts +17 -0
- package/esm/MetricComponent/Form/Header/share/MetricShare.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/share/MetricShare.js +36 -0
- package/esm/MetricComponent/Form/Header/share/useApplyMetricAccess.d.ts +10 -0
- package/esm/MetricComponent/Form/Header/share/useApplyMetricAccess.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Header/share/useApplyMetricAccess.js +39 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorEditor.d.ts +11 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorEditor.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorEditor.js +128 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorField.d.ts +9 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorField.events.d.ts +11 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorField.events.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorField.events.js +25 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorField.js +68 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorHeader.d.ts +14 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorHeader.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlEditorField/MaqlEditorHeader.js +84 -0
- package/esm/MetricComponent/Form/MaqlEditorField/suggestionDetailsFunctions.d.ts +3 -0
- package/esm/MetricComponent/Form/MaqlEditorField/suggestionDetailsFunctions.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlEditorField/suggestionDetailsFunctions.js +57 -0
- package/esm/MetricComponent/Form/MaqlEditorUtils/Placeholder.d.ts +8 -0
- package/esm/MetricComponent/Form/MaqlEditorUtils/Placeholder.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlEditorUtils/Placeholder.js +72 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlResult.d.ts +19 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlResult.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlResult.js +144 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlResultHeader.d.ts +23 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlResultHeader.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlResultHeader.js +54 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlSql.d.ts +8 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlSql.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlSql.js +54 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlSqlHeader.d.ts +10 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlSqlHeader.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/MaqlSqlHeader.js +46 -0
- package/esm/MetricComponent/Form/MaqlResult/components/AttributesSelect.d.ts +15 -0
- package/esm/MetricComponent/Form/MaqlResult/components/AttributesSelect.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/components/AttributesSelect.js +171 -0
- package/esm/MetricComponent/Form/MaqlResult/components/AttributesSelectItem.d.ts +10 -0
- package/esm/MetricComponent/Form/MaqlResult/components/AttributesSelectItem.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/components/AttributesSelectItem.js +23 -0
- package/esm/MetricComponent/Form/MaqlResult/components/LimitSelect.d.ts +11 -0
- package/esm/MetricComponent/Form/MaqlResult/components/LimitSelect.d.ts.map +1 -0
- package/esm/MetricComponent/Form/MaqlResult/components/LimitSelect.js +134 -0
- package/esm/MetricComponent/Form/NumberFormat/EditMetricContentNumberFormat.d.ts +10 -0
- package/esm/MetricComponent/Form/NumberFormat/EditMetricContentNumberFormat.d.ts.map +1 -0
- package/esm/MetricComponent/Form/NumberFormat/EditMetricContentNumberFormat.events.d.ts +7 -0
- package/esm/MetricComponent/Form/NumberFormat/EditMetricContentNumberFormat.events.d.ts.map +1 -0
- package/esm/MetricComponent/Form/NumberFormat/EditMetricContentNumberFormat.events.js +12 -0
- package/esm/MetricComponent/Form/NumberFormat/EditMetricContentNumberFormat.js +83 -0
- package/esm/MetricComponent/Form/OtherMetrics/OtherMetricsContext.d.ts +13 -0
- package/esm/MetricComponent/Form/OtherMetrics/OtherMetricsContext.d.ts.map +1 -0
- package/esm/MetricComponent/Form/OtherMetrics/OtherMetricsContext.js +23 -0
- package/esm/MetricComponent/Form/OtherMetrics/useOtherMetrics.d.ts +3 -0
- package/esm/MetricComponent/Form/OtherMetrics/useOtherMetrics.d.ts.map +1 -0
- package/esm/MetricComponent/Form/OtherMetrics/useOtherMetrics.js +6 -0
- package/esm/MetricComponent/Form/PartHeader/PartHeader.d.ts +20 -0
- package/esm/MetricComponent/Form/PartHeader/PartHeader.d.ts.map +1 -0
- package/esm/MetricComponent/Form/PartHeader/PartHeader.js +90 -0
- package/esm/MetricComponent/Form/PartHeader/PartHeaderButton.d.ts +16 -0
- package/esm/MetricComponent/Form/PartHeader/PartHeaderButton.d.ts.map +1 -0
- package/esm/MetricComponent/Form/PartHeader/PartHeaderButton.js +29 -0
- package/esm/MetricComponent/Form/Prefixes/PrefixesContext.d.ts +12 -0
- package/esm/MetricComponent/Form/Prefixes/PrefixesContext.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Prefixes/PrefixesContext.js +10 -0
- package/esm/MetricComponent/Form/Prefixes/usePrefixes.d.ts +3 -0
- package/esm/MetricComponent/Form/Prefixes/usePrefixes.d.ts.map +1 -0
- package/esm/MetricComponent/Form/Prefixes/usePrefixes.js +6 -0
- package/esm/MetricComponent/Form/TestingFormProvider.d.ts +10 -0
- package/esm/MetricComponent/Form/TestingFormProvider.d.ts.map +1 -0
- package/esm/MetricComponent/Form/TestingFormProvider.js +7 -0
- package/esm/MetricComponent/Form/attribute.d.ts +3 -0
- package/esm/MetricComponent/Form/attribute.d.ts.map +1 -0
- package/esm/MetricComponent/Form/attribute.js +9 -0
- package/esm/MetricComponent/Form/data.d.ts +23 -0
- package/esm/MetricComponent/Form/data.d.ts.map +1 -0
- package/esm/MetricComponent/Form/data.js +12 -0
- package/esm/MetricComponent/Form/hooks/useCatalog.d.ts +9 -0
- package/esm/MetricComponent/Form/hooks/useCatalog.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useCatalog.js +72 -0
- package/esm/MetricComponent/Form/hooks/useExecute.d.ts +14 -0
- package/esm/MetricComponent/Form/hooks/useExecute.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useExecute.js +26 -0
- package/esm/MetricComponent/Form/hooks/useExplain.d.ts +10 -0
- package/esm/MetricComponent/Form/hooks/useExplain.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useExplain.js +50 -0
- package/esm/MetricComponent/Form/hooks/useInvalidFocus.d.ts +5 -0
- package/esm/MetricComponent/Form/hooks/useInvalidFocus.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useInvalidFocus.js +20 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormField.d.ts +10 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormField.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormField.js +16 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormStatus.d.ts +5 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormStatus.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormStatus.js +5 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormatState.d.ts +41 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormatState.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useMetricFormatState.js +50 -0
- package/esm/MetricComponent/Form/hooks/useMetricValidation.d.ts +11 -0
- package/esm/MetricComponent/Form/hooks/useMetricValidation.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useMetricValidation.js +53 -0
- package/esm/MetricComponent/Form/hooks/useTitleExistsCheck.d.ts +2 -0
- package/esm/MetricComponent/Form/hooks/useTitleExistsCheck.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useTitleExistsCheck.js +19 -0
- package/esm/MetricComponent/Form/hooks/useToggleWithCollapse.d.ts +4 -0
- package/esm/MetricComponent/Form/hooks/useToggleWithCollapse.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useToggleWithCollapse.js +16 -0
- package/esm/MetricComponent/Form/hooks/useUniqIdGenerator.d.ts +2 -0
- package/esm/MetricComponent/Form/hooks/useUniqIdGenerator.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useUniqIdGenerator.js +48 -0
- package/esm/MetricComponent/Form/hooks/useValidationScheme.d.ts +10 -0
- package/esm/MetricComponent/Form/hooks/useValidationScheme.d.ts.map +1 -0
- package/esm/MetricComponent/Form/hooks/useValidationScheme.js +17 -0
- package/esm/MetricComponent/Form/inlineMeasure.d.ts +3 -0
- package/esm/MetricComponent/Form/inlineMeasure.d.ts.map +1 -0
- package/esm/MetricComponent/Form/inlineMeasure.js +11 -0
- package/esm/MetricComponent/Form/maqlFieldFunctions.d.ts +17 -0
- package/esm/MetricComponent/Form/maqlFieldFunctions.d.ts.map +1 -0
- package/esm/MetricComponent/Form/maqlFieldFunctions.js +43 -0
- package/esm/MetricComponent/Form/validationSchema.d.ts +12 -0
- package/esm/MetricComponent/Form/validationSchema.d.ts.map +1 -0
- package/esm/MetricComponent/Form/validationSchema.js +123 -0
- package/esm/MetricComponent/IdChangeConfirmDialog/IdChangeConfirmDialog.d.ts +15 -0
- package/esm/MetricComponent/IdChangeConfirmDialog/IdChangeConfirmDialog.d.ts.map +1 -0
- package/esm/MetricComponent/IdChangeConfirmDialog/IdChangeConfirmDialog.js +75 -0
- package/esm/MetricComponent/ManageMetric.d.ts +38 -0
- package/esm/MetricComponent/ManageMetric.d.ts.map +1 -0
- package/esm/MetricComponent/ManageMetric.js +29 -0
- package/esm/MetricComponent/ManageMetrics.d.ts +23 -0
- package/esm/MetricComponent/ManageMetrics.d.ts.map +1 -0
- package/esm/MetricComponent/ManageMetrics.js +32 -0
- package/esm/MetricComponent/MetricService.d.ts +7 -0
- package/esm/MetricComponent/MetricService.d.ts.map +1 -0
- package/esm/MetricComponent/MetricService.js +7 -0
- package/esm/MetricComponent/MetricState/TabContent.d.ts +37 -0
- package/esm/MetricComponent/MetricState/TabContent.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/TabContent.js +21 -0
- package/esm/MetricComponent/MetricState/hooks/useChangeIdDialog.d.ts +23 -0
- package/esm/MetricComponent/MetricState/hooks/useChangeIdDialog.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useChangeIdDialog.js +68 -0
- package/esm/MetricComponent/MetricState/hooks/useDirtyChanged.d.ts +4 -0
- package/esm/MetricComponent/MetricState/hooks/useDirtyChanged.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useDirtyChanged.js +16 -0
- package/esm/MetricComponent/MetricState/hooks/useOnChangeCallback.d.ts +17 -0
- package/esm/MetricComponent/MetricState/hooks/useOnChangeCallback.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useOnChangeCallback.js +41 -0
- package/esm/MetricComponent/MetricState/hooks/useOnDeleteCallback.d.ts +5 -0
- package/esm/MetricComponent/MetricState/hooks/useOnDeleteCallback.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useOnDeleteCallback.js +9 -0
- package/esm/MetricComponent/MetricState/hooks/useOnSaveCallback.d.ts +6 -0
- package/esm/MetricComponent/MetricState/hooks/useOnSaveCallback.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useOnSaveCallback.js +9 -0
- package/esm/MetricComponent/MetricState/hooks/useSaveTab.d.ts +9 -0
- package/esm/MetricComponent/MetricState/hooks/useSaveTab.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useSaveTab.js +93 -0
- package/esm/MetricComponent/MetricState/hooks/useTabsData.d.ts +16 -0
- package/esm/MetricComponent/MetricState/hooks/useTabsData.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useTabsData.js +62 -0
- package/esm/MetricComponent/MetricState/hooks/useUnsavedChanges.d.ts +17 -0
- package/esm/MetricComponent/MetricState/hooks/useUnsavedChanges.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useUnsavedChanges.js +86 -0
- package/esm/MetricComponent/MetricState/hooks/useUpdateMetricData.d.ts +5 -0
- package/esm/MetricComponent/MetricState/hooks/useUpdateMetricData.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useUpdateMetricData.js +10 -0
- package/esm/MetricComponent/MetricState/hooks/useUpdateMetricTab.d.ts +6 -0
- package/esm/MetricComponent/MetricState/hooks/useUpdateMetricTab.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/hooks/useUpdateMetricTab.js +17 -0
- package/esm/MetricComponent/MetricState/metricState.data.d.ts +37 -0
- package/esm/MetricComponent/MetricState/metricState.data.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/metricState.data.js +13 -0
- package/esm/MetricComponent/MetricState/useMetricState.d.ts +27 -0
- package/esm/MetricComponent/MetricState/useMetricState.d.ts.map +1 -0
- package/esm/MetricComponent/MetricState/useMetricState.js +127 -0
- package/esm/MetricComponent/MetricsContext/MetricsContext.d.ts +11 -0
- package/esm/MetricComponent/MetricsContext/MetricsContext.d.ts.map +1 -0
- package/esm/MetricComponent/MetricsContext/MetricsContext.js +14 -0
- package/esm/MetricComponent/MetricsContext/useMetricsContext.d.ts +3 -0
- package/esm/MetricComponent/MetricsContext/useMetricsContext.d.ts.map +1 -0
- package/esm/MetricComponent/MetricsContext/useMetricsContext.js +6 -0
- package/esm/MetricComponent/MetricsState.d.ts +39 -0
- package/esm/MetricComponent/MetricsState.d.ts.map +1 -0
- package/esm/MetricComponent/MetricsState.js +73 -0
- package/esm/MetricComponent/MinimizedMetricComponent/MinimizedMetricComponent.d.ts +12 -0
- package/esm/MetricComponent/MinimizedMetricComponent/MinimizedMetricComponent.d.ts.map +1 -0
- package/esm/MetricComponent/MinimizedMetricComponent/MinimizedMetricComponent.js +110 -0
- package/esm/MetricComponent/MinimizedMetrics.d.ts +10 -0
- package/esm/MetricComponent/MinimizedMetrics.d.ts.map +1 -0
- package/esm/MetricComponent/MinimizedMetrics.js +19 -0
- package/esm/MetricComponent/MultipleMetricsState.d.ts +61 -0
- package/esm/MetricComponent/MultipleMetricsState.d.ts.map +1 -0
- package/esm/MetricComponent/MultipleMetricsState.js +53 -0
- package/esm/MetricComponent/UnsavedChangesConfirmDialog/UnsavedChangesConfirmDialog.d.ts +14 -0
- package/esm/MetricComponent/UnsavedChangesConfirmDialog/UnsavedChangesConfirmDialog.d.ts.map +1 -0
- package/esm/MetricComponent/UnsavedChangesConfirmDialog/UnsavedChangesConfirmDialog.js +52 -0
- package/esm/MetricComponent/hooks/useDeleteCallbacks.d.ts +7 -0
- package/esm/MetricComponent/hooks/useDeleteCallbacks.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useDeleteCallbacks.js +52 -0
- package/esm/MetricComponent/hooks/useDirtyChanged.d.ts +2 -0
- package/esm/MetricComponent/hooks/useDirtyChanged.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useDirtyChanged.js +10 -0
- package/esm/MetricComponent/hooks/useEditCallbacks.d.ts +23 -0
- package/esm/MetricComponent/hooks/useEditCallbacks.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useEditCallbacks.js +107 -0
- package/esm/MetricComponent/hooks/useFocusedField.d.ts +4 -0
- package/esm/MetricComponent/hooks/useFocusedField.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useFocusedField.js +9 -0
- package/esm/MetricComponent/hooks/useIdCallbacks.d.ts +22 -0
- package/esm/MetricComponent/hooks/useIdCallbacks.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useIdCallbacks.js +46 -0
- package/esm/MetricComponent/hooks/useInitialValueMetric.d.ts +4 -0
- package/esm/MetricComponent/hooks/useInitialValueMetric.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useInitialValueMetric.js +12 -0
- package/esm/MetricComponent/hooks/useInitialValues.d.ts +3 -0
- package/esm/MetricComponent/hooks/useInitialValues.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useInitialValues.js +13 -0
- package/esm/MetricComponent/hooks/useMetricContentState.d.ts +38 -0
- package/esm/MetricComponent/hooks/useMetricContentState.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useMetricContentState.js +73 -0
- package/esm/MetricComponent/hooks/useMetricDelete.d.ts +3 -0
- package/esm/MetricComponent/hooks/useMetricDelete.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useMetricDelete.js +14 -0
- package/esm/MetricComponent/hooks/useMetricSave.d.ts +4 -0
- package/esm/MetricComponent/hooks/useMetricSave.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useMetricSave.js +52 -0
- package/esm/MetricComponent/hooks/useMetricUsage.d.ts +8 -0
- package/esm/MetricComponent/hooks/useMetricUsage.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useMetricUsage.js +21 -0
- package/esm/MetricComponent/hooks/useOnCloseOrCancel.d.ts +7 -0
- package/esm/MetricComponent/hooks/useOnCloseOrCancel.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useOnCloseOrCancel.js +26 -0
- package/esm/MetricComponent/hooks/useOnSaveUnchanged.d.ts +12 -0
- package/esm/MetricComponent/hooks/useOnSaveUnchanged.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useOnSaveUnchanged.js +30 -0
- package/esm/MetricComponent/hooks/useSaveAsClick.d.ts +6 -0
- package/esm/MetricComponent/hooks/useSaveAsClick.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useSaveAsClick.js +62 -0
- package/esm/MetricComponent/hooks/useSaveClick.d.ts +11 -0
- package/esm/MetricComponent/hooks/useSaveClick.d.ts.map +1 -0
- package/esm/MetricComponent/hooks/useSaveClick.js +47 -0
- package/esm/MetricComponent/metric/deleteInfo.d.ts +6 -0
- package/esm/MetricComponent/metric/deleteInfo.d.ts.map +1 -0
- package/esm/MetricComponent/metric/deleteInfo.js +6 -0
- package/esm/MetricComponent/metric/emptyMetric.d.ts +8 -0
- package/esm/MetricComponent/metric/emptyMetric.d.ts.map +1 -0
- package/esm/MetricComponent/metric/emptyMetric.js +13 -0
- package/esm/MetricComponent/metric/idChangeHelper.d.ts +5 -0
- package/esm/MetricComponent/metric/idChangeHelper.d.ts.map +1 -0
- package/esm/MetricComponent/metric/idChangeHelper.js +11 -0
- package/esm/MetricComponent/metric/idValidator.d.ts +3 -0
- package/esm/MetricComponent/metric/idValidator.d.ts.map +1 -0
- package/esm/MetricComponent/metric/idValidator.js +5 -0
- package/esm/MetricComponent/metric/metricHelpers.d.ts +29 -0
- package/esm/MetricComponent/metric/metricHelpers.d.ts.map +1 -0
- package/esm/MetricComponent/metric/metricHelpers.js +114 -0
- package/esm/MetricComponent/metric/nameGenerators.d.ts +13 -0
- package/esm/MetricComponent/metric/nameGenerators.d.ts.map +1 -0
- package/esm/MetricComponent/metric/nameGenerators.js +63 -0
- package/esm/MetricComponent/metric/prefixHelper.d.ts +7 -0
- package/esm/MetricComponent/metric/prefixHelper.d.ts.map +1 -0
- package/esm/MetricComponent/metric/prefixHelper.js +43 -0
- package/esm/MetricComponent/metric/saveInfo.d.ts +13 -0
- package/esm/MetricComponent/metric/saveInfo.d.ts.map +1 -0
- package/esm/MetricComponent/metric/saveInfo.js +10 -0
- package/esm/MetricComponent/metric/transformer.d.ts +5 -0
- package/esm/MetricComponent/metric/transformer.d.ts.map +1 -0
- package/esm/MetricComponent/metric/transformer.js +17 -0
- package/esm/index.d.ts +41 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +35 -0
- package/esm/shared/Form/Form.d.ts +25 -0
- package/esm/shared/Form/Form.d.ts.map +1 -0
- package/esm/shared/Form/Form.js +48 -0
- package/esm/shared/Form/FormApi.d.ts +8 -0
- package/esm/shared/Form/FormApi.d.ts.map +1 -0
- package/esm/shared/Form/FormApi.js +14 -0
- package/esm/shared/Form/FormContext.d.ts +52 -0
- package/esm/shared/Form/FormContext.d.ts.map +1 -0
- package/esm/shared/Form/FormContext.js +50 -0
- package/esm/shared/Form/data.d.ts +5 -0
- package/esm/shared/Form/data.d.ts.map +1 -0
- package/esm/shared/Form/data.js +6 -0
- package/esm/shared/Form/hooks/useChanged.d.ts +5 -0
- package/esm/shared/Form/hooks/useChanged.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useChanged.js +14 -0
- package/esm/shared/Form/hooks/useDirty.d.ts +3 -0
- package/esm/shared/Form/hooks/useDirty.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useDirty.js +9 -0
- package/esm/shared/Form/hooks/useFormHandlersInternal.d.ts +12 -0
- package/esm/shared/Form/hooks/useFormHandlersInternal.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useFormHandlersInternal.js +16 -0
- package/esm/shared/Form/hooks/useFormState.d.ts +4 -0
- package/esm/shared/Form/hooks/useFormState.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useFormState.js +33 -0
- package/esm/shared/Form/hooks/useFormStatusInternal.d.ts +32 -0
- package/esm/shared/Form/hooks/useFormStatusInternal.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useFormStatusInternal.js +34 -0
- package/esm/shared/Form/hooks/useInvalidFocusField.d.ts +3 -0
- package/esm/shared/Form/hooks/useInvalidFocusField.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useInvalidFocusField.js +8 -0
- package/esm/shared/Form/hooks/useMutations.d.ts +4 -0
- package/esm/shared/Form/hooks/useMutations.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useMutations.js +97 -0
- package/esm/shared/Form/hooks/useRealFocus.d.ts +5 -0
- package/esm/shared/Form/hooks/useRealFocus.d.ts.map +1 -0
- package/esm/shared/Form/hooks/useRealFocus.js +38 -0
- package/esm/shared/Form/useFormChanged.d.ts +2 -0
- package/esm/shared/Form/useFormChanged.d.ts.map +1 -0
- package/esm/shared/Form/useFormChanged.js +12 -0
- package/esm/shared/Form/useFormDefaults.d.ts +2 -0
- package/esm/shared/Form/useFormDefaults.d.ts.map +1 -0
- package/esm/shared/Form/useFormDefaults.js +7 -0
- package/esm/shared/Form/useFormDirty.d.ts +2 -0
- package/esm/shared/Form/useFormDirty.d.ts.map +1 -0
- package/esm/shared/Form/useFormDirty.js +13 -0
- package/esm/shared/Form/useFormErrors.d.ts +3 -0
- package/esm/shared/Form/useFormErrors.d.ts.map +1 -0
- package/esm/shared/Form/useFormErrors.js +18 -0
- package/esm/shared/Form/useFormField.d.ts +24 -0
- package/esm/shared/Form/useFormField.d.ts.map +1 -0
- package/esm/shared/Form/useFormField.js +60 -0
- package/esm/shared/Form/useFormFieldElementRef.d.ts +3 -0
- package/esm/shared/Form/useFormFieldElementRef.d.ts.map +1 -0
- package/esm/shared/Form/useFormFieldElementRef.js +10 -0
- package/esm/shared/Form/useFormHandlers.d.ts +8 -0
- package/esm/shared/Form/useFormHandlers.d.ts.map +1 -0
- package/esm/shared/Form/useFormHandlers.js +45 -0
- package/esm/shared/Form/useFormStatus.d.ts +3 -0
- package/esm/shared/Form/useFormStatus.d.ts.map +1 -0
- package/esm/shared/Form/useFormStatus.js +10 -0
- package/esm/shared/Form/useFormValues.d.ts +3 -0
- package/esm/shared/Form/useFormValues.d.ts.map +1 -0
- package/esm/shared/Form/useFormValues.js +11 -0
- package/esm/shared/Form/utils.d.ts +2 -0
- package/esm/shared/Form/utils.d.ts.map +1 -0
- package/esm/shared/Form/utils.js +5 -0
- package/esm/shared/GlobalLoading/GlobalLoading.d.ts +2 -0
- package/esm/shared/GlobalLoading/GlobalLoading.d.ts.map +1 -0
- package/esm/shared/GlobalLoading/GlobalLoading.js +15 -0
- package/esm/shared/MaqlPreview/MaqlPreview.d.ts +19 -0
- package/esm/shared/MaqlPreview/MaqlPreview.d.ts.map +1 -0
- package/esm/shared/MaqlPreview/MaqlPreview.js +107 -0
- package/esm/shared/MaqlPreview/backend/measureExpressionTokens.d.ts +18 -0
- package/esm/shared/MaqlPreview/backend/measureExpressionTokens.d.ts.map +1 -0
- package/esm/shared/MaqlPreview/backend/measureExpressionTokens.js +83 -0
- package/esm/shared/MaqlPreview/hooks/useMetricTokens.d.ts +8 -0
- package/esm/shared/MaqlPreview/hooks/useMetricTokens.d.ts.map +1 -0
- package/esm/shared/MaqlPreview/hooks/useMetricTokens.js +14 -0
- package/esm/shared/MetricTooltip/MetricTooltip.d.ts +14 -0
- package/esm/shared/MetricTooltip/MetricTooltip.d.ts.map +1 -0
- package/esm/shared/MetricTooltip/MetricTooltip.events.d.ts +9 -0
- package/esm/shared/MetricTooltip/MetricTooltip.events.d.ts.map +1 -0
- package/esm/shared/MetricTooltip/MetricTooltip.events.js +18 -0
- package/esm/shared/MetricTooltip/MetricTooltip.js +46 -0
- package/esm/shared/MetricTooltip/MetricTooltipContent.d.ts +12 -0
- package/esm/shared/MetricTooltip/MetricTooltipContent.d.ts.map +1 -0
- package/esm/shared/MetricTooltip/MetricTooltipContent.js +38 -0
- package/esm/shared/MetricTooltip/fixtures.d.ts +3 -0
- package/esm/shared/MetricTooltip/fixtures.d.ts.map +1 -0
- package/esm/shared/MetricTooltip/fixtures.js +16 -0
- package/esm/shared/Tabs/Tab.d.ts +31 -0
- package/esm/shared/Tabs/Tab.d.ts.map +1 -0
- package/esm/shared/Tabs/Tab.js +171 -0
- package/esm/shared/Tabs/Tabs.classes.d.ts +13 -0
- package/esm/shared/Tabs/Tabs.classes.d.ts.map +1 -0
- package/esm/shared/Tabs/Tabs.classes.js +13 -0
- package/esm/shared/Tabs/Tabs.d.ts +4 -0
- package/esm/shared/Tabs/Tabs.d.ts.map +1 -0
- package/esm/shared/Tabs/Tabs.data.d.ts +37 -0
- package/esm/shared/Tabs/Tabs.data.d.ts.map +1 -0
- package/esm/shared/Tabs/Tabs.data.js +4 -0
- package/esm/shared/Tabs/Tabs.js +195 -0
- package/esm/shared/Tabs/hooks/useChangeScroll.d.ts +2 -0
- package/esm/shared/Tabs/hooks/useChangeScroll.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useChangeScroll.js +19 -0
- package/esm/shared/Tabs/hooks/useMouseDownRepeat.d.ts +3 -0
- package/esm/shared/Tabs/hooks/useMouseDownRepeat.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useMouseDownRepeat.js +43 -0
- package/esm/shared/Tabs/hooks/useScrollByButtons.d.ts +9 -0
- package/esm/shared/Tabs/hooks/useScrollByButtons.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useScrollByButtons.js +76 -0
- package/esm/shared/Tabs/hooks/useScrollToActive.d.ts +2 -0
- package/esm/shared/Tabs/hooks/useScrollToActive.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useScrollToActive.js +36 -0
- package/esm/shared/Tabs/hooks/useTabCallbacks.d.ts +7 -0
- package/esm/shared/Tabs/hooks/useTabCallbacks.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useTabCallbacks.js +17 -0
- package/esm/shared/Tabs/hooks/useTabs.d.ts +24 -0
- package/esm/shared/Tabs/hooks/useTabs.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useTabs.js +130 -0
- package/esm/shared/Tabs/hooks/useTabsCallbacks.d.ts +8 -0
- package/esm/shared/Tabs/hooks/useTabsCallbacks.d.ts.map +1 -0
- package/esm/shared/Tabs/hooks/useTabsCallbacks.js +19 -0
- package/esm/shared/authentication/Authentication.d.ts +8 -0
- package/esm/shared/authentication/Authentication.d.ts.map +1 -0
- package/esm/shared/authentication/Authentication.js +51 -0
- package/esm/shared/backend/tigerContractExpiredHandler.d.ts +3 -0
- package/esm/shared/backend/tigerContractExpiredHandler.d.ts.map +1 -0
- package/esm/shared/backend/tigerContractExpiredHandler.js +19 -0
- package/esm/shared/backend/tigerNotAuthenticatedHandler.d.ts +9 -0
- package/esm/shared/backend/tigerNotAuthenticatedHandler.d.ts.map +1 -0
- package/esm/shared/backend/tigerNotAuthenticatedHandler.js +36 -0
- package/esm/shared/eventing/EventContext.d.ts +25 -0
- package/esm/shared/eventing/EventContext.d.ts.map +1 -0
- package/esm/shared/eventing/EventContext.js +35 -0
- package/esm/shared/eventing/events.d.ts +52 -0
- package/esm/shared/eventing/events.d.ts.map +1 -0
- package/esm/shared/eventing/events.js +56 -0
- package/esm/shared/eventing/functions/errorToTrackingData.d.ts +12 -0
- package/esm/shared/eventing/functions/errorToTrackingData.d.ts.map +1 -0
- package/esm/shared/eventing/functions/errorToTrackingData.js +10 -0
- package/esm/shared/eventing/useEvents.d.ts +10 -0
- package/esm/shared/eventing/useEvents.d.ts.map +1 -0
- package/esm/shared/eventing/useEvents.js +16 -0
- package/esm/shared/hooks/useApi.d.ts +4 -0
- package/esm/shared/hooks/useApi.d.ts.map +1 -0
- package/esm/shared/hooks/useApi.js +15 -0
- package/esm/shared/hooks/useFocus.d.ts +3 -0
- package/esm/shared/hooks/useFocus.d.ts.map +1 -0
- package/esm/shared/hooks/useFocus.js +55 -0
- package/esm/shared/hooks/usePromiseHandlerIndicator.d.ts +2 -0
- package/esm/shared/hooks/usePromiseHandlerIndicator.d.ts.map +1 -0
- package/esm/shared/hooks/usePromiseHandlerIndicator.js +11 -0
- package/esm/shared/hooks/useProp.d.ts +3 -0
- package/esm/shared/hooks/useProp.d.ts.map +1 -0
- package/esm/shared/hooks/useProp.js +15 -0
- package/esm/shared/links.d.ts +9 -0
- package/esm/shared/links.d.ts.map +1 -0
- package/esm/shared/links.js +9 -0
- package/esm/shared/metrics/MetricsReloadContext.d.ts +8 -0
- package/esm/shared/metrics/MetricsReloadContext.d.ts.map +1 -0
- package/esm/shared/metrics/MetricsReloadContext.js +14 -0
- package/esm/shared/metrics/functions/metricListData.d.ts +4 -0
- package/esm/shared/metrics/functions/metricListData.d.ts.map +1 -0
- package/esm/shared/metrics/functions/metricListData.js +29 -0
- package/esm/shared/metrics/useMetricListData.d.ts +29 -0
- package/esm/shared/metrics/useMetricListData.d.ts.map +1 -0
- package/esm/shared/metrics/useMetricListData.events.d.ts +12 -0
- package/esm/shared/metrics/useMetricListData.events.d.ts.map +1 -0
- package/esm/shared/metrics/useMetricListData.events.js +31 -0
- package/esm/shared/metrics/useMetricListData.js +52 -0
- package/esm/shared/metrics/useMetrics.d.ts +16 -0
- package/esm/shared/metrics/useMetrics.d.ts.map +1 -0
- package/esm/shared/metrics/useMetrics.js +34 -0
- package/esm/shared/metrics/useReloadMetrics.d.ts +3 -0
- package/esm/shared/metrics/useReloadMetrics.d.ts.map +1 -0
- package/esm/shared/metrics/useReloadMetrics.js +10 -0
- package/esm/shared/permissions.d.ts +10 -0
- package/esm/shared/permissions.d.ts.map +1 -0
- package/esm/shared/permissions.js +53 -0
- package/esm/shared/platform.d.ts +2 -0
- package/esm/shared/platform.d.ts.map +1 -0
- package/esm/shared/platform.js +4 -0
- package/esm/shared/theme/index.d.ts +416 -0
- package/esm/shared/theme/index.d.ts.map +1 -0
- package/esm/shared/theme/index.js +193 -0
- package/esm/tests/render.test.utils.d.ts +9 -0
- package/esm/tests/render.test.utils.d.ts.map +1 -0
- package/esm/tests/render.test.utils.js +18 -0
- package/esm/translations/IntlWrapper.d.ts +9 -0
- package/esm/translations/IntlWrapper.d.ts.map +1 -0
- package/esm/translations/IntlWrapper.js +11 -0
- package/esm/translations/de-DE.json +131 -0
- package/esm/translations/en-AU.json +131 -0
- package/esm/translations/en-GB.json +131 -0
- package/esm/translations/en-US.json +518 -0
- package/esm/translations/es-419.json +131 -0
- package/esm/translations/es-ES.json +131 -0
- package/esm/translations/fi-FI.json +131 -0
- package/esm/translations/fr-CA.json +131 -0
- package/esm/translations/fr-FR.json +131 -0
- package/esm/translations/id-ID.json +131 -0
- package/esm/translations/it-IT.json +131 -0
- package/esm/translations/ja-JP.json +131 -0
- package/esm/translations/ko-KR.json +131 -0
- package/esm/translations/nl-NL.json +131 -0
- package/esm/translations/pl-PL.json +131 -0
- package/esm/translations/pt-BR.json +131 -0
- package/esm/translations/pt-PT.json +131 -0
- package/esm/translations/ru-RU.json +131 -0
- package/esm/translations/sl-SI.json +131 -0
- package/esm/translations/th-TH.json +131 -0
- package/esm/translations/tr-TR.json +131 -0
- package/esm/translations/translations.d.ts +21 -0
- package/esm/translations/translations.d.ts.map +1 -0
- package/esm/translations/translations.js +89 -0
- package/esm/translations/uk-UA.json +131 -0
- package/esm/translations/vi-VN.json +131 -0
- package/esm/translations/zh-HK.json +131 -0
- package/esm/translations/zh-Hans.json +131 -0
- package/esm/translations/zh-Hant.json +131 -0
- package/package.json +116 -3
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2021-2026 GoodData Corporation
|
|
3
|
+
import { memo, useCallback, useReducer, useState } from "react";
|
|
4
|
+
import { defineMessages } from "react-intl";
|
|
5
|
+
import { useToastMessage } from "@gooddata/sdk-ui-kit";
|
|
6
|
+
import { useFormValues } from "../../shared/Form/useFormValues.js";
|
|
7
|
+
import { useProp } from "../../shared/hooks/useProp.js";
|
|
8
|
+
import { makeStyles } from "../../shared/theme/index.js";
|
|
9
|
+
import { useFeaturesAndSettings } from "../FeaturesAndSettings/index.js";
|
|
10
|
+
import { useCatalog } from "./hooks/useCatalog.js";
|
|
11
|
+
import { useExecute } from "./hooks/useExecute.js";
|
|
12
|
+
import { useExplain } from "./hooks/useExplain.js";
|
|
13
|
+
import { MaqlEditorField } from "./MaqlEditorField/MaqlEditorField.js";
|
|
14
|
+
import { getMaqlValue } from "./maqlFieldFunctions.js";
|
|
15
|
+
import { MaqlResult } from "./MaqlResult/MaqlResult.js";
|
|
16
|
+
import { MaqlSql } from "./MaqlResult/MaqlSql.js";
|
|
17
|
+
const useStyles = makeStyles()((theme) => {
|
|
18
|
+
return {
|
|
19
|
+
maqlBlock: {
|
|
20
|
+
flex: "1 1 auto",
|
|
21
|
+
position: "relative",
|
|
22
|
+
display: "flex",
|
|
23
|
+
flexDirection: "column",
|
|
24
|
+
},
|
|
25
|
+
maqlExpression: {
|
|
26
|
+
flex: "1 1 auto",
|
|
27
|
+
},
|
|
28
|
+
maqlResult: {
|
|
29
|
+
flex: "0 0 auto",
|
|
30
|
+
},
|
|
31
|
+
sqlBlock: {
|
|
32
|
+
flex: "1 1 auto",
|
|
33
|
+
position: "relative",
|
|
34
|
+
width: "50%",
|
|
35
|
+
maxWidth: "50%",
|
|
36
|
+
},
|
|
37
|
+
line: {
|
|
38
|
+
width: "100%",
|
|
39
|
+
height: 1,
|
|
40
|
+
background: theme.globals.colors.defaultBorderDarker,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
const messages = defineMessages({
|
|
45
|
+
copyOk: {
|
|
46
|
+
id: "metricComponent.editMetric.metric.sql.copy_to_clipboard.ok",
|
|
47
|
+
},
|
|
48
|
+
copyError: {
|
|
49
|
+
id: "metricComponent.editMetric.metric.sql.copy_to_clipboard.error",
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
export const MaqlResultArea = "maql_result";
|
|
53
|
+
function EditMetricCenterFormComponent({ sqlOpen = false, computedFor = null, defaultAttributes = [], defaultDisplay, onMetricClick, onSettingsChange, }) {
|
|
54
|
+
const { classes } = useStyles();
|
|
55
|
+
const { canShowResults, canShowSql } = useFeaturesAndSettings();
|
|
56
|
+
const { expression } = useFormValues();
|
|
57
|
+
const { attributes, setAttributes } = useAttributes(defaultAttributes, onSettingsChange);
|
|
58
|
+
const { display, setDisplay } = useDisplay(defaultDisplay, onSettingsChange);
|
|
59
|
+
const run = useRun(computedFor, onSettingsChange);
|
|
60
|
+
const sql = useSqlOpen(sqlOpen, onSettingsChange);
|
|
61
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: classes.maqlBlock, children: [_jsx("div", { className: classes.maqlExpression, children: _jsx(MaqlEditorField, { isSQL: sql.isSQL, onMetricOpen: onMetricClick, onSQL: () => sql.setSQL(true), onRun: () => run.setComputed(getMaqlValue(expression)) }) }), canShowResults && (_jsx(EditMetricData, { run: run, attributes: attributes, setAttributes: setAttributes, display: display, setDisplay: setDisplay }))] }), canShowSql && _jsx(EditMetricSql, { attributes: attributes, sql: sql })] }));
|
|
62
|
+
}
|
|
63
|
+
export const EditMetricCenterForm = memo(EditMetricCenterFormComponent);
|
|
64
|
+
function EditMetricSql({ attributes, sql, }) {
|
|
65
|
+
const { classes } = useStyles();
|
|
66
|
+
const measure = useFormValues();
|
|
67
|
+
const onCopyDone = useCopyStatus();
|
|
68
|
+
const { isSQL, sqlId, setSQL } = sql;
|
|
69
|
+
const explain = useExplain(measure, { attributes }, [sqlId]);
|
|
70
|
+
if (!isSQL) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return (_jsx("div", { className: classes.sqlBlock, children: _jsx(MaqlSql, { explain: explain, onCopy: onCopyDone, onClose: () => setSQL(false) }) }));
|
|
74
|
+
}
|
|
75
|
+
function EditMetricData({ attributes, setAttributes, run, display, setDisplay, }) {
|
|
76
|
+
const { classes } = useStyles();
|
|
77
|
+
const measure = useFormValues();
|
|
78
|
+
const { computed, setComputed } = run;
|
|
79
|
+
const { result, status } = useCatalog(measure, attributes, [computed]);
|
|
80
|
+
const catalogLoading = status === "loading" || status === "pending";
|
|
81
|
+
const execute = useExecute(computed ? { ...measure, expression: computed } : null, { attributes, ...display }, [computed, measure.format]);
|
|
82
|
+
if (!execute) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: classes.line }), _jsx("div", { className: classes.maqlResult, "data-area": MaqlResultArea, children: _jsx(MaqlResult, { execute: execute, attributes: attributes, catalogLoading: catalogLoading, catalog: result, onContext: setAttributes, display: display, onDisplay: setDisplay, onContextOpen: () => setComputed(getMaqlValue(measure.expression)) }) })] }));
|
|
86
|
+
}
|
|
87
|
+
function useCopyStatus() {
|
|
88
|
+
const { addSuccess, addError } = useToastMessage();
|
|
89
|
+
return useCallback((state) => {
|
|
90
|
+
if (state) {
|
|
91
|
+
addSuccess(messages.copyOk);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
addError(messages.copyError);
|
|
95
|
+
}
|
|
96
|
+
}, [addError, addSuccess]);
|
|
97
|
+
}
|
|
98
|
+
function useSqlOpen(sqlOpen, onSettingsChange) {
|
|
99
|
+
const { expression } = useFormValues();
|
|
100
|
+
const expressionCurrent = getMaqlValue(expression);
|
|
101
|
+
const [expressionSaved, setExpression] = useState(expressionCurrent);
|
|
102
|
+
const [isSQL, setSQL] = useProp(sqlOpen);
|
|
103
|
+
const [sqlId, generateId] = useReducer(rand, rand());
|
|
104
|
+
return {
|
|
105
|
+
isSQL,
|
|
106
|
+
sqlId,
|
|
107
|
+
setSQL: (sqlOpen) => {
|
|
108
|
+
if (sqlOpen && expressionSaved !== expression) {
|
|
109
|
+
setExpression(expression);
|
|
110
|
+
generateId();
|
|
111
|
+
}
|
|
112
|
+
setSQL(sqlOpen);
|
|
113
|
+
if (onSettingsChange) {
|
|
114
|
+
onSettingsChange({ sqlOpen });
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function useRun(computedFor, onSettingsChange) {
|
|
120
|
+
const [computed, setComputed] = useProp(computedFor);
|
|
121
|
+
return {
|
|
122
|
+
computed,
|
|
123
|
+
setComputed: (computedFor) => {
|
|
124
|
+
setComputed(computedFor);
|
|
125
|
+
if (onSettingsChange) {
|
|
126
|
+
onSettingsChange({ computedFor });
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function useAttributes(attrs, onSettingsChange) {
|
|
132
|
+
const [attributes, setAttributes] = useProp(attrs);
|
|
133
|
+
return {
|
|
134
|
+
attributes,
|
|
135
|
+
setAttributes: (attributes) => {
|
|
136
|
+
setAttributes(attributes);
|
|
137
|
+
if (onSettingsChange) {
|
|
138
|
+
onSettingsChange({ attributes });
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function useDisplay(disp, onSettingsChange) {
|
|
144
|
+
const [display, setDisplay] = useProp(disp);
|
|
145
|
+
return {
|
|
146
|
+
display,
|
|
147
|
+
setDisplay: (display) => {
|
|
148
|
+
setDisplay(display);
|
|
149
|
+
if (onSettingsChange) {
|
|
150
|
+
onSettingsChange({ display });
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function rand() {
|
|
156
|
+
return Math.random().toString(36).slice(2);
|
|
157
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type Ref } from "react";
|
|
2
|
+
import { type IMeasureReferencing } from "@gooddata/sdk-backend-spi";
|
|
3
|
+
import { type IInsight, type IMetadataObject, type ISeparators, type IWorkspacePermissions } from "@gooddata/sdk-model";
|
|
4
|
+
import { type IObjectShareDraft } from "@gooddata/sdk-ui-ext";
|
|
5
|
+
import { type IMeasureDef, type IMeasureSetting } from "../metric/metricHelpers.js";
|
|
6
|
+
import { type FormField } from "./data.js";
|
|
7
|
+
export interface IEditMetricDialogFormApi {
|
|
8
|
+
close: () => void;
|
|
9
|
+
save: () => Promise<void>;
|
|
10
|
+
saveAs: () => Promise<void>;
|
|
11
|
+
saveForce: (data?: Partial<IMeasureDef>) => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export interface IEditMetricDialogFormProps {
|
|
14
|
+
metric: IMeasureDef;
|
|
15
|
+
setting: IMeasureSetting;
|
|
16
|
+
permissions: IWorkspacePermissions;
|
|
17
|
+
initialFocus?: FormField;
|
|
18
|
+
usage?: IMeasureReferencing;
|
|
19
|
+
regenerateId?: boolean;
|
|
20
|
+
showCloseButton?: boolean;
|
|
21
|
+
ref?: Ref<IEditMetricDialogFormApi | undefined>;
|
|
22
|
+
onSave: (metric: IMeasureDef, force?: boolean) => Promise<void>;
|
|
23
|
+
onSaveAs: (metric: IMeasureDef) => Promise<void>;
|
|
24
|
+
onDelete: () => void;
|
|
25
|
+
onClose: (metric: Partial<IMeasureDef>, valid: boolean) => void;
|
|
26
|
+
onCancel: () => void;
|
|
27
|
+
onDirtyChanged?: (dirty: boolean) => void;
|
|
28
|
+
onValueChange?: (metric: IMeasureDef, valid: boolean) => void;
|
|
29
|
+
onSettingsChange?: (setting: Partial<IMeasureSetting>) => void;
|
|
30
|
+
activeInsight?: IInsight;
|
|
31
|
+
insightOpenType?: "external" | "internal";
|
|
32
|
+
onInsightClick?: (object: IInsight) => void;
|
|
33
|
+
metricOpenType?: "external" | "internal";
|
|
34
|
+
onMetricClick?: (object: IMetadataObject) => void;
|
|
35
|
+
isWhiteLabeled?: boolean;
|
|
36
|
+
separators?: ISeparators;
|
|
37
|
+
useReferences?: boolean;
|
|
38
|
+
currencyFormatOverride?: string | null;
|
|
39
|
+
enableMetricFormatOverrides?: boolean;
|
|
40
|
+
/** Access drafted so far, kept by the tab. */
|
|
41
|
+
draftAccess?: IObjectShareDraft;
|
|
42
|
+
onDraftAccessChange?: (draftAccess: IObjectShareDraft | undefined) => void;
|
|
43
|
+
}
|
|
44
|
+
export declare const EditMetricContentForm: import("react").ForwardRefExoticComponent<Omit<IEditMetricDialogFormProps, "ref"> & import("react").RefAttributes<IEditMetricDialogFormApi | undefined>>;
|
|
45
|
+
//# sourceMappingURL=EditMetricContentForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditMetricContentForm.d.ts","sourceRoot":"","sources":["../../../src/MetricComponent/Form/EditMetricContentForm.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,GAAG,EAA+B,MAAM,OAAO,CAAC;AAIjF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAK7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAQ9D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIpF,OAAO,EAAE,KAAK,SAAS,EAA8B,MAAM,WAAW,CAAC;AAkEvE,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,qBAAqB,CAAC;IACnC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC/D,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,eAAe,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9E;AAID,eAAO,MAAM,qBAAqB,0JA0JhC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type IEvent } from "../../shared/eventing/EventContext.js";
|
|
2
|
+
declare function metricNameCreatedEvent(): IEvent;
|
|
3
|
+
declare function metricIdCreatedEvent(): IEvent;
|
|
4
|
+
declare function metricIdEditEvent(): IEvent;
|
|
5
|
+
declare function metricDescriptionAddedEvent(): IEvent;
|
|
6
|
+
export declare const events: {
|
|
7
|
+
metricNameCreatedEvent: typeof metricNameCreatedEvent;
|
|
8
|
+
metricIdCreatedEvent: typeof metricIdCreatedEvent;
|
|
9
|
+
metricIdEditEvent: typeof metricIdEditEvent;
|
|
10
|
+
metricDescriptionAddedEvent: typeof metricDescriptionAddedEvent;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=EditMetricContentForm.events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditMetricContentForm.events.d.ts","sourceRoot":"","sources":["../../../src/MetricComponent/Form/EditMetricContentForm.events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAGpE,iBAAS,sBAAsB,IAAI,MAAM,CAKxC;AAED,iBAAS,oBAAoB,IAAI,MAAM,CAKtC;AAED,iBAAS,iBAAiB,IAAI,MAAM,CAKnC;AAED,iBAAS,2BAA2B,IAAI,MAAM,CAK7C;AAED,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// (C) 2021-2026 GoodData Corporation
|
|
2
|
+
import { EventCategories, Events } from "../../shared/eventing/events.js";
|
|
3
|
+
function metricNameCreatedEvent() {
|
|
4
|
+
return {
|
|
5
|
+
action: Events.metricNameCreated,
|
|
6
|
+
category: EventCategories.metricComponent,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function metricIdCreatedEvent() {
|
|
10
|
+
return {
|
|
11
|
+
action: Events.metricIdCreated,
|
|
12
|
+
category: EventCategories.metricComponent,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function metricIdEditEvent() {
|
|
16
|
+
return {
|
|
17
|
+
action: Events.metricIdEdit,
|
|
18
|
+
category: EventCategories.metricComponent,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function metricDescriptionAddedEvent() {
|
|
22
|
+
return {
|
|
23
|
+
action: Events.metricDescriptionAdded,
|
|
24
|
+
category: EventCategories.metricComponent,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export const events = {
|
|
28
|
+
metricNameCreatedEvent,
|
|
29
|
+
metricIdCreatedEvent,
|
|
30
|
+
metricIdEditEvent,
|
|
31
|
+
metricDescriptionAddedEvent,
|
|
32
|
+
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2021-2026 GoodData Corporation
|
|
3
|
+
import { forwardRef, useMemo, useRef } from "react";
|
|
4
|
+
import classNames from "classnames";
|
|
5
|
+
import { canEditMetric, canShareMetric, isMeasureMetadataObject, isMeasureMetadataObjectDefinition, } from "@gooddata/sdk-model";
|
|
6
|
+
import { FormMode } from "../../shared/Form/data.js";
|
|
7
|
+
import { FormProvider } from "../../shared/Form/Form.js";
|
|
8
|
+
import { handler, useApi } from "../../shared/hooks/useApi.js";
|
|
9
|
+
import { makeStyles } from "../../shared/theme/index.js";
|
|
10
|
+
import { useFeaturesAndSettings } from "../FeaturesAndSettings/index.js";
|
|
11
|
+
import { transformToMetricDefinition } from "../metric/transformer.js";
|
|
12
|
+
import { CloseButton } from "./CloseButton/CloseButton.js";
|
|
13
|
+
import { EditMetricCenterForm } from "./EditMetricCenterForm.js";
|
|
14
|
+
import { EditMetricContentFooter } from "./Footer/EditMetricContentFooter.js";
|
|
15
|
+
import { EditMetricContentHeader } from "./Header/EditMetricContentHeader.js";
|
|
16
|
+
import { MetricTagsField } from "./Header/MetricTagsField.js";
|
|
17
|
+
import { useInvalidFocus } from "./hooks/useInvalidFocus.js";
|
|
18
|
+
import { useMetricValidation } from "./hooks/useMetricValidation.js";
|
|
19
|
+
import { EditMetricContentNumberFormat } from "./NumberFormat/EditMetricContentNumberFormat.js";
|
|
20
|
+
const useStyles = makeStyles()((theme) => {
|
|
21
|
+
const headerSize = 107;
|
|
22
|
+
const footerSize = 138;
|
|
23
|
+
return {
|
|
24
|
+
root: {
|
|
25
|
+
width: "100%",
|
|
26
|
+
height: "100%",
|
|
27
|
+
"*": {
|
|
28
|
+
boxSizing: "border-box",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
form: {
|
|
32
|
+
width: "100%",
|
|
33
|
+
height: "100%",
|
|
34
|
+
backgroundColor: theme.globals.colors.defaultWhite,
|
|
35
|
+
display: "flex",
|
|
36
|
+
minHeight: `calc(50vh + ${headerSize}px + ${footerSize}px)`,
|
|
37
|
+
flexDirection: "column",
|
|
38
|
+
},
|
|
39
|
+
line: {
|
|
40
|
+
width: "100%",
|
|
41
|
+
height: 1,
|
|
42
|
+
background: theme.globals.colors.defaultBorderDarker,
|
|
43
|
+
},
|
|
44
|
+
smallLine: {
|
|
45
|
+
height: 1,
|
|
46
|
+
background: theme.globals.colors.line,
|
|
47
|
+
margin: "0 20px",
|
|
48
|
+
"&:last-child": {
|
|
49
|
+
display: "none",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
space: {
|
|
53
|
+
height: 16,
|
|
54
|
+
},
|
|
55
|
+
headerBlock: { flex: "0 0 auto" },
|
|
56
|
+
centerBlock: { flex: "1 1 auto", display: "flex" },
|
|
57
|
+
footerBlock: { flex: "0 0 auto" },
|
|
58
|
+
footerContent: {
|
|
59
|
+
display: "flex",
|
|
60
|
+
alignItems: "center",
|
|
61
|
+
padding: "0 20px",
|
|
62
|
+
gap: 20,
|
|
63
|
+
flexWrap: "wrap",
|
|
64
|
+
},
|
|
65
|
+
tagsSection: {
|
|
66
|
+
display: "flex",
|
|
67
|
+
alignItems: "center",
|
|
68
|
+
minWidth: 200,
|
|
69
|
+
flex: "1 1 auto",
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
const FormComponent = FormProvider;
|
|
74
|
+
export const EditMetricContentForm = forwardRef(function EditMetricContentForm({ metric, setting, permissions, initialFocus, usage, regenerateId, showCloseButton = true, onSave, onSaveAs, onDelete, onClose, onCancel, onDirtyChanged, onValueChange, onSettingsChange, metricOpenType, onMetricClick, activeInsight, insightOpenType, onInsightClick, isWhiteLabeled, separators, useReferences, currencyFormatOverride, enableMetricFormatOverrides, draftAccess, onDraftAccessChange, }, ref) {
|
|
75
|
+
const { classes } = useStyles();
|
|
76
|
+
const { enableMetricPermissions } = useFeaturesAndSettings();
|
|
77
|
+
const comp = useRef(undefined);
|
|
78
|
+
const locked = metric.isLocked || false;
|
|
79
|
+
const { computedFor, sqlOpen, display, attributes } = setting;
|
|
80
|
+
const invalidFocusHandler = useInvalidFocus();
|
|
81
|
+
const metricValidationHandler = useMetricValidation(locked, {
|
|
82
|
+
allowEmptyCurrencyFormat: Boolean(currencyFormatOverride),
|
|
83
|
+
validateCurrencyMetricType: Boolean(enableMetricFormatOverrides),
|
|
84
|
+
});
|
|
85
|
+
const isDefinition = isMeasureMetadataObjectDefinition(metric);
|
|
86
|
+
const canCreate = permissions.canCreateMetric;
|
|
87
|
+
// a metric that has not been saved yet carries no object-level permissions; creating it is
|
|
88
|
+
// gated by canCreate below, not by canEdit
|
|
89
|
+
const metricPermissions = isMeasureMetadataObject(metric) ? metric.permissions : undefined;
|
|
90
|
+
const canEdit = canEditMetric(metricPermissions, permissions, enableMetricPermissions);
|
|
91
|
+
const canShare = isDefinition
|
|
92
|
+
? enableMetricPermissions && canCreate
|
|
93
|
+
: canShareMetric(metricPermissions, permissions, enableMetricPermissions);
|
|
94
|
+
useApi(ref, {
|
|
95
|
+
close: handler(comp, (api) => api.close()),
|
|
96
|
+
save: handler(comp, (api) => api.save()),
|
|
97
|
+
saveForce: handler(comp, (api, data) => api.saveForce(data)),
|
|
98
|
+
saveAs: handler(comp, (api) => api.saveAs()),
|
|
99
|
+
}, [comp]);
|
|
100
|
+
// Ensure metricType is explicitly included in form data (in case it's not enumerable)
|
|
101
|
+
const formData = useMemo(() => ({
|
|
102
|
+
...metric,
|
|
103
|
+
metricType: metric.metricType,
|
|
104
|
+
}), [metric]);
|
|
105
|
+
return (_jsx(FormComponent, { ref: comp, data: formData, transformer: transformToMetricDefinition, invalidFocus: invalidFocusHandler, validator: metricValidationHandler, editable: isDefinition ? canCreate : canEdit, writeable: canCreate, locked: locked, mode: isDefinition ? FormMode.New : FormMode.Edit, initialFocus: initialFocus, onDirtyChanged: onDirtyChanged, onValueChange: onValueChange, onSave: onSave, onSaveAs: onSaveAs, onClose: onClose, children: _jsx("form", { onSubmit: () => comp.current?.save(), className: classes.root, children: _jsxs("div", { className: classNames(classes.form, "edit-metric-form-content"), children: [_jsxs("div", { className: classes.headerBlock, children: [_jsx(EditMetricContentHeader, { metric: metric, canShare: canShare, draftAccess: draftAccess, onDraftAccessChange: onDraftAccessChange, usage: usage, separators: separators, regenerateId: regenerateId, activeInsight: activeInsight, insightOpenType: insightOpenType, onInsightClick: onInsightClick, metricOpenType: metricOpenType, onMetricClick: onMetricClick, useReferences: useReferences }), showCloseButton && _jsx(CloseButton, { onClick: () => comp.current?.close() }), _jsx("div", { className: classes.line })] }), _jsx("div", { className: classes.centerBlock, children: _jsx(EditMetricCenterForm, { defaultAttributes: attributes, defaultDisplay: display, computedFor: computedFor, sqlOpen: sqlOpen, onMetricClick: onMetricClick, onSettingsChange: onSettingsChange }) }), _jsxs("div", { className: classes.footerBlock, children: [_jsx("div", { className: classes.line }), _jsx("div", { className: classes.space }), _jsxs("div", { className: classes.footerContent, children: [_jsx("div", { children: _jsx(EditMetricContentNumberFormat, { separators: separators, currencyFormatOverride: currencyFormatOverride, enableMetricFormatOverrides: enableMetricFormatOverrides }) }), _jsx("div", { className: classes.tagsSection, children: _jsx(MetricTagsField, {}) })] }), _jsx("div", { className: classes.space }), _jsx("div", { className: classes.smallLine }), _jsx(EditMetricContentFooter, { onCancel: onCancel, onDelete: onDelete, isWhiteLabeled: isWhiteLabeled })] })] }) }) }));
|
|
106
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ISeparators } from "@gooddata/sdk-model";
|
|
2
|
+
export interface IEditableRowProps {
|
|
3
|
+
value: string;
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
readOnly?: boolean;
|
|
8
|
+
onHeightChange?: (height: number) => void;
|
|
9
|
+
autoResize?: boolean;
|
|
10
|
+
useReferences?: boolean;
|
|
11
|
+
separators?: ISeparators;
|
|
12
|
+
}
|
|
13
|
+
declare function EditableRowComponent({ value, onChange, placeholder, className, autoResize, onHeightChange, useReferences, separators, }: IEditableRowProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const EditableRow: import("react").MemoExoticComponent<typeof EditableRowComponent>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=EditableRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableRow.d.ts","sourceRoot":"","sources":["../../../../src/MetricComponent/Form/EditableRow/EditableRow.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA6DvD,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,iBAAS,oBAAoB,CAAC,EAC1B,KAAU,EACV,QAAQ,EACR,WAAgB,EAChB,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAqB,EACrB,UAAU,GACb,EAAE,iBAAiB,2CA+CnB;AAED,eAAO,MAAM,WAAW,kEAA6B,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2021-2026 GoodData Corporation
|
|
3
|
+
import { memo, useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
// we need this version of classnames, tss version work differently
|
|
6
|
+
import { RichTextWithTooltip } from "@gooddata/sdk-ui-kit";
|
|
7
|
+
import { makeStyles } from "../../../shared/theme/index.js";
|
|
8
|
+
const useStyles = makeStyles()((theme) => {
|
|
9
|
+
return {
|
|
10
|
+
root: {
|
|
11
|
+
display: "flex",
|
|
12
|
+
width: "100%",
|
|
13
|
+
},
|
|
14
|
+
richText: {
|
|
15
|
+
[".gd-bubble-trigger"]: {
|
|
16
|
+
width: "100%",
|
|
17
|
+
},
|
|
18
|
+
minHeight: "29px",
|
|
19
|
+
maxHeight: "250px",
|
|
20
|
+
border: "1px solid transparent",
|
|
21
|
+
padding: "4px 4px",
|
|
22
|
+
color: theme.globals.colors.subtitle,
|
|
23
|
+
lineHeight: "19px",
|
|
24
|
+
cursor: "pointer",
|
|
25
|
+
"&:hover": {
|
|
26
|
+
border: `1px solid ${theme.tabs.colors.border}`,
|
|
27
|
+
},
|
|
28
|
+
textarea: {
|
|
29
|
+
lineHeight: "19px",
|
|
30
|
+
padding: 0,
|
|
31
|
+
fontFamily: theme.fonts.main,
|
|
32
|
+
color: theme.globals.colors.subtitle,
|
|
33
|
+
"&::placeholder": {
|
|
34
|
+
color: theme.tabs.colors.placeholder,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
"&.active": {
|
|
38
|
+
border: `1px solid ${theme.tabs.colors.border}`,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
richTextFit: {
|
|
42
|
+
textarea: { verticalAlign: "top" },
|
|
43
|
+
},
|
|
44
|
+
richTextView: {
|
|
45
|
+
lineHeight: "19px",
|
|
46
|
+
color: theme.globals.colors.subtitle,
|
|
47
|
+
overflow: "auto",
|
|
48
|
+
"p, ul": { color: theme.globals.colors.description, marginBottom: 0 },
|
|
49
|
+
a: { marginBottom: 0 },
|
|
50
|
+
},
|
|
51
|
+
richTextViewEmpty: {
|
|
52
|
+
lineHeight: "19px",
|
|
53
|
+
color: theme.tabs.colors.placeholder,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
const richTextTooltipAlignPoints = [
|
|
58
|
+
{ align: "bl tl", offset: { x: 6, y: 4 } },
|
|
59
|
+
{ align: "tl bl", offset: { x: 6, y: -4 } },
|
|
60
|
+
];
|
|
61
|
+
function EditableRowComponent({ value = "", onChange, placeholder = "", className, autoResize, onHeightChange, useReferences = false, separators, }) {
|
|
62
|
+
const { classes } = useStyles();
|
|
63
|
+
const [richTextEditMode, setRichTextEditMode] = useState(false);
|
|
64
|
+
const handleRichTextClick = useCallback(() => {
|
|
65
|
+
setRichTextEditMode(true);
|
|
66
|
+
}, []);
|
|
67
|
+
const handleRichTextBlur = useCallback(() => {
|
|
68
|
+
setRichTextEditMode(false);
|
|
69
|
+
}, []);
|
|
70
|
+
const element = useRef(null);
|
|
71
|
+
useLayoutEffect(() => {
|
|
72
|
+
if (onHeightChange && element?.current) {
|
|
73
|
+
onHeightChange(element.current.clientHeight);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
return (_jsx("div", { className: cx(classes.root, className), ref: element, children: _jsx("div", { className: cx(classes.richText, {
|
|
77
|
+
active: richTextEditMode,
|
|
78
|
+
[classes.richTextView]: !richTextEditMode && value,
|
|
79
|
+
[classes.richTextFit]: autoResize,
|
|
80
|
+
}), onClick: handleRichTextClick, onBlur: handleRichTextBlur, children: _jsx(RichTextWithTooltip, { value: value, renderMode: richTextEditMode ? "edit" : "view", editRows: 5, autoResize: autoResize, showTooltip: richTextEditMode, editPlaceholder: placeholder, emptyElement: _jsx("div", { className: classes.richTextViewEmpty, children: placeholder }), tooltipAlignPoints: richTextTooltipAlignPoints, onChange: onChange, separators: separators, referencesEnabled: useReferences }) }) }));
|
|
81
|
+
}
|
|
82
|
+
export const EditableRow = memo(EditableRowComponent);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
export interface IEditableRowErrorProps {
|
|
3
|
+
showError?: boolean;
|
|
4
|
+
errorMessage?: ReactElement | string;
|
|
5
|
+
showWarning?: boolean;
|
|
6
|
+
warningMessage?: ReactElement | string;
|
|
7
|
+
errorId?: string;
|
|
8
|
+
alignTo?: HTMLElement | null;
|
|
9
|
+
align?: string;
|
|
10
|
+
warningId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function EditableRowError({ showError, errorMessage, showWarning, warningMessage, errorId, warningId, alignTo, align, }: IEditableRowErrorProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=EditableRowError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableRowError.d.ts","sourceRoot":"","sources":["../../../../src/MetricComponent/Form/EditableRow/EditableRowError.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,MAAM,WAAW,sBAAsB;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,SAAS,EACT,YAAY,EACZ,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAe,GAClB,EAAE,sBAAsB,2CAyBxB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Bubble } from "@gooddata/sdk-ui-kit";
|
|
3
|
+
export function EditableRowError({ showError, errorMessage, showWarning, warningMessage, errorId, warningId, alignTo, align = "bc tc", }) {
|
|
4
|
+
return (_jsxs(_Fragment, { children: [showError && errorMessage && (_jsx(Bubble, { id: errorId, className: "bubble-negative s-editable-row-error", alignTo: alignTo, alignPoints: [{ align }], children: errorMessage })), showWarning && warningMessage && !showError && (_jsx(Bubble, { id: warningId, className: "bubble-warning s-editable-row-warning", alignTo: alignTo, alignPoints: [{ align }], children: warningMessage }))] }));
|
|
5
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactElement, type Ref } from "react";
|
|
2
|
+
export interface IInlineEditableValueHandle {
|
|
3
|
+
focus: () => void;
|
|
4
|
+
}
|
|
5
|
+
export interface IInlineEditableValueProps {
|
|
6
|
+
value: string;
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
onBlur?: (e?: FocusEvent) => void;
|
|
9
|
+
onChangeValueTransformer?: (value: string) => string | null;
|
|
10
|
+
onEditEndsValueTransformer?: (value: string) => string;
|
|
11
|
+
prefix?: string;
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
ariaLabel?: string;
|
|
14
|
+
size?: "small" | "large";
|
|
15
|
+
minWidth?: number;
|
|
16
|
+
revealOnHover?: boolean;
|
|
17
|
+
readOnly?: boolean;
|
|
18
|
+
showError?: boolean;
|
|
19
|
+
errorMessage?: ReactElement | string;
|
|
20
|
+
showWarning?: boolean;
|
|
21
|
+
warningMessage?: ReactElement | string;
|
|
22
|
+
className?: string;
|
|
23
|
+
ref?: Ref<IInlineEditableValueHandle>;
|
|
24
|
+
}
|
|
25
|
+
/** A value edited in place, in a box always as wide as its value. */
|
|
26
|
+
export declare const InlineEditableValue: import("react").ForwardRefExoticComponent<Omit<IInlineEditableValueProps, "ref"> & import("react").RefAttributes<IInlineEditableValueHandle>>;
|
|
27
|
+
//# sourceMappingURL=InlineEditableValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineEditableValue.d.ts","sourceRoot":"","sources":["../../../../src/MetricComponent/Form/EditableRow/InlineEditableValue.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,YAAY,EAEjB,KAAK,GAAG,EAKX,MAAM,OAAO,CAAC;AA2Df,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5D,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,0BAA0B,CAAC,CAAC;CACzC;AAKD,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,+IA4I/B,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { forwardRef, useId, useImperativeHandle, useState, } from "react";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
import { useFocus } from "../../../shared/hooks/useFocus.js";
|
|
6
|
+
import { makeStyles } from "../../../shared/theme/index.js";
|
|
7
|
+
import { EditableRowError } from "./EditableRowError.js";
|
|
8
|
+
const useStyles = makeStyles()((theme, { minWidth }) => ({
|
|
9
|
+
root: {
|
|
10
|
+
...theme.globals.normalItemStyle,
|
|
11
|
+
display: "inline-flex",
|
|
12
|
+
alignItems: "center",
|
|
13
|
+
maxWidth: "100%",
|
|
14
|
+
minWidth,
|
|
15
|
+
border: "1px solid transparent",
|
|
16
|
+
cursor: "text",
|
|
17
|
+
"&.small": { ...theme.globals.smallItemStyle },
|
|
18
|
+
"&.readOnly": { cursor: "default" },
|
|
19
|
+
"&.is-active": { borderColor: theme.globals.colors.editableRowHover },
|
|
20
|
+
"&.is-warning": { borderColor: theme.globals.colors.warning },
|
|
21
|
+
"&.is-error": { borderColor: theme.globals.colors.negative },
|
|
22
|
+
},
|
|
23
|
+
prefix: {
|
|
24
|
+
flex: "0 0 auto",
|
|
25
|
+
whiteSpace: "pre",
|
|
26
|
+
},
|
|
27
|
+
field: {
|
|
28
|
+
position: "relative",
|
|
29
|
+
flex: "1 1 auto",
|
|
30
|
+
minWidth: 0,
|
|
31
|
+
overflow: "hidden",
|
|
32
|
+
alignSelf: "stretch",
|
|
33
|
+
},
|
|
34
|
+
sizer: {
|
|
35
|
+
display: "block",
|
|
36
|
+
whiteSpace: "pre",
|
|
37
|
+
visibility: "hidden",
|
|
38
|
+
pointerEvents: "none",
|
|
39
|
+
},
|
|
40
|
+
input: {
|
|
41
|
+
position: "absolute",
|
|
42
|
+
inset: 0,
|
|
43
|
+
width: "100%",
|
|
44
|
+
margin: 0,
|
|
45
|
+
padding: 0,
|
|
46
|
+
border: 0,
|
|
47
|
+
outline: 0,
|
|
48
|
+
background: "transparent",
|
|
49
|
+
font: "inherit",
|
|
50
|
+
color: "inherit",
|
|
51
|
+
textOverflow: "ellipsis",
|
|
52
|
+
"&::placeholder": { color: theme.globals.colors.placeholder },
|
|
53
|
+
},
|
|
54
|
+
}));
|
|
55
|
+
// A size="small" box with no minimum height collapses without a line box to measure.
|
|
56
|
+
const ZERO_WIDTH_SPACE = "\u200B";
|
|
57
|
+
/** A value edited in place, in a box always as wide as its value. */
|
|
58
|
+
export const InlineEditableValue = forwardRef(function InlineEditableValue({ value = "", onChange, onBlur, onChangeValueTransformer, onEditEndsValueTransformer, prefix, placeholder = "", ariaLabel, size = "large", minWidth = 40, revealOnHover = true, readOnly, showError, errorMessage, showWarning, warningMessage, className, }, ref) {
|
|
59
|
+
const [rootElement, setRootElement] = useState(null);
|
|
60
|
+
const [inputElement, setInputElement] = useState(null);
|
|
61
|
+
const [focusRequested, setFocusRequested] = useState(false);
|
|
62
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
63
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
64
|
+
const { classes } = useStyles({ minWidth });
|
|
65
|
+
useImperativeHandle(ref, () => ({ focus: () => setFocusRequested(true) }));
|
|
66
|
+
// Applied once the input is visible rather than straight away, so a click that asks
|
|
67
|
+
// for the focus cannot take it back.
|
|
68
|
+
useFocus(inputElement, focusRequested);
|
|
69
|
+
const id = useId();
|
|
70
|
+
const errorId = `${id}-error`;
|
|
71
|
+
const warningId = `${id}-warning`;
|
|
72
|
+
// Both surface only while the user is at the field. Validation focuses the field it
|
|
73
|
+
// rejected, so a failed save still shows its error.
|
|
74
|
+
const atField = !readOnly && (isHovered || isFocused);
|
|
75
|
+
const errorVisible = atField && Boolean(showError);
|
|
76
|
+
const warningVisible = atField && Boolean(showWarning) && !showError;
|
|
77
|
+
const describedBy = [
|
|
78
|
+
errorVisible && errorMessage ? errorId : undefined,
|
|
79
|
+
warningVisible && warningMessage ? warningId : undefined,
|
|
80
|
+
]
|
|
81
|
+
.filter(Boolean)
|
|
82
|
+
.join(" ") || undefined;
|
|
83
|
+
const handleChange = (next) => {
|
|
84
|
+
const changeValue = onChangeValueTransformer ? onChangeValueTransformer(next) : next;
|
|
85
|
+
if (changeValue !== null) {
|
|
86
|
+
onChange(changeValue);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const handleBlur = (e) => {
|
|
90
|
+
setIsFocused(false);
|
|
91
|
+
setFocusRequested(false);
|
|
92
|
+
if (readOnly) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// Always reported: the form marks the field touched and clears its focus
|
|
96
|
+
// tracking from here. Committed only on a real change, so leaving a generated
|
|
97
|
+
// id untouched does not count as editing it.
|
|
98
|
+
const transformed = onEditEndsValueTransformer?.(value) ?? value;
|
|
99
|
+
onBlur?.(e.nativeEvent);
|
|
100
|
+
if (transformed !== value) {
|
|
101
|
+
onChange(transformed);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const handleKeyDown = (e) => {
|
|
105
|
+
if (e.key === "Enter") {
|
|
106
|
+
e.currentTarget.blur();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
if (readOnly && value.length === 0) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
return (_jsxs("span", { ref: setRootElement, className: cx(classes.root, size, className, "s-editable_row", {
|
|
113
|
+
readOnly,
|
|
114
|
+
"is-active": !readOnly && ((revealOnHover && isHovered) || isFocused),
|
|
115
|
+
"is-error": errorVisible,
|
|
116
|
+
"is-warning": warningVisible,
|
|
117
|
+
}), onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: [prefix ? _jsx("span", { className: classes.prefix, children: prefix }) : null, _jsxs("span", { className: classes.field, children: [_jsx("span", { "aria-hidden": true, className: classes.sizer, children: value || placeholder || ZERO_WIDTH_SPACE }), _jsx("input", { ref: setInputElement, type: "text", className: cx(classes.input, "s-editable_row_input"), value: value, placeholder: placeholder, readOnly: readOnly, "aria-label": ariaLabel, "aria-invalid": showError, "aria-describedby": describedBy, onChange: (e) => handleChange(e.target.value.toString()), onKeyDown: handleKeyDown, onFocus: () => {
|
|
118
|
+
setIsFocused(true);
|
|
119
|
+
// Focus asked for from code offers the value for replacement; a
|
|
120
|
+
// click keeps the caret where the user put it.
|
|
121
|
+
if (focusRequested) {
|
|
122
|
+
inputElement?.select();
|
|
123
|
+
}
|
|
124
|
+
}, onBlur: handleBlur })] }), rootElement ? (_jsx(EditableRowError, { alignTo: rootElement, showError: errorVisible, errorMessage: errorMessage, errorId: errorId, showWarning: warningVisible, warningMessage: warningMessage, warningId: warningId })) : null] }));
|
|
125
|
+
});
|