@devgateway/dvz-wp-commons 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/build/APIConfig.cjs +479 -0
  2. package/build/APIConfig.d.ts +12 -0
  3. package/build/APIConfig.js +367 -283
  4. package/build/APIutils.cjs +54 -0
  5. package/build/APIutils.js +7 -1
  6. package/build/Blocks.cjs +672 -0
  7. package/build/Blocks.d.ts +14 -1
  8. package/build/Blocks.js +523 -330
  9. package/build/CSVSourceConfig.cjs +99 -0
  10. package/build/CSVSourceConfig.js +63 -46
  11. package/build/ChartColors.cjs +593 -0
  12. package/build/ChartColors.d.ts +0 -1
  13. package/build/ChartColors.js +430 -366
  14. package/build/ChartLegends.cjs +157 -0
  15. package/build/ChartLegends.d.ts +0 -1
  16. package/build/ChartLegends.js +173 -54
  17. package/build/ChartMeasures.cjs +192 -0
  18. package/build/ChartMeasures.d.ts +0 -1
  19. package/build/ChartMeasures.js +197 -109
  20. package/build/Constants.cjs +21 -0
  21. package/build/Constants.js +3 -1
  22. package/build/DataFilters.cjs +176 -0
  23. package/build/DataFilters.js +100 -89
  24. package/build/Format.cjs +1038 -0
  25. package/build/Format.js +428 -378
  26. package/build/MapCSVSourceConfig.cjs +36 -0
  27. package/build/MapCSVSourceConfig.js +19 -8
  28. package/build/Measures.cjs +196 -0
  29. package/build/Measures.js +204 -108
  30. package/build/MobileConfigUtils.cjs +92 -0
  31. package/build/MobileConfigUtils.js +19 -8
  32. package/build/Tooltip.cjs +63 -0
  33. package/build/Tooltip.d.ts +1 -3
  34. package/build/Tooltip.js +27 -51
  35. package/build/Util.cjs +29 -0
  36. package/build/Util.js +7 -7
  37. package/build/hooks/index.cjs +1 -0
  38. package/build/hooks/index.js +0 -3
  39. package/build/icons/Chart.cjs +49 -0
  40. package/build/icons/Chart.d.ts +1 -2
  41. package/build/icons/Chart.js +10 -11
  42. package/build/icons/Generic.cjs +24 -0
  43. package/build/icons/Generic.d.ts +1 -2
  44. package/build/icons/Generic.js +25 -4
  45. package/build/icons/index.cjs +19 -0
  46. package/build/icons/index.js +2 -2
  47. package/build/index.cjs +225 -0
  48. package/build/index.d.ts +1 -1
  49. package/build/index.js +47 -16
  50. package/package.json +16 -7
  51. package/build/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ module.exports = exports.MapCSVSourceConfig = void 0;
