@gooddata/sdk-ui-ext 11.47.0-alpha.1 → 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 (115) hide show
  1. package/NOTICE +5 -5
  2. package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts +2 -1
  3. package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts.map +1 -1
  4. package/esm/internal/components/configurationControls/colors/ColorsSection.js +37 -17
  5. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts +2 -1
  6. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts.map +1 -1
  7. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.js +2 -2
  8. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts +4 -1
  9. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts.map +1 -1
  10. package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js +5 -1
  11. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts +16 -0
  12. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts.map +1 -0
  13. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.js +22 -0
  14. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts +21 -0
  15. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts.map +1 -0
  16. package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js +64 -0
  17. package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts +1 -0
  18. package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts.map +1 -1
  19. package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.js +10 -0
  20. package/esm/internal/constants/featureFlags.d.ts +2 -0
  21. package/esm/internal/constants/featureFlags.d.ts.map +1 -1
  22. package/esm/internal/constants/featureFlags.js +5 -0
  23. package/esm/internal/constants/supportedProperties.d.ts.map +1 -1
  24. package/esm/internal/constants/supportedProperties.js +3 -0
  25. package/esm/internal/interfaces/Colors.d.ts +3 -0
  26. package/esm/internal/interfaces/Colors.d.ts.map +1 -1
  27. package/esm/internal/interfaces/Colors.js +1 -0
  28. package/esm/internal/translations/de-DE.localization-bundle.d.ts +6 -0
  29. package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
  30. package/esm/internal/translations/de-DE.localization-bundle.js +6 -0
  31. package/esm/internal/translations/en-AU.localization-bundle.d.ts +6 -0
  32. package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
  33. package/esm/internal/translations/en-AU.localization-bundle.js +6 -0
  34. package/esm/internal/translations/en-GB.localization-bundle.d.ts +6 -0
  35. package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
  36. package/esm/internal/translations/en-GB.localization-bundle.js +6 -0
  37. package/esm/internal/translations/en-US.localization-bundle.d.ts +48 -0
  38. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  39. package/esm/internal/translations/en-US.localization-bundle.js +48 -0
  40. package/esm/internal/translations/es-419.localization-bundle.d.ts +6 -0
  41. package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
  42. package/esm/internal/translations/es-419.localization-bundle.js +6 -0
  43. package/esm/internal/translations/es-ES.localization-bundle.d.ts +6 -0
  44. package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
  45. package/esm/internal/translations/es-ES.localization-bundle.js +6 -0
  46. package/esm/internal/translations/fi-FI.localization-bundle.d.ts +6 -0
  47. package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
  48. package/esm/internal/translations/fi-FI.localization-bundle.js +6 -0
  49. package/esm/internal/translations/fr-CA.localization-bundle.d.ts +6 -0
  50. package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
  51. package/esm/internal/translations/fr-CA.localization-bundle.js +6 -0
  52. package/esm/internal/translations/fr-FR.localization-bundle.d.ts +6 -0
  53. package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
  54. package/esm/internal/translations/fr-FR.localization-bundle.js +6 -0
  55. package/esm/internal/translations/id-ID.localization-bundle.d.ts +6 -0
  56. package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
  57. package/esm/internal/translations/id-ID.localization-bundle.js +6 -0
  58. package/esm/internal/translations/it-IT.localization-bundle.d.ts +6 -0
  59. package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
  60. package/esm/internal/translations/it-IT.localization-bundle.js +6 -0
  61. package/esm/internal/translations/ja-JP.localization-bundle.d.ts +6 -0
  62. package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
  63. package/esm/internal/translations/ja-JP.localization-bundle.js +6 -0
  64. package/esm/internal/translations/ko-KR.localization-bundle.d.ts +6 -0
  65. package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
  66. package/esm/internal/translations/ko-KR.localization-bundle.js +6 -0
  67. package/esm/internal/translations/nl-NL.localization-bundle.d.ts +6 -0
  68. package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
  69. package/esm/internal/translations/nl-NL.localization-bundle.js +6 -0
  70. package/esm/internal/translations/pl-PL.localization-bundle.d.ts +6 -0
  71. package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
  72. package/esm/internal/translations/pl-PL.localization-bundle.js +6 -0
  73. package/esm/internal/translations/pt-BR.localization-bundle.d.ts +6 -0
  74. package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
  75. package/esm/internal/translations/pt-BR.localization-bundle.js +6 -0
  76. package/esm/internal/translations/pt-PT.localization-bundle.d.ts +6 -0
  77. package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
  78. package/esm/internal/translations/pt-PT.localization-bundle.js +6 -0
  79. package/esm/internal/translations/ru-RU.localization-bundle.d.ts +6 -0
  80. package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
  81. package/esm/internal/translations/ru-RU.localization-bundle.js +6 -0
  82. package/esm/internal/translations/sl-SI.localization-bundle.d.ts +6 -0
  83. package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
  84. package/esm/internal/translations/sl-SI.localization-bundle.js +6 -0
  85. package/esm/internal/translations/th-TH.localization-bundle.d.ts +6 -0
  86. package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
  87. package/esm/internal/translations/th-TH.localization-bundle.js +6 -0
  88. package/esm/internal/translations/tr-TR.localization-bundle.d.ts +6 -0
  89. package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
  90. package/esm/internal/translations/tr-TR.localization-bundle.js +6 -0
  91. package/esm/internal/translations/uk-UA.localization-bundle.d.ts +6 -0
  92. package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
  93. package/esm/internal/translations/uk-UA.localization-bundle.js +6 -0
  94. package/esm/internal/translations/vi-VN.localization-bundle.d.ts +6 -0
  95. package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
  96. package/esm/internal/translations/vi-VN.localization-bundle.js +6 -0
  97. package/esm/internal/translations/zh-HK.localization-bundle.d.ts +6 -0
  98. package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
  99. package/esm/internal/translations/zh-HK.localization-bundle.js +6 -0
  100. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +6 -0
  101. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
  102. package/esm/internal/translations/zh-Hans.localization-bundle.js +6 -0
  103. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +6 -0
  104. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
  105. package/esm/internal/translations/zh-Hant.localization-bundle.js +6 -0
  106. package/esm/internal/utils/colors.d.ts +3 -1
  107. package/esm/internal/utils/colors.d.ts.map +1 -1
  108. package/esm/internal/utils/colors.js +68 -32
  109. package/esm/locales.d.ts +36 -0
  110. package/esm/locales.d.ts.map +1 -1
  111. package/esm/locales.js +12 -0
  112. package/package.json +21 -21
  113. package/styles/internal/css/config_panel.css +82 -0
  114. package/styles/internal/css/config_panel.css.map +1 -1
  115. 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
