@gooddata/sdk-ui-ext 11.47.0-alpha.0 → 11.47.0-alpha.2
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/NOTICE +5 -5
- package/esm/internal/assets/mekko/bucket-title-height.svg +1 -0
- package/esm/internal/assets/mekko/bucket-title-stack.svg +1 -0
- package/esm/internal/assets/mekko/bucket-title-view.svg +1 -0
- package/esm/internal/assets/mekko/bucket-title-width.svg +1 -0
- package/esm/internal/components/VisualizationCatalog.d.ts.map +1 -1
- package/esm/internal/components/VisualizationCatalog.js +2 -0
- package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts +2 -1
- package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/ColorsSection.js +37 -17
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts +2 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.js +2 -2
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts +4 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js +5 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts +16 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.js +22 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts +21 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js +64 -0
- package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts +1 -0
- package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts.map +1 -1
- package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.js +10 -0
- package/esm/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.d.ts +8 -0
- package/esm/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.d.ts.map +1 -0
- package/esm/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.js +38 -0
- package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.d.ts +34 -0
- package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.d.ts.map +1 -0
- package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.js +97 -0
- package/esm/internal/components/pluggableVisualizations/mekko/bucketHelper.d.ts +3 -0
- package/esm/internal/components/pluggableVisualizations/mekko/bucketHelper.d.ts.map +1 -0
- package/esm/internal/components/pluggableVisualizations/mekko/bucketHelper.js +30 -0
- package/esm/internal/constants/featureFlags.d.ts +2 -0
- package/esm/internal/constants/featureFlags.d.ts.map +1 -1
- package/esm/internal/constants/featureFlags.js +5 -0
- package/esm/internal/constants/supportedProperties.d.ts +1 -0
- package/esm/internal/constants/supportedProperties.d.ts.map +1 -1
- package/esm/internal/constants/supportedProperties.js +24 -0
- package/esm/internal/constants/uiConfig.d.ts +1 -0
- package/esm/internal/constants/uiConfig.d.ts.map +1 -1
- package/esm/internal/constants/uiConfig.js +37 -0
- package/esm/internal/interfaces/Colors.d.ts +3 -0
- package/esm/internal/interfaces/Colors.d.ts.map +1 -1
- package/esm/internal/interfaces/Colors.js +1 -0
- package/esm/internal/translations/de-DE.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/de-DE.localization-bundle.js +12 -0
- package/esm/internal/translations/en-AU.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-AU.localization-bundle.js +12 -0
- package/esm/internal/translations/en-GB.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-GB.localization-bundle.js +12 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts +72 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-US.localization-bundle.js +72 -0
- package/esm/internal/translations/es-419.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/es-419.localization-bundle.js +12 -0
- package/esm/internal/translations/es-ES.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/es-ES.localization-bundle.js +12 -0
- package/esm/internal/translations/fi-FI.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fi-FI.localization-bundle.js +12 -0
- package/esm/internal/translations/fr-CA.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fr-CA.localization-bundle.js +12 -0
- package/esm/internal/translations/fr-FR.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fr-FR.localization-bundle.js +12 -0
- package/esm/internal/translations/id-ID.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/id-ID.localization-bundle.js +12 -0
- package/esm/internal/translations/it-IT.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/it-IT.localization-bundle.js +12 -0
- package/esm/internal/translations/ja-JP.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ja-JP.localization-bundle.js +13 -1
- package/esm/internal/translations/ko-KR.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ko-KR.localization-bundle.js +12 -0
- package/esm/internal/translations/nl-NL.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/nl-NL.localization-bundle.js +13 -1
- package/esm/internal/translations/pl-PL.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pl-PL.localization-bundle.js +12 -0
- package/esm/internal/translations/pt-BR.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pt-BR.localization-bundle.js +12 -0
- package/esm/internal/translations/pt-PT.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pt-PT.localization-bundle.js +12 -0
- package/esm/internal/translations/ru-RU.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ru-RU.localization-bundle.js +12 -0
- package/esm/internal/translations/sl-SI.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/sl-SI.localization-bundle.js +12 -0
- package/esm/internal/translations/th-TH.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/th-TH.localization-bundle.js +12 -0
- package/esm/internal/translations/tr-TR.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/tr-TR.localization-bundle.js +12 -0
- package/esm/internal/translations/uk-UA.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/uk-UA.localization-bundle.js +12 -0
- package/esm/internal/translations/vi-VN.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/vi-VN.localization-bundle.js +12 -0
- package/esm/internal/translations/zh-HK.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-HK.localization-bundle.js +14 -2
- package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-Hans.localization-bundle.js +12 -0
- package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +12 -0
- package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-Hant.localization-bundle.js +12 -0
- package/esm/internal/utils/bucketHelper.d.ts.map +1 -1
- package/esm/internal/utils/bucketHelper.js +3 -0
- package/esm/internal/utils/colors.d.ts +3 -1
- package/esm/internal/utils/colors.d.ts.map +1 -1
- package/esm/internal/utils/colors.js +68 -32
- package/esm/internal/utils/dimensions.d.ts.map +1 -1
- package/esm/internal/utils/dimensions.js +1 -0
- package/esm/internal/utils/sort.d.ts.map +1 -1
- package/esm/internal/utils/sort.js +1 -0
- package/esm/internal/utils/uiConfigHelpers/mekkoUiConfigHelper.d.ts +4 -0
- package/esm/internal/utils/uiConfigHelpers/mekkoUiConfigHelper.d.ts.map +1 -0
- package/esm/internal/utils/uiConfigHelpers/mekkoUiConfigHelper.js +20 -0
- package/esm/locales.d.ts +36 -0
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +18 -0
- package/package.json +21 -21
- package/styles/internal/css/config_panel.css +82 -0
- package/styles/internal/css/config_panel.css.map +1 -1
- package/styles/internal/scss/config_panel.scss +94 -0
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-7-
|
|
10
|
+
Date generated: 2026-7-10
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 49e9a8adde3ee1f908b34090cae5065e788ef0dd
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -8770,7 +8770,7 @@ Package Title: json5 (2.2.3)
|
|
|
8770
8770
|
|
|
8771
8771
|
Package Locator: npm+json5$2.2.3
|
|
8772
8772
|
|
|
8773
|
-
Package Depth:
|
|
8773
|
+
Package Depth: Transitive
|
|
8774
8774
|
--------------------------------------------------------------------------------
|
|
8775
8775
|
|
|
8776
8776
|
* Declared Licenses *
|
|
@@ -13284,7 +13284,7 @@ Package Title: watchpack (2.5.2)
|
|
|
13284
13284
|
|
|
13285
13285
|
Package Locator: npm+watchpack$2.5.2
|
|
13286
13286
|
|
|
13287
|
-
Package Depth:
|
|
13287
|
+
Package Depth: Transitive
|
|
13288
13288
|
--------------------------------------------------------------------------------
|
|
13289
13289
|
|
|
13290
13290
|
* Declared Licenses *
|
|
@@ -29272,4 +29272,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
29272
29272
|
--------------------------------------------------------------------------------
|
|
29273
29273
|
--------------------------------------------------------------------------------
|
|
29274
29274
|
|
|
29275
|
-
Report Generated by FOSSA on 2026-7-
|
|
29275
|
+
Report Generated by FOSSA on 2026-7-10
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 5H5v15h8V5Z" fill="#B0BECA" fill-opacity=".75"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15 0h5v20h-5V0Z" fill="#B0BECA"/><path d="M3 13H0v7h3v-7Z" fill="#B0BECA" fill-opacity=".6"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 0h5v5h-5V0Z" fill="#B0BECA" fill-opacity=".45"/><path d="M13 4H5v4h8V4ZM3 9H0v4h3V9Z" fill="#B0BECA" fill-opacity=".45"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15 6h5v6h-5V6Z" fill="#B0BECA"/><path d="M13 15H5V9h8v6ZM3 14H0v4h3v-4Z" fill="#B0BECA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15 13h5v7h-5v-7Z" fill="#94A1AD"/><path d="M13 16H5v4h8v-4ZM3 19H0v1h3v-1Z" fill="#94A1AD"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 0h5v18h-5V0Z" fill="#B0BECA" fill-opacity=".45"/><path d="M13 5H5v13h8V5ZM3 10H0v8h3v-8Z" fill="#B0BECA" fill-opacity=".45"/><path d="M20 18H0v2h20v-2Z" fill="#94A1AD"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 0h-8v20h8V0Z" fill="#B0BECA"/><path d="M3 0H0v20h3V0Z" fill="#B0BECA" fill-opacity=".6"/><path fill-rule="evenodd" clip-rule="evenodd" d="M5 0h5v20H5V0Z" fill="#B0BECA" fill-opacity=".75"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualizationCatalog.d.ts","sourceRoot":"","sources":["../../../src/internal/components/VisualizationCatalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"VisualizationCatalog.d.ts","sourceRoot":"","sources":["../../../src/internal/components/VisualizationCatalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAgCzF;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;;;;OAOG;IACH,MAAM,CACF,GAAG,EAAE,MAAM,EACX,oBAAoB,CAAC,EAAE,OAAO,EAC9B,oBAAoB,CAAC,EAAE,OAAO,GAC/B,wBAAwB,CAAC;IAE5B;;;;;OAKG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1C;;;;;;;OAOG;IACH,UAAU,CACN,OAAO,EAAE,kBAAkB,EAC3B,oBAAoB,CAAC,EAAE,OAAO,EAC9B,oBAAoB,CAAC,EAAE,OAAO,GAC/B,wBAAwB,CAAC;IAE5B;;;;;OAKG;IACH,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;CACjE;AAED,KAAK,kBAAkB,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,qBAAa,wBAAyB,YAAW,qBAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,kBAAkB,EAAI;IAErD,MAAM,CACT,GAAG,EAAE,MAAM,EACX,oBAAoB,CAAC,EAAE,OAAO,EAC9B,oBAAoB,CAAC,EAAE,OAAO,GAC/B,wBAAwB,CAkB1B;IAEM,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;IAEM,UAAU,CACb,OAAO,EAAE,kBAAkB,EAC3B,oBAAoB,CAAC,EAAE,OAAO,EAC9B,oBAAoB,CAAC,EAAE,OAAO,GAC/B,wBAAwB,CAO1B;IAEM,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAGnE;IAED,OAAO,CAAC,aAAa;CAKxB;AAuCD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,qBAEzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,qBAGrC,CAAC"}
|
|
@@ -16,6 +16,7 @@ import { GeoPushpinChartNextDescriptor } from "./pluggableVisualizations/geoChar
|
|
|
16
16
|
import { HeadlineDescriptor } from "./pluggableVisualizations/headline/HeadlineDescriptor.js";
|
|
17
17
|
import { HeatmapDescriptor } from "./pluggableVisualizations/heatMap/HeatmapDescriptor.js";
|
|
18
18
|
import { LineChartDescriptor } from "./pluggableVisualizations/lineChart/LineChartDescriptor.js";
|
|
19
|
+
import { MekkoDescriptor } from "./pluggableVisualizations/mekko/MekkoDescriptor.js";
|
|
19
20
|
import { PieChartDescriptor } from "./pluggableVisualizations/pieChart/PieChartDescriptor.js";
|
|
20
21
|
import { PivotTableDescriptor } from "./pluggableVisualizations/pivotTable/PivotTableDescriptor.js";
|
|
21
22
|
import { PivotTableNextDescriptor } from "./pluggableVisualizations/pivotTableNext/PivotTableNextDescriptor.js";
|
|
@@ -104,6 +105,7 @@ const DefaultVisualizations = {
|
|
|
104
105
|
tablenext: PivotTableNextDescriptor,
|
|
105
106
|
pushpinnext: GeoPushpinChartNextDescriptor,
|
|
106
107
|
choropleth: GeoAreaChartDescriptor,
|
|
108
|
+
mekko: MekkoDescriptor,
|
|
107
109
|
};
|
|
108
110
|
/**
|
|
109
111
|
* Default pluggable visualization catalog. This is implemented using static lookup table between vis type
|
|
@@ -15,7 +15,8 @@ export interface IColorsSectionProps {
|
|
|
15
15
|
isChartFillDisabled?: boolean;
|
|
16
16
|
/** Optional controls rendered above the fill dropdown, inside the section. */
|
|
17
17
|
additionalControls?: ReactNode;
|
|
18
|
+
supportsLineStyles?: boolean;
|
|
18
19
|
}
|
|
19
20
|
export declare const COLOR_MAPPING_CHANGED = "COLOR_MAPPING_CHANGED";
|
|
20
|
-
export declare function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures, isChartFillDisabled, additionalControls }: IColorsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures, isChartFillDisabled, additionalControls, supportsLineStyles }: IColorsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
//# sourceMappingURL=ColorsSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorsSection.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/configurationControls/colors/ColorsSection.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAQvG,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ColorsSection.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/configurationControls/colors/ColorsSection.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAQvG,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,wBAAgB,aAAa,CAAC,EAC1B,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,wBAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACrB,EAAE,mBAAmB,2CAyKrB"}
|
|
@@ -2,16 +2,17 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import cx from "classnames";
|
|
3
3
|
import { cloneDeep, set } from "lodash-es";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
|
+
import { isMeasureDescriptor } from "@gooddata/sdk-model";
|
|
5
6
|
import { Button } from "@gooddata/sdk-ui-kit";
|
|
6
7
|
import { messages } from "../../../../locales.js";
|
|
7
8
|
import { fillDropdownItems } from "../../../constants/dropdowns.js";
|
|
8
|
-
import { getColoredInputItems, getProperties } from "../../../utils/colors.js";
|
|
9
|
+
import { getColoredInputItems, getLineStyleProperties, getProperties } from "../../../utils/colors.js";
|
|
9
10
|
import { getTranslatedDropdownItems, getTranslation } from "../../../utils/translations.js";
|
|
10
11
|
import { ConfigSection } from "../../configurationControls/ConfigSection.js";
|
|
11
12
|
import { DropdownControl } from "../DropdownControl.js";
|
|
12
13
|
import { ColoredItemsList } from "./coloredItemsList/ColoredItemsList.js";
|
|
13
14
|
export const COLOR_MAPPING_CHANGED = "COLOR_MAPPING_CHANGED";
|
|
14
|
-
export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures = [], isChartFillDisabled, additionalControls, }) {
|
|
15
|
+
export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures = [], isChartFillDisabled, additionalControls, supportsLineStyles, }) {
|
|
15
16
|
const intl = useIntl();
|
|
16
17
|
const onSelect = (selectedColorItem, color) => {
|
|
17
18
|
const { mappingHeader } = selectedColorItem;
|
|
@@ -22,39 +23,53 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
22
23
|
};
|
|
23
24
|
pushData?.(message);
|
|
24
25
|
};
|
|
26
|
+
const onLineStyleOrWidthChange = (item, lineStyle, lineWidth) => {
|
|
27
|
+
const { mappingHeader } = item;
|
|
28
|
+
if (!mappingHeader || !properties || !isMeasureDescriptor(mappingHeader)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const localId = mappingHeader.measureHeaderItem.localIdentifier;
|
|
32
|
+
if (!localId) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const newProperties = getLineStyleProperties(properties, localId, lineStyle, lineWidth);
|
|
36
|
+
pushData?.({ messageId: COLOR_MAPPING_CHANGED, properties: newProperties });
|
|
37
|
+
};
|
|
38
|
+
const onLineStyleChange = (item, lineStyle) => onLineStyleOrWidthChange(item, lineStyle, item.lineWidth);
|
|
39
|
+
const onLineWidthChange = (item, lineWidth) => onLineStyleOrWidthChange(item, item.lineStyle, lineWidth);
|
|
25
40
|
const isColoredListVisible = () => {
|
|
26
41
|
return isLoading || (!controlsDisabled && colors?.colorPalette && hasMeasures);
|
|
27
42
|
};
|
|
28
43
|
const isDefaultColorMapping = () => {
|
|
29
44
|
const colorMapping = properties?.controls?.["colorMapping"] ?? [];
|
|
30
|
-
|
|
45
|
+
const lineStyleMapping = supportsLineStyles ? (properties?.controls?.["lineStyleMapping"] ?? []) : [];
|
|
46
|
+
return ((!colorMapping || colorMapping.length === 0) &&
|
|
47
|
+
(!lineStyleMapping || lineStyleMapping.length === 0));
|
|
31
48
|
};
|
|
32
49
|
const onResetColors = () => {
|
|
33
50
|
if (isDefaultColorMapping()) {
|
|
34
51
|
return;
|
|
35
52
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
42
|
-
pushData?.(message);
|
|
53
|
+
let updatedProperties = set(cloneDeep(properties), "controls.colorMapping", undefined);
|
|
54
|
+
if (supportsLineStyles) {
|
|
55
|
+
updatedProperties = set(updatedProperties, "controls.lineStyleMapping", undefined);
|
|
56
|
+
}
|
|
57
|
+
pushData?.({ messageId: COLOR_MAPPING_CHANGED, properties: updatedProperties, references: {} });
|
|
43
58
|
};
|
|
44
59
|
const renderResetButton = () => {
|
|
45
60
|
const isDisabled = controlsDisabled || isDefaultColorMapping();
|
|
46
61
|
const classes = cx("gd-color-reset-colors-section", {
|
|
47
62
|
disabled: isDisabled,
|
|
48
63
|
});
|
|
49
|
-
return (_jsx("div", { className: classes, children: _jsx(Button, { value: getTranslation(messages["resetColors"].id, intl), className: "gd-button-link s-reset-colors-button", onClick: onResetColors, disabled: isDisabled }) }));
|
|
64
|
+
return (_jsx("div", { className: classes, children: _jsx(Button, { value: getTranslation(supportsLineStyles ? messages["resetColorsAndStyles"].id : messages["resetColors"].id, intl), className: "gd-button-link s-reset-colors-button", onClick: onResetColors, disabled: isDisabled }) }));
|
|
50
65
|
};
|
|
51
66
|
const renderFillDropdown = () => {
|
|
52
67
|
if (!supportsChartFill) {
|
|
53
68
|
return null;
|
|
54
69
|
}
|
|
70
|
+
// when all colors are used for disabled measures, chart fill is not available
|
|
55
71
|
const isDisabled = controlsDisabled ||
|
|
56
72
|
isChartFillDisabled ||
|
|
57
|
-
// when all colors are used for disabled measures, chart fill is not available
|
|
58
73
|
chartFillIgnoredMeasures.length === colors?.colorAssignments.length;
|
|
59
74
|
const currentChartFillValue = isChartFillDisabled
|
|
60
75
|
? "solid"
|
|
@@ -62,11 +77,14 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
62
77
|
return (_jsx("div", { className: "gd-chart-fill-section", children: _jsx(DropdownControl, { value: currentChartFillValue, valuePath: "chartFill.type", labelText: messages["fill"].id, disabled: isDisabled, properties: properties, pushData: pushData, items: getTranslatedDropdownItems(fillDropdownItems, intl), showDisabledMessage: isDisabled }) }));
|
|
63
78
|
};
|
|
64
79
|
const renderColoredList = () => {
|
|
65
|
-
const
|
|
80
|
+
const lineStyleMapping = supportsLineStyles
|
|
81
|
+
? (properties?.controls?.["lineStyleMapping"] ?? [])
|
|
82
|
+
: undefined;
|
|
83
|
+
const inputItems = getColoredInputItems(colors, lineStyleMapping);
|
|
66
84
|
const colorPalette = colors?.colorPalette ? colors.colorPalette : [];
|
|
67
85
|
const chartFill = isChartFillDisabled ? undefined : properties?.controls?.["chartFill"];
|
|
68
86
|
return (_jsxs(_Fragment, { children: [
|
|
69
|
-
_jsx(ColoredItemsList, { colorPalette: colorPalette, inputItems: inputItems, onSelect: onSelect, disabled: controlsDisabled, isLoading: isLoading, chartFill: chartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures }), renderResetButton(), additionalControls, renderFillDropdown()] }));
|
|
87
|
+
_jsx(ColoredItemsList, { colorPalette: colorPalette, inputItems: inputItems, onSelect: onSelect, disabled: controlsDisabled, isLoading: isLoading, chartFill: chartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures, supportsLineStyles: supportsLineStyles, onLineStyleChange: supportsLineStyles ? onLineStyleChange : undefined, onLineWidthChange: supportsLineStyles ? onLineWidthChange : undefined }), renderResetButton(), additionalControls, renderFillDropdown()] }));
|
|
70
88
|
};
|
|
71
89
|
const renderUnsupportedColoredList = () => {
|
|
72
90
|
return (_jsx("div", { className: "gd-color-unsupported", children: getTranslation(messages["unsupportedColors"].id, intl) }));
|
|
@@ -74,8 +92,10 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
74
92
|
const renderSectionContents = () => {
|
|
75
93
|
return isColoredListVisible() ? renderColoredList() : renderUnsupportedColoredList();
|
|
76
94
|
};
|
|
77
|
-
const sectionTitleTranslationId =
|
|
78
|
-
? messages["
|
|
79
|
-
:
|
|
95
|
+
const sectionTitleTranslationId = supportsLineStyles
|
|
96
|
+
? messages["colorsAndStyles"].id
|
|
97
|
+
: supportsChartFill
|
|
98
|
+
? messages["colorsAndFills"].id
|
|
99
|
+
: messages["colors"].id;
|
|
80
100
|
return (_jsx(ConfigSection, { title: sectionTitleTranslationId, pushData: pushData, propertiesMeta: propertiesMeta, id: "colors_section", className: "adi-color-configuration", children: renderSectionContents() }));
|
|
81
101
|
}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
|
|
2
|
-
import { type IChartFillConfig
|
|
2
|
+
import { type IChartFillConfig } from "@gooddata/sdk-ui-charts";
|
|
3
|
+
import { type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
|
|
3
4
|
import { type IColoredItem } from "../../../../interfaces/Colors.js";
|
|
4
5
|
export interface IColoredItemProps {
|
|
5
6
|
colorPalette: IColorPalette;
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColoredItem.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ColoredItem.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAOrE,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;CAC/C;AAED,eAAO,MAAM,WAAW,yDAiDtB,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.js
CHANGED
|
@@ -9,7 +9,7 @@ import { ColorDropdown } from "../colorDropdown/ColorDropdown.js";
|
|
|
9
9
|
import { ColoredItemContent } from "./ColoredItemContent.js";
|
|
10
10
|
export const ColoredItem = memo(function ColoredItem(props) {
|
|
11
11
|
const intl = useIntl();
|
|
12
|
-
const { item, colorPalette, onSelect, chartFill, patternFillIndex } = props;
|
|
12
|
+
const { item, colorPalette, onSelect, chartFill, patternFillIndex, disabled } = props;
|
|
13
13
|
const renderLoadingItem = () => {
|
|
14
14
|
return _jsx("div", { className: "gd-list-item gd-list-item-not-loaded" });
|
|
15
15
|
};
|
|
@@ -31,5 +31,5 @@ export const ColoredItem = memo(function ColoredItem(props) {
|
|
|
31
31
|
}
|
|
32
32
|
const headerItem = coloredItem.mappingHeader;
|
|
33
33
|
const headerText = getText(headerItem);
|
|
34
|
-
return (_jsx(ColorDropdown, { selectedColorItem: coloredItem.colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, chartFill: chartFill, patternFillIndex: patternFillIndex, children: _jsx(ColoredItemContent, { text: headerText, color: coloredItem.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex }) }));
|
|
34
|
+
return (_jsx(ColorDropdown, { selectedColorItem: coloredItem.colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, chartFill: chartFill, patternFillIndex: patternFillIndex, disabled: disabled, children: _jsx(ColoredItemContent, { text: headerText, color: coloredItem.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex }) }));
|
|
35
35
|
});
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
|
|
2
|
-
import { type IChartFillConfig } from "@gooddata/sdk-ui-charts";
|
|
2
|
+
import { type IChartFillConfig, type LineStyle } from "@gooddata/sdk-ui-charts";
|
|
3
3
|
import { type IColoredItem } from "../../../../interfaces/Colors.js";
|
|
4
4
|
export interface IColoredItemsListProps {
|
|
5
5
|
colorPalette: IColorPalette;
|
|
@@ -9,6 +9,9 @@ export interface IColoredItemsListProps {
|
|
|
9
9
|
isLoading?: boolean;
|
|
10
10
|
chartFill?: IChartFillConfig;
|
|
11
11
|
chartFillIgnoredMeasures: string[];
|
|
12
|
+
supportsLineStyles?: boolean;
|
|
13
|
+
onLineStyleChange?: (item: IColoredItem, lineStyle: LineStyle) => void;
|
|
14
|
+
onLineWidthChange?: (item: IColoredItem, lineWidth: 1 | 2 | 3 | 4) => void;
|
|
12
15
|
}
|
|
13
16
|
export declare const ColoredItemsList: import("react").NamedExoticComponent<IColoredItemsListProps>;
|
|
14
17
|
//# sourceMappingURL=ColoredItemsList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColoredItemsList.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ColoredItemsList.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGhF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUrE,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC9E;AASD,eAAO,MAAM,gBAAgB,8DAqG3B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js
CHANGED
|
@@ -5,6 +5,7 @@ import { isMeasureDescriptor } from "@gooddata/sdk-model";
|
|
|
5
5
|
import { DropdownList, GOODSTRAP_SCROLLED_EVENT } from "@gooddata/sdk-ui-kit";
|
|
6
6
|
import { getSearchedItems } from "../../../../utils/colors.js";
|
|
7
7
|
import { ColoredItem } from "./ColoredItem.js";
|
|
8
|
+
import { LineStyleColoredItem } from "./LineStyleColoredItem.js";
|
|
8
9
|
const DROPDOWN_MAX_HEIGHT = 150;
|
|
9
10
|
const SEARCH_FIELD_VISIBILITY_THRESHOLD = 7;
|
|
10
11
|
const DROPDOWN_BODY_WIDTH = 218;
|
|
@@ -13,7 +14,7 @@ function isChartFillIgnoredMeasure(item, chartFillIgnoredMeasures) {
|
|
|
13
14
|
chartFillIgnoredMeasures.includes(item.mappingHeader.measureHeaderItem.localIdentifier));
|
|
14
15
|
}
|
|
15
16
|
export const ColoredItemsList = memo(function ColoredItemsList(props) {
|
|
16
|
-
const { colorPalette, inputItems, onSelect: onSelectProp, disabled = false, isLoading = false, chartFill, chartFillIgnoredMeasures, } = props;
|
|
17
|
+
const { colorPalette, inputItems, onSelect: onSelectProp, disabled = false, isLoading = false, chartFill, chartFillIgnoredMeasures, supportsLineStyles, onLineStyleChange, onLineWidthChange, } = props;
|
|
17
18
|
const [searchString, setSearchString] = useState("");
|
|
18
19
|
const listRef = useRef(null);
|
|
19
20
|
const onScroll = () => {
|
|
@@ -53,6 +54,9 @@ export const ColoredItemsList = memo(function ColoredItemsList(props) {
|
|
|
53
54
|
const appliedChartFill = isChartFillIgnoredMeasure(item, chartFillIgnoredMeasures)
|
|
54
55
|
? undefined
|
|
55
56
|
: chartFill;
|
|
57
|
+
if (supportsLineStyles && isMeasureDescriptor(item.mappingHeader)) {
|
|
58
|
+
return (_jsx(LineStyleColoredItem, { colorPalette: colorPalette, onSelect: onSelect, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex], onLineStyleChange: onLineStyleChange, onLineWidthChange: onLineWidthChange }));
|
|
59
|
+
}
|
|
56
60
|
return (_jsx(ColoredItem, { colorPalette: colorPalette, onSelect: onSelect, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex] }));
|
|
57
61
|
} }) }));
|
|
58
62
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IChartFillConfig, type LineStyle } from "@gooddata/sdk-ui-charts";
|
|
3
|
+
import { type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
import { type IColoredItem } from "../../../../interfaces/Colors.js";
|
|
5
|
+
export interface ILineStyleColoredItemProps {
|
|
6
|
+
colorPalette: IColorPalette;
|
|
7
|
+
item: IColoredItem;
|
|
8
|
+
onSelect?: (source: IColoredItem, color: IColor) => void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
chartFill?: IChartFillConfig;
|
|
11
|
+
patternFillIndex?: number | PatternFillName;
|
|
12
|
+
onLineStyleChange?: (item: IColoredItem, lineStyle: LineStyle) => void;
|
|
13
|
+
onLineWidthChange?: (item: IColoredItem, lineWidth: 1 | 2 | 3 | 4) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const LineStyleColoredItem: import("react").NamedExoticComponent<ILineStyleColoredItemProps>;
|
|
16
|
+
//# sourceMappingURL=LineStyleColoredItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineStyleColoredItem.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAOrE,MAAM,WAAW,0BAA0B;IACvC,YAAY,EAAE,aAAa,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,eAAO,MAAM,oBAAoB,kEAgE/B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { memo, useRef, useState } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
5
|
+
import { getMappingHeaderFormattedName } from "@gooddata/sdk-ui";
|
|
6
|
+
import { messages } from "../../../../../locales.js";
|
|
7
|
+
import { getTranslation } from "../../../../utils/translations.js";
|
|
8
|
+
import { IconPosition } from "../colorDropdown/ColorDropdown.js";
|
|
9
|
+
import { ColoredItemContent } from "./ColoredItemContent.js";
|
|
10
|
+
import { LineStyleDialog } from "./LineStyleDialog.js";
|
|
11
|
+
export const LineStyleColoredItem = memo(function LineStyleColoredItem(props) {
|
|
12
|
+
const intl = useIntl();
|
|
13
|
+
const { item, colorPalette, onSelect, chartFill, patternFillIndex, disabled, onLineStyleChange, onLineWidthChange, } = props;
|
|
14
|
+
const anchorRef = useRef(null);
|
|
15
|
+
const [dialogOpen, setDialogOpen] = useState(false);
|
|
16
|
+
const headerText = getMappingHeaderFormattedName(item.mappingHeader) || `(${getTranslation("empty_value", intl)})`;
|
|
17
|
+
const onColorSelected = (color) => onSelect?.(item, color);
|
|
18
|
+
return (_jsxs(_Fragment, { children: [
|
|
19
|
+
_jsx("button", { ref: anchorRef, type: "button", className: "gd-line-style-item-trigger", "aria-haspopup": "dialog", "aria-expanded": dialogOpen, "aria-label": getTranslation(messages.lineStyleTriggerAriaLabel.id, intl, {
|
|
20
|
+
name: headerText,
|
|
21
|
+
}), onClick: () => setDialogOpen((v) => !v), disabled: disabled, children: _jsx(ColoredItemContent, { text: headerText, color: item.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex, isSelected: dialogOpen, position: IconPosition.Down }) }), dialogOpen ? (_jsx(LineStyleDialog, { alignTo: anchorRef.current, ignoreClicksOn: anchorRef.current ? [anchorRef.current] : undefined, color: item.color, colorItem: item.colorItem, colorPalette: colorPalette, lineStyle: item.lineStyle, lineWidth: item.lineWidth, disabled: disabled, chartFill: chartFill, patternFillIndex: patternFillIndex, onColorSelected: onColorSelected, onLineStyleChange: (lineStyle) => onLineStyleChange?.(item, lineStyle), onLineWidthChange: (lineWidth) => onLineWidthChange?.(item, lineWidth), onClose: () => setDialogOpen(false) })) : null] }));
|
|
22
|
+
});
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type IColor, type IColorPalette, type IRgbColorValue } from "@gooddata/sdk-model";
|
|
2
|
+
import { type LineStyle } from "@gooddata/sdk-ui-charts";
|
|
3
|
+
import { type IChartFillConfig, type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
export interface ILineStyleDialogProps {
|
|
5
|
+
alignTo: HTMLElement | null;
|
|
6
|
+
ignoreClicksOn?: HTMLElement[];
|
|
7
|
+
color: IRgbColorValue;
|
|
8
|
+
colorItem?: IColor;
|
|
9
|
+
colorPalette: IColorPalette;
|
|
10
|
+
lineStyle?: LineStyle;
|
|
11
|
+
lineWidth?: 1 | 2 | 3 | 4;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
chartFill?: IChartFillConfig;
|
|
14
|
+
patternFillIndex?: number | PatternFillName;
|
|
15
|
+
onColorSelected: (color: IColor) => void;
|
|
16
|
+
onLineStyleChange: (lineStyle: LineStyle) => void;
|
|
17
|
+
onLineWidthChange: (lineWidth: 1 | 2 | 3 | 4) => void;
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const LineStyleDialog: import("react").NamedExoticComponent<ILineStyleDialogProps>;
|
|
21
|
+
//# sourceMappingURL=LineStyleDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineStyleDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAsD3F,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5C,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,6DA8J1B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { memo } from "react";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
6
|
+
import { Dropdown, DropdownList, Overlay, SingleSelectListItem, } from "@gooddata/sdk-ui-kit";
|
|
7
|
+
import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
8
|
+
import { messages } from "../../../../../locales.js";
|
|
9
|
+
import { ColorDropdown } from "../colorDropdown/ColorDropdown.js";
|
|
10
|
+
import { getIconStyle } from "../colorDropdown/ColorPaletteItem.js";
|
|
11
|
+
import { OptionalPatternFill } from "../colorDropdown/OptionalPatternFill.js";
|
|
12
|
+
const TOOLBAR_ALIGN_POINTS = [
|
|
13
|
+
{ align: "bl tl", offset: { x: 0, y: 4 } },
|
|
14
|
+
{ align: "tl bl", offset: { x: 0, y: -4 } },
|
|
15
|
+
];
|
|
16
|
+
const DROPDOWN_ALIGN_POINTS = [
|
|
17
|
+
{ align: "bl tl", offset: { x: 0, y: -2 } },
|
|
18
|
+
{ align: "tl bl", offset: { x: 0, y: 2 } },
|
|
19
|
+
];
|
|
20
|
+
const STYLE_DROPDOWN_WIDTH = 120;
|
|
21
|
+
const WEIGHT_DROPDOWN_WIDTH = 110;
|
|
22
|
+
function StrokeStyleIcon({ style, size = 20 }) {
|
|
23
|
+
const strokeDasharray = style === "dashed" ? "5,2" : style === "dotted" ? "0.5,3" : undefined;
|
|
24
|
+
return (_jsx("svg", { width: size, height: size, viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("line", { x1: "2", y1: "10", x2: "18", y2: "10", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeDasharray: strokeDasharray }) }));
|
|
25
|
+
}
|
|
26
|
+
function StrokeWeightIcon({ weight, size = 14 }) {
|
|
27
|
+
return (_jsx("svg", { width: size, height: size, viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("line", { x1: "1", y1: "7", x2: "13", y2: "7", stroke: "currentColor", strokeWidth: weight, strokeLinecap: "round" }) }));
|
|
28
|
+
}
|
|
29
|
+
export const LineStyleDialog = memo(function LineStyleDialog({ alignTo, ignoreClicksOn, color, colorItem, colorPalette, lineStyle = "solid", lineWidth = 3, disabled, chartFill, patternFillIndex, onColorSelected, onLineStyleChange, onLineWidthChange, onClose, }) {
|
|
30
|
+
const intl = useIntl();
|
|
31
|
+
const theme = useTheme();
|
|
32
|
+
if (!alignTo) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const { r, g, b } = color;
|
|
36
|
+
const colorSwatchStyle = getIconStyle(chartFill?.type ?? "solid", `rgb(${r},${g},${b})`, theme);
|
|
37
|
+
const lineStyleOptions = [
|
|
38
|
+
{ id: "solid", title: intl.formatMessage({ id: messages.lineStyleSolid.id }) },
|
|
39
|
+
{ id: "dashed", title: intl.formatMessage({ id: messages.lineStyleDashed.id }) },
|
|
40
|
+
{ id: "dotted", title: intl.formatMessage({ id: messages.lineStyleDotted.id }) },
|
|
41
|
+
];
|
|
42
|
+
const lineWidthOptions = [
|
|
43
|
+
{ id: 1, title: intl.formatMessage({ id: messages.lineWidth1.id }) },
|
|
44
|
+
{ id: 2, title: intl.formatMessage({ id: messages.lineWidth2.id }) },
|
|
45
|
+
{ id: 3, title: intl.formatMessage({ id: messages.lineWidth3.id }) },
|
|
46
|
+
{ id: 4, title: intl.formatMessage({ id: messages.lineWidth4.id }) },
|
|
47
|
+
];
|
|
48
|
+
return (_jsx(Overlay, { alignTo: alignTo, alignPoints: TOOLBAR_ALIGN_POINTS, closeOnParentScroll: true, closeOnOutsideClick: true, ignoreClicksOn: ignoreClicksOn, onClose: onClose, children: _jsxs("div", { className: cx("gd-line-style-toolbar", { "is-disabled": disabled }), children: [
|
|
49
|
+
_jsx(ColorDropdown, { selectedColorItem: colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, disabled: disabled, chartFill: chartFill, patternFillIndex: patternFillIndex, children: _jsxs("div", { className: cx("gd-line-style-toolbar__btn", `s-color-${r}-${g}-${b}`, {
|
|
50
|
+
"is-disabled": disabled,
|
|
51
|
+
}), "aria-label": intl.formatMessage({ id: messages.colors.id }), children: [
|
|
52
|
+
_jsx("div", { className: "gd-line-style-toolbar__color-swatch", style: colorSwatchStyle, children: _jsx(OptionalPatternFill, { chartFill: chartFill?.type ?? "solid", patternFillIndex: patternFillIndex ?? 0 }) }), _jsx("i", { className: "gd-icon-navigatedown", "aria-hidden": "true" })
|
|
53
|
+
] }) }), _jsx("div", { className: "gd-line-style-toolbar__divider", "aria-hidden": "true" }), _jsx(Dropdown, { alignPoints: DROPDOWN_ALIGN_POINTS, closeOnParentScroll: true, renderButton: ({ isOpen, toggleDropdown }) => (_jsxs("button", { type: "button", className: cx("gd-line-style-toolbar__btn", { "is-open": isOpen }), onClick: toggleDropdown, disabled: disabled, "aria-label": intl.formatMessage({ id: messages.lineStyleLabel.id }), "aria-haspopup": "listbox", "aria-expanded": isOpen, children: [
|
|
54
|
+
_jsx(StrokeStyleIcon, { style: lineStyle }), _jsx("i", { className: "gd-icon-navigatedown", "aria-hidden": "true" })
|
|
55
|
+
] })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { width: STYLE_DROPDOWN_WIDTH, items: lineStyleOptions, renderItem: ({ item }) => (_jsx(SingleSelectListItem, { title: item.title, icon: _jsx(StrokeStyleIcon, { style: item.id, size: 14 }), isSelected: item.id === lineStyle, onClick: () => {
|
|
56
|
+
onLineStyleChange(item.id);
|
|
57
|
+
closeDropdown();
|
|
58
|
+
} })) })) }), _jsx("div", { className: "gd-line-style-toolbar__divider", "aria-hidden": "true" }), _jsx(Dropdown, { alignPoints: DROPDOWN_ALIGN_POINTS, closeOnParentScroll: true, renderButton: ({ isOpen, toggleDropdown }) => (_jsxs("button", { type: "button", className: cx("gd-line-style-toolbar__btn", { "is-open": isOpen }), onClick: toggleDropdown, disabled: disabled, "aria-label": intl.formatMessage({ id: messages.lineWidthLabel.id }), "aria-haspopup": "listbox", "aria-expanded": isOpen, children: [
|
|
59
|
+
_jsxs("span", { className: "gd-line-style-toolbar__weight-text", children: [lineWidth, "px"] }), _jsx("i", { className: "gd-icon-navigatedown", "aria-hidden": "true" })
|
|
60
|
+
] })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { width: WEIGHT_DROPDOWN_WIDTH, items: lineWidthOptions, renderItem: ({ item }) => (_jsx(SingleSelectListItem, { title: item.title, icon: _jsx(StrokeWeightIcon, { weight: item.id }), isSelected: item.id === lineWidth, onClick: () => {
|
|
61
|
+
onLineWidthChange(item.id);
|
|
62
|
+
closeDropdown();
|
|
63
|
+
} })) })) })] }) }));
|
|
64
|
+
});
|
|
@@ -5,6 +5,7 @@ export interface ILineChartBasedConfigurationPanel extends IConfigurationPanelCo
|
|
|
5
5
|
dataLabelDefaultValue?: string | boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare class LineChartBasedConfigurationPanel extends BaseChartConfigurationPanel<ILineChartBasedConfigurationPanel> {
|
|
8
|
+
protected renderColorSection(): ReactNode;
|
|
8
9
|
protected renderConfigurationPanel(): ReactNode;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=LineChartBasedConfigurationPanel.d.ts.map
|
package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChartBasedConfigurationPanel.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationPanels/LineChartBasedConfigurationPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LineChartBasedConfigurationPanel.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationPanels/LineChartBasedConfigurationPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA0BvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEtF,MAAM,WAAW,iCAAkC,SAAQ,+BAA+B;IACtF,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED,qBAAa,gCAAiC,SAAQ,2BAA2B,CAAC,iCAAiC,CAAC;IAChH,UAAmB,kBAAkB,IAAI,SAAS,CAiCjD;IAED,UAAmB,wBAAwB,IAAI,SAAS,CA0FvD;CACJ"}
|
|
@@ -3,7 +3,10 @@ import { FormattedMessage } from "react-intl";
|
|
|
3
3
|
import { Bubble, BubbleHoverTrigger } from "@gooddata/sdk-ui-kit";
|
|
4
4
|
import { messages } from "../../../locales.js";
|
|
5
5
|
import { BUBBLE_ARROW_OFFSET_X, BUBBLE_ARROW_OFFSET_Y, HIDE_DELAY_DEFAULT, SHOW_DELAY_DEFAULT, } from "../../constants/bubble.js";
|
|
6
|
+
import { isLineChartStylingEnabled } from "../../constants/featureFlags.js";
|
|
7
|
+
import { getChartFillIgnoredMeasureIdsFromMdObject, getMeasuresFromMdObject, } from "../../utils/bucketHelper.js";
|
|
6
8
|
import { CheckboxControl } from "../configurationControls/CheckboxControl.js";
|
|
9
|
+
import { ColorsSection } from "../configurationControls/colors/ColorsSection.js";
|
|
7
10
|
import { ConfigSection } from "../configurationControls/ConfigSection.js";
|
|
8
11
|
import { ContinuousLineControl } from "../configurationControls/ContinuousLineControl.js";
|
|
9
12
|
import { DataLabelsControl } from "../configurationControls/DataLabelsControl.js";
|
|
@@ -11,6 +14,13 @@ import { DataPointsControl } from "../configurationControls/DataPointsControl.js
|
|
|
11
14
|
import { DistinctPointShapesControl } from "../configurationControls/DistintcPointShapesControl.js";
|
|
12
15
|
import { BaseChartConfigurationPanel } from "./BaseChartConfigurationPanel.js";
|
|
13
16
|
export class LineChartBasedConfigurationPanel extends BaseChartConfigurationPanel {
|
|
17
|
+
renderColorSection() {
|
|
18
|
+
const { properties, propertiesMeta, pushData, colors, references, insight, isLoading, panelConfig, featureFlags, } = this.props;
|
|
19
|
+
const controlsDisabled = this.isControlDisabled();
|
|
20
|
+
const hasMeasures = getMeasuresFromMdObject(insight).length > 0;
|
|
21
|
+
const chartFillIgnoredMeasures = getChartFillIgnoredMeasureIdsFromMdObject(insight, properties);
|
|
22
|
+
return (_jsx(ColorsSection, { properties: properties, propertiesMeta: propertiesMeta, references: references, colors: colors, controlsDisabled: controlsDisabled, pushData: pushData, hasMeasures: hasMeasures, isLoading: isLoading, supportsChartFill: panelConfig?.supportsChartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures, isChartFillDisabled: panelConfig?.isChartFillDisabled, supportsLineStyles: isLineChartStylingEnabled(featureFlags) }));
|
|
23
|
+
}
|
|
14
24
|
renderConfigurationPanel() {
|
|
15
25
|
const { gridEnabled, axes } = this.getControlProperties();
|
|
16
26
|
const { properties, propertiesMeta, pushData, panelConfig, dataLabelDefaultValue = false, } = this.props;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type IVisualizationMeta, type PluggableVisualizationFactory } from "../../../interfaces/VisualizationDescriptor.js";
|
|
2
|
+
import { BigChartDescriptor } from "../BigChartDescriptor.js";
|
|
3
|
+
export declare class MekkoDescriptor extends BigChartDescriptor {
|
|
4
|
+
getFactory(): PluggableVisualizationFactory;
|
|
5
|
+
getEmbeddingCode: (insight: import("@gooddata/sdk-model").IInsightDefinition, config?: import("../../../interfaces/VisualizationDescriptor.js").IEmbeddingCodeConfig | undefined) => string;
|
|
6
|
+
getMeta(): IVisualizationMeta;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=MekkoDescriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MekkoDescriptor.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EACrC,MAAM,gDAAgD,CAAC;AAWxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D,qBAAa,eAAgB,SAAQ,kBAAkB;IAC5C,UAAU,IAAI,6BAA6B,CAEjD;IAEM,gBAAgB,4KAkBpB;IAEI,OAAO,IAAI,kBAAkB,CAKnC;CACJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { BucketNames } from "@gooddata/sdk-ui";
|
|
3
|
+
import { getReactEmbeddingCodeGenerator } from "../../../utils/embeddingCodeGenerator/getReactEmbeddingCodeGenerator.js";
|
|
4
|
+
import { executionConfigInsightConversion, filtersInsightConversion, localeInsightConversion, singleAttributeBucketConversion, singleMeasureBucketConversion, sortsInsightConversion, } from "../../../utils/embeddingCodeGenerator/insightToPropsConverter/convenience.js";
|
|
5
|
+
import { getInsightToPropsConverter } from "../../../utils/embeddingCodeGenerator/insightToPropsConverter/convertor.js";
|
|
6
|
+
import { BigChartDescriptor } from "../BigChartDescriptor.js";
|
|
7
|
+
import { chartAdditionalFactories, chartConfigInsightConversion } from "../chartCodeGenUtils.js";
|
|
8
|
+
import { PluggableMekko } from "./PluggableMekko.js";
|
|
9
|
+
export class MekkoDescriptor extends BigChartDescriptor {
|
|
10
|
+
getFactory() {
|
|
11
|
+
return (params) => new PluggableMekko(params);
|
|
12
|
+
}
|
|
13
|
+
getEmbeddingCode = getReactEmbeddingCodeGenerator({
|
|
14
|
+
component: {
|
|
15
|
+
importType: "named",
|
|
16
|
+
name: "Mekko",
|
|
17
|
+
package: "@gooddata/sdk-ui-charts",
|
|
18
|
+
},
|
|
19
|
+
insightToProps: getInsightToPropsConverter({
|
|
20
|
+
widthMeasure: singleMeasureBucketConversion("widthMeasure", BucketNames.MEASURES),
|
|
21
|
+
heightMeasure: singleMeasureBucketConversion("heightMeasure", BucketNames.SECONDARY_MEASURES),
|
|
22
|
+
viewBy: singleAttributeBucketConversion("viewBy", BucketNames.VIEW),
|
|
23
|
+
stackBy: singleAttributeBucketConversion("stackBy", BucketNames.STACK),
|
|
24
|
+
filters: filtersInsightConversion("filters"),
|
|
25
|
+
sortBy: sortsInsightConversion("sortBy"),
|
|
26
|
+
config: chartConfigInsightConversion("config"),
|
|
27
|
+
locale: localeInsightConversion("locale"),
|
|
28
|
+
execConfig: executionConfigInsightConversion("execConfig"),
|
|
29
|
+
}),
|
|
30
|
+
additionalFactories: chartAdditionalFactories(),
|
|
31
|
+
});
|
|
32
|
+
getMeta() {
|
|
33
|
+
return {
|
|
34
|
+
supportsExport: true,
|
|
35
|
+
supportsZooming: false,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ISortConfig } from "../../../interfaces/SortConfig.js";
|
|
2
|
+
import { type IExtendedReferencePoint, type IReferencePoint, type IVisConstruct } from "../../../interfaces/Visualization.js";
|
|
3
|
+
import { PluggableBaseChart } from "../baseChart/PluggableBaseChart.js";
|
|
4
|
+
/**
|
|
5
|
+
* PluggableMekko
|
|
6
|
+
*
|
|
7
|
+
* ## Buckets
|
|
8
|
+
*
|
|
9
|
+
* | Name | Id | Accepts |
|
|
10
|
+
* |------------------|--------------------|---------------------|
|
|
11
|
+
* | Metric (Width) | measures | measures only |
|
|
12
|
+
* | Metric (Height) | secondary_measures | measures only |
|
|
13
|
+
* | ViewBy | view | attributes or dates |
|
|
14
|
+
* | StackBy | stack | attributes or dates |
|
|
15
|
+
*
|
|
16
|
+
* ### Bucket axioms
|
|
17
|
+
*
|
|
18
|
+
* - |Width| ≤ 1
|
|
19
|
+
* - |Height| ≤ 1
|
|
20
|
+
* - |ViewBy| ≤ 1
|
|
21
|
+
* - |StackBy| ≤ 1
|
|
22
|
+
*
|
|
23
|
+
* ## Dimensions
|
|
24
|
+
*
|
|
25
|
+
* The PluggableMekko always creates a two dimensional execution:
|
|
26
|
+
*
|
|
27
|
+
* - [[StackBy], [ViewBy, MeasureGroupIdentifier]]
|
|
28
|
+
*/
|
|
29
|
+
export declare class PluggableMekko extends PluggableBaseChart {
|
|
30
|
+
constructor(props: IVisConstruct);
|
|
31
|
+
getExtendedReferencePoint(referencePoint: IReferencePoint): Promise<IExtendedReferencePoint>;
|
|
32
|
+
getSortConfig(referencePoint: IReferencePoint): Promise<ISortConfig>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=PluggableMekko.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluggableMekko.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/pluggableVisualizations/mekko/PluggableMekko.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,aAAa,EACrB,MAAM,sCAAsC,CAAC;AAU9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAIxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IAClD,YAAY,KAAK,EAAE,aAAa,EAK/B;IAEe,yBAAyB,CACrC,cAAc,EAAE,eAAe,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAwBlC;IAEe,aAAa,CAAC,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CA6CnF;CACJ"}
|