@gooddata/sdk-ui-ext 11.47.0 → 11.48.0-alpha.1
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 +1 -1
- package/esm/internal/components/configurationControls/CheckboxControl.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/CheckboxControl.js +1 -1
- package/esm/internal/components/configurationControls/ContinuousLineControl.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/ContinuousLineControl.js +1 -1
- package/esm/internal/components/configurationControls/DistintcPointShapesControl.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/DistintcPointShapesControl.js +1 -1
- package/esm/internal/components/configurationControls/colors/ColorsSection.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/ColorsSection.js +9 -25
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts +2 -0
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.js +12 -2
- package/esm/internal/components/configurationControls/colors/colorDropdown/ResetColorButton.d.ts +5 -0
- package/esm/internal/components/configurationControls/colors/colorDropdown/ResetColorButton.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/colors/colorDropdown/ResetColorButton.js +11 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItem.d.ts +1 -0
- 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 +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js +4 -3
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleColoredItem.js +2 -2
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts +1 -0
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js +2 -2
- package/esm/internal/interfaces/Colors.d.ts +1 -0
- package/esm/internal/interfaces/Colors.d.ts.map +1 -1
- package/esm/internal/translations/en-US.localization-bundle.d.ts +4 -4
- package/esm/internal/translations/en-US.localization-bundle.js +4 -4
- package/esm/internal/utils/colors.d.ts +4 -2
- package/esm/internal/utils/colors.d.ts.map +1 -1
- package/esm/internal/utils/colors.js +37 -17
- package/esm/locales.d.ts +1 -1
- package/esm/locales.js +1 -1
- package/package.json +21 -21
- package/styles/internal/css/config_panel.css +9 -3
- package/styles/internal/css/config_panel.css.map +1 -1
- package/styles/internal/scss/config_panel.scss +12 -0
package/NOTICE
CHANGED
|
@@ -9,7 +9,7 @@ The following 3rd-party software packages may be used by or distributed with goo
|
|
|
9
9
|
|
|
10
10
|
Date generated: 2026-7-16
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 673cff1911eb24f1e212d2c51b5463b98c9b6c96
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxControl.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationControls/CheckboxControl.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAKtE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAIlF,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAC5B,OAAe,EACf,QAAgB,EAChB,mBAA2B,EAC3B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,eAAuB,EACvB,YAAY,EACf,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"CheckboxControl.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationControls/CheckboxControl.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAKtE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAIlF,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAC5B,OAAe,EACf,QAAgB,EAChB,mBAA2B,EAC3B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,eAAuB,EACvB,YAAY,EACf,EAAE,qBAAqB,2CAiCvB"}
|
|
@@ -18,5 +18,5 @@ export function CheckboxControl({ checked = false, disabled = false, showDisable
|
|
|
18
18
|
pushData?.({ properties: clonedProperties });
|
|
19
19
|
}, [properties, isValueInverted, pushData, valuePath, defaultValue]);
|
|
20
20
|
return (_jsx(DisabledBubbleMessage, { showDisabledMessage: showDisabledMessage, messageId: disabledMessageId, children: _jsxs("label", { className: "input-checkbox-label", children: [
|
|
21
|
-
_jsx("input", {
|
|
21
|
+
_jsx("input", { checked: checked, disabled: disabled, type: "checkbox", className: "input-checkbox", onChange: onValueChanged }), labelText ? (_jsx("span", { className: "input-label-text", children: getTranslation(labelText, intl) })) : null, labelContent ? _jsx("span", { className: "input-label-text", children: labelContent }) : null] }) }));
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContinuousLineControl.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationControls/ContinuousLineControl.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAGlF,MAAM,WAAW,2BAA2B;IACxC,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CAAC,EAClC,UAAU,EACV,SAAoC,EACpC,OAAe,EACf,QAAgB,EAChB,QAAQ,EACX,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"ContinuousLineControl.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationControls/ContinuousLineControl.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAGlF,MAAM,WAAW,2BAA2B;IACxC,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CAAC,EAClC,UAAU,EACV,SAAoC,EACpC,OAAe,EACf,QAAgB,EAChB,QAAQ,EACX,EAAE,2BAA2B,2CAmC7B"}
|
|
@@ -13,6 +13,6 @@ export function ContinuousLineControl({ properties, valuePath = "continuousLine.
|
|
|
13
13
|
};
|
|
14
14
|
return (_jsxs(BubbleHoverTrigger, { showDelay: 0, hideDelay: 0, children: [
|
|
15
15
|
_jsxs("label", { className: "input-checkbox-label", children: [
|
|
16
|
-
_jsx("input", {
|
|
16
|
+
_jsx("input", { checked: checked, disabled: disabled, type: "checkbox", className: "input-checkbox s-continuous-line", onChange: onValueChanged }), _jsx("span", { className: "input-label-text", children: getTranslation(messages["canvasContinuousLineLabel"].id, intl) })
|
|
17
17
|
] }), !disabled && (_jsx(Bubble, { className: "bubble-primary continuous-line-tooltip", alignPoints: [{ align: "cr cl" }], arrowOffsets: { "cr cl": [-75, 0] }, children: getTranslation(messages["canvasContinuousLineTooltip"].id, intl) }))] }));
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DistintcPointShapesControl.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationControls/DistintcPointShapesControl.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAGlF,MAAM,WAAW,gCAAgC;IAC7C,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,0BAA0B,CAAC,EACvC,UAAU,EACV,SAAyC,EACzC,OAAe,EACf,QAAgB,EAChB,QAAQ,EACX,EAAE,gCAAgC,
|
|
1
|
+
{"version":3,"file":"DistintcPointShapesControl.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/configurationControls/DistintcPointShapesControl.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAGlF,MAAM,WAAW,gCAAgC;IAC7C,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,0BAA0B,CAAC,EACvC,UAAU,EACV,SAAyC,EACzC,OAAe,EACf,QAAgB,EAChB,QAAQ,EACX,EAAE,gCAAgC,2CAmClC"}
|
|
@@ -13,6 +13,6 @@ export function DistinctPointShapesControl({ properties, valuePath = "distinctPo
|
|
|
13
13
|
};
|
|
14
14
|
return (_jsxs(BubbleHoverTrigger, { showDelay: 0, hideDelay: 0, children: [
|
|
15
15
|
_jsxs("label", { className: "input-checkbox-label", children: [
|
|
16
|
-
_jsx("input", {
|
|
16
|
+
_jsx("input", { checked: checked, disabled: disabled, type: "checkbox", className: "input-checkbox s-distinct-points-shapes", onChange: onValueChanged }), _jsx("span", { className: "input-label-text", children: getTranslation(messages["canvasDistinctPointShapesLabel"].id, intl) })
|
|
17
17
|
] }), disabled ? (_jsx(Bubble, { className: "bubble-primary continuous-line-tooltip", alignPoints: [{ align: "cr cl" }], arrowOffsets: { "cr cl": [-75, 0] }, children: getTranslation(messages["canvasDistinctPointShapesTooltip"].id, intl) })) : null] }));
|
|
18
18
|
}
|
|
@@ -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;
|
|
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;AASvC,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAcvG,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,2CA8IrB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import cx from "classnames";
|
|
3
|
-
import { cloneDeep, set } from "lodash-es";
|
|
4
2
|
import { useIntl } from "react-intl";
|
|
5
3
|
import { isMeasureDescriptor } from "@gooddata/sdk-model";
|
|
6
|
-
import { Button } from "@gooddata/sdk-ui-kit";
|
|
7
4
|
import { messages } from "../../../../locales.js";
|
|
8
5
|
import { fillDropdownItems } from "../../../constants/dropdowns.js";
|
|
9
|
-
import { getColoredInputItems, getLineStyleProperties, getProperties } from "../../../utils/colors.js";
|
|
6
|
+
import { getColoredInputItems, getLineStyleProperties, getMappingHeaderId, getProperties, removeColorMappingFromProperties, } from "../../../utils/colors.js";
|
|
10
7
|
import { getTranslatedDropdownItems, getTranslation } from "../../../utils/translations.js";
|
|
11
8
|
import { ConfigSection } from "../../configurationControls/ConfigSection.js";
|
|
12
9
|
import { DropdownControl } from "../DropdownControl.js";
|
|
@@ -40,28 +37,15 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
40
37
|
const isColoredListVisible = () => {
|
|
41
38
|
return isLoading || (!controlsDisabled && colors?.colorPalette && hasMeasures);
|
|
42
39
|
};
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
return ((!colorMapping || colorMapping.length === 0) &&
|
|
47
|
-
(!lineStyleMapping || lineStyleMapping.length === 0));
|
|
48
|
-
};
|
|
49
|
-
const onResetColors = () => {
|
|
50
|
-
if (isDefaultColorMapping()) {
|
|
40
|
+
const onResetItem = (item) => {
|
|
41
|
+
const id = item.mappingHeader ? getMappingHeaderId(item.mappingHeader) : undefined;
|
|
42
|
+
if (id === undefined) {
|
|
51
43
|
return;
|
|
52
44
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
pushData?.({ messageId: COLOR_MAPPING_CHANGED, properties: updatedProperties, references: {} });
|
|
58
|
-
};
|
|
59
|
-
const renderResetButton = () => {
|
|
60
|
-
const isDisabled = controlsDisabled || isDefaultColorMapping();
|
|
61
|
-
const classes = cx("gd-color-reset-colors-section", {
|
|
62
|
-
disabled: isDisabled,
|
|
45
|
+
pushData?.({
|
|
46
|
+
messageId: COLOR_MAPPING_CHANGED,
|
|
47
|
+
properties: removeColorMappingFromProperties(properties, id),
|
|
63
48
|
});
|
|
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 }) }));
|
|
65
49
|
};
|
|
66
50
|
const renderFillDropdown = () => {
|
|
67
51
|
if (!supportsChartFill) {
|
|
@@ -80,11 +64,11 @@ export function ColorsSection({ controlsDisabled, properties, propertiesMeta, pu
|
|
|
80
64
|
const lineStyleMapping = supportsLineStyles
|
|
81
65
|
? (properties?.controls?.["lineStyleMapping"] ?? [])
|
|
82
66
|
: undefined;
|
|
83
|
-
const inputItems = getColoredInputItems(colors, lineStyleMapping);
|
|
67
|
+
const inputItems = getColoredInputItems(colors, lineStyleMapping, properties?.controls?.["colorMapping"]);
|
|
84
68
|
const colorPalette = colors?.colorPalette ? colors.colorPalette : [];
|
|
85
69
|
const chartFill = isChartFillDisabled ? undefined : properties?.controls?.["chartFill"];
|
|
86
70
|
return (_jsxs(_Fragment, { children: [
|
|
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 }),
|
|
71
|
+
_jsx(ColoredItemsList, { colorPalette: colorPalette, inputItems: inputItems, onSelect: onSelect, onResetItem: onResetItem, disabled: controlsDisabled, isLoading: isLoading, chartFill: chartFill, chartFillIgnoredMeasures: chartFillIgnoredMeasures, supportsLineStyles: supportsLineStyles, onLineStyleChange: supportsLineStyles ? onLineStyleChange : undefined, onLineWidthChange: supportsLineStyles ? onLineWidthChange : undefined }), additionalControls, renderFillDropdown()] }));
|
|
88
72
|
};
|
|
89
73
|
const renderUnsupportedColoredList = () => {
|
|
90
74
|
return (_jsx("div", { className: "gd-color-unsupported", children: getTranslation(messages["unsupportedColors"].id, intl) }));
|
package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export interface IColorDropdownOwnProps {
|
|
|
22
22
|
onClear?: () => void;
|
|
23
23
|
/** Accessibility label for the "no color" swatch (localized by the caller); required when onClear is set. */
|
|
24
24
|
noneColorAriaLabel?: string;
|
|
25
|
+
/** When provided, the palette popup shows a "Reset" item that reverts this item's custom color. */
|
|
26
|
+
onReset?: () => void;
|
|
25
27
|
}
|
|
26
28
|
export type IColorDropdownProps = IColorDropdownOwnProps;
|
|
27
29
|
export declare const ColorDropdown: import("react").NamedExoticComponent<IColorDropdownOwnProps>;
|
package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorDropdown.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,SAAS,EAKjB,MAAM,OAAO,CAAC;AAIf,OAAO,EACH,KAAK,MAAM,EACX,KAAK,aAAa,EAKrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ColorDropdown.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,SAAS,EAKjB,MAAM,OAAO,CAAC;AAIf,OAAO,EACH,KAAK,MAAM,EACX,KAAK,aAAa,EAKrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO3F,oBAAY,YAAY;IACpB,IAAI,IAAA;IACJ,KAAK,IAAA;CACR;AAED,MAAM,WAAW,gBAAgB;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAC5C,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6GAA6G;IAC7G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAQzD,eAAO,MAAM,aAAa,8DA+LxB,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { ColorPicker } from "@gooddata/sdk-ui-kit";
|
|
|
7
7
|
import { ColorOverlay, DropdownVersionType } from "./ColorOverlay.js";
|
|
8
8
|
import { ColorPalette } from "./ColorPalette.js";
|
|
9
9
|
import { CustomColorButton } from "./CustomColorButton.js";
|
|
10
|
+
import { ResetColorButton } from "./ResetColorButton.js";
|
|
10
11
|
export { IconPosition };
|
|
11
12
|
var IconPosition;
|
|
12
13
|
(function (IconPosition) {
|
|
@@ -18,7 +19,7 @@ const COLOR_FOR_UNKNOWN_ITEM = {
|
|
|
18
19
|
g: 0,
|
|
19
20
|
b: 0,
|
|
20
21
|
};
|
|
21
|
-
export const ColorDropdown = memo(function ColorDropdown({ selectedColorItem, colorPalette, onColorSelected: onColorSelectedProp, disabled, children, chartFill, patternFillIndex, onClear, noneColorAriaLabel, }) {
|
|
22
|
+
export const ColorDropdown = memo(function ColorDropdown({ selectedColorItem, colorPalette, onColorSelected: onColorSelectedProp, disabled, children, chartFill, patternFillIndex, onClear, noneColorAriaLabel, onReset, }) {
|
|
22
23
|
const [id] = useState(() => uuidv4());
|
|
23
24
|
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
|
|
24
25
|
const [dropdownVersion, setDropdownVersion] = useState(DropdownVersionType.ColorPalette);
|
|
@@ -69,6 +70,13 @@ export const ColorDropdown = memo(function ColorDropdown({ selectedColorItem, co
|
|
|
69
70
|
onClear?.();
|
|
70
71
|
}, 100);
|
|
71
72
|
}, [onClear]);
|
|
73
|
+
const onResetSelected = useCallback(() => {
|
|
74
|
+
setIsDropdownOpen(false);
|
|
75
|
+
setDropdownVersion(DropdownVersionType.ColorPalette);
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
onReset?.();
|
|
78
|
+
}, 100);
|
|
79
|
+
}, [onReset]);
|
|
72
80
|
const onColorPickerSubmit = useCallback((color) => {
|
|
73
81
|
const item = {
|
|
74
82
|
type: "rgb",
|
|
@@ -101,7 +109,7 @@ export const ColorDropdown = memo(function ColorDropdown({ selectedColorItem, co
|
|
|
101
109
|
}, [isDropdownOpen, getIconPosition, disabled, children]);
|
|
102
110
|
const renderColorPaletteContent = useCallback(() => {
|
|
103
111
|
return (_jsxs("div", { className: "gd-color-drop-down", children: [
|
|
104
|
-
_jsx(ColorPalette, { selectedColorGuid: getSelectedGuidFromColorItem(), colorPalette: colorPalette, onColorSelected: onColorSelected, chartFill: chartFill, patternFillIndex: patternFillIndex, showNoneColor: !!onClear, isNoneSelected: !selectedColorItem, onNoneSelected: onNoneSelected, noneColorAriaLabel: noneColorAriaLabel }), _jsx(CustomColorButton, { onClick: onCustomColorButtonClick })
|
|
112
|
+
_jsx(ColorPalette, { selectedColorGuid: getSelectedGuidFromColorItem(), colorPalette: colorPalette, onColorSelected: onColorSelected, chartFill: chartFill, patternFillIndex: patternFillIndex, showNoneColor: !!onClear, isNoneSelected: !selectedColorItem, onNoneSelected: onNoneSelected, noneColorAriaLabel: noneColorAriaLabel }), onReset ? _jsx(ResetColorButton, { onClick: onResetSelected }) : null, _jsx(CustomColorButton, { onClick: onCustomColorButtonClick })
|
|
105
113
|
] }));
|
|
106
114
|
}, [
|
|
107
115
|
getSelectedGuidFromColorItem,
|
|
@@ -114,6 +122,8 @@ export const ColorDropdown = memo(function ColorDropdown({ selectedColorItem, co
|
|
|
114
122
|
selectedColorItem,
|
|
115
123
|
onNoneSelected,
|
|
116
124
|
noneColorAriaLabel,
|
|
125
|
+
onReset,
|
|
126
|
+
onResetSelected,
|
|
117
127
|
]);
|
|
118
128
|
const renderColorPickerContent = useCallback(() => {
|
|
119
129
|
return (_jsx(ColorPicker, { initialRgbColor: getSelectedColorFromPalette(), onSubmit: onColorPickerSubmit, onCancel: onColorPickerCancel }));
|
package/esm/internal/components/configurationControls/colors/colorDropdown/ResetColorButton.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResetColorButton.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/configurationControls/colors/colorDropdown/ResetColorButton.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,8DAY3B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/colorDropdown/ResetColorButton.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { memo } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
5
|
+
import { Button } from "@gooddata/sdk-ui-kit";
|
|
6
|
+
import { messages } from "../../../../../locales.js";
|
|
7
|
+
import { getTranslation } from "../../../../utils/translations.js";
|
|
8
|
+
export const ResetColorButton = memo(function ResetColorButton({ onClick }) {
|
|
9
|
+
const intl = useIntl();
|
|
10
|
+
return (_jsx("div", { className: "gd-color-drop-down-reset-section", children: _jsx(Button, { value: getTranslation(messages["resetColor"].id, intl), className: "gd-button-link gd-color-drop-down-reset-section-button s-reset-color-button", onClick: onClick }) }));
|
|
11
|
+
});
|
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,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,
|
|
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,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,yDAkDtB,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, disabled } = props;
|
|
12
|
+
const { item, colorPalette, onSelect, onReset, 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, disabled: disabled, children: _jsx(ColoredItemContent, { text: headerText, color: coloredItem.color, chartFill: chartFill?.type, patternFillIndex: patternFillIndex }) }));
|
|
34
|
+
return (_jsx(ColorDropdown, { selectedColorItem: coloredItem.colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, onReset: onReset, 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
|
@@ -5,6 +5,7 @@ export interface IColoredItemsListProps {
|
|
|
5
5
|
colorPalette: IColorPalette;
|
|
6
6
|
inputItems: IColoredItem[];
|
|
7
7
|
onSelect: (selectedColorItem: IColoredItem, color: IColor) => void;
|
|
8
|
+
onResetItem?: (item: IColoredItem) => void;
|
|
8
9
|
disabled?: boolean;
|
|
9
10
|
isLoading?: boolean;
|
|
10
11
|
chartFill?: IChartFillConfig;
|
|
@@ -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,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,
|
|
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,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,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,8DAyG3B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/ColoredItemsList.js
CHANGED
|
@@ -14,7 +14,7 @@ function isChartFillIgnoredMeasure(item, chartFillIgnoredMeasures) {
|
|
|
14
14
|
chartFillIgnoredMeasures.includes(item.mappingHeader.measureHeaderItem.localIdentifier));
|
|
15
15
|
}
|
|
16
16
|
export const ColoredItemsList = memo(function ColoredItemsList(props) {
|
|
17
|
-
const { colorPalette, inputItems, onSelect: onSelectProp, disabled = false, isLoading = false, chartFill, chartFillIgnoredMeasures, supportsLineStyles, onLineStyleChange, onLineWidthChange, } = props;
|
|
17
|
+
const { colorPalette, inputItems, onSelect: onSelectProp, onResetItem, disabled = false, isLoading = false, chartFill, chartFillIgnoredMeasures, supportsLineStyles, onLineStyleChange, onLineWidthChange, } = props;
|
|
18
18
|
const [searchString, setSearchString] = useState("");
|
|
19
19
|
const listRef = useRef(null);
|
|
20
20
|
const onScroll = () => {
|
|
@@ -54,9 +54,10 @@ export const ColoredItemsList = memo(function ColoredItemsList(props) {
|
|
|
54
54
|
const appliedChartFill = isChartFillIgnoredMeasure(item, chartFillIgnoredMeasures)
|
|
55
55
|
? undefined
|
|
56
56
|
: chartFill;
|
|
57
|
+
const onReset = item.isCustomMapped && onResetItem ? () => onResetItem(item) : undefined;
|
|
57
58
|
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
|
+
return (_jsx(LineStyleColoredItem, { colorPalette: colorPalette, onSelect: onSelect, onReset: onReset, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex], onLineStyleChange: onLineStyleChange, onLineWidthChange: onLineWidthChange }));
|
|
59
60
|
}
|
|
60
|
-
return (_jsx(ColoredItem, { colorPalette: colorPalette, onSelect: onSelect, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex] }));
|
|
61
|
+
return (_jsx(ColoredItem, { colorPalette: colorPalette, onSelect: onSelect, onReset: onReset, disabled: disabled, item: item, chartFill: appliedChartFill, patternFillIndex: itemPatternFillIndexes[rowIndex] }));
|
|
61
62
|
} }) }));
|
|
62
63
|
});
|
|
@@ -6,6 +6,7 @@ export interface ILineStyleColoredItemProps {
|
|
|
6
6
|
colorPalette: IColorPalette;
|
|
7
7
|
item: IColoredItem;
|
|
8
8
|
onSelect?: (source: IColoredItem, color: IColor) => void;
|
|
9
|
+
onReset?: () => void;
|
|
9
10
|
disabled?: boolean;
|
|
10
11
|
chartFill?: IChartFillConfig;
|
|
11
12
|
patternFillIndex?: number | PatternFillName;
|
|
@@ -1 +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,
|
|
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,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,kEAkE/B,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { ColoredItemContent } from "./ColoredItemContent.js";
|
|
|
10
10
|
import { LineStyleDialog } from "./LineStyleDialog.js";
|
|
11
11
|
export const LineStyleColoredItem = memo(function LineStyleColoredItem(props) {
|
|
12
12
|
const intl = useIntl();
|
|
13
|
-
const { item, colorPalette, onSelect, chartFill, patternFillIndex, disabled, onLineStyleChange, onLineWidthChange, } = props;
|
|
13
|
+
const { item, colorPalette, onSelect, onReset, chartFill, patternFillIndex, disabled, onLineStyleChange, onLineWidthChange, } = props;
|
|
14
14
|
const anchorRef = useRef(null);
|
|
15
15
|
const [dialogOpen, setDialogOpen] = useState(false);
|
|
16
16
|
const headerText = getMappingHeaderFormattedName(item.mappingHeader) || `(${getTranslation("empty_value", intl)})`;
|
|
@@ -18,5 +18,5 @@ export const LineStyleColoredItem = memo(function LineStyleColoredItem(props) {
|
|
|
18
18
|
return (_jsxs(_Fragment, { children: [
|
|
19
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
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] }));
|
|
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, onReset: onReset, onLineStyleChange: (lineStyle) => onLineStyleChange?.(item, lineStyle), onLineWidthChange: (lineWidth) => onLineWidthChange?.(item, lineWidth), onClose: () => setDialogOpen(false) })) : null] }));
|
|
22
22
|
});
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface ILineStyleDialogProps {
|
|
|
13
13
|
chartFill?: IChartFillConfig;
|
|
14
14
|
patternFillIndex?: number | PatternFillName;
|
|
15
15
|
onColorSelected: (color: IColor) => void;
|
|
16
|
+
onReset?: () => void;
|
|
16
17
|
onLineStyleChange: (lineStyle: LineStyle) => void;
|
|
17
18
|
onLineWidthChange: (lineWidth: 1 | 2 | 3 | 4) => void;
|
|
18
19
|
onClose: () => void;
|
|
@@ -1 +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,
|
|
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,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,6DAgK1B,CAAC"}
|
package/esm/internal/components/configurationControls/colors/coloredItemsList/LineStyleDialog.js
CHANGED
|
@@ -26,7 +26,7 @@ function StrokeStyleIcon({ style, size = 20 }) {
|
|
|
26
26
|
function StrokeWeightIcon({ weight, size = 14 }) {
|
|
27
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
28
|
}
|
|
29
|
-
export const LineStyleDialog = memo(function LineStyleDialog({ alignTo, ignoreClicksOn, color, colorItem, colorPalette, lineStyle = "solid", lineWidth = 3, disabled, chartFill, patternFillIndex, onColorSelected, onLineStyleChange, onLineWidthChange, onClose, }) {
|
|
29
|
+
export const LineStyleDialog = memo(function LineStyleDialog({ alignTo, ignoreClicksOn, color, colorItem, colorPalette, lineStyle = "solid", lineWidth = 3, disabled, chartFill, patternFillIndex, onColorSelected, onReset, onLineStyleChange, onLineWidthChange, onClose, }) {
|
|
30
30
|
const intl = useIntl();
|
|
31
31
|
const theme = useTheme();
|
|
32
32
|
if (!alignTo) {
|
|
@@ -46,7 +46,7 @@ export const LineStyleDialog = memo(function LineStyleDialog({ alignTo, ignoreCl
|
|
|
46
46
|
{ id: 4, title: intl.formatMessage({ id: messages.lineWidth4.id }) },
|
|
47
47
|
];
|
|
48
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}`, {
|
|
49
|
+
_jsx(ColorDropdown, { selectedColorItem: colorItem, colorPalette: colorPalette, onColorSelected: onColorSelected, onReset: onReset, disabled: disabled, chartFill: chartFill, patternFillIndex: patternFillIndex, children: _jsxs("div", { className: cx("gd-line-style-toolbar__btn", `s-color-${r}-${g}-${b}`, {
|
|
50
50
|
"is-disabled": disabled,
|
|
51
51
|
}), "aria-label": intl.formatMessage({ id: messages.colors.id }), children: [
|
|
52
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" })
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACrC"}
|
|
@@ -1115,19 +1115,19 @@ export declare const en_US: {
|
|
|
1115
1115
|
text: string;
|
|
1116
1116
|
crowdinContext: string;
|
|
1117
1117
|
};
|
|
1118
|
-
"properties.colors": {
|
|
1118
|
+
"properties.colors.reset-color": {
|
|
1119
1119
|
text: string;
|
|
1120
1120
|
crowdinContext: string;
|
|
1121
1121
|
};
|
|
1122
|
-
"properties.
|
|
1122
|
+
"properties.colors": {
|
|
1123
1123
|
text: string;
|
|
1124
1124
|
crowdinContext: string;
|
|
1125
1125
|
};
|
|
1126
|
-
"properties.
|
|
1126
|
+
"properties.colorsAndFills": {
|
|
1127
1127
|
text: string;
|
|
1128
1128
|
crowdinContext: string;
|
|
1129
1129
|
};
|
|
1130
|
-
"properties.
|
|
1130
|
+
"properties.colorsAndStyles": {
|
|
1131
1131
|
text: string;
|
|
1132
1132
|
crowdinContext: string;
|
|
1133
1133
|
};
|
|
@@ -1117,6 +1117,10 @@ export const en_US = {
|
|
|
1117
1117
|
"text": "Reset Colors",
|
|
1118
1118
|
"crowdinContext": "Button to reset colors to default values"
|
|
1119
1119
|
},
|
|
1120
|
+
"properties.colors.reset-color": {
|
|
1121
|
+
"text": "Reset",
|
|
1122
|
+
"crowdinContext": "Menu item in the color picker that reverts one item's custom color to its default"
|
|
1123
|
+
},
|
|
1120
1124
|
"properties.colors": {
|
|
1121
1125
|
"text": "Colors",
|
|
1122
1126
|
"crowdinContext": "Label for colors configuration section"
|
|
@@ -1129,10 +1133,6 @@ export const en_US = {
|
|
|
1129
1133
|
"text": "Colors and styles",
|
|
1130
1134
|
"crowdinContext": "Label for colors and line styles configuration section on line charts"
|
|
1131
1135
|
},
|
|
1132
|
-
"properties.colors.reset-colors-and-styles": {
|
|
1133
|
-
"text": "Reset Colors and styles",
|
|
1134
|
-
"crowdinContext": "Button to reset colors and line styles to default values on line charts"
|
|
1135
|
-
},
|
|
1136
1136
|
"properties.lineStyle.label": {
|
|
1137
1137
|
"text": "Line style",
|
|
1138
1138
|
"crowdinContext": "Accessible label for the line style dropdown in the series configuration toolbar"
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { type IColor } from "@gooddata/sdk-model";
|
|
1
|
+
import { type IColor, type IColorMappingItem } from "@gooddata/sdk-model";
|
|
2
2
|
import { type IColorAssignment, type IMappingHeader } from "@gooddata/sdk-ui";
|
|
3
3
|
import { type ILineStyleMappingItem } from "@gooddata/sdk-ui-charts";
|
|
4
4
|
import { type IColorConfiguration, type IColoredItem } from "../interfaces/Colors.js";
|
|
5
5
|
import { type IVisualizationProperties } from "../interfaces/Visualization.js";
|
|
6
6
|
export declare function getSearchedItems(inputItems: IColoredItem[], searchString: string): IColoredItem[];
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function getMappingHeaderId(item: IMappingHeader): string | undefined;
|
|
8
|
+
export declare function getColoredInputItems(colors: IColorConfiguration | undefined, lineStyleMapping?: ILineStyleMappingItem[], colorMapping?: IColorMappingItem[]): IColoredItem[];
|
|
8
9
|
export declare function getProperties(properties: IVisualizationProperties, item: IMappingHeader, color: IColor): IVisualizationProperties;
|
|
10
|
+
export declare function removeColorMappingFromProperties(properties: IVisualizationProperties, id: string): IVisualizationProperties;
|
|
9
11
|
export declare function getLineStyleProperties(properties: IVisualizationProperties, id: string, lineStyle: ILineStyleMappingItem["lineStyle"], lineWidth: ILineStyleMappingItem["lineWidth"]): IVisualizationProperties;
|
|
10
12
|
export declare function getValidProperties(properties: IVisualizationProperties, colorAssignments: IColorAssignment[] | undefined): IVisualizationProperties;
|
|
11
13
|
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/colors.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/colors.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,MAAM,EACX,KAAK,iBAAiB,EASzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAc,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAM/E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,EAAE,CAQjG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAa3E;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,EAC1C,YAAY,CAAC,EAAE,iBAAiB,EAAE,GACnC,YAAY,EAAE,CA4ChB;AAuBD,wBAAgB,aAAa,CACzB,UAAU,EAAE,wBAAwB,EACpC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,GACd,wBAAwB,CAM1B;AAED,wBAAgB,gCAAgC,CAC5C,UAAU,EAAE,wBAAwB,EACpC,EAAE,EAAE,MAAM,GACX,wBAAwB,CAU1B;AAED,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,wBAAwB,EACpC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAC7C,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAC9C,wBAAwB,CAO1B;AAED,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,wBAAwB,EACpC,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,SAAS,GACjD,wBAAwB,CAmE1B"}
|
|
@@ -15,16 +15,35 @@ export function getSearchedItems(inputItems, searchString) {
|
|
|
15
15
|
return name.toLowerCase().includes(searchString.toLowerCase());
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
export function
|
|
18
|
+
export function getMappingHeaderId(item) {
|
|
19
|
+
if (isMeasureDescriptor(item)) {
|
|
20
|
+
return getMeasureMappingIdentifier(item);
|
|
21
|
+
}
|
|
22
|
+
else if (isResultAttributeHeader(item)) {
|
|
23
|
+
return item.attributeHeaderItem.uri;
|
|
24
|
+
}
|
|
25
|
+
else if (isAttributeDescriptor(item)) {
|
|
26
|
+
return isUriRef(item.attributeHeader.ref)
|
|
27
|
+
? item.attributeHeader.uri
|
|
28
|
+
: item.attributeHeader.identifier;
|
|
29
|
+
}
|
|
30
|
+
else if (isColorDescriptor(item)) {
|
|
31
|
+
return item.colorHeaderItem.id;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
export function getColoredInputItems(colors, lineStyleMapping, colorMapping) {
|
|
19
36
|
let inputItems = [];
|
|
20
37
|
if (colors?.colorAssignments) {
|
|
21
38
|
inputItems = colors.colorAssignments.map((assignmentItem, index) => {
|
|
22
39
|
let base;
|
|
40
|
+
const isCustomMapped = colorMapping?.some((entry) => entry.color && entry.id === getMappingHeaderId(assignmentItem.headerItem));
|
|
23
41
|
if (isColorFromPalette(assignmentItem.color)) {
|
|
24
42
|
base = {
|
|
25
43
|
colorItem: assignmentItem.color,
|
|
26
44
|
mappingHeader: assignmentItem.headerItem,
|
|
27
45
|
color: ColorUtils.getColorByGuid(colors.colorPalette, assignmentItem.color.value, index),
|
|
46
|
+
isCustomMapped,
|
|
28
47
|
};
|
|
29
48
|
}
|
|
30
49
|
else if (isRgbColor(assignmentItem.color)) {
|
|
@@ -32,6 +51,7 @@ export function getColoredInputItems(colors, lineStyleMapping) {
|
|
|
32
51
|
colorItem: assignmentItem.color,
|
|
33
52
|
mappingHeader: assignmentItem.headerItem,
|
|
34
53
|
color: assignmentItem.color.value,
|
|
54
|
+
isCustomMapped,
|
|
35
55
|
};
|
|
36
56
|
}
|
|
37
57
|
if (base && lineStyleMapping && isMeasureDescriptor(assignmentItem.headerItem)) {
|
|
@@ -67,23 +87,20 @@ function mergeColorMappingToProperties(properties, id, color) {
|
|
|
67
87
|
return newProperties;
|
|
68
88
|
}
|
|
69
89
|
export function getProperties(properties, item, color) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return
|
|
73
|
-
}
|
|
74
|
-
else if (isResultAttributeHeader(item)) {
|
|
75
|
-
return mergeColorMappingToProperties(properties, item.attributeHeaderItem.uri, color);
|
|
76
|
-
}
|
|
77
|
-
else if (isAttributeDescriptor(item)) {
|
|
78
|
-
const id = isUriRef(item.attributeHeader.ref)
|
|
79
|
-
? item.attributeHeader.uri
|
|
80
|
-
: item.attributeHeader.identifier;
|
|
81
|
-
return mergeColorMappingToProperties(properties, id, color);
|
|
82
|
-
}
|
|
83
|
-
else if (isColorDescriptor(item)) {
|
|
84
|
-
return mergeColorMappingToProperties(properties, item.colorHeaderItem.id, color);
|
|
90
|
+
const id = getMappingHeaderId(item);
|
|
91
|
+
if (id === undefined) {
|
|
92
|
+
return {};
|
|
85
93
|
}
|
|
86
|
-
return
|
|
94
|
+
return mergeColorMappingToProperties(properties, id, color);
|
|
95
|
+
}
|
|
96
|
+
export function removeColorMappingFromProperties(properties, id) {
|
|
97
|
+
const previousColorMapping = properties?.controls?.["colorMapping"] ?? [];
|
|
98
|
+
// a null color instructs the host application to remove the stored entry;
|
|
99
|
+
// omitting the entry is not enough because hosts merge pushed properties additively
|
|
100
|
+
const updatedMapping = previousColorMapping.map((item) => item.id === id ? { id, color: null } : item);
|
|
101
|
+
const newProperties = cloneDeep(properties);
|
|
102
|
+
set(newProperties, "controls.colorMapping", updatedMapping);
|
|
103
|
+
return newProperties;
|
|
87
104
|
}
|
|
88
105
|
export function getLineStyleProperties(properties, id, lineStyle, lineWidth) {
|
|
89
106
|
const newEntry = { id, lineStyle, lineWidth };
|
|
@@ -105,6 +122,9 @@ export function getValidProperties(properties, colorAssignments) {
|
|
|
105
122
|
let updatedControls = { ...properties.controls };
|
|
106
123
|
if (hasColorMapping) {
|
|
107
124
|
const reducedColorMapping = (properties.controls?.["colorMapping"] ?? []).filter((mappingItem) => {
|
|
125
|
+
if (!mappingItem.color) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
108
128
|
const { id } = mappingItem;
|
|
109
129
|
const colorValue = mappingItem.color.value;
|
|
110
130
|
const assignmentValid = colorAssignments?.find((colorAssignment) => {
|
package/esm/locales.d.ts
CHANGED
package/esm/locales.js
CHANGED
|
@@ -231,7 +231,7 @@ export const messages = defineMessages({
|
|
|
231
231
|
pointsSizeMaxTitle: { id: "properties.points.size.max.title" },
|
|
232
232
|
customColor: { id: "gs.color-dropdown.custom-color" },
|
|
233
233
|
resetColors: { id: "properties.colors.reset-colors" },
|
|
234
|
-
|
|
234
|
+
resetColor: { id: "properties.colors.reset-color" },
|
|
235
235
|
unsupportedColors: { id: "properties.colors.unsupported" },
|
|
236
236
|
colors: { id: "properties.colors" },
|
|
237
237
|
colorsAndFills: { id: "properties.colorsAndFills" },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-ext",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.48.0-alpha.1",
|
|
4
4
|
"description": "GoodData.UI SDK - Extensions",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -63,20 +63,20 @@
|
|
|
63
63
|
"ts-invariant": "0.10.3",
|
|
64
64
|
"tslib": "2.8.1",
|
|
65
65
|
"uuid": "11.1.1",
|
|
66
|
-
"@gooddata/sdk-
|
|
67
|
-
"@gooddata/sdk-backend-
|
|
68
|
-
"@gooddata/sdk-model": "11.
|
|
69
|
-
"@gooddata/sdk-
|
|
70
|
-
"@gooddata/sdk-
|
|
71
|
-
"@gooddata/sdk-ui-charts": "11.
|
|
72
|
-
"@gooddata/sdk-ui-
|
|
73
|
-
"@gooddata/sdk-ui-
|
|
74
|
-
"@gooddata/sdk-ui-
|
|
75
|
-
"@gooddata/sdk-ui-
|
|
76
|
-
"@gooddata/sdk-ui-theme-provider": "11.
|
|
77
|
-
"@gooddata/sdk-ui-vis-commons": "11.
|
|
78
|
-
"@gooddata/util": "11.
|
|
79
|
-
"@gooddata/sdk-ui-
|
|
66
|
+
"@gooddata/sdk-embedding": "11.48.0-alpha.1",
|
|
67
|
+
"@gooddata/sdk-backend-base": "11.48.0-alpha.1",
|
|
68
|
+
"@gooddata/sdk-model": "11.48.0-alpha.1",
|
|
69
|
+
"@gooddata/sdk-ui": "11.48.0-alpha.1",
|
|
70
|
+
"@gooddata/sdk-backend-spi": "11.48.0-alpha.1",
|
|
71
|
+
"@gooddata/sdk-ui-charts": "11.48.0-alpha.1",
|
|
72
|
+
"@gooddata/sdk-ui-geo": "11.48.0-alpha.1",
|
|
73
|
+
"@gooddata/sdk-ui-filters": "11.48.0-alpha.1",
|
|
74
|
+
"@gooddata/sdk-ui-kit": "11.48.0-alpha.1",
|
|
75
|
+
"@gooddata/sdk-ui-pivot": "11.48.0-alpha.1",
|
|
76
|
+
"@gooddata/sdk-ui-theme-provider": "11.48.0-alpha.1",
|
|
77
|
+
"@gooddata/sdk-ui-vis-commons": "11.48.0-alpha.1",
|
|
78
|
+
"@gooddata/util": "11.48.0-alpha.1",
|
|
79
|
+
"@gooddata/sdk-ui-semantic-search": "11.48.0-alpha.1"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -124,12 +124,12 @@
|
|
|
124
124
|
"typescript": "5.9.3",
|
|
125
125
|
"vitest": "4.1.8",
|
|
126
126
|
"vitest-dom": "0.1.1",
|
|
127
|
-
"@gooddata/eslint-config": "11.
|
|
128
|
-
"@gooddata/
|
|
129
|
-
"@gooddata/
|
|
130
|
-
"@gooddata/
|
|
131
|
-
"@gooddata/
|
|
132
|
-
"@gooddata/
|
|
127
|
+
"@gooddata/eslint-config": "11.48.0-alpha.1",
|
|
128
|
+
"@gooddata/i18n-toolkit": "11.48.0-alpha.1",
|
|
129
|
+
"@gooddata/oxlint-config": "11.48.0-alpha.1",
|
|
130
|
+
"@gooddata/reference-workspace": "11.48.0-alpha.1",
|
|
131
|
+
"@gooddata/stylelint-config": "11.48.0-alpha.1",
|
|
132
|
+
"@gooddata/sdk-backend-mockingbird": "11.48.0-alpha.1"
|
|
133
133
|
},
|
|
134
134
|
"peerDependencies": {
|
|
135
135
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -179,13 +179,13 @@
|
|
|
179
179
|
margin: 5px 10px 0;
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
.gd-color-drop-down-custom-section, .gd-color-reset-colors-section {
|
|
182
|
+
.gd-color-drop-down-custom-section, .gd-color-reset-colors-section, .gd-color-drop-down-reset-section {
|
|
183
183
|
position: relative;
|
|
184
184
|
display: flex;
|
|
185
185
|
margin: 0 5px;
|
|
186
186
|
padding: 10px 0 0;
|
|
187
187
|
}
|
|
188
|
-
.gd-color-drop-down-custom-section::before, .gd-color-reset-colors-section::before {
|
|
188
|
+
.gd-color-drop-down-custom-section::before, .gd-color-reset-colors-section::before, .gd-color-drop-down-reset-section::before {
|
|
189
189
|
content: "";
|
|
190
190
|
position: absolute;
|
|
191
191
|
top: 5px;
|
|
@@ -194,15 +194,21 @@
|
|
|
194
194
|
height: 0;
|
|
195
195
|
border-top: 1px solid var(--gd-palette-complementary-3, #dde4eb);
|
|
196
196
|
}
|
|
197
|
-
.gd-color-drop-down-custom-section .gd-button-link, .gd-color-reset-colors-section .gd-button-link {
|
|
197
|
+
.gd-color-drop-down-custom-section .gd-button-link, .gd-color-reset-colors-section .gd-button-link, .gd-color-drop-down-reset-section .gd-button-link {
|
|
198
198
|
justify-content: center;
|
|
199
199
|
width: 100%;
|
|
200
200
|
margin: 0;
|
|
201
201
|
padding: 0;
|
|
202
|
+
font-size: 12px;
|
|
203
|
+
line-height: 28px;
|
|
202
204
|
text-align: center;
|
|
203
205
|
text-decoration: none;
|
|
204
206
|
}
|
|
205
207
|
|
|
208
|
+
.gd-colored-items-list .gd-ui-kit-paged-virtual-list__item {
|
|
209
|
+
justify-content: center;
|
|
210
|
+
}
|
|
211
|
+
|
|
206
212
|
.gd-color-reset-colors-section {
|
|
207
213
|
overflow: hidden;
|
|
208
214
|
transition: all 0.4s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../node_modules/@gooddata/sdk-ui-kit/styles/scss/colorPicker.scss","../../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/config_panel.scss"],"names":[],"mappings":"AAGA;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EAGI;EACA;EACA;;AAIA;EACI;;AAGJ;EACI;;AAGJ;EAGI;;;AAKZ;EACI;EACA,OC3BY;ED4BZ;EACA;;AAEA;AAAA;EAEI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AEhHR;EACI,QAHmB;;;AAOnB;EACI,OD2BQ;EC1BR,YDsGgB;;ACjGhB;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA,OAjCqB;EAkCrB,QAlCqB;EAmCrB;EACA;EACA,aArCqB;EAsCrB;;AAEA;EACI;EACA;EACA,OD1BS;EC2BT;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI,OAlEqB;EAmErB,QAnEqB;EAoErB,QAnEmB;EAoEnB;EACA;EACA;EACA;;AAEA;EAII,cD7DS;EC8DT;;;AAIR;EACI;;;AASJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA,KA1Ge;EA2Gf;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;;AAIA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../node_modules/@gooddata/sdk-ui-kit/styles/scss/colorPicker.scss","../../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/config_panel.scss"],"names":[],"mappings":"AAGA;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EAGI;EACA;EACA;;AAIA;EACI;;AAGJ;EACI;;AAGJ;EAGI;;;AAKZ;EACI;EACA,OC3BY;ED4BZ;EACA;;AAEA;AAAA;EAEI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AEhHR;EACI,QAHmB;;;AAOnB;EACI,OD2BQ;EC1BR,YDsGgB;;ACjGhB;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA,OAjCqB;EAkCrB,QAlCqB;EAmCrB;EACA;EACA,aArCqB;EAsCrB;;AAEA;EACI;EACA;EACA,OD1BS;EC2BT;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI,OAlEqB;EAmErB,QAnEqB;EAoErB,QAnEmB;EAoEnB;EACA;EACA;EACA;;AAEA;EAII,cD7DS;EC8DT;;;AAIR;EACI;;;AASJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA,KA1Ge;EA2Gf;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AASJ;EACI;;;AAIR;EACI;EACA;;AAIA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA,ODxIgB;;;AC2IpB;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;;;AAIR;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;AAIR;EACI;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;;AAEA;EACI,kBDvIgB;ECwIhB;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,MDpQQ;;ACuQhB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI,ODnQmB;;;ACsQvB;EACI;;;AAGJ;EACI;EACA;;;AAIA;EACI;;;AAKJ;AAAA;EAEI;;AAIA;AAAA;EAEI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,ODnPQ;;ACsPZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AASJ;EACI,OD/We;ECgXf;EACA;;AAGJ;EACI;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,kBD/SgB;ECgThB;;AAEA;EACI,OD5YW;EC6YX;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAKZ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,ODraQ;ECsaR;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,ODvbe;ECwbf;;AAEA;EACI;EACA;;AAIR;EACI;EACA,ODlce;ECmcf;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI,YD3XY;;AC6XZ;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA,OD7eY;;;ACsfhB;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,YDxgBS;;AC0gBT;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA,ODphBQ;ECqhBR;EACA;;AAIA;EACI;EACA;EACA;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA,YDpkBa;ECqkBb;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA,YD3jBU;EC4jBV;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OD/kBQ;ECglBR;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI,YDzgBY;;AC4gBhB;EACI,YD7gBY;EC8gBZ,OD3nBS;;AC8nBb;EAEI;EACA;EACA;;AAGJ;EACI;EACA,ODhnBI;;AConBZ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA,OD9nBQ;EC+nBR;EACA;EACA","file":"config_panel.css"}
|
|
@@ -123,11 +123,23 @@ $color-picker-spacing: 5px;
|
|
|
123
123
|
width: 100%;
|
|
124
124
|
margin: 0;
|
|
125
125
|
padding: 0;
|
|
126
|
+
font-size: 12px;
|
|
127
|
+
line-height: 28px;
|
|
126
128
|
text-align: center;
|
|
127
129
|
text-decoration: none;
|
|
128
130
|
}
|
|
129
131
|
}
|
|
130
132
|
|
|
133
|
+
.gd-color-drop-down-reset-section {
|
|
134
|
+
@extend .gd-color-drop-down-custom-section;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.gd-colored-items-list {
|
|
138
|
+
.gd-ui-kit-paged-virtual-list__item {
|
|
139
|
+
justify-content: center;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
131
143
|
.gd-color-reset-colors-section {
|
|
132
144
|
overflow: hidden;
|
|
133
145
|
transition: all 0.4s;
|