7
+ var _components = require("@wordpress/components");
8
+ var _i18n = require("@wordpress/i18n");
9
+ const MapCSVSourceConfig = ({
10
+ attributes: {
11
+ app,
12
+ csv,
13
+ hasMultipleMeasures,
14
+ enableSummaryView
15
+ },
16
+ setAttributes
17
+ }) => {
18
+ return [/* @__PURE__ */React.createElement(_components.PanelBody, {
19
+ initialOpen: false,
20
+ title: (0, _i18n.__)("CSV Configuration")
21
+ }, /* @__PURE__ */React.createElement(_components.PanelRow, null, /* @__PURE__ */React.createElement(_components.ToggleControl, {
22
+ label: "Has Multiple Measures",
23
+ checked: hasMultipleMeasures,
24
+ onChange: () => setAttributes({
25
+ hasMultipleMeasures: !hasMultipleMeasures
26
+ })
27
+ })), /* @__PURE__ */React.createElement(_components.PanelRow, null, /* @__PURE__ */React.createElement(_components.TextareaControl, {
28
+ label: (0, _i18n.__)("CSV Data"),
29
+ value: csv,
30
+ onChange: csv2 => setAttributes({
31
+ csv: csv2
32
+ })
33
+ })))];
34
+ };
35
+ exports.MapCSVSourceConfig = MapCSVSourceConfig;
36
+ module.exports = MapCSVSourceConfig;
@@ -1,11 +1,22 @@
1
- import { PanelBody, PanelRow, ToggleControl, TextareaControl, SelectControl } from '@wordpress/components';
2
- import { __ } from '@wordpress/i18n';
1
+ import { PanelBody, PanelRow, ToggleControl, TextareaControl, SelectControl } from "@wordpress/components";
2
+ import { __ } from "@wordpress/i18n";
3
3
  export const MapCSVSourceConfig = ({ attributes: { app, csv, hasMultipleMeasures, enableSummaryView }, setAttributes }) => {
4
- return ([React.createElement(PanelBody, { initialOpen: false, title: __("CSV Configuration") },
5
- React.createElement(PanelRow, null,
6
- React.createElement(ToggleControl, { label: "Has Multiple Measures", checked: hasMultipleMeasures, onChange: () => setAttributes({ hasMultipleMeasures: !hasMultipleMeasures }) })),
7
- React.createElement(PanelRow, null,
8
- React.createElement(TextareaControl, { label: __("CSV Data"), value: csv, onChange: (csv) => setAttributes({ csv }) })))
9
- ]);
4
+ return [
5
+ /* @__PURE__ */ React.createElement(PanelBody, { initialOpen: false, title: __("CSV Configuration") }, /* @__PURE__ */ React.createElement(PanelRow, null, /* @__PURE__ */ React.createElement(
6
+ ToggleControl,
7
+ {
8
+ label: "Has Multiple Measures",
9
+ checked: hasMultipleMeasures,
10
+ onChange: () => setAttributes({ hasMultipleMeasures: !hasMultipleMeasures })
11
+ }
12
+ )), /* @__PURE__ */ React.createElement(PanelRow, null, /* @__PURE__ */ React.createElement(
13
+ TextareaControl,
14
+ {
15
+ label: __("CSV Data"),
16
+ value: csv,
17
+ onChange: (csv2) => setAttributes({ csv: csv2 })
18
+ }
19
+ )))
20
+ ];
10
21
  };
