@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.
- package/NOTICE +5 -5
- package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts +2 -1
- package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/ColorsSection.js +37 -17
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts +2 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.js +2 -2
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts +4 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js +5 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts +16 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.js +22 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts +21 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js +64 -0
- package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts +1 -0
- package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts.map +1 -1
- package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.js +10 -0
- package/esm/internal/constants/featureFlags.d.ts +2 -0
- package/esm/internal/constants/featureFlags.d.ts.map +1 -1
- package/esm/internal/constants/featureFlags.js +5 -0
- package/esm/internal/constants/supportedProperties.d.ts.map +1 -1
- package/esm/internal/constants/supportedProperties.js +3 -0
- package/esm/internal/interfaces/Colors.d.ts +3 -0
- package/esm/internal/interfaces/Colors.d.ts.map +1 -1
- package/esm/internal/interfaces/Colors.js +1 -0
- package/esm/internal/translations/de-DE.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/de-DE.localization-bundle.js +6 -0
- package/esm/internal/translations/en-AU.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-AU.localization-bundle.js +6 -0
- package/esm/internal/translations/en-GB.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-GB.localization-bundle.js +6 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts +48 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-US.localization-bundle.js +48 -0
- package/esm/internal/translations/es-419.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/es-419.localization-bundle.js +6 -0
- package/esm/internal/translations/es-ES.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/es-ES.localization-bundle.js +6 -0
- package/esm/internal/translations/fi-FI.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fi-FI.localization-bundle.js +6 -0
- package/esm/internal/translations/fr-CA.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fr-CA.localization-bundle.js +6 -0
- package/esm/internal/translations/fr-FR.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fr-FR.localization-bundle.js +6 -0
- package/esm/internal/translations/id-ID.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/id-ID.localization-bundle.js +6 -0
- package/esm/internal/translations/it-IT.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/it-IT.localization-bundle.js +6 -0
- package/esm/internal/translations/ja-JP.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ja-JP.localization-bundle.js +6 -0
- package/esm/internal/translations/ko-KR.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ko-KR.localization-bundle.js +6 -0
- package/esm/internal/translations/nl-NL.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/nl-NL.localization-bundle.js +6 -0
- package/esm/internal/translations/pl-PL.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pl-PL.localization-bundle.js +6 -0
- package/esm/internal/translations/pt-BR.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pt-BR.localization-bundle.js +6 -0
- package/esm/internal/translations/pt-PT.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pt-PT.localization-bundle.js +6 -0
- package/esm/internal/translations/ru-RU.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ru-RU.localization-bundle.js +6 -0
- package/esm/internal/translations/sl-SI.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/sl-SI.localization-bundle.js +6 -0
- package/esm/internal/translations/th-TH.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/th-TH.localization-bundle.js +6 -0
- package/esm/internal/translations/tr-TR.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/tr-TR.localization-bundle.js +6 -0
- package/esm/internal/translations/uk-UA.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/uk-UA.localization-bundle.js +6 -0
- package/esm/internal/translations/vi-VN.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/vi-VN.localization-bundle.js +6 -0
- package/esm/internal/translations/zh-HK.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-HK.localization-bundle.js +6 -0
- package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-Hans.localization-bundle.js +6 -0
- package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +6 -0
- package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-Hant.localization-bundle.js +6 -0
- package/esm/internal/utils/colors.d.ts +3 -1
- package/esm/internal/utils/colors.d.ts.map +1 -1
- package/esm/internal/utils/colors.js +68 -32
- package/esm/locales.d.ts +36 -0
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +12 -0
- package/package.json +21 -21
- package/styles/internal/css/config_panel.css +82 -0
- package/styles/internal/css/config_panel.css.map +1 -1
- package/styles/internal/scss/config_panel.scss +94 -0
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-7-
|
|
10
|
+
Date generated: 2026-7-10
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 49e9a8adde3ee1f908b34090cae5065e788ef0dd
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -8770,7 +8770,7 @@ Package Title: json5 (2.2.3)
|
|
|
8770
8770
|
|
|
8771
8771
|
Package Locator: npm+json5$2.2.3
|
|
8772
8772
|
|
|
8773
|
-
Package Depth:
|
|
8773
|
+
Package Depth: Transitive
|
|
8774
8774
|
--------------------------------------------------------------------------------
|
|
8775
8775
|
|
|
8776
8776
|
* Declared Licenses *
|
|
@@ -13284,7 +13284,7 @@ Package Title: watchpack (2.5.2)
|
|
|
13284
13284
|
|
|
13285
13285
|
Package Locator: npm+watchpack$2.5.2
|
|
13286
13286
|
|
|
13287
|
-
Package Depth:
|
|
13287
|
+
Package Depth: Transitive
|
|
13288
13288
|
--------------------------------------------------------------------------------
|
|
13289
13289
|
|
|
13290
13290
|
* Declared Licenses *
|
|
@@ -29272,4 +29272,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
29272
29272
|
--------------------------------------------------------------------------------
|
|
29273
29273
|
--------------------------------------------------------------------------------
|
|
29274
29274
|
|
|
29275
|
-
Report Generated by FOSSA on 2026-7-
|
|
29275
|
+
Report Generated by FOSSA on 2026-7-10
|
|
@@ -15,7 +15,8 @@ export interface IColorsSectionProps {
|
|
|
15
15
|
isChartFillDisabled?: boolean;
|
|
16
16
|
/** Optional controls rendered above the fill dropdown, inside the section. */
|
|
17
17
|
additionalControls?: ReactNode;
|
|
18
|
+
supportsLineStyles?: boolean;
|
|
18
19
|
}
|
|
19
20
|
export declare const COLOR_MAPPING_CHANGED = "COLOR_MAPPING_CHANGED";
|
|
20
|
-
export declare function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures, isChartFillDisabled, additionalControls }: IColorsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures, isChartFillDisabled, additionalControls, supportsLineStyles }: IColorsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
//# sourceMappingURL=ColorsSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorsSection.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/configurationControls/colors/ColorsSection.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAQvG,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ColorsSection.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/configurationControls/colors/ColorsSection.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAQvG,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,wBAAgB,aAAa,CAAC,EAC1B,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,wBAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACrB,EAAE,mBAAmB,2CAyKrB"}
|
|
@@ -2,16 +2,17 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import cx from "classnames";
|
|
3
3
|
import { cloneDeep, set } from "lodash-es";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
|
+
import { isMeasureDescriptor } from "@gooddata/sdk-model";
|
|
5
6
|
import { Button } from "@gooddata/sdk-ui-kit";
|
|
6
7
|
import { messages } from "../../../../locales.js";
|
|
7
8
|
import { fillDropdownItems } from "../../../constants/dropdowns.js";
|
|
8
|
-
import { getColoredInputItems, getProperties } from "../../../utils/colors.js";
|
|
9
|
+
import { getColoredInputItems, getLineStyleProperties, getProperties } from "../../../utils/colors.js";
|
|
9
10
|
import { getTranslatedDropdownItems, getTranslation } from "../../../utils/translations.js";
|
|
10
11
|
import { ConfigSection } from "../../configurationControls/ConfigSection.js";
|
|
11
12
|
import { DropdownControl } from "../DropdownControl.js";
|
|
12
13
|
import { ColoredItemsList } from "./coloredItemsList/ColoredItemsList.js";
|
|
13
14
|
export const COLOR_MAPPING_CHANGED = "COLOR_MAPPING_CHANGED";
|
|
14
|
-
export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures = [], isChartFillDisabled, additionalControls, }) {
|
|
15
|
+
export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pushData, hasMeasures, colors, isLoading, supportsChartFill, chartFillIgnoredMeasures = [], isChartFillDisabled, additionalControls, supportsLineStyles, }) {
|
|
15
16
|
const intl = useIntl();
|
|
16
17
|
const onSelect = (selectedColorItem, color) => {
|
|
17
18
|
const { mappingHeader } = selectedColorItem;
|
|
@@ -22,39 +23,53 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
22
23
|
};
|
|
23
24
|
pushData?.(message);
|
|
24
25
|
};
|
|
26
|
+
const onLineStyleOrWidthChange = (item, lineStyle, lineWidth) => {
|
|
27
|
+
const { mappingHeader } = item;
|
|
28
|
+
if (!mappingHeader || !properties || !isMeasureDescriptor(mappingHeader)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const localId = mappingHeader.measureHeaderItem.localIdentifier;
|
|
32
|
+
if (!localId) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const newProperties = getLineStyleProperties(properties, localId, lineStyle, lineWidth);
|
|
36
|
+
pushData?.({ messageId: COLOR_MAPPING_CHANGED, properties: newProperties });
|
|
37
|
+
};
|
|
38
|
+
const onLineStyleChange = (item, lineStyle) => onLineStyleOrWidthChange(item, lineStyle, item.lineWidth);
|
|
39
|
+
const onLineWidthChange = (item, lineWidth) => onLineStyleOrWidthChange(item, item.lineStyle, lineWidth);
|
|
25
40
|
const isColoredListVisible = () => {
|
|
26
41
|
return isLoading || (!controlsDisabled && colors?.colorPalette && hasMeasures);
|
|
27
42
|
};
|
|
28
43
|
const isDefaultColorMapping = () => {
|
|
29
44
|
const colorMapping = properties?.controls?.["colorMapping"] ?? [];
|
|
30
|
-
|
|
45
|
+
const lineStyleMapping = supportsLineStyles ? (properties?.controls?.["lineStyleMapping"] ?? []) : [];
|
|
46
|
+
return ((!colorMapping || colorMapping.length === 0) &&
|
|
47
|
+
(!lineStyleMapping || lineStyleMapping.length === 0));
|
|
31
48
|
};
|
|
32
49
|
const onResetColors = () => {
|
|
33
50
|
if (isDefaultColorMapping()) {
|
|
34
51
|
return;
|
|
35
52
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
42
|
-
pushData?.(message);
|
|
53
|
+
let updatedProperties = set(cloneDeep(properties), "controls.colorMapping", undefined);
|
|
54
|
+
if (supportsLineStyles) {
|
|
55
|
+
updatedProperties = set(updatedProperties, "controls.lineStyleMapping", undefined);
|
|
56
|
+
}
|
|
57
|
+
pushData?.({ messageId: COLOR_MAPPING_CHANGED, properties: updatedProperties, references: {} });
|
|
43
58
|
};
|
|
44
59
|
const renderResetButton = () => {
|
|
45
60
|
const isDisabled = controlsDisabled || isDefaultColorMapping();
|
|
46
61
|
const classes = cx("gd-color-reset-colors-section", {
|
|
47
62
|
disabled: isDisabled,
|
|
48
63
|
});
|
|
49
|
-
return (_jsx("div", { className: classes, children: _jsx(Button, { value: getTranslation(messages["resetColors"].id, intl), className: "gd-button-link s-reset-colors-button", onClick: onResetColors, disabled: isDisabled }) }));
|
|
64
|
+
return (_jsx("div", { className: classes, children: _jsx(Button, { value: getTranslation(supportsLineStyles ? messages["resetColorsAndStyles"].id : messages["resetColors"].id, intl), className: "gd-button-link s-reset-colors-button", onClick: onResetColors, disabled: isDisabled }) }));
|
|
50
65
|
};
|
|
51
66
|
const renderFillDropdown = () => {
|
|
52
67
|
if (!supportsChartFill) {
|
|
53
68
|
return null;
|
|
54
69
|
}
|
|
70
|
+
// when all colors are used for disabled measures, chart fill is not available
|
|
55
71
|
const isDisabled = controlsDisabled ||
|
|
56
72
|
isChartFillDisabled ||
|
|
57
|
-
// when all colors are used for disabled measures, chart fill is not available
|
|
58
73
|
chartFillIgnoredMeasures.length === colors?.colorAssignments.length;
|
|
59
74
|
const currentChartFillValue = isChartFillDisabled
|
|
60
75
|
? "solid"
|
|
@@ -62,11 +77,14 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
62
77
|
return (_jsx("div", { className: "gd-chart-fill-section", children: _jsx(DropdownControl, { value: currentChartFillValue, valuePath: "chartFill.type", labelText: messages["fill"].id, disabled: isDisabled, properties: properties, pushData: pushData, items: getTranslatedDropdownItems(fillDropdownItems, intl), showDisabledMessage: isDisabled }) }));
|
|
63
78
|
};
|
|
64
79
|
const renderColoredList = () => {
|
|
65
|
-
const
|
|
80
|
+
const lineStyleMapping = supportsLineStyles
|
|
81
|
+
? (properties?.controls?.["lineStyleMapping"] ?? [])
|
|
82
|
+
: undefined;
|
|
83
|
+
const inputItems = getColoredInputItems(colors, lineStyleMapping);
|
|
66
84
|
const colorPalette = colors?.colorPalette ? colors.colorPalette : [];
|
|
67
85
|
const chartFill = isChartFillDisabled ? undefined : properties?.controls?.["chartFill"];
|
|
68
86
|
return (_jsxs(_Fragment, { children: [
|
|
69
|
-
_jsx(ColoredItemsList, { colorPalette: colorPalette, inputItems: inputItems, onSelect: onSelect, disabled: controlsDisabled, isLoading: isLoading, chartFill: chartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures }), renderResetButton(), additionalControls, renderFillDropdown()] }));
|
|
87
|
+
_jsx(ColoredItemsList, { colorPalette: colorPalette, inputItems: inputItems, onSelect: onSelect, disabled: controlsDisabled, isLoading: isLoading, chartFill: chartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures, supportsLineStyles: supportsLineStyles, onLineStyleChange: supportsLineStyles ? onLineStyleChange : undefined, onLineWidthChange: supportsLineStyles ? onLineWidthChange : undefined }), renderResetButton(), additionalControls, renderFillDropdown()] }));
|
|
70
88
|
};
|
|
71
89
|
const renderUnsupportedColoredList = () => {
|
|
72
90
|
return (_jsx("div", { className: "gd-color-unsupported", children: getTranslation(messages["unsupportedColors"].id, intl) }));
|
|
@@ -74,8 +92,10 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
74
92
|
const renderSectionContents = () => {
|
|
75
93
|
return isColoredListVisible() ? renderColoredList() : renderUnsupportedColoredList();
|
|
76
94
|
};
|
|
77
|
-
const sectionTitleTranslationId =
|
|
78
|
-
? messages["
|
|
79
|
-
:
|
|
95
|
+
const sectionTitleTranslationId = supportsLineStyles
|
|
96
|
+
? messages["colorsAndStyles"].id
|
|
97
|
+
: supportsChartFill
|
|
98
|
+
? messages["colorsAndFills"].id
|
|
99
|
+
: messages["colors"].id;
|
|
80
100
|
return (_jsx(ConfigSection, { title: sectionTitleTranslationId, pushData: pushData, propertiesMeta: propertiesMeta, id: "colors_section", className: "adi-color-configuration", children: renderSectionContents() }));
|
|
81
101
|
}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
|
|
2
|
-
import { type IChartFillConfig
|
|
2
|
+
import { type IChartFillConfig } from "@gooddata/sdk-ui-charts";
|
|
3
|
+
import { type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
|
|
3
4
|
import { type IColoredItem } from "../../../../interfaces/Colors.js";
|
|
4
5
|
export interface IColoredItemProps {
|
|
5
6
|
colorPalette: IColorPalette;
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColoredItem.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ColoredItem.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAOrE,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;CAC/C;AAED,eAAO,MAAM,WAAW,yDAiDtB,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.js
CHANGED
|
@@ -9,7 +9,7 @@ import { ColorDropdown } from "../colorDropdown/ColorDropdown.js";
|
|
|
9
9
|
import { ColoredItemContent } from "./ColoredItemContent.js";
|
|
10
10
|
export const ColoredItem = memo(function ColoredItem(props) {
|
|
11
11
|
const intl = useIntl();
|
|
12
|
-
const { item, colorPalette, onSelect, chartFill, patternFillIndex } = props;
|
|
12
|
+
const { item, colorPalette, onSelect, chartFill, patternFillIndex, disabled } = props;
|
|
13
13
|
const renderLoadingItem = () => {
|
|
14
14
|
return _jsx("div", { className: "gd-list-item gd-list-item-not-loaded" });
|
|
15
15
|
};
|
|
@@ -31,5 +31,5 @@ export const ColoredItem = memo(function ColoredItem(props) {
|
|
|
31
31
|
}
|
|
32
32
|
const headerItem = coloredItem.mappingHeader;
|
|
33
33
|
const headerText = getText(headerItem);
|
|
34
|
-
return (_jsx(ColorDropdown, { selectedColorItem: coloredItem.colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, chartFill: chartFill, patternFillIndex: patternFillIndex, children: _jsx(ColoredItemContent, { text: headerText, color: coloredItem.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex }) }));
|
|
34
|
+
return (_jsx(ColorDropdown, { selectedColorItem: coloredItem.colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, chartFill: chartFill, patternFillIndex: patternFillIndex, disabled: disabled, children: _jsx(ColoredItemContent, { text: headerText, color: coloredItem.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex }) }));
|
|
35
35
|
});
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
|
|
2
|
-
import { type IChartFillConfig } from "@gooddata/sdk-ui-charts";
|
|
2
|
+
import { type IChartFillConfig, type LineStyle } from "@gooddata/sdk-ui-charts";
|
|
3
3
|
import { type IColoredItem } from "../../../../interfaces/Colors.js";
|
|
4
4
|
export interface IColoredItemsListProps {
|
|
5
5
|
colorPalette: IColorPalette;
|
|
@@ -9,6 +9,9 @@ export interface IColoredItemsListProps {
|
|
|
9
9
|
isLoading?: boolean;
|
|
10
10
|
chartFill?: IChartFillConfig;
|
|
11
11
|
chartFillIgnoredMeasures: string[];
|
|
12
|
+
supportsLineStyles?: boolean;
|
|
13
|
+
onLineStyleChange?: (item: IColoredItem, lineStyle: LineStyle) => void;
|
|
14
|
+
onLineWidthChange?: (item: IColoredItem, lineWidth: 1 | 2 | 3 | 4) => void;
|
|
12
15
|
}
|
|
13
16
|
export declare const ColoredItemsList: import("react").NamedExoticComponent<IColoredItemsListProps>;
|
|
14
17
|
//# sourceMappingURL=ColoredItemsList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColoredItemsList.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ColoredItemsList.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGhF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUrE,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC9E;AASD,eAAO,MAAM,gBAAgB,8DAqG3B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js
CHANGED
|
@@ -5,6 +5,7 @@ import { isMeasureDescriptor } from "@gooddata/sdk-model";
|
|
|
5
5
|
import { DropdownList, GOODSTRAP_SCROLLED_EVENT } from "@gooddata/sdk-ui-kit";
|
|
6
6
|
import { getSearchedItems } from "../../../../utils/colors.js";
|
|
7
7
|
import { ColoredItem } from "./ColoredItem.js";
|
|
8
|
+
import { LineStyleColoredItem } from "./LineStyleColoredItem.js";
|
|
8
9
|
const DROPDOWN_MAX_HEIGHT = 150;
|
|
9
10
|
const SEARCH_FIELD_VISIBILITY_THRESHOLD = 7;
|
|
10
11
|
const DROPDOWN_BODY_WIDTH = 218;
|
|
@@ -13,7 +14,7 @@ function isChartFillIgnoredMeasure(item, chartFillIgnoredMeasures) {
|
|
|
13
14
|
chartFillIgnoredMeasures.includes(item.mappingHeader.measureHeaderItem.localIdentifier));
|
|
14
15
|
}
|
|
15
16
|
export const ColoredItemsList = memo(function ColoredItemsList(props) {
|
|
16
|
-
const { colorPalette, inputItems, onSelect: onSelectProp, disabled = false, isLoading = false, chartFill, chartFillIgnoredMeasures, } = props;
|
|
17
|
+
const { colorPalette, inputItems, onSelect: onSelectProp, disabled = false, isLoading = false, chartFill, chartFillIgnoredMeasures, supportsLineStyles, onLineStyleChange, onLineWidthChange, } = props;
|
|
17
18
|
const [searchString, setSearchString] = useState("");
|
|
18
19
|
const listRef = useRef(null);
|
|
19
20
|
const onScroll = () => {
|
|
@@ -53,6 +54,9 @@ export const ColoredItemsList = memo(function ColoredItemsList(props) {
|
|
|
53
54
|
const appliedChartFill = isChartFillIgnoredMeasure(item, chartFillIgnoredMeasures)
|
|
54
55
|
? undefined
|
|
55
56
|
: chartFill;
|
|
57
|
+
if (supportsLineStyles && isMeasureDescriptor(item.mappingHeader)) {
|
|
58
|
+
return (_jsx(LineStyleColoredItem, { colorPalette: colorPalette, onSelect: onSelect, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex], onLineStyleChange: onLineStyleChange, onLineWidthChange: onLineWidthChange }));
|
|
59
|
+
}
|
|
56
60
|
return (_jsx(ColoredItem, { colorPalette: colorPalette, onSelect: onSelect, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex] }));
|
|
57
61
|
} }) }));
|
|
58
62
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IColor, type IColorPalette } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IChartFillConfig, type LineStyle } from "@gooddata/sdk-ui-charts";
|
|
3
|
+
import { type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
import { type IColoredItem } from "../../../../interfaces/Colors.js";
|
|
5
|
+
export interface ILineStyleColoredItemProps {
|
|
6
|
+
colorPalette: IColorPalette;
|
|
7
|
+
item: IColoredItem;
|
|
8
|
+
onSelect?: (source: IColoredItem, color: IColor) => void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
chartFill?: IChartFillConfig;
|
|
11
|
+
patternFillIndex?: number | PatternFillName;
|
|
12
|
+
onLineStyleChange?: (item: IColoredItem, lineStyle: LineStyle) => void;
|
|
13
|
+
onLineWidthChange?: (item: IColoredItem, lineWidth: 1 | 2 | 3 | 4) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const LineStyleColoredItem: import("react").NamedExoticComponent<ILineStyleColoredItemProps>;
|
|
16
|
+
//# sourceMappingURL=LineStyleColoredItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineStyleColoredItem.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAOrE,MAAM,WAAW,0BAA0B;IACvC,YAAY,EAAE,aAAa,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,eAAO,MAAM,oBAAoB,kEAgE/B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { memo, useRef, useState } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
5
|
+
import { getMappingHeaderFormattedName } from "@gooddata/sdk-ui";
|
|
6
|
+
import { messages } from "../../../../../locales.js";
|
|
7
|
+
import { getTranslation } from "../../../../utils/translations.js";
|
|
8
|
+
import { IconPosition } from "../colorDropdown/ColorDropdown.js";
|
|
9
|
+
import { ColoredItemContent } from "./ColoredItemContent.js";
|
|
10
|
+
import { LineStyleDialog } from "./LineStyleDialog.js";
|
|
11
|
+
export const LineStyleColoredItem = memo(function LineStyleColoredItem(props) {
|
|
12
|
+
const intl = useIntl();
|
|
13
|
+
const { item, colorPalette, onSelect, chartFill, patternFillIndex, disabled, onLineStyleChange, onLineWidthChange, } = props;
|
|
14
|
+
const anchorRef = useRef(null);
|
|
15
|
+
const [dialogOpen, setDialogOpen] = useState(false);
|
|
16
|
+
const headerText = getMappingHeaderFormattedName(item.mappingHeader) || `(${getTranslation("empty_value", intl)})`;
|
|
17
|
+
const onColorSelected = (color) => onSelect?.(item, color);
|
|
18
|
+
return (_jsxs(_Fragment, { children: [
|
|
19
|
+
_jsx("button", { ref: anchorRef, type: "button", className: "gd-line-style-item-trigger", "aria-haspopup": "dialog", "aria-expanded": dialogOpen, "aria-label": getTranslation(messages.lineStyleTriggerAriaLabel.id, intl, {
|
|
20
|
+
name: headerText,
|
|
21
|
+
}), onClick: () => setDialogOpen((v) => !v), disabled: disabled, children: _jsx(ColoredItemContent, { text: headerText, color: item.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex, isSelected: dialogOpen, position: IconPosition.Down }) }), dialogOpen ? (_jsx(LineStyleDialog, { alignTo: anchorRef.current, ignoreClicksOn: anchorRef.current ? [anchorRef.current] : undefined, color: item.color, colorItem: item.colorItem, colorPalette: colorPalette, lineStyle: item.lineStyle, lineWidth: item.lineWidth, disabled: disabled, chartFill: chartFill, patternFillIndex: patternFillIndex, onColorSelected: onColorSelected, onLineStyleChange: (lineStyle) => onLineStyleChange?.(item, lineStyle), onLineWidthChange: (lineWidth) => onLineWidthChange?.(item, lineWidth), onClose: () => setDialogOpen(false) })) : null] }));
|
|
22
|
+
});
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type IColor, type IColorPalette, type IRgbColorValue } from "@gooddata/sdk-model";
|
|
2
|
+
import { type LineStyle } from "@gooddata/sdk-ui-charts";
|
|
3
|
+
import { type IChartFillConfig, type PatternFillName } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
export interface ILineStyleDialogProps {
|
|
5
|
+
alignTo: HTMLElement | null;
|
|
6
|
+
ignoreClicksOn?: HTMLElement[];
|
|
7
|
+
color: IRgbColorValue;
|
|
8
|
+
colorItem?: IColor;
|
|
9
|
+
colorPalette: IColorPalette;
|
|
10
|
+
lineStyle?: LineStyle;
|
|
11
|
+
lineWidth?: 1 | 2 | 3 | 4;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
chartFill?: IChartFillConfig;
|
|
14
|
+
patternFillIndex?: number | PatternFillName;
|
|
15
|
+
onColorSelected: (color: IColor) => void;
|
|
16
|
+
onLineStyleChange: (lineStyle: LineStyle) => void;
|
|
17
|
+
onLineWidthChange: (lineWidth: 1 | 2 | 3 | 4) => void;
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const LineStyleDialog: import("react").NamedExoticComponent<ILineStyleDialogProps>;
|
|
21
|
+
//# sourceMappingURL=LineStyleDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineStyleDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAsD3F,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5C,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,6DA8J1B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { memo } from "react";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
6
|
+
import { Dropdown, DropdownList, Overlay, SingleSelectListItem, } from "@gooddata/sdk-ui-kit";
|
|
7
|
+
import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
8
|
+
import { messages } from "../../../../../locales.js";
|
|
9
|
+
import { ColorDropdown } from "../colorDropdown/ColorDropdown.js";
|
|
10
|
+
import { getIconStyle } from "../colorDropdown/ColorPaletteItem.js";
|
|
11
|
+
import { OptionalPatternFill } from "../colorDropdown/OptionalPatternFill.js";
|
|
12
|
+
const TOOLBAR_ALIGN_POINTS = [
|
|
13
|
+
{ align: "bl tl", offset: { x: 0, y: 4 } },
|
|
14
|
+
{ align: "tl bl", offset: { x: 0, y: -4 } },
|
|
15
|
+
];
|
|
16
|
+
const DROPDOWN_ALIGN_POINTS = [
|
|
17
|
+
{ align: "bl tl", offset: { x: 0, y: -2 } },
|
|
18
|
+
{ align: "tl bl", offset: { x: 0, y: 2 } },
|
|
19
|
+
];
|
|
20
|
+
const STYLE_DROPDOWN_WIDTH = 120;
|
|
21
|
+
const WEIGHT_DROPDOWN_WIDTH = 110;
|
|
22
|
+
function StrokeStyleIcon({ style, size = 20 }) {
|
|
23
|
+
const strokeDasharray = style === "dashed" ? "5,2" : style === "dotted" ? "0.5,3" : undefined;
|
|
24
|
+
return (_jsx("svg", { width: size, height: size, viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("line", { x1: "2", y1: "10", x2: "18", y2: "10", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeDasharray: strokeDasharray }) }));
|
|
25
|
+
}
|
|
26
|
+
function StrokeWeightIcon({ weight, size = 14 }) {
|
|
27
|
+
return (_jsx("svg", { width: size, height: size, viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("line", { x1: "1", y1: "7", x2: "13", y2: "7", stroke: "currentColor", strokeWidth: weight, strokeLinecap: "round" }) }));
|
|
28
|
+
}
|
|
29
|
+
export const LineStyleDialog = memo(function LineStyleDialog({ alignTo, ignoreClicksOn, color, colorItem, colorPalette, lineStyle = "solid", lineWidth = 3, disabled, chartFill, patternFillIndex, onColorSelected, onLineStyleChange, onLineWidthChange, onClose, }) {
|
|
30
|
+
const intl = useIntl();
|
|
31
|
+
const theme = useTheme();
|
|
32
|
+
if (!alignTo) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const { r, g, b } = color;
|
|
36
|
+
const colorSwatchStyle = getIconStyle(chartFill?.type ?? "solid", `rgb(${r},${g},${b})`, theme);
|
|
37
|
+
const lineStyleOptions = [
|
|
38
|
+
{ id: "solid", title: intl.formatMessage({ id: messages.lineStyleSolid.id }) },
|
|
39
|
+
{ id: "dashed", title: intl.formatMessage({ id: messages.lineStyleDashed.id }) },
|
|
40
|
+
{ id: "dotted", title: intl.formatMessage({ id: messages.lineStyleDotted.id }) },
|
|
41
|
+
];
|
|
42
|
+
const lineWidthOptions = [
|
|
43
|
+
{ id: 1, title: intl.formatMessage({ id: messages.lineWidth1.id }) },
|
|
44
|
+
{ id: 2, title: intl.formatMessage({ id: messages.lineWidth2.id }) },
|
|
45
|
+
{ id: 3, title: intl.formatMessage({ id: messages.lineWidth3.id }) },
|
|
46
|
+
{ id: 4, title: intl.formatMessage({ id: messages.lineWidth4.id }) },
|
|
47
|
+
];
|
|
48
|
+
return (_jsx(Overlay, { alignTo: alignTo, alignPoints: TOOLBAR_ALIGN_POINTS, closeOnParentScroll: true, closeOnOutsideClick: true, ignoreClicksOn: ignoreClicksOn, onClose: onClose, children: _jsxs("div", { className: cx("gd-line-style-toolbar", { "is-disabled": disabled }), children: [
|
|
49
|
+
_jsx(ColorDropdown, { selectedColorItem: colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, disabled: disabled, chartFill: chartFill, patternFillIndex: patternFillIndex, children: _jsxs("div", { className: cx("gd-line-style-toolbar__btn", `s-color-${r}-${g}-${b}`, {
|
|
50
|
+
"is-disabled": disabled,
|
|
51
|
+
}), "aria-label": intl.formatMessage({ id: messages.colors.id }), children: [
|
|
52
|
+
_jsx("div", { className: "gd-line-style-toolbar__color-swatch", style: colorSwatchStyle, children: _jsx(OptionalPatternFill, { chartFill: chartFill?.type ?? "solid", patternFillIndex: patternFillIndex ?? 0 }) }), _jsx("i", { className: "gd-icon-navigatedown", "aria-hidden": "true" })
|
|
53
|
+
] }) }), _jsx("div", { className: "gd-line-style-toolbar__divider", "aria-hidden": "true" }), _jsx(Dropdown, { alignPoints: DROPDOWN_ALIGN_POINTS, closeOnParentScroll: true, renderButton: ({ isOpen, toggleDropdown }) => (_jsxs("button", { type: "button", className: cx("gd-line-style-toolbar__btn", { "is-open": isOpen }), onClick: toggleDropdown, disabled: disabled, "aria-label": intl.formatMessage({ id: messages.lineStyleLabel.id }), "aria-haspopup": "listbox", "aria-expanded": isOpen, children: [
|
|
54
|
+
_jsx(StrokeStyleIcon, { style: lineStyle }), _jsx("i", { className: "gd-icon-navigatedown", "aria-hidden": "true" })
|
|
55
|
+
] })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { width: STYLE_DROPDOWN_WIDTH, items: lineStyleOptions, renderItem: ({ item }) => (_jsx(SingleSelectListItem, { title: item.title, icon: _jsx(StrokeStyleIcon, { style: item.id, size: 14 }), isSelected: item.id === lineStyle, onClick: () => {
|
|
56
|
+
onLineStyleChange(item.id);
|
|
57
|
+
closeDropdown();
|
|
58
|
+
} })) })) }), _jsx("div", { className: "gd-line-style-toolbar__divider", "aria-hidden": "true" }), _jsx(Dropdown, { alignPoints: DROPDOWN_ALIGN_POINTS, closeOnParentScroll: true, renderButton: ({ isOpen, toggleDropdown }) => (_jsxs("button", { type: "button", className: cx("gd-line-style-toolbar__btn", { "is-open": isOpen }), onClick: toggleDropdown, disabled: disabled, "aria-label": intl.formatMessage({ id: messages.lineWidthLabel.id }), "aria-haspopup": "listbox", "aria-expanded": isOpen, children: [
|
|
59
|
+
_jsxs("span", { className: "gd-line-style-toolbar__weight-text", children: [lineWidth, "px"] }), _jsx("i", { className: "gd-icon-navigatedown", "aria-hidden": "true" })
|
|
60
|
+
] })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { width: WEIGHT_DROPDOWN_WIDTH, items: lineWidthOptions, renderItem: ({ item }) => (_jsx(SingleSelectListItem, { title: item.title, icon: _jsx(StrokeWeightIcon, { weight: item.id }), isSelected: item.id === lineWidth, onClick: () => {
|
|
61
|
+
onLineWidthChange(item.id);
|
|
62
|
+
closeDropdown();
|
|
63
|
+
} })) })) })] }) }));
|
|
64
|
+
});
|
|
@@ -5,6 +5,7 @@ export interface ILineChartBasedConfigurationPanel extends IConfigurationPanelCo
|
|
|
5
5
|
dataLabelDefaultValue?: string | boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare class LineChartBasedConfigurationPanel extends BaseChartConfigurationPanel<ILineChartBasedConfigurationPanel> {
|
|
8
|
+
protected renderColorSection(): ReactNode;
|
|
8
9
|
protected renderConfigurationPanel(): ReactNode;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=LineChartBasedConfigurationPanel.d.ts.map
|
package/esm/internal/components/configurationPanels/LineChartBasedConfigurationPanel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChartBasedConfigurationPanel.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationPanels/LineChartBasedConfigurationPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LineChartBasedConfigurationPanel.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationPanels/LineChartBasedConfigurationPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA0BvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEtF,MAAM,WAAW,iCAAkC,SAAQ,+BAA+B;IACtF,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED,qBAAa,gCAAiC,SAAQ,2BAA2B,CAAC,iCAAiC,CAAC;IAChH,UAAmB,kBAAkB,IAAI,SAAS,CAiCjD;IAED,UAAmB,wBAAwB,IAAI,SAAS,CA0FvD;CACJ"}
|
|
@@ -3,7 +3,10 @@ import { FormattedMessage } from "react-intl";
|
|
|
3
3
|
import { Bubble, BubbleHoverTrigger } from "@gooddata/sdk-ui-kit";
|
|
4
4
|
import { messages } from "../../../locales.js";
|
|
5
5
|
import { BUBBLE_ARROW_OFFSET_X, BUBBLE_ARROW_OFFSET_Y, HIDE_DELAY_DEFAULT, SHOW_DELAY_DEFAULT, } from "../../constants/bubble.js";
|
|
6
|
+
import { isLineChartStylingEnabled } from "../../constants/featureFlags.js";
|
|
7
|
+
import { getChartFillIgnoredMeasureIdsFromMdObject, getMeasuresFromMdObject, } from "../../utils/bucketHelper.js";
|
|
6
8
|
import { CheckboxControl } from "../configurationControls/CheckboxControl.js";
|
|
9
|
+
import { ColorsSection } from "../configurationControls/colors/ColorsSection.js";
|
|
7
10
|
import { ConfigSection } from "../configurationControls/ConfigSection.js";
|
|
8
11
|
import { ContinuousLineControl } from "../configurationControls/ContinuousLineControl.js";
|
|
9
12
|
import { DataLabelsControl } from "../configurationControls/DataLabelsControl.js";
|
|
@@ -11,6 +14,13 @@ import { DataPointsControl } from "../configurationControls/DataPointsControl.js
|
|
|
11
14
|
import { DistinctPointShapesControl } from "../configurationControls/DistintcPointShapesControl.js";
|
|
12
15
|
import { BaseChartConfigurationPanel } from "./BaseChartConfigurationPanel.js";
|
|
13
16
|
export class LineChartBasedConfigurationPanel extends BaseChartConfigurationPanel {
|
|
17
|
+
renderColorSection() {
|
|
18
|
+
const { properties, propertiesMeta, pushData, colors, references, insight, isLoading, panelConfig, featureFlags, } = this.props;
|
|
19
|
+
const controlsDisabled = this.isControlDisabled();
|
|
20
|
+
const hasMeasures = getMeasuresFromMdObject(insight).length > 0;
|
|
21
|
+
const chartFillIgnoredMeasures = getChartFillIgnoredMeasureIdsFromMdObject(insight, properties);
|
|
22
|
+
return (_jsx(ColorsSection, { properties: properties, propertiesMeta: propertiesMeta, references: references, colors: colors, controlsDisabled: controlsDisabled, pushData: pushData, hasMeasures: hasMeasures, isLoading: isLoading, supportsChartFill: panelConfig?.supportsChartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures, isChartFillDisabled: panelConfig?.isChartFillDisabled, supportsLineStyles: isLineChartStylingEnabled(featureFlags) }));
|
|
23
|
+
}
|
|
14
24
|
renderConfigurationPanel() {
|
|
15
25
|
const { gridEnabled, axes } = this.getControlProperties();
|
|
16
26
|
const { properties, propertiesMeta, pushData, panelConfig, dataLabelDefaultValue = false, } = this.props;
|
|
@@ -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;;
|
|
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":"
|
|
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"}
|
|
@@ -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
|
|
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
|
|
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",
|