@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.
Files changed (143) hide show
  1. package/NOTICE +5 -5
  2. package/esm/internal/assets/mekko/bucket-title-height.svg +1 -0
  3. package/esm/internal/assets/mekko/bucket-title-stack.svg +1 -0
  4. package/esm/internal/assets/mekko/bucket-title-view.svg +1 -0
  5. package/esm/internal/assets/mekko/bucket-title-width.svg +1 -0
  6. package/esm/internal/components/VisualizationCatalog.d.ts.map +1 -1
  7. package/esm/internal/components/VisualizationCatalog.js +2 -0
  8. package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts +2 -1
  9. package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts.map +1 -1
  10. package/esm/internal/components/configurationControls/colors/ColorsSection.js +37 -17
  11. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts +2 -1
  12. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts.map +1 -1
  13. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.js +2 -2
  14. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts +4 -1
  15. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts.map +1 -1
  16. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js +5 -1
  17. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts +16 -0
  18. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts.map +1 -0
  19. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.js +22 -0
  20. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts +21 -0
  21. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts.map +1 -0
  22. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js +64 -0
  23. package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts +1 -0
  24. package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts.map +1 -1
  25. package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.js +10 -0
  26. package/esm/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.d.ts +8 -0
  27. package/esm/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.d.ts.map +1 -0
  28. package/esm/internal/components/pluggableVisualizations/mekko/MekkoDescriptor.js +38 -0
  29. package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.d.ts +34 -0
  30. package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.d.ts.map +1 -0
  31. package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.js +97 -0
  32. package/esm/internal/components/pluggableVisualizations/mekko/bucketHelper.d.ts +3 -0
  33. package/esm/internal/components/pluggableVisualizations/mekko/bucketHelper.d.ts.map +1 -0
  34. package/esm/internal/components/pluggableVisualizations/mekko/bucketHelper.js +30 -0
  35. package/esm/internal/constants/featureFlags.d.ts +2 -0
  36. package/esm/internal/constants/featureFlags.d.ts.map +1 -1
  37. package/esm/internal/constants/featureFlags.js +5 -0
  38. package/esm/internal/constants/supportedProperties.d.ts +1 -0
  39. package/esm/internal/constants/supportedProperties.d.ts.map +1 -1
  40. package/esm/internal/constants/supportedProperties.js +24 -0
  41. package/esm/internal/constants/uiConfig.d.ts +1 -0
  42. package/esm/internal/constants/uiConfig.d.ts.map +1 -1
  43. package/esm/internal/constants/uiConfig.js +37 -0
  44. package/esm/internal/interfaces/Colors.d.ts +3 -0
  45. package/esm/internal/interfaces/Colors.d.ts.map +1 -1
  46. package/esm/internal/interfaces/Colors.js +1 -0
  47. package/esm/internal/translations/de-DE.localization-bundle.d.ts +12 -0
  48. package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
  49. package/esm/internal/translations/de-DE.localization-bundle.js +12 -0
  50. package/esm/internal/translations/en-AU.localization-bundle.d.ts +12 -0
  51. package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
  52. package/esm/internal/translations/en-AU.localization-bundle.js +12 -0
  53. package/esm/internal/translations/en-GB.localization-bundle.d.ts +12 -0
  54. package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
  55. package/esm/internal/translations/en-GB.localization-bundle.js +12 -0
  56. package/esm/internal/translations/en-US.localization-bundle.d.ts +72 -0
  57. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  58. package/esm/internal/translations/en-US.localization-bundle.js +72 -0
  59. package/esm/internal/translations/es-419.localization-bundle.d.ts +12 -0
  60. package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
  61. package/esm/internal/translations/es-419.localization-bundle.js +12 -0
  62. package/esm/internal/translations/es-ES.localization-bundle.d.ts +12 -0
  63. package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
  64. package/esm/internal/translations/es-ES.localization-bundle.js +12 -0
  65. package/esm/internal/translations/fi-FI.localization-bundle.d.ts +12 -0
  66. package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
  67. package/esm/internal/translations/fi-FI.localization-bundle.js +12 -0
  68. package/esm/internal/translations/fr-CA.localization-bundle.d.ts +12 -0
  69. package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
  70. package/esm/internal/translations/fr-CA.localization-bundle.js +12 -0
  71. package/esm/internal/translations/fr-FR.localization-bundle.d.ts +12 -0
  72. package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
  73. package/esm/internal/translations/fr-FR.localization-bundle.js +12 -0
  74. package/esm/internal/translations/id-ID.localization-bundle.d.ts +12 -0
  75. package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
  76. package/esm/internal/translations/id-ID.localization-bundle.js +12 -0
  77. package/esm/internal/translations/it-IT.localization-bundle.d.ts +12 -0
  78. package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
  79. package/esm/internal/translations/it-IT.localization-bundle.js +12 -0
  80. package/esm/internal/translations/ja-JP.localization-bundle.d.ts +12 -0
  81. package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
  82. package/esm/internal/translations/ja-JP.localization-bundle.js +13 -1
  83. package/esm/internal/translations/ko-KR.localization-bundle.d.ts +12 -0
  84. package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
  85. package/esm/internal/translations/ko-KR.localization-bundle.js +12 -0
  86. package/esm/internal/translations/nl-NL.localization-bundle.d.ts +12 -0
  87. package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
  88. package/esm/internal/translations/nl-NL.localization-bundle.js +13 -1
  89. package/esm/internal/translations/pl-PL.localization-bundle.d.ts +12 -0
  90. package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
  91. package/esm/internal/translations/pl-PL.localization-bundle.js +12 -0
  92. package/esm/internal/translations/pt-BR.localization-bundle.d.ts +12 -0
  93. package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
  94. package/esm/internal/translations/pt-BR.localization-bundle.js +12 -0
  95. package/esm/internal/translations/pt-PT.localization-bundle.d.ts +12 -0
  96. package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
  97. package/esm/internal/translations/pt-PT.localization-bundle.js +12 -0
  98. package/esm/internal/translations/ru-RU.localization-bundle.d.ts +12 -0
  99. package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
  100. package/esm/internal/translations/ru-RU.localization-bundle.js +12 -0
  101. package/esm/internal/translations/sl-SI.localization-bundle.d.ts +12 -0
  102. package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
  103. package/esm/internal/translations/sl-SI.localization-bundle.js +12 -0
  104. package/esm/internal/translations/th-TH.localization-bundle.d.ts +12 -0
  105. package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
  106. package/esm/internal/translations/th-TH.localization-bundle.js +12 -0
  107. package/esm/internal/translations/tr-TR.localization-bundle.d.ts +12 -0
  108. package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
  109. package/esm/internal/translations/tr-TR.localization-bundle.js +12 -0
  110. package/esm/internal/translations/uk-UA.localization-bundle.d.ts +12 -0
  111. package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
  112. package/esm/internal/translations/uk-UA.localization-bundle.js +12 -0
  113. package/esm/internal/translations/vi-VN.localization-bundle.d.ts +12 -0
  114. package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
  115. package/esm/internal/translations/vi-VN.localization-bundle.js +12 -0
  116. package/esm/internal/translations/zh-HK.localization-bundle.d.ts +12 -0
  117. package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
  118. package/esm/internal/translations/zh-HK.localization-bundle.js +14 -2
  119. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +12 -0
  120. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
  121. package/esm/internal/translations/zh-Hans.localization-bundle.js +12 -0
  122. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +12 -0
  123. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
  124. package/esm/internal/translations/zh-Hant.localization-bundle.js +12 -0
  125. package/esm/internal/utils/bucketHelper.d.ts.map +1 -1
  126. package/esm/internal/utils/bucketHelper.js +3 -0
  127. package/esm/internal/utils/colors.d.ts +3 -1
  128. package/esm/internal/utils/colors.d.ts.map +1 -1
  129. package/esm/internal/utils/colors.js +68 -32
  130. package/esm/internal/utils/dimensions.d.ts.map +1 -1
  131. package/esm/internal/utils/dimensions.js +1 -0
  132. package/esm/internal/utils/sort.d.ts.map +1 -1
  133. package/esm/internal/utils/sort.js +1 -0
  134. package/esm/internal/utils/uiConfigHelpers/mekkoUiConfigHelper.d.ts +4 -0
  135. package/esm/internal/utils/uiConfigHelpers/mekkoUiConfigHelper.d.ts.map +1 -0
  136. package/esm/internal/utils/uiConfigHelpers/mekkoUiConfigHelper.js +20 -0
  137. package/esm/locales.d.ts +36 -0
  138. package/esm/locales.d.ts.map +1 -1
  139. package/esm/locales.js +18 -0
  140. package/package.json +21 -21
  141. package/styles/internal/css/config_panel.css +82 -0
  142. package/styles/internal/css/config_panel.css.map +1 -1
  143. 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-9