11
22
  export default MapCSVSourceConfig;
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ module.exports = exports.Measures = void 0;
7
+ var _i18n = require("@wordpress/i18n");
8
+ var _components = require("@wordpress/components");
9
+ var _Format = _interopRequireDefault(require("./Format.cjs"));
10
+ var _Util = require("./Util.cjs");
11
+ var _APIutils = require("./APIutils.cjs");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const defaultFormat = {
14
+ "style": "percent",
15
+ "minimumFractionDigits": 1,
16
+ "maximumFractionDigits": 1,
17
+ "currency": "USD"
18
+ };
19
+ const Measures = props => {
20
+ const {
21
+ onMeasuresChange,
22
+ onFormatChange,
23
+ onUseCustomAxisFormatChange,
24
+ onSetSingleMeasure,
25
+ onCustomLabelToggleChange,
26
+ onCustomLabelChange,
27
+ allMeasures,
28
+ setAttributes,
29
+ title,
30
+ format,
31
+ attributes: {
32
+ panelStatus,
33
+ measures,
34
+ dimension1,
35
+ dimension2,
36
+ type,
37
+ app
38
+ }
39
+ } = props;
40
+ const MToggle = ({
41
+ measure
42
+ }) => {
43
+ const userMeasure = measures[app] ? measures[app][measure.value] : {};
44
+ return /* @__PURE__ */React.createElement(_components.ToggleControl, {
45
+ label: (0, _APIutils.getTranslation)(measure),
46
+ checked: userMeasure ? userMeasure.selected : false,
47
+ onChange: value => onMeasuresChange(measure.value)
48
+ });
49
+ };
50
+ const MCheckbox = ({
51
+ measure
52
+ }) => {
53
+ const userMeasure = measures[app] ? measures[app][measure.value] : {};
54
+ let isChecked;
55
+ if (measures instanceof Array) {
56
+ isChecked = measures.includes(measure.value);
57
+ } else {
58
+ isChecked = userMeasure ? userMeasure.selected : false;
59
+ }
60
+ return /* @__PURE__ */React.createElement(_components.CheckboxControl, {
61
+ label: (0, _APIutils.getTranslation)(measure),
62
+ checked: isChecked,
63
+ onChange: value => onSetSingleMeasure(measure.value)
64
+ });
65
+ };
66
+ const MeasureOptions = ({
67
+ measure,
68
+ single
69
+ }) => {
70
+ return /* @__PURE__ */React.createElement(_components.PanelRow, null, single && /* @__PURE__ */React.createElement(MCheckbox, {
71
+ measure
72
+ }), !single && /* @__PURE__ */React.createElement(MToggle, {
73
+ measure
74
+ }));
75
+ };
76
+ const countSelected = g => {
77
+ if (measures[app]) {
78
+ const mG = allMeasures.filter(f => (0, _APIutils.getTranslation)(f.group) === g);
79
+ let count = 0;
80
+ Object.keys(measures[app]).filter(l => mG.map(m => m.value).indexOf(l) > -1).forEach(k => {
81
+ if (measures[app][k].selected) {
82
+ count++;
83
+ }
84
+ });
85
+ return count;
86
+ }
87
+ return 0;
88
+ };
89
+ const countTotal = g => {
90
+ if (g) {
91
+ return allMeasures.filter(f => (0, _APIutils.getTranslation)(f.group) === g).length;
92
+ }
93
+ return 0;
94
+ };
95
+ const getSelectedMeasures = () => {
96
+ if (measures[app] && allMeasures) {
97
+ return Object.keys(measures[app]).filter(k => measures[app][k].selected).map(k => {
98
+ return allMeasures.filter(m => m.value === k)[0];
99
+ }).filter(m => m);
100
+ }
101
+ return [];
102
+ };
103
+ const selectedMeasures = getSelectedMeasures();
104
+ return /* @__PURE__ */React.createElement(React.Fragment, null, /* @__PURE__ */React.createElement(_components.PanelBody, {
105
+ title: title ? title : (0, _i18n.__)("Measures"),
106
+ initialOpen: panelStatus["MEASURES"],
107
+ onToggle: e => (0, _Util.togglePanel)("MEASURES", panelStatus, setAttributes)
108
+ },
109
+ /*
110
+ Multiple measures conditions
111
+
112
+ Bar & Line:
113
+ no dimensions selected
114
+ one dimension is selected
115
+ - not available when second dimension gets selected
116
+
117
+ Pie:
118
+ no dimensions selected
119
+ - not available when any dimension is selected
120
+ */
121
+ (type == "radar" || type == "line" && dimension2 == "none" || type == "bar" && dimension2 == "none" || type == "pie" && dimension1 == "none" && dimension2 == "none") && allMeasures && [...new Set(allMeasures.map(p => (0, _APIutils.getTranslation)(p.group)))].map(g => {
122
+ return /* @__PURE__ */React.createElement(_components.PanelBody, {
123
+ initialOpen: panelStatus[g],
124
+ onToggle: e => (0, _Util.togglePanel)(g, panelStatus, setAttributes),
125
+ title: `${g} (${countSelected(g)} / ${countTotal(g)} ) `
126
+ }, allMeasures.filter(f => (0, _APIutils.getTranslation)(f.group) === g).map(m => /* @__PURE__ */React.createElement(_components.PanelRow, null, /* @__PURE__ */React.createElement(MeasureOptions, {
127
+ single: false,
128
+ measure: m
129
+ }))));
130
+ }),
131
+ /*Single measure conditions
132
+
133
+ Bar & Lie:
134
+ 2 dimensions selected
135
+ Pie:
136
+ any dimensions selected
137
+
138
+ */
139
+ (type == "big-number" || type == "line" && dimension2 != "none" || type == "bar" && dimension2 != "none" || type == "pie" && (dimension1 != "none" || dimension2 != "none")) && allMeasures && [...new Set(allMeasures.map(p => (0, _APIutils.getTranslation)(p.group)))].map(g => {
140
+ return /* @__PURE__ */React.createElement(_components.PanelBody, {
141
+ initialOpen: panelStatus[g],
142
+ onToggle: e => (0, _Util.togglePanel)(g, panelStatus, setAttributes),
143
+ title: `${g} (${countSelected(g)} / ${countTotal(g)} ) `
144
+ }, allMeasures.filter(f => (0, _APIutils.getTranslation)(f.group) === g).map(m => /* @__PURE__ */React.createElement(_components.PanelRow, null, /* @__PURE__ */React.createElement(MeasureOptions, {
145
+ single: true,
146
+ measure: m
147
+ }))));
148
+ }), type == "overlay" && allMeasures && /* @__PURE__ */React.createElement(_components.SelectControl, {
149
+ label: "Measure",
150
+ value: selectedMeasures && selectedMeasures[0] ? selectedMeasures[0].value : null,
151
+ options: [{
152
+ value: "",
153
+ label: "Select Measure"
154
+ }, ...allMeasures],
155
+ onChange: measure => onSetSingleMeasure(measure),
156
+ __nextHasNoMarginBottom: true
157
+ }), type != "overlay" && /* @__PURE__ */React.createElement(_components.PanelBody, {
158
+ title: (0, _i18n.__)("Format"),
159
+ initialOpen: panelStatus["FORMAT"],
160
+ onToggle: e => (0, _Util.togglePanel)("FORMAT", panelStatus, setAttributes)
161
+ }, /* @__PURE__ */React.createElement(_Format.default, {
162
+ hiddenCustomAxisFormat: type == "radar" || type == "big-number",
163
+ format: format || (measures[app] && measures[app].format ? measures[app].format : defaultFormat),
164
+ customFormat: measures[app] && measures[app].customFormat ? measures[app].customFormat : defaultFormat,
165
+ useCustomAxisFormat: measures[app] ? measures[app].useCustomAxisFormat : false,
166
+ onFormatChange: (format2, field) => {
167
+ onFormatChange(format2, field);
168
+ },
169
+ onUseCustomAxisFormatChange: value => {
170
+ onUseCustomAxisFormatChange(value);
171
+ }
172
+ }))), type != "overlay" && selectedMeasures && selectedMeasures.length > 0 && /* @__PURE__ */React.createElement(_components.PanelBody, {
173
+ title: (0, _i18n.__)("Measure Label Customization"),
174
+ initialOpen: panelStatus["MEASURES_LABEL_CUSTOMIZATION"],
175
+ onToggle: e => (0, _Util.togglePanel)("MEASURES_LABEL_CUSTOMIZATION", panelStatus, setAttributes)
176
+ }, selectedMeasures && [...new Set(selectedMeasures.map(p => (0, _APIutils.getTranslation)(p.group)))].map(g => {
177
+ return /* @__PURE__ */React.createElement(_components.PanelBody, {
178
+ initialOpen: panelStatus[g + "_LABEL_CUSTOMIZATION"],
179
+ onToggle: e => (0, _Util.togglePanel)(g + "_LABEL_CUSTOMIZATION", panelStatus, setAttributes),
180
+ title: `${g}`
181
+ }, selectedMeasures.filter(f => (0, _APIutils.getTranslation)(f.group) === g).map(m => {
182
+ const userMeasure = measures[app] ? measures[app][m.value] : {};
183
+ return /* @__PURE__ */React.createElement(React.Fragment, null, /* @__PURE__ */React.createElement(_components.PanelRow, null, /* @__PURE__ */React.createElement(_components.ToggleControl, {
184
+ label: (0, _APIutils.getTranslation)(m),
185
+ checked: userMeasure ? userMeasure.hasCustomLabel : false,
186
+ onChange: value => onCustomLabelToggleChange(m.value)
187
+ }), " "), userMeasure.hasCustomLabel && /* @__PURE__ */React.createElement(_components.PanelRow, null, /* @__PURE__ */React.createElement(_components.TextControl, {
188
+ label: (0, _i18n.__)("Custom Label"),
189
+ value: userMeasure ? userMeasure.customLabel : "",
190
+ onChange: value => onCustomLabelChange(m.value, value)
191
+ })));
192
+ }));
193
+ })));
194
+ };
195
+ exports.Measures = Measures;
196
+ module.exports = Measures;
package/build/Measures.js CHANGED
@@ -1,119 +1,215 @@
1
- import { __ } from '@wordpress/i18n';
2
- import { CheckboxControl, PanelBody, PanelRow, SelectControl, ToggleControl, TextControl } from '@wordpress/components';
3
- import Format from './Format';
4
- import { togglePanel } from "./Util";
5
- import { getTranslation } from "./APIutils";
1
+ import { __ } from "@wordpress/i18n";
2
+ import { CheckboxControl, PanelBody, PanelRow, SelectControl, ToggleControl, TextControl } from "@wordpress/components";
3
+ import Format from "./Format.js";
4
+ import { togglePanel } from "./Util.js";
5
+ import { getTranslation } from "./APIutils.js";
6
6
  const defaultFormat = {
7
- "style": "percent",
8
- "minimumFractionDigits": 1,
9
- "maximumFractionDigits": 1,
10
- "currency": "USD"
7
+ "style": "percent",
8
+ "minimumFractionDigits": 1,
9
+ "maximumFractionDigits": 1,
10
+ "currency": "USD"
11
11
  };
