@gooddata/sdk-ui 8.13.0-alpha.2 → 8.13.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/constants/bucketNames.js +32 -32
- package/dist/base/constants/bucketNames.js.map +1 -1
- package/dist/base/errors/GoodDataSdkError.js +67 -98
- package/dist/base/errors/GoodDataSdkError.js.map +1 -1
- package/dist/base/errors/errorHandling.js +17 -18
- package/dist/base/errors/errorHandling.js.map +1 -1
- package/dist/base/headerMatching/HeaderPredicateFactory.js +50 -58
- package/dist/base/headerMatching/HeaderPredicateFactory.js.map +1 -1
- package/dist/base/headerMatching/MappingHeader.js +3 -3
- package/dist/base/headerMatching/MappingHeader.js.map +1 -1
- package/dist/base/helpers/CatalogHelper.js +33 -34
- package/dist/base/helpers/CatalogHelper.js.map +1 -1
- package/dist/base/localization/IntlStore.js +12 -14
- package/dist/base/localization/IntlStore.js.map +1 -1
- package/dist/base/localization/IntlWrapper.js +9 -10
- package/dist/base/localization/IntlWrapper.js.map +1 -1
- package/dist/base/localization/Locale.js +1 -1
- package/dist/base/localization/Locale.js.map +1 -1
- package/dist/base/localization/TranslationsCustomizationProvider/Context.js +11 -12
- package/dist/base/localization/TranslationsCustomizationProvider/Context.js.map +1 -1
- package/dist/base/localization/TranslationsCustomizationProvider/TranslationsCustomizationProvider.js +28 -38
- package/dist/base/localization/TranslationsCustomizationProvider/TranslationsCustomizationProvider.js.map +1 -1
- package/dist/base/localization/TranslationsCustomizationProvider/utils.js +25 -37
- package/dist/base/localization/TranslationsCustomizationProvider/utils.js.map +1 -1
- package/dist/base/localization/TranslationsProvider.js +12 -19
- package/dist/base/localization/TranslationsProvider.js.map +1 -1
- package/dist/base/localization/bundles/de-DE.json +23 -11
- package/dist/base/localization/bundles/en-US.json +93 -27
- package/dist/base/localization/bundles/es-ES.json +22 -10
- package/dist/base/localization/bundles/fr-FR.json +22 -10
- package/dist/base/localization/bundles/ja-JP.json +22 -10
- package/dist/base/localization/bundles/nl-NL.json +22 -10
- package/dist/base/localization/bundles/pt-BR.json +22 -10
- package/dist/base/localization/bundles/pt-PT.json +22 -10
- package/dist/base/localization/bundles/ru-RU.json +22 -10
- package/dist/base/localization/bundles/zh-Hans.json +22 -10
- package/dist/base/localization/intlUtils.js +18 -25
- package/dist/base/localization/intlUtils.js.map +1 -1
- package/dist/base/localization/messagesMap.js +12 -12
- package/dist/base/localization/messagesMap.js.map +1 -1
- package/dist/base/measureFormats/fillMissingFormat.js +5 -5
- package/dist/base/measureFormats/fillMissingFormat.js.map +1 -1
- package/dist/base/measureFormats/fillMissingFormats.js +3 -3
- package/dist/base/measureFormats/fillMissingFormats.js.map +1 -1
- package/dist/base/measureTitles/ArithmeticMeasureTitleFactory.js +27 -28
- package/dist/base/measureTitles/ArithmeticMeasureTitleFactory.js.map +1 -1
- package/dist/base/measureTitles/DerivedMeasureTitleSuffixFactory.js +14 -15
- package/dist/base/measureTitles/DerivedMeasureTitleSuffixFactory.js.map +1 -1
- package/dist/base/measureTitles/fillMissingTitles.js +49 -50
- package/dist/base/measureTitles/fillMissingTitles.js.map +1 -1
- package/dist/base/measureTitles/ignoreTitlesForSimpleMeasures.js +4 -4
- package/dist/base/measureTitles/ignoreTitlesForSimpleMeasures.js.map +1 -1
- package/dist/base/react/BackendContext.js +14 -16
- package/dist/base/react/BackendContext.js.map +1 -1
- package/dist/base/react/CancelablePromise.js +21 -24
- package/dist/base/react/CancelablePromise.js.map +1 -1
- package/dist/base/react/ClientWorkspaceContext/ClientWorkspaceContext.js +28 -28
- package/dist/base/react/ClientWorkspaceContext/ClientWorkspaceContext.js.map +1 -1
- package/dist/base/react/ClientWorkspaceContext/resolveLCMWorkspaceIdentifiers.js +30 -82
- package/dist/base/react/ClientWorkspaceContext/resolveLCMWorkspaceIdentifiers.js.map +1 -1
- package/dist/base/react/ErrorComponent.js +35 -40
- package/dist/base/react/ErrorComponent.js.map +1 -1
- package/dist/base/react/LoadingComponent.js +42 -36
- package/dist/base/react/LoadingComponent.js.map +1 -1
- package/dist/base/react/PromiseCache.js +31 -34
- package/dist/base/react/PromiseCache.js.map +1 -1
- package/dist/base/react/WorkspaceContext.js +14 -16
- package/dist/base/react/WorkspaceContext.js.map +1 -1
- package/dist/base/react/legacy/availableDrillTargets.js +15 -16
- package/dist/base/react/legacy/availableDrillTargets.js.map +1 -1
- package/dist/base/react/legacy/withEntireDataView.js +115 -139
- package/dist/base/react/legacy/withEntireDataView.js.map +1 -1
- package/dist/base/react/placeholders/base.js +4 -4
- package/dist/base/react/placeholders/base.js.map +1 -1
- package/dist/base/react/placeholders/context.js +12 -13
- package/dist/base/react/placeholders/context.js.map +1 -1
- package/dist/base/react/placeholders/factory.js +15 -17
- package/dist/base/react/placeholders/factory.js.map +1 -1
- package/dist/base/react/placeholders/hooks.js +34 -40
- package/dist/base/react/placeholders/hooks.js.map +1 -1
- package/dist/base/react/placeholders/resolve.js +9 -12
- package/dist/base/react/placeholders/resolve.js.map +1 -1
- package/dist/base/react/useCancelablePromise.js +24 -21
- package/dist/base/react/useCancelablePromise.js.map +1 -1
- package/dist/base/react/useCancelablePromiseUtils.js +16 -17
- package/dist/base/react/useCancelablePromiseUtils.js.map +1 -1
- package/dist/base/react/usePagedResource.js +25 -29
- package/dist/base/react/usePagedResource.js.map +1 -1
- package/dist/base/react/usePrevious.js +4 -4
- package/dist/base/react/usePrevious.js.map +1 -1
- package/dist/base/react/usePromiseCache.js +17 -18
- package/dist/base/react/usePromiseCache.js.map +1 -1
- package/dist/base/react/withContexts.js +5 -5
- package/dist/base/react/withContexts.js.map +1 -1
- package/dist/base/react/wrapDisplayName.js +5 -5
- package/dist/base/react/wrapDisplayName.js.map +1 -1
- package/dist/base/results/dataAccessConfig.js +10 -10
- package/dist/base/results/dataAccessConfig.js.map +1 -1
- package/dist/base/results/facade.js +35 -36
- package/dist/base/results/facade.js.map +1 -1
- package/dist/base/results/internal/dataAccessDigest.js +66 -80
- package/dist/base/results/internal/dataAccessDigest.js.map +1 -1
- package/dist/base/results/internal/dataAccessImpl.js +134 -145
- package/dist/base/results/internal/dataAccessImpl.js.map +1 -1
- package/dist/base/results/internal/dataAccessMethods.js +49 -58
- package/dist/base/results/internal/dataAccessMethods.js.map +1 -1
- package/dist/base/results/internal/definitionMethods.js +36 -37
- package/dist/base/results/internal/definitionMethods.js.map +1 -1
- package/dist/base/results/internal/lazyInitArray.js +18 -20
- package/dist/base/results/internal/lazyInitArray.js.map +1 -1
- package/dist/base/results/internal/resultDataMethods.js +26 -27
- package/dist/base/results/internal/resultDataMethods.js.map +1 -1
- package/dist/base/results/internal/resultMetaMethods.js +64 -72
- package/dist/base/results/internal/resultMetaMethods.js.map +1 -1
- package/dist/base/results/internal/utils.js +1 -1
- package/dist/base/results/internal/utils.js.map +1 -1
- package/dist/base/vis/DrillEvents.js +5 -5
- package/dist/base/vis/DrillEvents.js.map +1 -1
- package/dist/base/vis/drilling.d.ts.map +1 -1
- package/dist/base/vis/drilling.js +19 -24
- package/dist/base/vis/drilling.js.map +1 -1
- package/dist/base/vis/export.js +10 -10
- package/dist/base/vis/export.js.map +1 -1
- package/dist/execution/DataViewLoader.js +36 -80
- package/dist/execution/DataViewLoader.js.map +1 -1
- package/dist/execution/Execute.js +35 -35
- package/dist/execution/Execute.js.map +1 -1
- package/dist/execution/ExecuteInsight.js +54 -62
- package/dist/execution/ExecuteInsight.js.map +1 -1
- package/dist/execution/RawExecute.js +27 -27
- package/dist/execution/RawExecute.js.map +1 -1
- package/dist/execution/createExecution.js +17 -16
- package/dist/execution/createExecution.js.map +1 -1
- package/dist/execution/useDataExport.js +16 -19
- package/dist/execution/useDataExport.js.map +1 -1
- package/dist/execution/useDataView.js +18 -23
- package/dist/execution/useDataView.js.map +1 -1
- package/dist/execution/useExecution.js +12 -13
- package/dist/execution/useExecution.js.map +1 -1
- package/dist/execution/useExecutionDataView.js +23 -22
- package/dist/execution/useExecutionDataView.js.map +1 -1
- package/dist/execution/useInsight.js +10 -10
- package/dist/execution/useInsight.js.map +1 -1
- package/dist/execution/useInsightDataView.js +26 -27
- package/dist/execution/useInsightDataView.js.map +1 -1
- package/dist/execution/withExecution.js +27 -56
- package/dist/execution/withExecution.js.map +1 -1
- package/dist/execution/withExecutionLoading.js +87 -104
- package/dist/execution/withExecutionLoading.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/kpi/FormattedNumber.js +8 -9
- package/dist/kpi/FormattedNumber.js.map +1 -1
- package/dist/kpi/Kpi.js +25 -26
- package/dist/kpi/Kpi.js.map +1 -1
- package/dist/kpi/KpiError.js +4 -4
- package/dist/kpi/KpiError.js.map +1 -1
- package/dist/locales.js +1 -1
- package/dist/locales.js.map +1 -1
- package/esm/base/constants/bucketNames.js +33 -33
- package/esm/base/constants/bucketNames.js.map +1 -1
- package/esm/base/constants/colorPalette.js +1 -1
- package/esm/base/constants/colorPalette.js.map +1 -1
- package/esm/base/errors/GoodDataSdkError.js +66 -112
- package/esm/base/errors/GoodDataSdkError.js.map +1 -1
- package/esm/base/errors/errorHandling.js +13 -14
- package/esm/base/errors/errorHandling.js.map +1 -1
- package/esm/base/headerMatching/HeaderPredicateFactory.js +49 -57
- package/esm/base/headerMatching/HeaderPredicateFactory.js.map +1 -1
- package/esm/base/headerMatching/MappingHeader.js +2 -2
- package/esm/base/headerMatching/MappingHeader.js.map +1 -1
- package/esm/base/helpers/CatalogHelper.js +33 -35
- package/esm/base/helpers/CatalogHelper.js.map +1 -1
- package/esm/base/interfaces/OverTimeComparison.js +1 -1
- package/esm/base/interfaces/OverTimeComparison.js.map +1 -1
- package/esm/base/localization/IntlStore.js +7 -10
- package/esm/base/localization/IntlStore.js.map +1 -1
- package/esm/base/localization/IntlWrapper.js +3 -4
- package/esm/base/localization/IntlWrapper.js.map +1 -1
- package/esm/base/localization/Locale.js +3 -3
- package/esm/base/localization/Locale.js.map +1 -1
- package/esm/base/localization/TranslationsCustomizationProvider/Context.js +7 -9
- package/esm/base/localization/TranslationsCustomizationProvider/Context.js.map +1 -1
- package/esm/base/localization/TranslationsCustomizationProvider/TranslationsCustomizationProvider.js +22 -33
- package/esm/base/localization/TranslationsCustomizationProvider/TranslationsCustomizationProvider.js.map +1 -1
- package/esm/base/localization/TranslationsCustomizationProvider/utils.js +23 -36
- package/esm/base/localization/TranslationsCustomizationProvider/utils.js.map +1 -1
- package/esm/base/localization/TranslationsProvider.js +8 -17
- package/esm/base/localization/TranslationsProvider.js.map +1 -1
- package/esm/base/localization/bundles/de-DE.json +23 -11
- package/esm/base/localization/bundles/en-US.json +93 -27
- package/esm/base/localization/bundles/es-ES.json +22 -10
- package/esm/base/localization/bundles/fr-FR.json +22 -10
- package/esm/base/localization/bundles/ja-JP.json +22 -10
- package/esm/base/localization/bundles/nl-NL.json +22 -10
- package/esm/base/localization/bundles/pt-BR.json +22 -10
- package/esm/base/localization/bundles/pt-PT.json +22 -10
- package/esm/base/localization/bundles/ru-RU.json +22 -10
- package/esm/base/localization/bundles/zh-Hans.json +22 -10
- package/esm/base/localization/intlUtils.js +12 -20
- package/esm/base/localization/intlUtils.js.map +1 -1
- package/esm/base/localization/messagesMap.js +1 -1
- package/esm/base/localization/messagesMap.js.map +1 -1
- package/esm/base/measureFormats/fillMissingFormat.js +4 -4
- package/esm/base/measureFormats/fillMissingFormat.js.map +1 -1
- package/esm/base/measureFormats/fillMissingFormats.js +1 -1
- package/esm/base/measureFormats/fillMissingFormats.js.map +1 -1
- package/esm/base/measureTitles/ArithmeticMeasureTitleFactory.js +25 -27
- package/esm/base/measureTitles/ArithmeticMeasureTitleFactory.js.map +1 -1
- package/esm/base/measureTitles/DerivedMeasureTitleSuffixFactory.js +11 -13
- package/esm/base/measureTitles/DerivedMeasureTitleSuffixFactory.js.map +1 -1
- package/esm/base/measureTitles/fillMissingTitles.js +44 -45
- package/esm/base/measureTitles/fillMissingTitles.js.map +1 -1
- package/esm/base/measureTitles/ignoreTitlesForSimpleMeasures.js +3 -3
- package/esm/base/measureTitles/ignoreTitlesForSimpleMeasures.js.map +1 -1
- package/esm/base/react/BackendContext.js +10 -13
- package/esm/base/react/BackendContext.js.map +1 -1
- package/esm/base/react/CancelablePromise.js +19 -24
- package/esm/base/react/CancelablePromise.js.map +1 -1
- package/esm/base/react/ClientWorkspaceContext/ClientWorkspaceContext.js +20 -21
- package/esm/base/react/ClientWorkspaceContext/ClientWorkspaceContext.js.map +1 -1
- package/esm/base/react/ClientWorkspaceContext/resolveLCMWorkspaceIdentifiers.js +27 -80
- package/esm/base/react/ClientWorkspaceContext/resolveLCMWorkspaceIdentifiers.js.map +1 -1
- package/esm/base/react/ErrorComponent.js +33 -40
- package/esm/base/react/ErrorComponent.js.map +1 -1
- package/esm/base/react/LoadingComponent.js +40 -36
- package/esm/base/react/LoadingComponent.js.map +1 -1
- package/esm/base/react/PromiseCache.js +28 -32
- package/esm/base/react/PromiseCache.js.map +1 -1
- package/esm/base/react/WorkspaceContext.js +10 -13
- package/esm/base/react/WorkspaceContext.js.map +1 -1
- package/esm/base/react/legacy/availableDrillTargets.js +12 -13
- package/esm/base/react/legacy/availableDrillTargets.js.map +1 -1
- package/esm/base/react/legacy/withEntireDataView.js +102 -127
- package/esm/base/react/legacy/withEntireDataView.js.map +1 -1
- package/esm/base/react/placeholders/base.js +2 -2
- package/esm/base/react/placeholders/base.js.map +1 -1
- package/esm/base/react/placeholders/context.js +9 -11
- package/esm/base/react/placeholders/context.js.map +1 -1
- package/esm/base/react/placeholders/factory.js +11 -13
- package/esm/base/react/placeholders/factory.js.map +1 -1
- package/esm/base/react/placeholders/hooks.js +27 -33
- package/esm/base/react/placeholders/hooks.js.map +1 -1
- package/esm/base/react/placeholders/resolve.js +6 -10
- package/esm/base/react/placeholders/resolve.js.map +1 -1
- package/esm/base/react/useCancelablePromise.js +18 -16
- package/esm/base/react/useCancelablePromise.js.map +1 -1
- package/esm/base/react/useCancelablePromiseUtils.js +13 -15
- package/esm/base/react/useCancelablePromiseUtils.js.map +1 -1
- package/esm/base/react/usePagedResource.js +23 -27
- package/esm/base/react/usePagedResource.js.map +1 -1
- package/esm/base/react/usePrevious.js +3 -3
- package/esm/base/react/usePrevious.js.map +1 -1
- package/esm/base/react/usePromiseCache.js +15 -16
- package/esm/base/react/usePromiseCache.js.map +1 -1
- package/esm/base/react/wrapDisplayName.js +5 -5
- package/esm/base/react/wrapDisplayName.js.map +1 -1
- package/esm/base/results/dataAccessConfig.js +6 -6
- package/esm/base/results/dataAccessConfig.js.map +1 -1
- package/esm/base/results/facade.js +30 -32
- package/esm/base/results/facade.js.map +1 -1
- package/esm/base/results/internal/dataAccessDigest.js +62 -77
- package/esm/base/results/internal/dataAccessDigest.js.map +1 -1
- package/esm/base/results/internal/dataAccessImpl.js +126 -138
- package/esm/base/results/internal/dataAccessImpl.js.map +1 -1
- package/esm/base/results/internal/dataAccessMethods.js +46 -55
- package/esm/base/results/internal/dataAccessMethods.js.map +1 -1
- package/esm/base/results/internal/definitionMethods.js +33 -34
- package/esm/base/results/internal/definitionMethods.js.map +1 -1
- package/esm/base/results/internal/lazyInitArray.js +16 -19
- package/esm/base/results/internal/lazyInitArray.js.map +1 -1
- package/esm/base/results/internal/resultDataMethods.js +23 -24
- package/esm/base/results/internal/resultDataMethods.js.map +1 -1
- package/esm/base/results/internal/resultMetaMethods.js +60 -68
- package/esm/base/results/internal/resultMetaMethods.js.map +1 -1
- package/esm/base/results/internal/utils.js +1 -1
- package/esm/base/results/internal/utils.js.map +1 -1
- package/esm/base/vis/DrillEvents.js +2 -2
- package/esm/base/vis/DrillEvents.js.map +1 -1
- package/esm/base/vis/drilling.d.ts.map +1 -1
- package/esm/base/vis/drilling.js +14 -20
- package/esm/base/vis/drilling.js.map +1 -1
- package/esm/base/vis/export.js +10 -10
- package/esm/base/vis/export.js.map +1 -1
- package/esm/base/vis/visualizationTypes.js +1 -1
- package/esm/base/vis/visualizationTypes.js.map +1 -1
- package/esm/execution/DataViewLoader.js +32 -78
- package/esm/execution/DataViewLoader.js.map +1 -1
- package/esm/execution/Execute.js +29 -30
- package/esm/execution/Execute.js.map +1 -1
- package/esm/execution/ExecuteInsight.js +49 -58
- package/esm/execution/ExecuteInsight.js.map +1 -1
- package/esm/execution/RawExecute.js +24 -24
- package/esm/execution/RawExecute.js.map +1 -1
- package/esm/execution/createExecution.js +12 -12
- package/esm/execution/createExecution.js.map +1 -1
- package/esm/execution/useDataExport.js +15 -18
- package/esm/execution/useDataExport.js.map +1 -1
- package/esm/execution/useDataView.js +17 -22
- package/esm/execution/useDataView.js.map +1 -1
- package/esm/execution/useExecution.js +10 -11
- package/esm/execution/useExecution.js.map +1 -1
- package/esm/execution/useExecutionDataView.js +18 -18
- package/esm/execution/useExecutionDataView.js.map +1 -1
- package/esm/execution/useInsight.js +8 -8
- package/esm/execution/useInsight.js.map +1 -1
- package/esm/execution/useInsightDataView.js +23 -24
- package/esm/execution/useInsightDataView.js.map +1 -1
- package/esm/execution/withExecution.js +24 -53
- package/esm/execution/withExecution.js.map +1 -1
- package/esm/execution/withExecutionLoading.js +82 -100
- package/esm/execution/withExecutionLoading.js.map +1 -1
- package/esm/index.d.ts +0 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -3
- package/esm/index.js.map +1 -1
- package/esm/kpi/FormattedNumber.js +5 -6
- package/esm/kpi/FormattedNumber.js.map +1 -1
- package/esm/kpi/Kpi.js +17 -19
- package/esm/kpi/Kpi.js.map +1 -1
- package/esm/kpi/KpiError.js +2 -2
- package/esm/kpi/KpiError.js.map +1 -1
- package/esm/locales.js +1 -1
- package/esm/locales.js.map +1 -1
- package/package.json +9 -14
- package/dist/polyfills.d.ts +0 -3
- package/dist/polyfills.d.ts.map +0 -1
- package/dist/polyfills.js +0 -8
- package/dist/polyfills.js.map +0 -1
- package/esm/polyfills.d.ts +0 -3
- package/esm/polyfills.d.ts.map +0 -1
- package/esm/polyfills.js +0 -6
- package/esm/polyfills.js.map +0 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePromiseCache = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
4
|
// (C) 2007-2020 GoodData Corporation
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const PromiseCache_1 = require("./PromiseCache");
|
|
7
|
+
const initialState = {
|
|
9
8
|
isLoading: false,
|
|
10
9
|
results: [],
|
|
11
10
|
errors: [],
|
|
@@ -17,21 +16,21 @@ var initialState = {
|
|
|
17
16
|
* @internal
|
|
18
17
|
*/
|
|
19
18
|
function usePromiseCache(promiseFactory, fetchParams, fetchDeps, resetDeps, getCacheKey) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
react_1.useEffect(
|
|
27
|
-
return
|
|
19
|
+
const promiseCacheRef = react_1.useRef(new PromiseCache_1.PromiseCache(promiseFactory, getCacheKey));
|
|
20
|
+
const [state, setState] = react_1.useState(initialState);
|
|
21
|
+
const setInitialState = () => setState(initialState);
|
|
22
|
+
const setResults = (results) => setState((state) => (Object.assign(Object.assign({}, state), { results })));
|
|
23
|
+
const setErrors = (errors) => setState((state) => (Object.assign(Object.assign({}, state), { errors })));
|
|
24
|
+
const setLoading = (isLoading) => setState((state) => (Object.assign(Object.assign({}, state), { isLoading })));
|
|
25
|
+
react_1.useEffect(() => {
|
|
26
|
+
return () => {
|
|
28
27
|
promiseCacheRef.current.reset();
|
|
29
28
|
setInitialState();
|
|
30
29
|
};
|
|
31
30
|
}, resetDeps);
|
|
32
|
-
react_1.useEffect(
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
react_1.useEffect(() => {
|
|
32
|
+
const newParams = fetchParams.filter((params) => !promiseCacheRef.current.getResult(params));
|
|
33
|
+
const newPromises = newParams.map(promiseCacheRef.current.load);
|
|
35
34
|
if (newPromises.length === 0) {
|
|
36
35
|
return;
|
|
37
36
|
}
|
|
@@ -40,16 +39,16 @@ function usePromiseCache(promiseFactory, fetchParams, fetchDeps, resetDeps, getC
|
|
|
40
39
|
// and our results are still relevant.
|
|
41
40
|
// We do this by storing current promise cache in effect closure
|
|
42
41
|
// so when promises are resolved, we have still access to it
|
|
43
|
-
|
|
42
|
+
const usedPromiseCache = promiseCacheRef.current;
|
|
44
43
|
setLoading(true);
|
|
45
44
|
Promise.all(newPromises)
|
|
46
|
-
.then(
|
|
45
|
+
.then((results) => {
|
|
47
46
|
setLoading(false);
|
|
48
47
|
if (usedPromiseCache === promiseCacheRef.current) {
|
|
49
48
|
setResults(results);
|
|
50
49
|
}
|
|
51
50
|
})
|
|
52
|
-
.catch(
|
|
51
|
+
.catch((errors) => {
|
|
53
52
|
setLoading(false);
|
|
54
53
|
if (usedPromiseCache === promiseCacheRef.current) {
|
|
55
54
|
setErrors(errors);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromiseCache.js","sourceRoot":"","sources":["../../../src/base/react/usePromiseCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePromiseCache.js","sourceRoot":"","sources":["../../../src/base/react/usePromiseCache.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,iCAAoD;AACpD,iDAA8C;AAY9C,MAAM,YAAY,GAAoC;IAClD,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;CACb,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,eAAe,CAC3B,cAAqD,EACrD,WAAsB,EACtB,SAA+B,EAC/B,SAA+B,EAC/B,WAAyC;IAEzC,MAAM,eAAe,GAAG,cAAM,CAC1B,IAAI,2BAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAChD,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,gBAAQ,CAAyC,YAAY,CAAC,CAAC;IAEzF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,OAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,OAAO,IAAG,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,MAAM,IAAG,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,SAAS,IAAG,CAAC,CAAC;IAE1F,iBAAS,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,EAAE;YACR,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChC,eAAe,EAAE,CAAC;QACtB,CAAC,CAAC;IACN,CAAC,EAAE,SAAS,CAAC,CAAC;IAEd,iBAAS,CAAC,GAAG,EAAE;QACX,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO;SACV;QAED,4EAA4E;QAC5E,0EAA0E;QAC1E,sCAAsC;QACtC,gEAAgE;QAChE,4DAA4D;QAC5D,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC;QACjD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;aACnB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACd,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,gBAAgB,KAAK,eAAe,CAAC,OAAO,EAAE;gBAC9C,UAAU,CAAC,OAAO,CAAC,CAAC;aACvB;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,gBAAgB,KAAK,eAAe,CAAC,OAAO,EAAE;gBAC9C,SAAS,CAAC,MAAM,CAAC,CAAC;aACrB;QACL,CAAC,CAAC,CAAC;IACX,CAAC,EAAE,SAAS,CAAC,CAAC;IAEd,OAAO,KAAK,CAAC;AACjB,CAAC;AAvDD,0CAuDC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.withContexts = void 0;
|
|
4
|
-
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
5
|
// (C) 2019-2020 GoodData Corporation
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const flowRight_1 = tslib_1.__importDefault(require("lodash/flowRight"));
|
|
7
|
+
const BackendContext_1 = require("./BackendContext");
|
|
8
|
+
const WorkspaceContext_1 = require("./WorkspaceContext");
|
|
9
|
+
const wrapDisplayName_1 = require("./wrapDisplayName");
|
|
10
10
|
/**
|
|
11
11
|
* Injects backend and workspace provided by BackendProvider & WorkspaceProvider to a component
|
|
12
12
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withContexts.js","sourceRoot":"","sources":["../../../src/base/react/withContexts.ts"],"names":[],"mappings":";;;;AAAA,qCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"withContexts.js","sourceRoot":"","sources":["../../../src/base/react/withContexts.ts"],"names":[],"mappings":";;;;AAAA,qCAAqC;AACrC,yEAAuC;AACvC,qDAA+C;AAC/C,yDAAmD;AAEnD,uDAAoD;AAEpD;;;GAGG;AACH,SAAgB,YAAY,CACxB,KAA6B;IAE7B,OAAO,mBAAO,CAAC,iCAAe,CAAC,cAAc,CAAC,EAAE,4BAAW,EAAE,gCAAa,CAAC,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC;AAJD,oCAIC"}
|
|
@@ -6,17 +6,17 @@ exports.wrapDisplayName = void 0;
|
|
|
6
6
|
* Get displayName of React component
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
const getDisplayName = (Component) => {
|
|
10
10
|
return Component.displayName || Component.name || "Component";
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Wrap displayName of React component
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
exports.wrapDisplayName =
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
Component.displayName = hocName
|
|
16
|
+
exports.wrapDisplayName = (hocName, BaseComponent) => {
|
|
17
|
+
return (Component) => {
|
|
18
|
+
const componentName = getDisplayName(BaseComponent || Component);
|
|
19
|
+
Component.displayName = `${hocName}(${componentName})`;
|
|
20
20
|
return Component;
|
|
21
21
|
};
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapDisplayName.js","sourceRoot":"","sources":["../../../src/base/react/wrapDisplayName.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAErC;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"wrapDisplayName.js","sourceRoot":"","sources":["../../../src/base/react/wrapDisplayName.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAErC;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,SAAmC,EAAE,EAAE;IAC3D,OAAO,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC;AAClE,CAAC,CAAC;AAEF;;;GAGG;AACU,QAAA,eAAe,GAAG,CAC3B,OAAe,EACf,aAAwC,EAC0B,EAAE;IACpE,OAAO,CAAI,SAAiC,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;QACjE,SAAS,CAAC,WAAW,GAAG,GAAG,OAAO,IAAI,aAAa,GAAG,CAAC;QAEvD,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultDataAccessConfig = exports.createNumberJsFormatter = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const numberjs_1 = require("@gooddata/numberjs");
|
|
6
|
+
const isEmpty_1 = tslib_1.__importDefault(require("lodash/isEmpty"));
|
|
7
|
+
const escape_1 = tslib_1.__importDefault(require("lodash/escape"));
|
|
8
|
+
const unescape_1 = tslib_1.__importDefault(require("lodash/unescape"));
|
|
9
|
+
const customEscape = (str) => str && escape_1.default(unescape_1.default(str));
|
|
10
10
|
/**
|
|
11
11
|
* Creates value formatter that uses `@gooddata/numberjs` to format raw measure values according
|
|
12
12
|
* to the format string.
|
|
@@ -19,10 +19,10 @@ var customEscape = function (str) { return str && escape_1.default(unescape_1.de
|
|
|
19
19
|
* @public
|
|
20
20
|
*/
|
|
21
21
|
function createNumberJsFormatter(separators) {
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
return (value, format) => {
|
|
23
|
+
const valueToFormat = value === null && !isEmpty_1.default(format) ? "" : parseFloat(value);
|
|
24
|
+
const formattedValue = numberjs_1.numberFormat(valueToFormat, format, undefined, separators);
|
|
25
|
+
const formattedObject = numberjs_1.colors2Object(formattedValue);
|
|
26
26
|
return customEscape(formattedObject.label);
|
|
27
27
|
};
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataAccessConfig.js","sourceRoot":"","sources":["../../../src/base/results/dataAccessConfig.ts"],"names":[],"mappings":";;;;AAEA
|
|
1
|
+
{"version":3,"file":"dataAccessConfig.js","sourceRoot":"","sources":["../../../src/base/results/dataAccessConfig.ts"],"names":[],"mappings":";;;;AAEA,iDAA6F;AAC7F,qEAAqC;AACrC,mEAAmC;AACnC,uEAAuC;AAEvC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,IAAI,gBAAM,CAAC,kBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAYnE;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CAAC,UAAwB;IAC5D,OAAO,CAAC,KAAgB,EAAE,MAAc,EAAE,EAAE;QACxC,MAAM,aAAa,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC;QAE5F,MAAM,cAAc,GAAG,uBAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAClF,MAAM,eAAe,GAAkB,wBAAa,CAAC,cAAc,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;AACN,CAAC;AATD,0DASC;AAED;;;;GAIG;AACU,QAAA,uBAAuB,GAAqB;IACrD,cAAc,EAAE,uBAAuB,EAAE;CAC5C,CAAC"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.emptyDataViewForResult = exports.DataViewFacade = void 0;
|
|
4
4
|
// (C) 2019-2022 GoodData Corporation
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
const sdk_model_1 = require("@gooddata/sdk-model");
|
|
6
|
+
const definitionMethods_1 = require("./internal/definitionMethods");
|
|
7
|
+
const resultMetaMethods_1 = require("./internal/resultMetaMethods");
|
|
8
|
+
const resultDataMethods_1 = require("./internal/resultDataMethods");
|
|
9
|
+
const dataAccessMethods_1 = require("./internal/dataAccessMethods");
|
|
10
10
|
/**
|
|
11
11
|
* Wrapper for {@link @gooddata/sdk-backend-spi#IDataView}.
|
|
12
12
|
*
|
|
@@ -22,8 +22,8 @@ var dataAccessMethods_1 = require("./internal/dataAccessMethods");
|
|
|
22
22
|
*
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
class DataViewFacade {
|
|
26
|
+
constructor(dataView) {
|
|
27
27
|
this.dataView = dataView;
|
|
28
28
|
this.definition = dataView.definition;
|
|
29
29
|
}
|
|
@@ -34,12 +34,12 @@ var DataViewFacade = /** @class */ (function () {
|
|
|
34
34
|
* @param dataView - instance of data view to create the facade for
|
|
35
35
|
* @public
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
static for(dataView) {
|
|
38
38
|
if (!DataViewFacade.Facades.has(dataView)) {
|
|
39
39
|
DataViewFacade.Facades.set(dataView, new DataViewFacade(dataView));
|
|
40
40
|
}
|
|
41
41
|
return DataViewFacade.Facades.get(dataView);
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
43
|
/**
|
|
44
44
|
* Creates a DataViewFacade with provided execution result.
|
|
45
45
|
*
|
|
@@ -51,46 +51,46 @@ var DataViewFacade = /** @class */ (function () {
|
|
|
51
51
|
* @param result - instance of execution result to create the facade for
|
|
52
52
|
* @public
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
static forResult(result) {
|
|
55
55
|
if (!DataViewFacade.FacadesForResult.has(result)) {
|
|
56
|
-
|
|
56
|
+
const emptyView = emptyDataViewForResult(result);
|
|
57
57
|
DataViewFacade.FacadesForResult.set(result, new DataViewFacade(emptyView));
|
|
58
58
|
}
|
|
59
59
|
return DataViewFacade.FacadesForResult.get(result);
|
|
60
|
-
}
|
|
60
|
+
}
|
|
61
61
|
/**
|
|
62
62
|
* @returns result of execution which returned this data view
|
|
63
63
|
* @public
|
|
64
64
|
*/
|
|
65
|
-
|
|
65
|
+
result() {
|
|
66
66
|
return this.dataView.result;
|
|
67
|
-
}
|
|
67
|
+
}
|
|
68
68
|
/**
|
|
69
69
|
* @returns execution result warnings
|
|
70
70
|
* @public
|
|
71
71
|
*/
|
|
72
|
-
|
|
72
|
+
warnings() {
|
|
73
73
|
var _a;
|
|
74
74
|
return (_a = this.dataView.warnings) !== null && _a !== void 0 ? _a : [];
|
|
75
|
-
}
|
|
75
|
+
}
|
|
76
76
|
/**
|
|
77
77
|
* @remarks see {@link @gooddata/sdk-backend-spi#IDataView.fingerprint} for more contractual information
|
|
78
78
|
* @returns fingerprint of the data view
|
|
79
79
|
* @public
|
|
80
80
|
*/
|
|
81
|
-
|
|
81
|
+
fingerprint() {
|
|
82
82
|
return this.dataView.fingerprint();
|
|
83
|
-
}
|
|
83
|
+
}
|
|
84
84
|
/**
|
|
85
85
|
* @returns methods to access data in a curated fashion using data slices and data series iterators
|
|
86
86
|
* @public
|
|
87
87
|
*/
|
|
88
|
-
|
|
88
|
+
data(config) {
|
|
89
89
|
if (!this.dataAccessMethods) {
|
|
90
90
|
this.dataAccessMethods = dataAccessMethods_1.newDataAccessMethods(this.dataView, config);
|
|
91
91
|
}
|
|
92
92
|
return this.dataAccessMethods;
|
|
93
|
-
}
|
|
93
|
+
}
|
|
94
94
|
//
|
|
95
95
|
//
|
|
96
96
|
//
|
|
@@ -98,37 +98,36 @@ var DataViewFacade = /** @class */ (function () {
|
|
|
98
98
|
* @returns methods to work with execution definition
|
|
99
99
|
* @internal
|
|
100
100
|
*/
|
|
101
|
-
|
|
101
|
+
def() {
|
|
102
102
|
if (!this.definitionMethods) {
|
|
103
103
|
this.definitionMethods = definitionMethods_1.newExecutionDefinitonMethods(this.dataView.definition);
|
|
104
104
|
}
|
|
105
105
|
return this.definitionMethods;
|
|
106
|
-
}
|
|
106
|
+
}
|
|
107
107
|
/**
|
|
108
108
|
* @returns methods to work with result metadata
|
|
109
109
|
* @internal
|
|
110
110
|
*/
|
|
111
|
-
|
|
111
|
+
meta() {
|
|
112
112
|
if (!this.resultMetaMethods) {
|
|
113
113
|
this.resultMetaMethods = resultMetaMethods_1.newResultMetaMethods(this.dataView);
|
|
114
114
|
}
|
|
115
115
|
return this.resultMetaMethods;
|
|
116
|
-
}
|
|
116
|
+
}
|
|
117
117
|
/**
|
|
118
118
|
* @returns methods to work with the raw data included in the result
|
|
119
119
|
* @internal
|
|
120
120
|
*/
|
|
121
|
-
|
|
121
|
+
rawData() {
|
|
122
122
|
if (!this.resultDataMethods) {
|
|
123
123
|
this.resultDataMethods = resultDataMethods_1.newResultDataMethods(this.dataView);
|
|
124
124
|
}
|
|
125
125
|
return this.resultDataMethods;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
DataViewFacade.FacadesForResult = new WeakMap();
|
|
129
|
-
return DataViewFacade;
|
|
130
|
-
}());
|
|
126
|
+
}
|
|
127
|
+
}
|
|
131
128
|
exports.DataViewFacade = DataViewFacade;
|
|
129
|
+
DataViewFacade.Facades = new WeakMap();
|
|
130
|
+
DataViewFacade.FacadesForResult = new WeakMap();
|
|
132
131
|
/**
|
|
133
132
|
* Constructs an empty data view with given execution result.
|
|
134
133
|
*
|
|
@@ -137,20 +136,20 @@ exports.DataViewFacade = DataViewFacade;
|
|
|
137
136
|
* @public
|
|
138
137
|
*/
|
|
139
138
|
function emptyDataViewForResult(result) {
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
const { definition } = result;
|
|
140
|
+
const fp = sdk_model_1.defFingerprint(definition) + "/emptyView";
|
|
142
141
|
return {
|
|
143
|
-
definition
|
|
144
|
-
result
|
|
142
|
+
definition,
|
|
143
|
+
result,
|
|
145
144
|
headerItems: [],
|
|
146
145
|
data: [],
|
|
147
146
|
offset: [0, 0],
|
|
148
147
|
count: [0, 0],
|
|
149
148
|
totalCount: [0, 0],
|
|
150
|
-
fingerprint
|
|
149
|
+
fingerprint() {
|
|
151
150
|
return fp;
|
|
152
151
|
},
|
|
153
|
-
equals
|
|
152
|
+
equals(other) {
|
|
154
153
|
return fp === other.fingerprint();
|
|
155
154
|
},
|
|
156
155
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../../src/base/results/facade.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../../src/base/results/facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createDataAccessDigest = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const sdk_model_1 = require("@gooddata/sdk-model");
|
|
7
|
+
const keyBy_1 = tslib_1.__importDefault(require("lodash/keyBy"));
|
|
8
8
|
/**
|
|
9
9
|
* Given data view dimensions, this function identifies dimensions where data series and
|
|
10
10
|
* data slices are laid out. The returned result always contains two elements. First being
|
|
@@ -12,7 +12,6 @@ var keyBy_1 = tslib_1.__importDefault(require("lodash/keyBy"));
|
|
|
12
12
|
* are not present, then the respective element contains -1.
|
|
13
13
|
*/
|
|
14
14
|
function findSlicesAndSeriesDims(dimensions) {
|
|
15
|
-
var e_1, _a;
|
|
16
15
|
if (dimensions.length === 0) {
|
|
17
16
|
return {
|
|
18
17
|
locations: [-1, -1],
|
|
@@ -21,40 +20,30 @@ function findSlicesAndSeriesDims(dimensions) {
|
|
|
21
20
|
/*
|
|
22
21
|
* possible valid locations of series and slices. rows and cols OR cols and rows.
|
|
23
22
|
*/
|
|
24
|
-
|
|
23
|
+
const possibleLocations = [
|
|
25
24
|
[0, 1],
|
|
26
25
|
[1, 0],
|
|
27
26
|
];
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (measureGroup) {
|
|
38
|
-
if (!dimensions[slicesIdx]) {
|
|
39
|
-
return {
|
|
40
|
-
locations: [seriesIdx, -1],
|
|
41
|
-
measureGroup: measureGroup,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
27
|
+
for (const locations of possibleLocations) {
|
|
28
|
+
const [seriesIdx, slicesIdx] = locations;
|
|
29
|
+
const dimension = dimensions[seriesIdx];
|
|
30
|
+
if (!dimension) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const measureGroup = dimension.headers.find(sdk_model_1.isMeasureGroupDescriptor);
|
|
34
|
+
if (measureGroup) {
|
|
35
|
+
if (!dimensions[slicesIdx]) {
|
|
44
36
|
return {
|
|
45
|
-
locations:
|
|
46
|
-
measureGroup
|
|
37
|
+
locations: [seriesIdx, -1],
|
|
38
|
+
measureGroup,
|
|
47
39
|
};
|
|
48
40
|
}
|
|
41
|
+
return {
|
|
42
|
+
locations,
|
|
43
|
+
measureGroup,
|
|
44
|
+
};
|
|
49
45
|
}
|
|
50
46
|
}
|
|
51
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52
|
-
finally {
|
|
53
|
-
try {
|
|
54
|
-
if (possibleLocations_1_1 && !possibleLocations_1_1.done && (_a = possibleLocations_1.return)) _a.call(possibleLocations_1);
|
|
55
|
-
}
|
|
56
|
-
finally { if (e_1) throw e_1.error; }
|
|
57
|
-
}
|
|
58
47
|
/*
|
|
59
48
|
* The only possibility at this point is there are no data series.
|
|
60
49
|
*/
|
|
@@ -64,12 +53,11 @@ function findSlicesAndSeriesDims(dimensions) {
|
|
|
64
53
|
}
|
|
65
54
|
function createMeasureIndexes(measureDescriptors, measureHeaders) {
|
|
66
55
|
var _a;
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
const measureAndIndex = (_a = measureHeaders === null || measureHeaders === void 0 ? void 0 : measureHeaders.map((m, idx) => {
|
|
57
|
+
const measure = measureDescriptors[m.measureHeaderItem.order].measureHeaderItem.localIdentifier;
|
|
69
58
|
return [measure, idx];
|
|
70
59
|
})) !== null && _a !== void 0 ? _a : [];
|
|
71
|
-
return measureAndIndex.reduce(
|
|
72
|
-
var _b = tslib_1.__read(_a, 2), localId = _b[0], seriesIdx = _b[1];
|
|
60
|
+
return measureAndIndex.reduce((res, [localId, seriesIdx]) => {
|
|
73
61
|
if (!res[localId]) {
|
|
74
62
|
res[localId] = [];
|
|
75
63
|
}
|
|
@@ -79,59 +67,57 @@ function createMeasureIndexes(measureDescriptors, measureHeaders) {
|
|
|
79
67
|
}
|
|
80
68
|
function createDataSeriesDigest(dataView, resultDesc, def) {
|
|
81
69
|
var _a, _b;
|
|
82
|
-
|
|
70
|
+
const { measureGroup, locations } = resultDesc;
|
|
83
71
|
if (!measureGroup) {
|
|
84
72
|
return;
|
|
85
73
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
var scopingAttributesDef = scopingAttributes.map(function (a) { return def.attributesIndex[a.attributeHeader.localIdentifier]; });
|
|
97
|
-
var measureIndexes = createMeasureIndexes(fromMeasures, measureHeaders);
|
|
74
|
+
const dimIdx = locations[0];
|
|
75
|
+
const headerItems = utils_1.dataViewHeaders(dataView, dimIdx);
|
|
76
|
+
const measureHeaders = (_a = headerItems.find((headers) => sdk_model_1.isResultMeasureHeader(headers[0]))) !== null && _a !== void 0 ? _a : [];
|
|
77
|
+
const allAttributeHeaders = (_b = headerItems.filter((headers) => sdk_model_1.isResultAttributeHeader(headers[0]))) !== null && _b !== void 0 ? _b : [];
|
|
78
|
+
const count = measureHeaders ? measureHeaders.length : 0;
|
|
79
|
+
const fromMeasures = utils_1.measureGroupItems(measureGroup);
|
|
80
|
+
const fromMeasuresDef = fromMeasures.map((m) => def.measuresIndex[m.measureHeaderItem.localIdentifier]);
|
|
81
|
+
const scopingAttributes = utils_1.dataViewDimensionItems(dataView, dimIdx).filter(sdk_model_1.isAttributeDescriptor);
|
|
82
|
+
const scopingAttributesDef = scopingAttributes.map((a) => def.attributesIndex[a.attributeHeader.localIdentifier]);
|
|
83
|
+
const measureIndexes = createMeasureIndexes(fromMeasures, measureHeaders);
|
|
98
84
|
return {
|
|
99
|
-
dimIdx
|
|
100
|
-
fromMeasures
|
|
101
|
-
fromMeasuresDef
|
|
102
|
-
scopingAttributes
|
|
103
|
-
scopingAttributesDef
|
|
104
|
-
measureHeaders
|
|
105
|
-
allAttributeHeaders
|
|
106
|
-
measureIndexes
|
|
107
|
-
count
|
|
85
|
+
dimIdx,
|
|
86
|
+
fromMeasures,
|
|
87
|
+
fromMeasuresDef,
|
|
88
|
+
scopingAttributes,
|
|
89
|
+
scopingAttributesDef,
|
|
90
|
+
measureHeaders,
|
|
91
|
+
allAttributeHeaders,
|
|
92
|
+
measureIndexes,
|
|
93
|
+
count,
|
|
108
94
|
};
|
|
109
95
|
}
|
|
110
96
|
function createDataSlicesDigest(dataView, resultDesc, def) {
|
|
111
|
-
|
|
112
|
-
|
|
97
|
+
const { locations } = resultDesc;
|
|
98
|
+
const dimIdx = locations[1];
|
|
113
99
|
if (dimIdx < 0) {
|
|
114
100
|
return;
|
|
115
101
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
102
|
+
const headerItems = utils_1.dataViewHeaders(dataView, dimIdx);
|
|
103
|
+
const count = headerItems.length > 0 ? headerItems[0].length : 0;
|
|
104
|
+
const descriptors = utils_1.dataViewDimensionItems(dataView, dimIdx).filter(sdk_model_1.isAttributeDescriptor);
|
|
105
|
+
const descriptorsDef = descriptors.map((d) => def.attributesIndex[d.attributeHeader.localIdentifier]);
|
|
120
106
|
return {
|
|
121
|
-
dimIdx
|
|
122
|
-
descriptors
|
|
123
|
-
descriptorsDef
|
|
124
|
-
headerItems
|
|
125
|
-
count
|
|
107
|
+
dimIdx,
|
|
108
|
+
descriptors,
|
|
109
|
+
descriptorsDef,
|
|
110
|
+
headerItems,
|
|
111
|
+
count,
|
|
126
112
|
};
|
|
127
113
|
}
|
|
128
114
|
function createExecutionDefinitionDigest(dataView) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
115
|
+
const { definition } = dataView;
|
|
116
|
+
const attributesIndex = keyBy_1.default(definition.attributes, sdk_model_1.attributeLocalId);
|
|
117
|
+
const measuresIndex = keyBy_1.default(definition.measures, sdk_model_1.measureLocalId);
|
|
132
118
|
return {
|
|
133
|
-
attributesIndex
|
|
134
|
-
measuresIndex
|
|
119
|
+
attributesIndex,
|
|
120
|
+
measuresIndex,
|
|
135
121
|
};
|
|
136
122
|
}
|
|
137
123
|
/**
|
|
@@ -142,14 +128,14 @@ function createExecutionDefinitionDigest(dataView) {
|
|
|
142
128
|
* @returns new digest
|
|
143
129
|
*/
|
|
144
130
|
function createDataAccessDigest(dataView) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
131
|
+
const resultDesc = findSlicesAndSeriesDims(dataView.result.dimensions);
|
|
132
|
+
const def = createExecutionDefinitionDigest(dataView);
|
|
133
|
+
const series = createDataSeriesDigest(dataView, resultDesc, def);
|
|
134
|
+
const slices = createDataSlicesDigest(dataView, resultDesc, def);
|
|
149
135
|
return {
|
|
150
|
-
series
|
|
151
|
-
slices
|
|
152
|
-
def
|
|
136
|
+
series,
|
|
137
|
+
slices,
|
|
138
|
+
def,
|
|
153
139
|
};
|
|
154
140
|
}
|
|
155
141
|
exports.createDataAccessDigest = createDataAccessDigest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataAccessDigest.js","sourceRoot":"","sources":["../../../../src/base/results/internal/dataAccessDigest.ts"],"names":[],"mappings":";;;;AAEA,
|
|
1
|
+
{"version":3,"file":"dataAccessDigest.js","sourceRoot":"","sources":["../../../../src/base/results/internal/dataAccessDigest.ts"],"names":[],"mappings":";;;;AAEA,mCAAqF;AACrF,mDAgB6B;AAC7B,iEAAiC;AA8IjC;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,UAAkC;IAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO;YACH,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACtB,CAAC;KACL;IAED;;OAEG;IACH,MAAM,iBAAiB,GAA4B;QAC/C,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,EAAE,CAAC,CAAC;KACT,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE;QACvC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;QAEzC,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,EAAE;YACZ,SAAS;SACZ;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAC;QAEtE,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBACxB,OAAO;oBACH,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC1B,YAAY;iBACf,CAAC;aACL;YAED,OAAO;gBACH,SAAS;gBACT,YAAY;aACf,CAAC;SACL;KACJ;IAED;;OAEG;IACH,OAAO;QACH,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrB,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CACzB,kBAAwC,EACxC,cAAsC;;IAEtC,MAAM,eAAe,SACjB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC;QAEhG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC,oCAAK,EAAE,CAAC;IAEb,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE;QACxD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACf,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SACrB;QAED,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,SAAS,sBAAsB,CAC3B,QAAmB,EACnB,UAA4B,EAC5B,GAA8B;;IAE9B,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAE/C,IAAI,CAAC,YAAY,EAAE;QACf,OAAO;KACV;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,uBAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,cAAc,SAChB,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAqC,EAAE,CAAC,iCAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mCACnG,EAAE,CAAC;IACP,MAAM,mBAAmB,SACrB,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAuC,EAAE,CAChE,mCAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACtC,mCAAI,EAAE,CAAC;IACZ,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,yBAAiB,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACxG,MAAM,iBAAiB,GAAG,8BAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,iCAAqB,CAAC,CAAC;IACjG,MAAM,oBAAoB,GAAiB,iBAAiB,CAAC,GAAG,CAC5D,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAChE,CAAC;IACF,MAAM,cAAc,GAAG,oBAAoB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAE1E,OAAO;QACH,MAAM;QACN,YAAY;QACZ,eAAe;QACf,iBAAiB;QACjB,oBAAoB;QACpB,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,KAAK;KACR,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC3B,QAAmB,EACnB,UAA4B,EAC5B,GAA8B;IAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IACjC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5B,IAAI,MAAM,GAAG,CAAC,EAAE;QACZ,OAAO;KACV;IAED,MAAM,WAAW,GAAG,uBAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,8BAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,iCAAqB,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtG,OAAO;QACH,MAAM;QACN,WAAW;QACX,cAAc;QACd,WAAW;QACX,KAAK;KACR,CAAC;AACN,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAmB;IACxD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,MAAM,eAAe,GAAmB,eAAK,CAAC,UAAU,CAAC,UAAU,EAAE,4BAAgB,CAAC,CAAC;IACvF,MAAM,aAAa,GAAiB,eAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,0BAAc,CAAC,CAAC;IAE/E,OAAO;QACH,eAAe;QACf,aAAa;KAChB,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,QAAmB;IACtD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAEjE,OAAO;QACH,MAAM;QACN,MAAM;QACN,GAAG;KACN,CAAC;AACN,CAAC;AAZD,wDAYC"}
|