10
+ Date generated: 2026-7-10
11
11
 
12
- Revision ID: fbb2b207aa6388a6070a52fba94dbfaee4ce7208
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: Direct
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: Direct
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-9
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;AA+BzF;;;;;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;AAsCD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,qBAEzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,qBAGrC,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;CAClC;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,EACrB,EAAE,mBAAmB,2CAqIrB"}
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
- return !colorMapping || colorMapping.length === 0;
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
- const propertiesWithoutColorMapping = set(cloneDeep(properties), "controls.colorMapping", undefined);
37
- const message = {
38
- messageId: COLOR_MAPPING_CHANGED,
39
- properties: propertiesWithoutColorMapping,
40
- references: {},
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 inputItems = getColoredInputItems(colors);
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 = supportsChartFill
78
- ? messages["colorsAndFills"].id
79
- : messages["colors"].id;
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
  }
@@ -1,5 +1,6 @@
1
1
  import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
2
- import { type IChartFillConfig, type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
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;
@@ -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;AAE3F,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,yDAgDtB,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"}
@@ -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
  });
@@ -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;AAGhE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AASrE,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;CACtC;AASD,eAAO,MAAM,gBAAgB,8DAoF3B,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"}
@@ -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
+ });
@@ -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"}
@@ -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
@@ -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;AAoBvC,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,wBAAwB,IAAI,SAAS,CA0FvD;CACJ"}
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"}