12
12
  export const Measures = (props) => {
13
- const { onMeasuresChange, onFormatChange, onUseCustomAxisFormatChange, onSetSingleMeasure, onCustomLabelToggleChange, onCustomLabelChange, allMeasures, setAttributes, title, format, attributes: { panelStatus, measures, dimension1, dimension2, type, app } } = props;
14
- const MToggle = ({ measure }) => {
15
- const userMeasure = measures[app] ? measures[app][measure.value] : {};
16
- return (React.createElement(ToggleControl, { label: getTranslation(measure), checked: userMeasure ? userMeasure.selected : false, onChange: (value) => onMeasuresChange(measure.value) }));
17
- };
18
- const MCheckbox = ({ measure }) => {
19
- const userMeasure = measures[app] ? measures[app][measure.value] : {};
20
- let isChecked;
21
- if (measures instanceof Array) {
22
- isChecked = measures.includes(measure.value);
13
+ const {
14
+ onMeasuresChange,
15
+ onFormatChange,
16
+ onUseCustomAxisFormatChange,
17
+ onSetSingleMeasure,
18
+ onCustomLabelToggleChange,
19
+ onCustomLabelChange,
20
+ allMeasures,
21
+ setAttributes,
22
+ title,
23
+ format,
24
+ attributes: {
25
+ panelStatus,
26
+ measures,
27
+ dimension1,
28
+ dimension2,
29
+ type,
30
+ app
31
+ }
32
+ } = props;
33
+ const MToggle = ({ measure }) => {
34
+ const userMeasure = measures[app] ? measures[app][measure.value] : {};
35
+ return /* @__PURE__ */ React.createElement(
36
+ ToggleControl,
37
+ {
38
+ label: getTranslation(measure),
39
+ checked: userMeasure ? userMeasure.selected : false,
40
+ onChange: (value) => onMeasuresChange(measure.value)
41
+ }
42
+ );
43
+ };
44
+ const MCheckbox = ({ measure }) => {
45
+ const userMeasure = measures[app] ? measures[app][measure.value] : {};
46
+ let isChecked;
47
+ if (measures instanceof Array) {
48
+ isChecked = measures.includes(measure.value);
49
+ } else {
50
+ isChecked = userMeasure ? userMeasure.selected : false;
51
+ }
52
+ return /* @__PURE__ */ React.createElement(
53
+ CheckboxControl,
54
+ {
55
+ label: getTranslation(measure),
56
+ checked: isChecked,
57
+ onChange: (value) => onSetSingleMeasure(measure.value)
58
+ }
59
+ );
60
+ };
61
+ const MeasureOptions = ({ measure, single }) => {
62
+ return /* @__PURE__ */ React.createElement(PanelRow, null, single && /* @__PURE__ */ React.createElement(MCheckbox, { measure }), !single && /* @__PURE__ */ React.createElement(MToggle, { measure }));
63
+ };
64
+ const countSelected = (g) => {
65
+ if (measures[app]) {
66
+ const mG = allMeasures.filter((f) => getTranslation(f.group) === g);
67
+ let count = 0;
68
+ Object.keys(measures[app]).filter((l) => mG.map((m) => m.value).indexOf(l) > -1).forEach((k) => {
69
+ if (measures[app][k].selected) {
70
+ count++;
23
71
  }
24
- else {
25
- isChecked = userMeasure ? userMeasure.selected : false;
26
- }
27
- return React.createElement(CheckboxControl, { label: getTranslation(measure), checked: isChecked, onChange: (value) => onSetSingleMeasure(measure.value) });
28
- };
29
- const MeasureOptions = ({ measure, single }) => {
30
- return React.createElement(PanelRow, null,
31
- single && React.createElement(MCheckbox, { measure: measure }),
32
- !single && React.createElement(MToggle, { measure: measure }));
33
- };
34
- const countSelected = (g) => {
35
- if (measures[app]) {
36
- const mG = allMeasures.filter(f => getTranslation(f.group) === g);
37
- let count = 0;
38
- Object.keys(measures[app]).filter(l => mG.map(m => m.value).indexOf(l) > -1).forEach(k => {
39
- if (measures[app][k].selected) {
40
- count++;
41
- }
42
- });
43
- return count;
44
- }
45
- return 0;
46
- };
47
- const countTotal = (g) => {
48
- if (g) {
49
- return allMeasures.filter(f => getTranslation(f.group) === g).length;
50
- }
51
- return 0;
52
- };
53
- const getSelectedMeasures = () => {
54
- if (measures[app] && allMeasures) {
55
- return Object.keys(measures[app]).filter(k => measures[app][k].selected).map(k => {
56
- return allMeasures.filter(m => m.value === k)[0];
57
- }).filter(m => m);
58
- }
59
- return [];
60
- };
61
- const selectedMeasures = getSelectedMeasures();
62
- return React.createElement(React.Fragment, null,
63
- React.createElement(PanelBody, { title: title ? title : __("Measures"), initialOpen: panelStatus["MEASURES"], onToggle: e => togglePanel("MEASURES", panelStatus, setAttributes) },
64
- /*
65
- Multiple measures conditions
66
-
67
- Bar & Line:
68
- no dimensions selected
69
- one dimension is selected
70
- - not available when second dimension gets selected
71
-
72
- Pie:
73
- no dimensions selected
74
- - not available when any dimension is selected
75
- */
76
- ((type == 'radar') ||
77
- (type == 'line' && dimension2 == 'none') ||
78
- (type == 'bar' && dimension2 == 'none') ||
79
- (type == 'pie' && dimension1 == 'none' && dimension2 == 'none')) && allMeasures && [...new Set(allMeasures.map(p => getTranslation(p.group)))].map(g => {
80
- return (React.createElement(PanelBody, { initialOpen: panelStatus[g], onToggle: e => togglePanel(g, panelStatus, setAttributes), title: `${g} (${countSelected(g)} / ${countTotal(g)} ) ` }, allMeasures.filter(f => getTranslation(f.group) === g)
81
- .map(m => React.createElement(PanelRow, null,
82
- React.createElement(MeasureOptions, { single: false, measure: m })))));
83
- }),
84
- /*Single measure conditions
85
-
72
+ });
73
+ return count;
74
+ }
75
+ return 0;
76
+ };
77
+ const countTotal = (g) => {
78
+ if (g) {
79
+ return allMeasures.filter((f) => getTranslation(f.group) === g).length;
80
+ }
81
+ return 0;
82
+ };
83
+ const getSelectedMeasures = () => {
84
+ if (measures[app] && allMeasures) {
85
+ return Object.keys(measures[app]).filter((k) => measures[app][k].selected).map((k) => {
86
+ return allMeasures.filter((m) => m.value === k)[0];
87
+ }).filter((m) => m);
88
+ }
89
+ return [];
90
+ };
91
+ const selectedMeasures = getSelectedMeasures();
92
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
93
+ PanelBody,
94
+ {
95
+ title: title ? title : __("Measures"),
96
+ initialOpen: panelStatus["MEASURES"],
97
+ onToggle: (e) => togglePanel("MEASURES", panelStatus, setAttributes)
98
+ },
99
+ /*
100
+ Multiple measures conditions
101
+
102
+ Bar & Line:
103
+ no dimensions selected
104
+ one dimension is selected
105
+ - not available when second dimension gets selected
106
+
107
+ Pie:
108
+ no dimensions selected
109
+ - not available when any dimension is selected
110
+ */
111
+ (type == "radar" || type == "line" && dimension2 == "none" || type == "bar" && dimension2 == "none" || type == "pie" && dimension1 == "none" && dimension2 == "none") && allMeasures && [...new Set(allMeasures.map((p) => getTranslation(p.group)))].map(
112
+ (g) => {
113
+ return /* @__PURE__ */ React.createElement(
114
+ PanelBody,
115
+ {
116
+ initialOpen: panelStatus[g],
117
+ onToggle: (e) => togglePanel(g, panelStatus, setAttributes),
118
+ title: `${g} (${countSelected(g)} / ${countTotal(g)} ) `
119
+ },
120
+ allMeasures.filter((f) => getTranslation(f.group) === g).map((m) => /* @__PURE__ */ React.createElement(PanelRow, null, /* @__PURE__ */ React.createElement(MeasureOptions, { single: false, measure: m })))
121
+ );
122
+ }
123
+ ),
124
+ /*Single measure conditions
125
+
86
126
  Bar & Lie:
87
127
  2 dimensions selected
88
128
  Pie:
89
129
  any dimensions selected
90
-
130
+
91
131
  */
92
- ((type == 'big-number') || (type == 'line' && dimension2 != 'none') || (type == 'bar' && dimension2 != 'none') || (type == 'pie' && (dimension1 != 'none' || dimension2 != 'none'))) && allMeasures && [...new Set(allMeasures.map(p => getTranslation(p.group)))].map(g => {
93
- return (React.createElement(PanelBody, { initialOpen: panelStatus[g], onToggle: e => togglePanel(g, panelStatus, setAttributes), title: `${g} (${countSelected(g)} / ${countTotal(g)} ) ` }, allMeasures.filter(f => getTranslation(f.group) === g)
94
- .map(m => React.createElement(PanelRow, null,
95
- React.createElement(MeasureOptions, { single: true, measure: m })))));
96
- }),
97
- (type == 'overlay') && allMeasures && React.createElement(SelectControl, { label: "Measure", value: selectedMeasures && selectedMeasures[0] ? selectedMeasures[0].value : null, options: [{ value: '', label: 'Select Measure' }, ...allMeasures], onChange: (measure) => onSetSingleMeasure(measure), __nextHasNoMarginBottom: true }),
98
- (type != 'overlay') && React.createElement(PanelBody, { title: __("Format"), initialOpen: panelStatus["FORMAT"], onToggle: e => togglePanel("FORMAT", panelStatus, setAttributes) },
99
- React.createElement(Format, { hiddenCustomAxisFormat: type == 'radar' || type == 'big-number', format: format || (measures[app] && measures[app].format ? measures[app].format : defaultFormat), customFormat: measures[app] && measures[app].customFormat ? measures[app].customFormat : defaultFormat, useCustomAxisFormat: measures[app] ? measures[app].useCustomAxisFormat : false, onFormatChange: (format, field) => {
100
- onFormatChange(format, field);
101
- }, onUseCustomAxisFormatChange: value => {
102
- onUseCustomAxisFormatChange(value);
103
- } }))),
104
- (type != 'overlay') && selectedMeasures && selectedMeasures.length > 0 &&
105
- React.createElement(PanelBody, { title: __("Measure Label Customization"), initialOpen: panelStatus["MEASURES_LABEL_CUSTOMIZATION"], onToggle: e => togglePanel("MEASURES_LABEL_CUSTOMIZATION", panelStatus, setAttributes) }, selectedMeasures && [...new Set(selectedMeasures.map(p => getTranslation(p.group)))].map(g => {
106
- return (React.createElement(PanelBody, { initialOpen: panelStatus[g + "_LABEL_CUSTOMIZATION"], onToggle: e => togglePanel(g + "_LABEL_CUSTOMIZATION", panelStatus, setAttributes), title: `${g}` }, selectedMeasures.filter(f => getTranslation(f.group) === g)
107
- .map(m => {
108
- const userMeasure = measures[app] ? measures[app][m.value] : {};
109
- return (React.createElement(React.Fragment, null,
110
- React.createElement(PanelRow, null,
111
- React.createElement(ToggleControl, { label: getTranslation(m), checked: userMeasure ? userMeasure.hasCustomLabel : false, onChange: (value) => onCustomLabelToggleChange(m.value) }),
112
- " "),
113
- userMeasure.hasCustomLabel &&
114
- React.createElement(PanelRow, null,
115
- React.createElement(TextControl, { label: __("Custom Label"), value: userMeasure ? userMeasure.customLabel : "", onChange: (value) => onCustomLabelChange(m.value, value) }))));
116
- })));
117
- })));
132
+ (type == "big-number" || type == "line" && dimension2 != "none" || type == "bar" && dimension2 != "none" || type == "pie" && (dimension1 != "none" || dimension2 != "none")) && allMeasures && [...new Set(allMeasures.map((p) => getTranslation(p.group)))].map((g) => {
133
+ return /* @__PURE__ */ React.createElement(
134
+ PanelBody,
135
+ {
136
+ initialOpen: panelStatus[g],
137
+ onToggle: (e) => togglePanel(g, panelStatus, setAttributes),
138
+ title: `${g} (${countSelected(g)} / ${countTotal(g)} ) `
139
+ },
140
+ allMeasures.filter((f) => getTranslation(f.group) === g).map((m) => /* @__PURE__ */ React.createElement(PanelRow, null, /* @__PURE__ */ React.createElement(MeasureOptions, { single: true, measure: m })))
141
+ );
142
+ }),
143
+ type == "overlay" && allMeasures && /* @__PURE__ */ React.createElement(
144
+ SelectControl,
145
+ {
146
+ label: "Measure",
147
+ value: selectedMeasures && selectedMeasures[0] ? selectedMeasures[0].value : null,
148
+ options: [{ value: "", label: "Select Measure" }, ...allMeasures],
149
+ onChange: (measure) => onSetSingleMeasure(measure),
150
+ __nextHasNoMarginBottom: true
151
+ }
152
+ ),
153
+ type != "overlay" && /* @__PURE__ */ React.createElement(
154
+ PanelBody,
155
+ {
156
+ title: __("Format"),
157
+ initialOpen: panelStatus["FORMAT"],
158
+ onToggle: (e) => togglePanel("FORMAT", panelStatus, setAttributes)
159
+ },
160
+ /* @__PURE__ */ React.createElement(
161
+ Format,
162
+ {
163
+ hiddenCustomAxisFormat: type == "radar" || type == "big-number",
164
+ format: format || (measures[app] && measures[app].format ? measures[app].format : defaultFormat),
165
+ customFormat: measures[app] && measures[app].customFormat ? measures[app].customFormat : defaultFormat,
166
+ useCustomAxisFormat: measures[app] ? measures[app].useCustomAxisFormat : false,
167
+ onFormatChange: (format2, field) => {
168
+ onFormatChange(format2, field);
169
+ },
170
+ onUseCustomAxisFormatChange: (value) => {
171
+ onUseCustomAxisFormatChange(value);
172
+ }
173
+ }
174
+ )
175
+ )
176
+ ), type != "overlay" && selectedMeasures && selectedMeasures.length > 0 && /* @__PURE__ */ React.createElement(
177
+ PanelBody,
178
+ {
179
+ title: __("Measure Label Customization"),
180
+ initialOpen: panelStatus["MEASURES_LABEL_CUSTOMIZATION"],
181
+ onToggle: (e) => togglePanel("MEASURES_LABEL_CUSTOMIZATION", panelStatus, setAttributes)
182
+ },
183
+ selectedMeasures && [...new Set(selectedMeasures.map((p) => getTranslation(p.group)))].map(
184
+ (g) => {
185
+ return /* @__PURE__ */ React.createElement(
186
+ PanelBody,
187
+ {
188
+ initialOpen: panelStatus[g + "_LABEL_CUSTOMIZATION"],
189
+ onToggle: (e) => togglePanel(g + "_LABEL_CUSTOMIZATION", panelStatus, setAttributes),
190
+ title: `${g}`
191
+ },
192
+ selectedMeasures.filter((f) => getTranslation(f.group) === g).map((m) => {
193
+ const userMeasure = measures[app] ? measures[app][m.value] : {};
194
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(PanelRow, null, /* @__PURE__ */ React.createElement(
195
+ ToggleControl,
196
+ {
197
+ label: getTranslation(m),
198
+ checked: userMeasure ? userMeasure.hasCustomLabel : false,
199
+ onChange: (value) => onCustomLabelToggleChange(m.value)
200
+ }
201
+ ), " "), userMeasure.hasCustomLabel && /* @__PURE__ */ React.createElement(PanelRow, null, /* @__PURE__ */ React.createElement(
202
+ TextControl,
203
+ {
204
+ label: __("Custom Label"),
205
+ value: userMeasure ? userMeasure.customLabel : "",
206
+ onChange: (value) => onCustomLabelChange(m.value, value)
207
+ }
208
+ )));
209
+ })
210
+ );
211
+ }
212
+ )
213
+ ));
118
214
  };
119
215
  export default Measures;