@@ -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;
@@ -1,7 +1,9 @@
1
1
  import { type ISettings } from "@gooddata/sdk-model";
2
+ export declare const ENABLE_LINE_CHART_STYLING = "enableLineChartStyling";
2
3
  export declare const ENABLE_GEO_CHARTS_VIEWPORT_CONFIG = "enableGeoChartsViewportConfig";
3
4
  export declare const ENABLE_GEO_BASEMAP_CONFIG = "enableGeoBasemapConfig";
4
5
  export declare const ENABLE_GEO_PUSHPIN_ICON = "enableGeoPushpinIcon";
6
+ export declare function isLineChartStylingEnabled(featureFlags?: ISettings): boolean;
5
7
  export declare function isGeoChartsViewportConfigEnabled(featureFlags?: ISettings): boolean;
6
8
  export declare function isGeoBasemapConfigEnabled(featureFlags?: ISettings): boolean;
7
9
  export declare function isGeoPushpinIconEnabled(featureFlags?: ISettings): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"featureFlags.d.ts","sourceRoot":"","sources":["../../../src/internal/constants/featureFlags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,iCAAiC,kCAAkC,CAAC;AACjF,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D,wBAAgB,gCAAgC,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAGlF;AAED,wBAAgB,yBAAyB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAG3E;AAED,wBAAgB,uBAAuB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAGzE"}
1
+ {"version":3,"file":"featureFlags.d.ts","sourceRoot":"","sources":["../../../src/internal/constants/featureFlags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,iCAAiC,kCAAkC,CAAC;AACjF,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D,wBAAgB,yBAAyB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAG3E;AAED,wBAAgB,gCAAgC,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAGlF;AAED,wBAAgB,yBAAyB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAG3E;AAED,wBAAgB,uBAAuB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAGzE"}
@@ -1,7 +1,12 @@
1
1
  // (C) 2026 GoodData Corporation
2
+ export const ENABLE_LINE_CHART_STYLING = "enableLineChartStyling";
2
3
  export const ENABLE_GEO_CHARTS_VIEWPORT_CONFIG = "enableGeoChartsViewportConfig";
3
4
  export const ENABLE_GEO_BASEMAP_CONFIG = "enableGeoBasemapConfig";
4
5
  export const ENABLE_GEO_PUSHPIN_ICON = "enableGeoPushpinIcon";
6
+ export function isLineChartStylingEnabled(featureFlags) {
7
+ const value = featureFlags?.[ENABLE_LINE_CHART_STYLING];
8
+ return value === true;
9
+ }
5
10
  export function isGeoChartsViewportConfigEnabled(featureFlags) {
6
11
  const value = featureFlags?.[ENABLE_GEO_CHARTS_VIEWPORT_CONFIG];
7
12
  return value === true;
@@ -1 +1 @@
1
- {"version":3,"file":"supportedProperties.d.ts","sourceRoot":"","sources":["../../../src/internal/constants/supportedProperties.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAuEpF,eAAO,MAAM,4BAA4B,UAA8C,CAAC;AAIxF,eAAO,MAAM,+BAA+B,UAM3C,CAAC;AAEF,eAAO,MAAM,+BAA+B,UAO3C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;CAe7C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;CA8B3C,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAa5C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;CAuB1C,CAAC;AAEF,eAAO,MAAM,gCAAgC;;CAqC5C,CAAC;AAEF,eAAO,MAAM,iCAAiC,UAyB7C,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAkC5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAoBtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAczC,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAe5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAcxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAwBxC,CAAC;AAEF,eAAO,MAAM,iCAAiC,UA4B7C,CAAC;AAEF,eAAO,MAAM,+BAA+B,UAwB3C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,UAGhD,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAiBxC,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAW5C,CAAC;AAEF,eAAO,MAAM,qCAAqC,UAgBjD,CAAC;AAEF,eAAO,MAAM,iCAAiC,UAY7C,CAAC;AAWF,eAAO,MAAM,oCAAoC,UAQhD,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAW9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAMzC,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,yBAIjD,CAAC;AAEF,eAAO,MAAM,6CAA6C,EAAE,yBAS3D,CAAC"}
1
+ {"version":3,"file":"supportedProperties.d.ts","sourceRoot":"","sources":["../../../src/internal/constants/supportedProperties.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAuEpF,eAAO,MAAM,4BAA4B,UAA8C,CAAC;AAIxF,eAAO,MAAM,+BAA+B,UAM3C,CAAC;AAEF,eAAO,MAAM,+BAA+B,UAO3C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;CAe7C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;CAiC3C,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAa5C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;CAuB1C,CAAC;AAEF,eAAO,MAAM,gCAAgC;;CAqC5C,CAAC;AAEF,eAAO,MAAM,iCAAiC,UAyB7C,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAkC5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAoBtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAczC,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAe5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAcxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAwBxC,CAAC;AAEF,eAAO,MAAM,iCAAiC,UA4B7C,CAAC;AAEF,eAAO,MAAM,+BAA+B,UAwB3C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,UAGhD,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAiBxC,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAW5C,CAAC;AAEF,eAAO,MAAM,qCAAqC,UAgBjD,CAAC;AAEF,eAAO,MAAM,iCAAiC,UAY7C,CAAC;AAWF,eAAO,MAAM,oCAAoC,UAQhD,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAW9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAMzC,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,yBAIjD,CAAC;AAEF,eAAO,MAAM,6CAA6C,EAAE,yBAS3D,CAAC"}
@@ -100,6 +100,7 @@ export const LINE_CHART_SUPPORTED_PROPERTIES = {
100
100
  "distinctPointShapes",
101
101
  "thresholdMeasures",
102
102
  "thresholdExcludedMeasures",
103
+ "lineStyleMapping",
103
104
  ],
104
105
  [AXIS.SECONDARY]: [
105
106
  ...BASE_PROPERTIES,
@@ -112,6 +113,7 @@ export const LINE_CHART_SUPPORTED_PROPERTIES = {
112
113
  "distinctPointShapes",
113
114
  "thresholdMeasures",
114
115
  "thresholdExcludedMeasures",
116
+ "lineStyleMapping",
115
117
  ],
116
118
  [AXIS.DUAL]: [
117
119
  ...BASE_CHART_SUPPORTED_PROPERTIES,
@@ -121,6 +123,7 @@ export const LINE_CHART_SUPPORTED_PROPERTIES = {
121
123
  "distinctPointShapes",
122
124
  "thresholdMeasures",
123
125
  "thresholdExcludedMeasures",
126
+ "lineStyleMapping",
124
127
  ],
125
128
  };
126
129
  export const RADAR_CHART_SUPPORTED_PROPERTIES = [
@@ -1,9 +1,12 @@
1
1
  import { type IColor, type IColorPaletteItem, type IRgbColorValue } from "@gooddata/sdk-model";
2
2
  import { type IColorAssignment, type IMappingHeader } from "@gooddata/sdk-ui";
3
+ import { type LineStyle } from "@gooddata/sdk-ui-charts";
3
4
  export interface IColoredItem {
4
5
  colorItem: IColor;
5
6
  color: IRgbColorValue;
6
7
  mappingHeader?: IMappingHeader;
8
+ lineStyle?: LineStyle;
9
+ lineWidth?: 1 | 2 | 3 | 4;
7
10
  }
8
11
  export interface IColorConfiguration {
9
12
  colorAssignments: IColorAssignment[];
@@ -1 +1 @@
1
- {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../src/internal/interfaces/Colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACrC"}
1
+ {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../src/internal/interfaces/Colors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACrC"}
@@ -1 +1,2 @@
1
+ // (C) 2019-2026 GoodData Corporation
1
2
  export {};
@@ -16,6 +16,12 @@ export declare const de_DE: {
16
16
  "dashboard.bucket.secondary_measures_subtitle.headline": string;
17
17
  "dashboard.bucket.measures_title.scatter": string;
18
18
  "dashboard.bucket.secondary_measures_title.scatter": string;
19
+ "dashboard.bucket.measures_title.mekko": string;
20
+ "dashboard.bucket.secondary_measures_title.mekko": string;
21
+ "dashboard.bucket.measures_subtitle.mekko": string;
22
+ "dashboard.bucket.secondary_measures_subtitle.mekko": string;
23
+ "dashboard.bucket.view_title.mekko": string;
24
+ "dashboard.bucket.stack_title.mekko": string;
19
25
  "dashboard.bucket.measures_subtitle.scatter": string;
20
26
  "dashboard.bucket.secondary_measures_subtitle.scatter": string;
21
27
  "dashboard.bucket.attribute_title.scatter": string;
@@ -1 +1 @@
1
- {"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/de-DE.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8oBjB,CAAC"}
1
+ {"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/de-DE.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAopBjB,CAAC"}
@@ -18,6 +18,12 @@ export const de_DE = {
18
18
  "dashboard.bucket.secondary_measures_subtitle.headline": "sekundär",
19
19
  "dashboard.bucket.measures_title.scatter": "Metrik",
20
20
  "dashboard.bucket.secondary_measures_title.scatter": "Metrik",
21
+ "dashboard.bucket.measures_title.mekko": "Metrik",
22
+ "dashboard.bucket.secondary_measures_title.mekko": "Metrik",
23
+ "dashboard.bucket.measures_subtitle.mekko": "Breite",
24
+ "dashboard.bucket.secondary_measures_subtitle.mekko": "Höhe",
25
+ "dashboard.bucket.view_title.mekko": "Anzeigen nach",
26
+ "dashboard.bucket.stack_title.mekko": "Stapeln nach",
21
27
  "dashboard.bucket.measures_subtitle.scatter": "X-Achse",
22
28
  "dashboard.bucket.secondary_measures_subtitle.scatter": "Y-Achse",
23
29
  "dashboard.bucket.attribute_title.scatter": "Anzeigen nach",
@@ -16,6 +16,12 @@ export declare const en_AU: {
16
16
  "dashboard.bucket.secondary_measures_subtitle.headline": string;
17
17
  "dashboard.bucket.measures_title.scatter": string;
18
18
  "dashboard.bucket.secondary_measures_title.scatter": string;
19
+ "dashboard.bucket.measures_title.mekko": string;
20
+ "dashboard.bucket.secondary_measures_title.mekko": string;
21
+ "dashboard.bucket.measures_subtitle.mekko": string;
22
+ "dashboard.bucket.secondary_measures_subtitle.mekko": string;
23
+ "dashboard.bucket.view_title.mekko": string;
24
+ "dashboard.bucket.stack_title.mekko": string;
19
25
  "dashboard.bucket.measures_subtitle.scatter": string;
20
26
  "dashboard.bucket.secondary_measures_subtitle.scatter": string;
21
27
  "dashboard.bucket.attribute_title.scatter": string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-AU.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/en-AU.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8oBjB,CAAC"}
1
+ {"version":3,"file":"en-AU.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/en-AU.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAopBjB,CAAC"}
@@ -18,6 +18,12 @@ export const en_AU = {
18
18
  "dashboard.bucket.secondary_measures_subtitle.headline": "secondary",
19
19
  "dashboard.bucket.measures_title.scatter": "Metric",
20
20
  "dashboard.bucket.secondary_measures_title.scatter": "Metric",
21
+ "dashboard.bucket.measures_title.mekko": "Metric",
22
+ "dashboard.bucket.secondary_measures_title.mekko": "Metric",
23
+ "dashboard.bucket.measures_subtitle.mekko": "Width",
24
+ "dashboard.bucket.secondary_measures_subtitle.mekko": "Height",
25
+ "dashboard.bucket.view_title.mekko": "View by",
26
+ "dashboard.bucket.stack_title.mekko": "Stack by",
21
27
  "dashboard.bucket.measures_subtitle.scatter": "X-axis",
22
28
  "dashboard.bucket.secondary_measures_subtitle.scatter": "Y-axis",
23
29
  "dashboard.bucket.attribute_title.scatter": "View by",