@vizzly/dashboard 0.14.4-dev-97acb8d43347ac757049612930b3f8e69e913e55 → 0.14.4-dev-452014891c726bda8e71210563e32bb225b30c86
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/dist/charts/src/v2/components/Axis/AxisLeft.d.ts +2 -1
- package/dist/charts/src/v2/components/BarChart/BarChart.d.ts +18 -2
- package/dist/charts/src/v2/components/BarChart/useBarXScale.d.ts +2 -0
- package/dist/charts/src/v2/components/ComboChart/ComboChart.d.ts +22 -0
- package/dist/charts/src/v2/components/Legend/Legend.d.ts +7 -5
- package/dist/charts/src/v2/components/LineChart/LineChart.d.ts +16 -1
- package/dist/charts/src/v2/components/Tooltip/Tooltip.d.ts +6 -4
- package/dist/charts/src/v2/components/WaterfallChart/Legend.d.ts +3 -1
- package/dist/charts/src/v2/components/WaterfallChart/WaterfallChart.d.ts +3 -1
- package/dist/charts/src/v2/components/hooks/useFlattenedData.d.ts +3 -8
- package/dist/charts/src/v2/components/hooks/useYScale.d.ts +2 -0
- package/dist/charts/src/v2/constants/PADDING.d.ts +4 -0
- package/dist/charts/src/v2/{components/BarChart → utils}/getBarFill.d.ts +2 -2
- package/dist/dashboard/src/contexts/GlobalProvider/useGlobalProvider.d.ts +12 -12
- package/dist/dashboard.cjs.development.js +435 -344
- package/dist/dashboard.cjs.production.min.js +1 -1
- package/dist/dashboard.esm.js +440 -349
- package/dist/shared-logic/src/ChartsV2/types.d.ts +8 -7
- package/dist/shared-logic/src/ComboChartV2/types.d.ts +15 -0
- package/dist/shared-logic/src/Component/types.d.ts +2 -0
- package/dist/shared-logic/src/ComponentInterface/types/namespaces.types.d.ts +1 -0
- package/dist/shared-logic/src/FeatureToggle/types.d.ts +0 -3
- package/dist/shared-logic/src/FormatPanelConfig/types.d.ts +2 -1
- package/dist/shared-ui/src/library/StylePanel/WaterfallColorsSection.d.ts +7 -0
- package/package.json +1 -1
- package/dist/charts/src/v2/components/WaterfallChart/getBarFill.d.ts +0 -5
package/dist/dashboard.esm.js
CHANGED
|
@@ -28,13 +28,13 @@ import { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/elemen
|
|
|
28
28
|
import { dropTargetForExternal } from '@atlaskit/pragmatic-drag-and-drop/external/adapter';
|
|
29
29
|
import { DropIndicator } from '@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box';
|
|
30
30
|
import { ParentSize } from '@visx/responsive';
|
|
31
|
-
import { Annotation, AnnotationConnector, AnnotationLabel, DataContext, buildChartTheme, lightTheme, XYChart, Grid as Grid$2, Axis, AreaSeries, AreaStack, BarGroup, BarSeries, BarStack, GlyphSeries, LineSeries, Tooltip as Tooltip$3 } from '@visx/xychart';
|
|
31
|
+
import { Annotation, AnnotationConnector, AnnotationLabel, DataContext, buildChartTheme, lightTheme, XYChart, Grid as Grid$2, Axis, AreaSeries, AreaStack, BarGroup as BarGroup$1, BarSeries, BarStack, GlyphSeries, LineSeries, Tooltip as Tooltip$3 } from '@visx/xychart';
|
|
32
32
|
import { LinearGradient } from '@visx/gradient';
|
|
33
33
|
import { LegendItem as LegendItem$1, LegendLabel } from '@visx/legend';
|
|
34
|
-
import { scaleOrdinal, scaleQuantize, scalePoint, scaleTime,
|
|
34
|
+
import { scaleOrdinal, scaleQuantize, scaleLinear, scalePoint, scaleTime, scaleBand } from '@visx/scale';
|
|
35
35
|
import Ordinal from '@visx/legend/lib/legends/Ordinal';
|
|
36
36
|
import { curveNatural, curveMonotoneX, curveMonotoneY, curveLinear, curveStep, curveStepBefore, curveStepAfter } from '@visx/curve';
|
|
37
|
-
import { Line as Line$1, LinePath,
|
|
37
|
+
import { Line as Line$1, LinePath, BarStack as BarStack$1, BarGroup as BarGroup$2, AreaStack as AreaStack$1, AreaClosed, LineRadial } from '@visx/shape';
|
|
38
38
|
import { Mercator, Graticule } from '@visx/geo';
|
|
39
39
|
import { feature } from 'topojson-client';
|
|
40
40
|
import ParentSize$1 from '@visx/responsive/lib/components/ParentSize';
|
|
@@ -1550,7 +1550,7 @@ var upcastFilterType = function upcastFilterType(type) {
|
|
|
1550
1550
|
if (type === 'dateTimeFilter') {
|
|
1551
1551
|
return DATE_FILTER;
|
|
1552
1552
|
}
|
|
1553
|
-
if (type === 'numericFilter'
|
|
1553
|
+
if (type === 'numericFilter') {
|
|
1554
1554
|
return ADVANCED_FILTER;
|
|
1555
1555
|
}
|
|
1556
1556
|
return type;
|
|
@@ -10009,7 +10009,9 @@ var attributesSchema$h = function attributesSchema(config) {
|
|
|
10009
10009
|
parameters: parametersSchema(config.queryEngineConfig, config.attributesSchemaOptions),
|
|
10010
10010
|
axisTitles: axisTitleSchema(),
|
|
10011
10011
|
headline: headlineSchema(),
|
|
10012
|
-
tags: tagsSchema()
|
|
10012
|
+
tags: tagsSchema(),
|
|
10013
|
+
increaseColor: Joi.string().required(),
|
|
10014
|
+
decreaseColor: Joi.string().required()
|
|
10013
10015
|
}));
|
|
10014
10016
|
};
|
|
10015
10017
|
|
|
@@ -10173,6 +10175,11 @@ var CONSTANTS$j = {
|
|
|
10173
10175
|
type: 'headline',
|
|
10174
10176
|
title: 'Headline',
|
|
10175
10177
|
description: ''
|
|
10178
|
+
},
|
|
10179
|
+
waterfall_colors: {
|
|
10180
|
+
type: 'waterfallColors',
|
|
10181
|
+
title: 'Color selector',
|
|
10182
|
+
description: ''
|
|
10176
10183
|
}
|
|
10177
10184
|
}
|
|
10178
10185
|
};
|
|
@@ -10212,6 +10219,8 @@ var WaterfallChart = function WaterfallChart(config) {
|
|
|
10212
10219
|
axisTitles: dumped.axisTitles,
|
|
10213
10220
|
displaySubject: dumped.displaySubject,
|
|
10214
10221
|
displayTitle: dumped.displayTitle,
|
|
10222
|
+
increaseColor: dumped.increaseColor,
|
|
10223
|
+
decreaseColor: dumped.decreaseColor,
|
|
10215
10224
|
protectedByOrganisation: dumped.protectedByOrganisation,
|
|
10216
10225
|
type: dumped.type,
|
|
10217
10226
|
offset: dumped.offset
|
|
@@ -10246,6 +10255,8 @@ var WaterfallChart = function WaterfallChart(config) {
|
|
|
10246
10255
|
parameters: {},
|
|
10247
10256
|
axisTitles: undefined,
|
|
10248
10257
|
headline: undefined,
|
|
10258
|
+
increaseColor: '#00FF00',
|
|
10259
|
+
decreaseColor: '#FF0000',
|
|
10249
10260
|
tags: [],
|
|
10250
10261
|
approxXAxisLabelCount: 'auto',
|
|
10251
10262
|
approxYAxisLabelCount: 'auto'
|
|
@@ -10300,7 +10311,7 @@ var WaterfallChart = function WaterfallChart(config) {
|
|
|
10300
10311
|
}), namespace(CONSTANTS$j, 'sort'), namespace(CONSTANTS$j, 'filter'), namespace(CONSTANTS$j, 'custom_metrics'), namespace(CONSTANTS$j, 'limit')];
|
|
10301
10312
|
},
|
|
10302
10313
|
formatPanelConfig: function formatPanelConfig() {
|
|
10303
|
-
return [headingConstant(CONSTANTS$j), chartStylesConstant(CONSTANTS$j, false, false), axisLabelsConstants(CONSTANTS$j)];
|
|
10314
|
+
return [headingConstant(CONSTANTS$j), namespace(CONSTANTS$j, 'waterfall_colors'), chartStylesConstant(CONSTANTS$j, false, false), axisLabelsConstants(CONSTANTS$j)];
|
|
10304
10315
|
},
|
|
10305
10316
|
supportedCustomFields: {
|
|
10306
10317
|
percentages: true,
|
|
@@ -13767,8 +13778,7 @@ var ADMIN_FEATURE_TOGGLES = {
|
|
|
13767
13778
|
forceMobile: false,
|
|
13768
13779
|
unloadOffScreenViews: false,
|
|
13769
13780
|
showSavingIndicator: false,
|
|
13770
|
-
disablePersistingGlobalFiltersLocally: false
|
|
13771
|
-
simpleMultiSelectFilter: false
|
|
13781
|
+
disablePersistingGlobalFiltersLocally: false
|
|
13772
13782
|
};
|
|
13773
13783
|
var END_USER_DEFAULT_FEATURE_TOGGLES = {
|
|
13774
13784
|
parameters: true,
|
|
@@ -13805,8 +13815,7 @@ var END_USER_DEFAULT_FEATURE_TOGGLES = {
|
|
|
13805
13815
|
forceMobile: false,
|
|
13806
13816
|
unloadOffScreenViews: false,
|
|
13807
13817
|
showSavingIndicator: true,
|
|
13808
|
-
disablePersistingGlobalFiltersLocally: false
|
|
13809
|
-
simpleMultiSelectFilter: false
|
|
13818
|
+
disablePersistingGlobalFiltersLocally: false
|
|
13810
13819
|
};
|
|
13811
13820
|
var build$b = function build(partialFeatureToggles, queryEngineConfig, mode, scope) {
|
|
13812
13821
|
var featureToggles = {};
|
|
@@ -13863,7 +13872,7 @@ var build$b = function build(partialFeatureToggles, queryEngineConfig, mode, sco
|
|
|
13863
13872
|
return featureToggles;
|
|
13864
13873
|
};
|
|
13865
13874
|
var buildDefaults = function buildDefaults(partialFeatureToggles) {
|
|
13866
|
-
var _partialFeatureToggle, _partialFeatureToggle2
|
|
13875
|
+
var _partialFeatureToggle, _partialFeatureToggle2;
|
|
13867
13876
|
return {
|
|
13868
13877
|
showDateAndTimeFilter: partialFeatureToggles.showDateAndTimeFilter !== undefined ? partialFeatureToggles.showDateAndTimeFilter : true,
|
|
13869
13878
|
showDateFilter: partialFeatureToggles.showDateFilter !== undefined ? partialFeatureToggles.showDateFilter : true,
|
|
@@ -13874,8 +13883,7 @@ var buildDefaults = function buildDefaults(partialFeatureToggles) {
|
|
|
13874
13883
|
canDownloadViewAsPNG: partialFeatureToggles.canDownloadViewAsPNG !== undefined ? partialFeatureToggles.canDownloadViewAsPNG : true,
|
|
13875
13884
|
forceMobile: partialFeatureToggles.forceMobile !== undefined ? partialFeatureToggles.forceMobile : false,
|
|
13876
13885
|
unloadOffScreenViews: partialFeatureToggles.unloadOffScreenViews !== undefined ? partialFeatureToggles.unloadOffScreenViews : false,
|
|
13877
|
-
allowCalculatedField: (_partialFeatureToggle2 = partialFeatureToggles.allowCalculatedField) != null ? _partialFeatureToggle2 : false
|
|
13878
|
-
simpleMultiSelectFilter: (_partialFeatureToggle3 = partialFeatureToggles.simpleMultiSelectFilter) != null ? _partialFeatureToggle3 : false
|
|
13886
|
+
allowCalculatedField: (_partialFeatureToggle2 = partialFeatureToggles.allowCalculatedField) != null ? _partialFeatureToggle2 : false
|
|
13879
13887
|
};
|
|
13880
13888
|
};
|
|
13881
13889
|
|
|
@@ -28875,8 +28883,7 @@ var AdditionalFilter = function AdditionalFilter(props) {
|
|
|
28875
28883
|
onChange = props.onChange,
|
|
28876
28884
|
shouldAlwaysHaveValue = props.shouldAlwaysHaveValue;
|
|
28877
28885
|
var _useDashboardBehaviou = useDashboardBehaviourContext(),
|
|
28878
|
-
queryEngineConfig = _useDashboardBehaviou.queryEngineConfig
|
|
28879
|
-
featureToggles = _useDashboardBehaviou.featureToggles;
|
|
28886
|
+
queryEngineConfig = _useDashboardBehaviou.queryEngineConfig;
|
|
28880
28887
|
|
|
28881
28888
|
/** Validate the new filter before setting it */
|
|
28882
28889
|
var onChangeWithValidation = function onChangeWithValidation(newFilter) {
|
|
@@ -28927,7 +28934,7 @@ var AdditionalFilter = function AdditionalFilter(props) {
|
|
|
28927
28934
|
dataSets: props.dataSets
|
|
28928
28935
|
}, typeof props.filter.value === 'boolean' ? undefined : JSON.stringify(props.filter.value));
|
|
28929
28936
|
}
|
|
28930
|
-
if (filter.type == MULTI_SELECT_FILTER
|
|
28937
|
+
if (filter.type == MULTI_SELECT_FILTER) {
|
|
28931
28938
|
return jsx(MultiSelectFilter, {
|
|
28932
28939
|
showClearBtn: !shouldAlwaysHaveValue,
|
|
28933
28940
|
filter: filter,
|
|
@@ -33157,7 +33164,7 @@ var VizzlyXYChart = function VizzlyXYChart(props) {
|
|
|
33157
33164
|
}), (props == null ? void 0 : props.bars) && !props.bars.stacked && !(props != null && (_props$bars3 = props.bars) != null && _props$bars3.funnelChart) && jsxs(Fragment, {
|
|
33158
33165
|
children: [props.enableHover && jsx("style", {
|
|
33159
33166
|
children: "\n /* We need to find a more accurate way to target the rect element. */\n .vizzly-xy-chart > div > svg > rect {\n cursor: pointer;\n }"
|
|
33160
|
-
}), jsx(BarGroup, {
|
|
33167
|
+
}), jsx(BarGroup$1, {
|
|
33161
33168
|
children: props.bars.keys.map(function (key, keyIndex) {
|
|
33162
33169
|
var _props$bars$styles$co, _props$bars4, _props$bars5;
|
|
33163
33170
|
return jsx(BarSeries, _extends({
|
|
@@ -38117,13 +38124,11 @@ var AddFilterForm = function AddFilterForm(props) {
|
|
|
38117
38124
|
value: SINGLE_SELECT_FILTER,
|
|
38118
38125
|
subText: textOverride('single_select_filter_description', 'Choose a single option from the list to filter. ')
|
|
38119
38126
|
}];
|
|
38120
|
-
|
|
38121
|
-
|
|
38122
|
-
|
|
38123
|
-
|
|
38124
|
-
|
|
38125
|
-
});
|
|
38126
|
-
}
|
|
38127
|
+
filterTypes.push({
|
|
38128
|
+
label: textOverride('multi_select', 'Multi select'),
|
|
38129
|
+
value: MULTI_SELECT_FILTER,
|
|
38130
|
+
subText: textOverride('multi_select_description', 'Allow multiple selections.')
|
|
38131
|
+
});
|
|
38127
38132
|
filterTypes.push({
|
|
38128
38133
|
label: textOverride('advanced_filter', 'Advanced filter'),
|
|
38129
38134
|
value: ADVANCED_FILTER,
|
|
@@ -42354,16 +42359,14 @@ var SCROLLBAR_WIDTH = 40;
|
|
|
42354
42359
|
var Tooltip$1 = function Tooltip(_ref) {
|
|
42355
42360
|
var _tooltipData$xKey$for;
|
|
42356
42361
|
var keys = _ref.keys,
|
|
42357
|
-
legendItems = _ref.legendItems,
|
|
42358
42362
|
showRoundedTotal = _ref.showRoundedTotal,
|
|
42359
42363
|
tooltipData = _ref.tooltipData,
|
|
42360
42364
|
tooltipLeft = _ref.tooltipLeft,
|
|
42361
42365
|
tooltipTop = _ref.tooltipTop,
|
|
42362
|
-
visibleYKeys = _ref.visibleYKeys,
|
|
42363
42366
|
xKey = _ref.xKey,
|
|
42364
42367
|
yKeys = _ref.yKeys,
|
|
42365
|
-
|
|
42366
|
-
|
|
42368
|
+
theme = _ref.theme,
|
|
42369
|
+
items = _ref.items;
|
|
42367
42370
|
var tooltipRef = useRef(null);
|
|
42368
42371
|
var _useState = useState({
|
|
42369
42372
|
left: tooltipLeft
|
|
@@ -42412,7 +42415,7 @@ var Tooltip$1 = function Tooltip(_ref) {
|
|
|
42412
42415
|
fontSize: '15px',
|
|
42413
42416
|
width: '100%',
|
|
42414
42417
|
minWidth: MIN_TOOLTIP_WIDTH
|
|
42415
|
-
}, process.env.NODE_ENV === "production" ? "" : ";label:Tooltip;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42418
|
+
}, process.env.NODE_ENV === "production" ? "" : ";label:Tooltip;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBGcUIiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUJveCB9IGZyb20gJy4uL0xlZ2VuZC9MZWdlbmRJdGVtQm94JztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgRGF0YUl0ZW0sIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5cbmNvbnN0IE1JTl9UT09MVElQX1dJRFRIID0gMTgwO1xuY29uc3QgVE9PTFRJUF9PRkZTRVQgPSAyMDtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgdG9vbHRpcERhdGE6IHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9O1xuICB0b29sdGlwTGVmdDogbnVtYmVyO1xuICB0b29sdGlwVG9wOiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeUtleXM6IHN0cmluZ1tdO1xuICBpdGVtczoge1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgICB2aXNpYmxlWUtleXM6IHN0cmluZ1tdO1xuICB9W107XG4gIHRoZW1lOiBDU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgVG9vbHRpcCA9ICh7XG4gIGtleXMsXG4gIHNob3dSb3VuZGVkVG90YWwsXG4gIHRvb2x0aXBEYXRhLFxuICB0b29sdGlwTGVmdCxcbiAgdG9vbHRpcFRvcCxcbiAgeEtleSxcbiAgeUtleXMsXG4gIHRoZW1lLFxuICBpdGVtcyxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGU8eyBsZWZ0OiBudW1iZXIgfT4oe1xuICAgIGxlZnQ6IHRvb2x0aXBMZWZ0LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFkanVzdFRvb2x0aXBQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICBjb25zdCByZWN0ID0gdG9vbHRpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHdpZHRoID0gcmVjdC53aWR0aDtcblxuICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgIHdpZHRoID0gTUlOX1RPT0xUSVBfV0lEVEg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVmdCA9IHRvb2x0aXBMZWZ0ICsgVE9PTFRJUF9PRkZTRVQ7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBMZWZ0ICsgd2lkdGggPiBzY3JlZW5XaWR0aCAtIFNDUk9MTEJBUl9XSURUSCkge1xuICAgICAgICAgIGxlZnQgPSB0b29sdGlwTGVmdCAtIHdpZHRoIC0gVE9PTFRJUF9PRkZTRVQ7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkanVzdFRvb2x0aXBQb3NpdGlvbigpO1xuICB9LCBbdG9vbHRpcExlZnRdKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxuICAgICAgICB0b3A6IHRvb2x0aXBUb3AsXG4gICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAuLi50aGVtZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dG9vbHRpcERhdGFbeEtleV0uZm9ybWF0dGVkVmFsdWUgPz8gdG9vbHRpcERhdGFbeEtleV0udmFsdWV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGFibGVcbiAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICBjZWxsU3BhY2luZz17MH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nzcyh7XG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgIGJvcmRlclNwYWNpbmc6ICcwJyxcbiAgICAgICAgICAgIGJvcmRlckNvbGxhcHNlOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcCgobGVnZW5kSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyB5S2V5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0b29sdGlwRGF0YVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlWUtleXM/LmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17bGVnZW5kSXRlbS55S2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogaW5kZXggPT09IDAgPyAnMTJweCA4cHggMCAwJyA6ICc4cHggOHB4IDAgMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbUJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2dldENvbG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yOiBsZWdlbmRJdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeUtleTogbGVnZW5kSXRlbS55S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogaXRlbS5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2xlZ2VuZEl0ZW0uc3R5bGUgYXMgTGluZVN0eWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlLZXk9e2xlZ2VuZEl0ZW0ueUtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZzogJzhweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgIHtzaG93Um91bmRlZFRvdGFsICYmIChcbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xTcGFuPXsyfSBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgICBSb3VuZGVkIFRvdGFsXG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCArIE1hdGgucm91bmQodG9vbHRpcERhdGFba2V5XS52YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgfSwgMCl9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59O1xuIl19 */"),
|
|
42416
42419
|
children: (_tooltipData$xKey$for = tooltipData[xKey].formattedValue) != null ? _tooltipData$xKey$for : tooltipData[xKey].value
|
|
42417
42420
|
}), jsx("table", {
|
|
42418
42421
|
cellPadding: 0,
|
|
@@ -42423,45 +42426,51 @@ var Tooltip$1 = function Tooltip(_ref) {
|
|
|
42423
42426
|
} : {
|
|
42424
42427
|
name: "9a1sa-Tooltip",
|
|
42425
42428
|
styles: "margin:0;border-spacing:0;border-collapse:inherit;border:none;label:Tooltip;",
|
|
42426
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42429
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlHcUIiLCJmaWxlIjoiVG9vbHRpcC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5cbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUJveCB9IGZyb20gJy4uL0xlZ2VuZC9MZWdlbmRJdGVtQm94JztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgRGF0YUl0ZW0sIEtleSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQmFyU3R5bGVzIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9CYXJDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IEFyZWFTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0FyZWFDaGFydFYyL3R5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5cbmNvbnN0IE1JTl9UT09MVElQX1dJRFRIID0gMTgwO1xuY29uc3QgVE9PTFRJUF9PRkZTRVQgPSAyMDtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzPFQ+IHtcbiAga2V5czogeyBba2V5OiBzdHJpbmddOiBLZXkgfTtcbiAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgdG9vbHRpcERhdGE6IHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9O1xuICB0b29sdGlwTGVmdDogbnVtYmVyO1xuICB0b29sdGlwVG9wOiBudW1iZXI7XG4gIHhLZXk6IHN0cmluZztcbiAgeUtleXM6IHN0cmluZ1tdO1xuICBpdGVtczoge1xuICAgIGxlZ2VuZEl0ZW1zOiBBcnJheTxTaGFwZURlZmluaXRpb248VD4+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgICB2aXNpYmxlWUtleXM6IHN0cmluZ1tdO1xuICB9W107XG4gIHRoZW1lOiBDU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgVG9vbHRpcCA9ICh7XG4gIGtleXMsXG4gIHNob3dSb3VuZGVkVG90YWwsXG4gIHRvb2x0aXBEYXRhLFxuICB0b29sdGlwTGVmdCxcbiAgdG9vbHRpcFRvcCxcbiAgeEtleSxcbiAgeUtleXMsXG4gIHRoZW1lLFxuICBpdGVtcyxcbn06IFRvb2x0aXBQcm9wczxMaW5lU3R5bGVzIHwgQmFyU3R5bGVzIHwgQXJlYVN0eWxlcz4pID0+IHtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGU8eyBsZWZ0OiBudW1iZXIgfT4oe1xuICAgIGxlZnQ6IHRvb2x0aXBMZWZ0LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFkanVzdFRvb2x0aXBQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAodG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICBjb25zdCByZWN0ID0gdG9vbHRpcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHdpZHRoID0gcmVjdC53aWR0aDtcblxuICAgICAgICBpZiAod2lkdGggPCBNSU5fVE9PTFRJUF9XSURUSCkge1xuICAgICAgICAgIHdpZHRoID0gTUlOX1RPT0xUSVBfV0lEVEg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVmdCA9IHRvb2x0aXBMZWZ0ICsgVE9PTFRJUF9PRkZTRVQ7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBMZWZ0ICsgd2lkdGggPiBzY3JlZW5XaWR0aCAtIFNDUk9MTEJBUl9XSURUSCkge1xuICAgICAgICAgIGxlZnQgPSB0b29sdGlwTGVmdCAtIHdpZHRoIC0gVE9PTFRJUF9PRkZTRVQ7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQb3NpdGlvbih7IGxlZnQgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkanVzdFRvb2x0aXBQb3NpdGlvbigpO1xuICB9LCBbdG9vbHRpcExlZnRdKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxuICAgICAgICB0b3A6IHRvb2x0aXBUb3AsXG4gICAgICAgIHpJbmRleDogMjE0NzQ4MzY0NyAqIDEwLFxuICAgICAgICAuLi50aGVtZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBzdHlsZT17eyB3b3JkQnJlYWs6ICdicmVhay1hbGwnIH19PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgICAgZm9udEZhbWlseTogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJ2luaGVyaXQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgZm9udFNpemU6ICcxNXB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogTUlOX1RPT0xUSVBfV0lEVEgsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dG9vbHRpcERhdGFbeEtleV0uZm9ybWF0dGVkVmFsdWUgPz8gdG9vbHRpcERhdGFbeEtleV0udmFsdWV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGFibGVcbiAgICAgICAgICBjZWxsUGFkZGluZz17MH1cbiAgICAgICAgICBjZWxsU3BhY2luZz17MH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Nzcyh7XG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgIGJvcmRlclNwYWNpbmc6ICcwJyxcbiAgICAgICAgICAgIGJvcmRlckNvbGxhcHNlOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcCgobGVnZW5kSXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldIHx8IHRvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyB5S2V5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0b29sdGlwRGF0YVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlWUtleXM/LmluY2x1ZGVzKGxlZ2VuZEl0ZW0ueUtleSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17bGVnZW5kSXRlbS55S2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogaW5kZXggPT09IDAgPyAnMTJweCA4cHggMCAwJyA6ICc4cHggOHB4IDAgMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbUJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2dldENvbG9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yOiBsZWdlbmRJdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeUtleTogbGVnZW5kSXRlbS55S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogaXRlbS5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2xlZ2VuZEl0ZW0uc3R5bGUgYXMgTGluZVN0eWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlLZXk9e2xlZ2VuZEl0ZW0ueUtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZzogJzhweCAwIDAgMCcgfX0+e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZzogJzhweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rvb2x0aXBEYXRhW2xlZ2VuZEl0ZW0ueUtleV0uZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9vbHRpcERhdGFbbGVnZW5kSXRlbS55S2V5XS5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0b29sdGlwRGF0YVtsZWdlbmRJdGVtLnlLZXldLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgIHtzaG93Um91bmRlZFRvdGFsICYmIChcbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xTcGFuPXsyfSBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgICBSb3VuZGVkIFRvdGFsXG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBwYWRkaW5nOiAnMTJweCAwIDAgMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7eUtleXMucmVkdWNlKCh0b3RhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCArIE1hdGgucm91bmQodG9vbHRpcERhdGFba2V5XS52YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgfSwgMCl9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gICk7XG59O1xuIl19 */",
|
|
42427
42430
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$5
|
|
42428
42431
|
}),
|
|
42429
42432
|
children: jsxs("tbody", {
|
|
42430
|
-
children: [
|
|
42431
|
-
|
|
42432
|
-
|
|
42433
|
-
|
|
42434
|
-
|
|
42435
|
-
|
|
42436
|
-
|
|
42437
|
-
|
|
42438
|
-
|
|
42439
|
-
|
|
42440
|
-
|
|
42441
|
-
|
|
42442
|
-
|
|
42443
|
-
|
|
42444
|
-
|
|
42445
|
-
|
|
42446
|
-
|
|
42447
|
-
|
|
42448
|
-
|
|
42449
|
-
|
|
42450
|
-
|
|
42451
|
-
|
|
42452
|
-
|
|
42453
|
-
|
|
42454
|
-
|
|
42455
|
-
|
|
42456
|
-
|
|
42457
|
-
|
|
42458
|
-
|
|
42459
|
-
|
|
42460
|
-
|
|
42461
|
-
|
|
42462
|
-
|
|
42463
|
-
|
|
42464
|
-
|
|
42433
|
+
children: [items.map(function (item, index) {
|
|
42434
|
+
var _item$legendItems;
|
|
42435
|
+
return jsx(Fragment, {
|
|
42436
|
+
children: (_item$legendItems = item.legendItems) == null ? void 0 : _item$legendItems.map(function (legendItem, index) {
|
|
42437
|
+
var _item$visibleYKeys, _item$conditionalForm;
|
|
42438
|
+
if (!tooltipData[legendItem.yKey] || tooltipData[legendItem.yKey].value === null) {
|
|
42439
|
+
// yKey could not be found in tooltipData
|
|
42440
|
+
return null;
|
|
42441
|
+
}
|
|
42442
|
+
return ((_item$visibleYKeys = item.visibleYKeys) == null ? void 0 : _item$visibleYKeys.includes(legendItem.yKey)) && jsxs("tr", {
|
|
42443
|
+
children: [jsx("td", {
|
|
42444
|
+
style: {
|
|
42445
|
+
verticalAlign: 'middle',
|
|
42446
|
+
padding: index === 0 ? '12px 8px 0 0' : '8px 8px 0 0',
|
|
42447
|
+
width: 'auto'
|
|
42448
|
+
},
|
|
42449
|
+
children: jsx(LegendItemBox, {
|
|
42450
|
+
color: getColor({
|
|
42451
|
+
defaultColor: legendItem.color,
|
|
42452
|
+
value: tooltipData[legendItem.yKey].value,
|
|
42453
|
+
yKey: legendItem.yKey,
|
|
42454
|
+
conditionalFormattingRules: (_item$conditionalForm = item.conditionalFormattingRules) != null ? _item$conditionalForm : []
|
|
42455
|
+
}),
|
|
42456
|
+
style: legendItem.style,
|
|
42457
|
+
yKey: legendItem.yKey
|
|
42458
|
+
})
|
|
42459
|
+
}), jsx("td", {
|
|
42460
|
+
style: {
|
|
42461
|
+
padding: '8px 0 0 0'
|
|
42462
|
+
},
|
|
42463
|
+
children: keys[legendItem.yKey].keyFormatted
|
|
42464
|
+
}), jsx("td", {
|
|
42465
|
+
style: {
|
|
42466
|
+
fontWeight: 'bold',
|
|
42467
|
+
padding: '8px 0 0 16px'
|
|
42468
|
+
},
|
|
42469
|
+
children: tooltipData[legendItem.yKey].formattedValue ? tooltipData[legendItem.yKey].formattedValue : tooltipData[legendItem.yKey].value
|
|
42470
|
+
})]
|
|
42471
|
+
}, legendItem.yKey);
|
|
42472
|
+
})
|
|
42473
|
+
}, index);
|
|
42465
42474
|
}), showRoundedTotal && jsxs("tr", {
|
|
42466
42475
|
children: [jsx("td", {
|
|
42467
42476
|
colSpan: 2,
|
|
@@ -42584,11 +42593,9 @@ var LegendItem = function LegendItem(_ref) {
|
|
|
42584
42593
|
function _EMOTION_STRINGIFIED_CSS_ERROR__$7() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
42585
42594
|
var Legend$1 = function Legend(_ref) {
|
|
42586
42595
|
var keys = _ref.keys,
|
|
42587
|
-
visibleYKeys = _ref.visibleYKeys,
|
|
42588
|
-
legendItems = _ref.legendItems,
|
|
42589
42596
|
setVisibleYKeys = _ref.setVisibleYKeys,
|
|
42590
|
-
|
|
42591
|
-
|
|
42597
|
+
marginLeft = _ref.marginLeft,
|
|
42598
|
+
items = _ref.items;
|
|
42592
42599
|
return jsx("div", {
|
|
42593
42600
|
className: /*#__PURE__*/css$1(process.env.NODE_ENV === "production" ? {
|
|
42594
42601
|
name: "1nbollx",
|
|
@@ -42596,7 +42603,7 @@ var Legend$1 = function Legend(_ref) {
|
|
|
42596
42603
|
} : {
|
|
42597
42604
|
name: "qz6h7j-Legend",
|
|
42598
42605
|
styles: "height:40px;padding-top:8px;label:Legend;",
|
|
42599
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42606
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJvQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi9MZWdlbmRJdGVtJztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXIgfSBmcm9tICcuLi8uLi8uLi9TY3JvbGxiYXIvU2Nyb2xsYmFyJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTGVnZW5kUHJvcHM8VD4ge1xuICBzZXRWaXNpYmxlWUtleXM/OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIGtleXM6IHsgW2tleTogc3RyaW5nXTogS2V5IH07XG4gIG1hcmdpbkxlZnQ6IG51bWJlcjtcbiAgaXRlbXM/OiB7XG4gICAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gICAgdmlzaWJsZVlLZXlzOiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgfVtdO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBtYXJnaW5MZWZ0LFxuICBpdGVtcyxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2l0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcChcbiAgICAgICAgICAgICAgbGVnZW5kSXRlbSA9PlxuICAgICAgICAgICAgICAgIGtleXNbbGVnZW5kSXRlbS55S2V5XSAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGVnZW5kSXRlbX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgbGVnZW5kLSR7bGVnZW5kSXRlbS55S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzICYmXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGl0ZW0ubGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFtsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IHByZXYuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFsuLi5wcmV2LCBsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWaXNpYmxlTGVnZW5kSXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5sZWdlbmRJdGVtcy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZT17c2V0VmlzaWJsZVlLZXlzID8gaXRlbS52aXNpYmxlWUtleXMuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSA6IHRydWV9XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtpdGVtLmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICkpfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */",
|
|
42600
42607
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$7
|
|
42601
42608
|
}),
|
|
42602
42609
|
children: jsx(Scrollbar, {
|
|
@@ -42606,34 +42613,39 @@ var Legend$1 = function Legend(_ref) {
|
|
|
42606
42613
|
flexWrap: 'nowrap',
|
|
42607
42614
|
alignItems: 'center',
|
|
42608
42615
|
marginLeft: marginLeft ? marginLeft + "px" : undefined
|
|
42609
|
-
}, process.env.NODE_ENV === "production" ? "" : ";label:Legend;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42616
|
+
}, process.env.NODE_ENV === "production" ? "" : ";label:Legend;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxlZ2VuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJtQiIsImZpbGUiOiJMZWdlbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMZWdlbmRJdGVtIH0gZnJvbSAnLi9MZWdlbmRJdGVtJztcbmltcG9ydCB7IFNoYXBlRGVmaW5pdGlvbiwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZSwgS2V5IH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXIgfSBmcm9tICcuLi8uLi8uLi9TY3JvbGxiYXIvU2Nyb2xsYmFyJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJTdHlsZXMgfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgTGluZVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvTGluZUNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQXJlYVN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQXJlYUNoYXJ0VjIvdHlwZXMnO1xuXG5pbnRlcmZhY2UgTGVnZW5kUHJvcHM8VD4ge1xuICBzZXRWaXNpYmxlWUtleXM/OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxBcnJheTxzdHJpbmc+Pj47XG4gIGtleXM6IHsgW2tleTogc3RyaW5nXTogS2V5IH07XG4gIG1hcmdpbkxlZnQ6IG51bWJlcjtcbiAgaXRlbXM/OiB7XG4gICAgbGVnZW5kSXRlbXM6IEFycmF5PFNoYXBlRGVmaW5pdGlvbjxUPj47XG4gICAgdmlzaWJsZVlLZXlzOiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBBcnJheTxDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlPjtcbiAgfVtdO1xufVxuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gKHtcbiAga2V5cyxcbiAgc2V0VmlzaWJsZVlLZXlzLFxuICBtYXJnaW5MZWZ0LFxuICBpdGVtcyxcbn06IExlZ2VuZFByb3BzPEJhclN0eWxlcyB8IExpbmVTdHlsZXMgfCBBcmVhU3R5bGVzPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjc3MoeyBoZWlnaHQ6IDQwLCBwYWRkaW5nVG9wOiA4IH0pfT5cbiAgICAgIDxTY3JvbGxiYXJcbiAgICAgICAgY2xhc3NOYW1lPXtjc3Moe1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCA/IGAke21hcmdpbkxlZnR9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB9KX1cbiAgICAgICAgeD17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2l0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAge2l0ZW0ubGVnZW5kSXRlbXM/Lm1hcChcbiAgICAgICAgICAgICAgbGVnZW5kSXRlbSA9PlxuICAgICAgICAgICAgICAgIGtleXNbbGVnZW5kSXRlbS55S2V5XSAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGVnZW5kSXRlbVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGVnZW5kSXRlbX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgbGVnZW5kLSR7bGVnZW5kSXRlbS55S2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIHlLZXlGb3JtYXR0ZWQ9e2tleXNbbGVnZW5kSXRlbS55S2V5XS5rZXlGb3JtYXR0ZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzICYmXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZVlLZXlzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Zpc2libGVMZWdlbmRJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldi5sZW5ndGggPT09IGl0ZW0ubGVnZW5kSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFtsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IHByZXYuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlZ2VuZEl0ZW1JZCA9PiBwcmV2TGVnZW5kSXRlbUlkICE9PSBsZWdlbmRJdGVtLnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Zpc2libGVMZWdlbmRJdGVtcyA9IFsuLi5wcmV2LCBsZWdlbmRJdGVtLnlLZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdWaXNpYmxlTGVnZW5kSXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5sZWdlbmRJdGVtcy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3VmlzaWJsZUxlZ2VuZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZT17c2V0VmlzaWJsZVlLZXlzID8gaXRlbS52aXNpYmxlWUtleXMuaW5jbHVkZXMobGVnZW5kSXRlbS55S2V5KSA6IHRydWV9XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtpdGVtLmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICkpfVxuICAgICAgPC9TY3JvbGxiYXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */"),
|
|
42610
42617
|
x: true,
|
|
42611
|
-
children:
|
|
42612
|
-
|
|
42613
|
-
|
|
42614
|
-
|
|
42615
|
-
|
|
42616
|
-
|
|
42617
|
-
|
|
42618
|
-
|
|
42619
|
-
|
|
42620
|
-
|
|
42621
|
-
|
|
42622
|
-
|
|
42623
|
-
|
|
42624
|
-
|
|
42625
|
-
|
|
42626
|
-
|
|
42627
|
-
|
|
42628
|
-
|
|
42629
|
-
|
|
42630
|
-
|
|
42631
|
-
|
|
42632
|
-
|
|
42633
|
-
|
|
42634
|
-
|
|
42635
|
-
|
|
42636
|
-
|
|
42618
|
+
children: items == null ? void 0 : items.map(function (item, index) {
|
|
42619
|
+
var _item$legendItems;
|
|
42620
|
+
return jsx(Fragment, {
|
|
42621
|
+
children: (_item$legendItems = item.legendItems) == null ? void 0 : _item$legendItems.map(function (legendItem) {
|
|
42622
|
+
return keys[legendItem.yKey] && createElement$1(LegendItem, _extends({}, legendItem, {
|
|
42623
|
+
key: "legend-" + legendItem.yKey,
|
|
42624
|
+
yKeyFormatted: keys[legendItem.yKey].keyFormatted,
|
|
42625
|
+
onClick: function onClick() {
|
|
42626
|
+
return setVisibleYKeys && setVisibleYKeys(function (prev) {
|
|
42627
|
+
var newVisibleLegendItems = [];
|
|
42628
|
+
if (prev.length === item.legendItems.length) {
|
|
42629
|
+
newVisibleLegendItems = [legendItem.yKey];
|
|
42630
|
+
} else {
|
|
42631
|
+
if (prev.includes(legendItem.yKey)) {
|
|
42632
|
+
newVisibleLegendItems = prev.filter(function (prevLegendItemId) {
|
|
42633
|
+
return prevLegendItemId !== legendItem.yKey;
|
|
42634
|
+
});
|
|
42635
|
+
} else {
|
|
42636
|
+
newVisibleLegendItems = [].concat(prev, [legendItem.yKey]);
|
|
42637
|
+
}
|
|
42638
|
+
}
|
|
42639
|
+
return newVisibleLegendItems.length === 0 ? item.legendItems.map(function (legendItem) {
|
|
42640
|
+
return legendItem.yKey;
|
|
42641
|
+
}) : newVisibleLegendItems;
|
|
42642
|
+
});
|
|
42643
|
+
},
|
|
42644
|
+
visible: setVisibleYKeys ? item.visibleYKeys.includes(legendItem.yKey) : true,
|
|
42645
|
+
conditionalFormattingRules: item.conditionalFormattingRules
|
|
42646
|
+
}));
|
|
42647
|
+
})
|
|
42648
|
+
}, index);
|
|
42637
42649
|
})
|
|
42638
42650
|
})
|
|
42639
42651
|
});
|
|
@@ -42735,19 +42747,19 @@ var buildMargin = function buildMargin(yTicks, showYAxisLabels, hasYAxisTitle, h
|
|
|
42735
42747
|
};
|
|
42736
42748
|
};
|
|
42737
42749
|
|
|
42738
|
-
function useFlattenedData(xScaleKey, xScaleDataType,
|
|
42750
|
+
function useFlattenedData(xScaleKey, xScaleDataType, data, yKeys) {
|
|
42739
42751
|
return useMemo(function () {
|
|
42740
|
-
if (xScaleKey && xScaleDataType) {
|
|
42752
|
+
if (xScaleKey && xScaleDataType && yKeys.length > 0) {
|
|
42741
42753
|
return flattenData({
|
|
42742
|
-
data:
|
|
42754
|
+
data: data,
|
|
42743
42755
|
xScaleKey: xScaleKey,
|
|
42744
42756
|
xScaleDataType: xScaleDataType,
|
|
42745
|
-
yKeys:
|
|
42757
|
+
yKeys: yKeys
|
|
42746
42758
|
});
|
|
42747
42759
|
} else {
|
|
42748
42760
|
return [];
|
|
42749
42761
|
}
|
|
42750
|
-
}, [
|
|
42762
|
+
}, [data, xScaleKey, xScaleDataType, yKeys]);
|
|
42751
42763
|
}
|
|
42752
42764
|
|
|
42753
42765
|
var GoalLine = function GoalLine(_ref) {
|
|
@@ -43099,6 +43111,17 @@ function useTooltip$1(initialTooltipState) {
|
|
|
43099
43111
|
};
|
|
43100
43112
|
}
|
|
43101
43113
|
|
|
43114
|
+
function useYScale(innerHeight, scale) {
|
|
43115
|
+
return useMemo(function () {
|
|
43116
|
+
return scaleLinear({
|
|
43117
|
+
range: [innerHeight, 0],
|
|
43118
|
+
domain: scale.ordering === 'asc' ? [scale.min, scale.max] : [scale.max, scale.min],
|
|
43119
|
+
nice: true,
|
|
43120
|
+
round: true
|
|
43121
|
+
});
|
|
43122
|
+
}, [innerHeight, scale]);
|
|
43123
|
+
}
|
|
43124
|
+
|
|
43102
43125
|
var LineChart$5 = function LineChart(_ref) {
|
|
43103
43126
|
var _theme$axis;
|
|
43104
43127
|
var chart = _ref.chart,
|
|
@@ -43164,14 +43187,8 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
43164
43187
|
}
|
|
43165
43188
|
return null;
|
|
43166
43189
|
}, [innerWidth, chart.x, chart.data]);
|
|
43167
|
-
var _yScale =
|
|
43168
|
-
|
|
43169
|
-
range: [innerHeight, 0],
|
|
43170
|
-
domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
|
|
43171
|
-
nice: true
|
|
43172
|
-
});
|
|
43173
|
-
}, [innerHeight, chart.y]);
|
|
43174
|
-
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
43190
|
+
var _yScale = useYScale(innerHeight, chart.y.scale);
|
|
43191
|
+
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
|
|
43175
43192
|
var handleMouseMove = useCallback(function (event) {
|
|
43176
43193
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
43177
43194
|
var tooltipData = getTooltipData({
|
|
@@ -43198,6 +43215,11 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
43198
43215
|
var yTickValues = chart.y.ticks.map(function (tick) {
|
|
43199
43216
|
return Number(tick.value);
|
|
43200
43217
|
});
|
|
43218
|
+
var legendTooltipItems = [{
|
|
43219
|
+
legendItems: chart.lines,
|
|
43220
|
+
visibleYKeys: visibleYKeys,
|
|
43221
|
+
conditionalFormattingRules: chart.conditionalFormattingRules
|
|
43222
|
+
}];
|
|
43201
43223
|
return jsxs(React__default.Fragment, {
|
|
43202
43224
|
children: [jsxs(ChartWrapper$1, {
|
|
43203
43225
|
width: width,
|
|
@@ -43232,93 +43254,19 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
43232
43254
|
yScale: _yScale,
|
|
43233
43255
|
ticks: yTickValues,
|
|
43234
43256
|
stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
|
|
43235
|
-
}),
|
|
43236
|
-
children:
|
|
43237
|
-
|
|
43238
|
-
|
|
43239
|
-
|
|
43240
|
-
|
|
43241
|
-
|
|
43242
|
-
|
|
43243
|
-
|
|
43244
|
-
|
|
43245
|
-
|
|
43246
|
-
|
|
43247
|
-
|
|
43248
|
-
},
|
|
43249
|
-
y: function y(d) {
|
|
43250
|
-
return _yScale(Number(d[yKey]));
|
|
43251
|
-
},
|
|
43252
|
-
stroke: chart.lines.filter(function (legendItem) {
|
|
43253
|
-
return legendItem.yKey === yKey;
|
|
43254
|
-
})[0].color,
|
|
43255
|
-
strokeWidth: chart.lines.filter(function (legendItem) {
|
|
43256
|
-
return legendItem.yKey === yKey;
|
|
43257
|
-
})[0].style.strokeWidth,
|
|
43258
|
-
strokeLinecap: "round",
|
|
43259
|
-
strokeDasharray: (_chart$lines$filter$ = chart.lines.filter(function (legendItem) {
|
|
43260
|
-
return legendItem.yKey === yKey;
|
|
43261
|
-
})[0].style.strokeDasharray) != null ? _chart$lines$filter$ : undefined,
|
|
43262
|
-
shapeRendering: "smooth",
|
|
43263
|
-
defined: function defined(d) {
|
|
43264
|
-
return d[yKey] !== null;
|
|
43265
|
-
},
|
|
43266
|
-
curve: curve
|
|
43267
|
-
}, yKey);
|
|
43268
|
-
}), chart.conditionalFormattingRules.map(function (conditionalFormattingRule) {
|
|
43269
|
-
var _chart$lines$filter$2;
|
|
43270
|
-
if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
|
|
43271
|
-
var yKey = conditionalFormattingRule.yKey;
|
|
43272
|
-
var clipPathId = "clip-path-" + yKey + "-" + conditionalFormattingRule.value + "-" + conditionalFormattingRule.color + "-" + Math.random(); // Do not remove Math.random() - required to ensure unique clipPathId per view instance
|
|
43273
|
-
|
|
43274
|
-
var clipArea = getClipArea({
|
|
43275
|
-
conditionalFormattingRule: conditionalFormattingRule,
|
|
43276
|
-
chart: {
|
|
43277
|
-
width: innerWidth,
|
|
43278
|
-
height: innerHeight,
|
|
43279
|
-
yScale: _yScale
|
|
43280
|
-
}
|
|
43281
|
-
});
|
|
43282
|
-
|
|
43283
|
-
// return a new <LinePath /> for each conditional formatting rule with a matching <ReactClipPath /> to frame the part of the path that should be visible
|
|
43284
|
-
return jsxs(Group$2, {
|
|
43285
|
-
children: [jsx(LinePath, {
|
|
43286
|
-
clipPath: "url(#" + clipPathId + ")",
|
|
43287
|
-
visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
|
|
43288
|
-
data: dataFlattened,
|
|
43289
|
-
x: function x(d) {
|
|
43290
|
-
var _xScale2;
|
|
43291
|
-
// @ts-ignore
|
|
43292
|
-
var xValue = d[xScaleKey];
|
|
43293
|
-
var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
|
|
43294
|
-
// @ts-ignore
|
|
43295
|
-
return (_xScale2 = xScale(xValueAdjusted)) != null ? _xScale2 : 0;
|
|
43296
|
-
},
|
|
43297
|
-
y: function y(d) {
|
|
43298
|
-
return _yScale(Number(d[yKey]));
|
|
43299
|
-
},
|
|
43300
|
-
stroke: conditionalFormattingRule.color,
|
|
43301
|
-
strokeWidth: chart.lines.filter(function (legendItem) {
|
|
43302
|
-
return legendItem.yKey === yKey;
|
|
43303
|
-
})[0].style.strokeWidth,
|
|
43304
|
-
strokeLinecap: "round",
|
|
43305
|
-
strokeDasharray: (_chart$lines$filter$2 = chart.lines.filter(function (legendItem) {
|
|
43306
|
-
return legendItem.yKey === yKey;
|
|
43307
|
-
})[0].style.strokeDasharray) != null ? _chart$lines$filter$2 : undefined,
|
|
43308
|
-
shapeRendering: "smooth",
|
|
43309
|
-
defined: function defined(d) {
|
|
43310
|
-
return d[yKey] !== null;
|
|
43311
|
-
},
|
|
43312
|
-
curve: curve
|
|
43313
|
-
}, yKey), jsx(RectClipPath, {
|
|
43314
|
-
id: clipPathId,
|
|
43315
|
-
x: clipArea.x,
|
|
43316
|
-
y: clipArea.y,
|
|
43317
|
-
width: clipArea.width,
|
|
43318
|
-
height: clipArea.height
|
|
43319
|
-
})]
|
|
43320
|
-
}, clipPathId);
|
|
43321
|
-
})]
|
|
43257
|
+
}), jsx(Group$2, {
|
|
43258
|
+
children: xScaleKey !== null && jsx(Lines, {
|
|
43259
|
+
lines: chart.lines,
|
|
43260
|
+
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
43261
|
+
curve: curve,
|
|
43262
|
+
yKeys: chart.y.keys,
|
|
43263
|
+
visibleYKeys: visibleYKeys,
|
|
43264
|
+
data: dataFlattened,
|
|
43265
|
+
xScaleKey: xScaleKey,
|
|
43266
|
+
xScaleDataType: xScaleDataType,
|
|
43267
|
+
xScale: xScale,
|
|
43268
|
+
yScale: _yScale
|
|
43269
|
+
})
|
|
43322
43270
|
})]
|
|
43323
43271
|
}), tooltipData && jsxs("g", {
|
|
43324
43272
|
children: [jsx(Line, {
|
|
@@ -43350,27 +43298,117 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
43350
43298
|
width: innerWidth
|
|
43351
43299
|
})]
|
|
43352
43300
|
}), options.showLegend && jsx(Legend$1, {
|
|
43353
|
-
|
|
43354
|
-
visibleYKeys: visibleYKeys,
|
|
43301
|
+
items: legendTooltipItems,
|
|
43355
43302
|
setVisibleYKeys: setVisibleYKeys,
|
|
43356
43303
|
keys: chart.keys,
|
|
43357
|
-
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
43358
43304
|
marginLeft: margin.left - margin.leftTitleOffset
|
|
43359
43305
|
}), tooltipOpen && tooltipData && xKey && jsx(Tooltip$1, {
|
|
43306
|
+
items: legendTooltipItems,
|
|
43360
43307
|
tooltipData: tooltipData,
|
|
43361
43308
|
tooltipLeft: tooltipLeft,
|
|
43362
43309
|
tooltipTop: tooltipTop,
|
|
43363
43310
|
xKey: xKey,
|
|
43364
43311
|
keys: chart.keys,
|
|
43365
|
-
visibleYKeys: visibleYKeys,
|
|
43366
43312
|
yKeys: chart.y.keys,
|
|
43367
|
-
legendItems: chart.lines,
|
|
43368
43313
|
showRoundedTotal: options.showRoundedTotal,
|
|
43369
|
-
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
43370
43314
|
theme: themeCSS.popoverMenus
|
|
43371
43315
|
})]
|
|
43372
43316
|
});
|
|
43373
43317
|
};
|
|
43318
|
+
function Lines(_ref2) {
|
|
43319
|
+
var yKeys = _ref2.yKeys,
|
|
43320
|
+
visibleYKeys = _ref2.visibleYKeys,
|
|
43321
|
+
data = _ref2.data,
|
|
43322
|
+
xScaleKey = _ref2.xScaleKey,
|
|
43323
|
+
xScaleDataType = _ref2.xScaleDataType,
|
|
43324
|
+
xScale = _ref2.xScale,
|
|
43325
|
+
yScale = _ref2.yScale,
|
|
43326
|
+
lines = _ref2.lines,
|
|
43327
|
+
curve = _ref2.curve,
|
|
43328
|
+
conditionalFormattingRules = _ref2.conditionalFormattingRules;
|
|
43329
|
+
return jsxs(Fragment, {
|
|
43330
|
+
children: [yKeys.map(function (yKey) {
|
|
43331
|
+
var _lines$filter$0$style;
|
|
43332
|
+
return jsx(LinePath, {
|
|
43333
|
+
visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
|
|
43334
|
+
data: data,
|
|
43335
|
+
x: function x(d) {
|
|
43336
|
+
var _ref3;
|
|
43337
|
+
var xValue = d[xScaleKey];
|
|
43338
|
+
var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
|
|
43339
|
+
return (_ref3 = xScale(xValueAdjusted)) != null ? _ref3 : 0;
|
|
43340
|
+
},
|
|
43341
|
+
y: function y(d) {
|
|
43342
|
+
return yScale(d[yKey]);
|
|
43343
|
+
},
|
|
43344
|
+
stroke: lines.filter(function (legendItem) {
|
|
43345
|
+
return legendItem.yKey === yKey;
|
|
43346
|
+
})[0].color,
|
|
43347
|
+
strokeWidth: lines.filter(function (legendItem) {
|
|
43348
|
+
return legendItem.yKey === yKey;
|
|
43349
|
+
})[0].style.strokeWidth,
|
|
43350
|
+
strokeLinecap: "round",
|
|
43351
|
+
strokeDasharray: (_lines$filter$0$style = lines.filter(function (legendItem) {
|
|
43352
|
+
return legendItem.yKey === yKey;
|
|
43353
|
+
})[0].style.strokeDasharray) != null ? _lines$filter$0$style : undefined,
|
|
43354
|
+
shapeRendering: "smooth",
|
|
43355
|
+
defined: function defined(d) {
|
|
43356
|
+
return d[yKey] !== null;
|
|
43357
|
+
},
|
|
43358
|
+
curve: curve
|
|
43359
|
+
}, yKey);
|
|
43360
|
+
}), conditionalFormattingRules.map(function (conditionalFormattingRule) {
|
|
43361
|
+
var _lines$filter$0$style2;
|
|
43362
|
+
if (conditionalFormattingRule.operator !== '<=' && conditionalFormattingRule.operator !== '>=') return null;
|
|
43363
|
+
var yKey = conditionalFormattingRule.yKey;
|
|
43364
|
+
var clipPathId = "clip-path-" + yKey + "-" + conditionalFormattingRule.value + "-" + conditionalFormattingRule.color + "-" + Math.random(); // Do not remove Math.random() - required to ensure unique clipPathId per view instance
|
|
43365
|
+
|
|
43366
|
+
var clipArea = getClipArea({
|
|
43367
|
+
conditionalFormattingRule: conditionalFormattingRule,
|
|
43368
|
+
chart: {
|
|
43369
|
+
width: innerWidth,
|
|
43370
|
+
height: innerHeight,
|
|
43371
|
+
yScale: yScale
|
|
43372
|
+
}
|
|
43373
|
+
});
|
|
43374
|
+
return jsxs(Group$2, {
|
|
43375
|
+
children: [jsx(LinePath, {
|
|
43376
|
+
clipPath: "url(#" + clipPathId + ")",
|
|
43377
|
+
visibility: visibleYKeys.includes(yKey) ? 'visible' : 'hidden',
|
|
43378
|
+
data: data,
|
|
43379
|
+
x: function x(d) {
|
|
43380
|
+
var _ref4;
|
|
43381
|
+
var xValue = d[xScaleKey];
|
|
43382
|
+
var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
|
|
43383
|
+
return (_ref4 = xScale(xValueAdjusted)) != null ? _ref4 : 0;
|
|
43384
|
+
},
|
|
43385
|
+
y: function y(d) {
|
|
43386
|
+
return yScale(d[yKey]);
|
|
43387
|
+
},
|
|
43388
|
+
stroke: conditionalFormattingRule.color,
|
|
43389
|
+
strokeWidth: lines.filter(function (legendItem) {
|
|
43390
|
+
return legendItem.yKey === yKey;
|
|
43391
|
+
})[0].style.strokeWidth,
|
|
43392
|
+
strokeLinecap: "round",
|
|
43393
|
+
strokeDasharray: (_lines$filter$0$style2 = lines.filter(function (legendItem) {
|
|
43394
|
+
return legendItem.yKey === yKey;
|
|
43395
|
+
})[0].style.strokeDasharray) != null ? _lines$filter$0$style2 : undefined,
|
|
43396
|
+
shapeRendering: "smooth",
|
|
43397
|
+
defined: function defined(d) {
|
|
43398
|
+
return d[yKey] !== null;
|
|
43399
|
+
},
|
|
43400
|
+
curve: curve
|
|
43401
|
+
}, yKey), jsx(RectClipPath, {
|
|
43402
|
+
id: clipPathId,
|
|
43403
|
+
x: clipArea.x,
|
|
43404
|
+
y: clipArea.y,
|
|
43405
|
+
width: clipArea.width,
|
|
43406
|
+
height: clipArea.height
|
|
43407
|
+
})]
|
|
43408
|
+
}, clipPathId);
|
|
43409
|
+
})]
|
|
43410
|
+
});
|
|
43411
|
+
}
|
|
43374
43412
|
|
|
43375
43413
|
function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
|
|
43376
43414
|
var _bars$find;
|
|
@@ -43387,7 +43425,7 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
|
|
|
43387
43425
|
if (compare({
|
|
43388
43426
|
op: rule.operator,
|
|
43389
43427
|
value: rule.value
|
|
43390
|
-
}, value)) {
|
|
43428
|
+
}, value) && rule.yKey === barKey) {
|
|
43391
43429
|
fill = rule.color;
|
|
43392
43430
|
break;
|
|
43393
43431
|
}
|
|
@@ -43396,12 +43434,43 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
|
|
|
43396
43434
|
return fill;
|
|
43397
43435
|
}
|
|
43398
43436
|
|
|
43399
|
-
function _EMOTION_STRINGIFIED_CSS_ERROR__$9() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
43400
|
-
var BAR_RADIUS = 2;
|
|
43401
43437
|
var PADDING = {
|
|
43402
43438
|
paddingOuter: 0.05,
|
|
43403
43439
|
paddingInner: 0.3
|
|
43404
43440
|
};
|
|
43441
|
+
|
|
43442
|
+
function useBarXScale(xScaleDataType, innerWidth, xScaleKey, data) {
|
|
43443
|
+
return useMemo(function () {
|
|
43444
|
+
if (xScaleDataType === 'string') {
|
|
43445
|
+
return scaleBand(_extends({
|
|
43446
|
+
range: [0, innerWidth],
|
|
43447
|
+
domain: xScaleKey ? [].concat(data.map(function (d) {
|
|
43448
|
+
return d[xScaleKey] && d[xScaleKey].value !== null ? String(d[xScaleKey].value) : '';
|
|
43449
|
+
})) : []
|
|
43450
|
+
}, PADDING));
|
|
43451
|
+
}
|
|
43452
|
+
if (xScaleDataType === 'date_time' && xScaleKey) {
|
|
43453
|
+
return scaleBand(_extends({
|
|
43454
|
+
range: [0, innerWidth],
|
|
43455
|
+
domain: data.map(function (d) {
|
|
43456
|
+
return new Date(d[xScaleKey].value);
|
|
43457
|
+
})
|
|
43458
|
+
}, PADDING));
|
|
43459
|
+
}
|
|
43460
|
+
if (xScaleDataType === 'number' && xScaleKey) {
|
|
43461
|
+
return scaleBand(_extends({
|
|
43462
|
+
range: [0, innerWidth],
|
|
43463
|
+
domain: data.map(function (d) {
|
|
43464
|
+
return d[xScaleKey] && d[xScaleKey].value !== null ? Number(d[xScaleKey].value) : 0;
|
|
43465
|
+
})
|
|
43466
|
+
}, PADDING));
|
|
43467
|
+
}
|
|
43468
|
+
return null;
|
|
43469
|
+
}, [innerWidth, data]);
|
|
43470
|
+
}
|
|
43471
|
+
|
|
43472
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__$9() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
43473
|
+
var BAR_RADIUS = 2;
|
|
43405
43474
|
var BarChart$5 = function BarChart(_ref) {
|
|
43406
43475
|
var _theme$axis;
|
|
43407
43476
|
var chart = _ref.chart,
|
|
@@ -43432,41 +43501,8 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
43432
43501
|
var xScaleKey = chart.x.scale.key;
|
|
43433
43502
|
var yScaleKeys = chart.y.keys;
|
|
43434
43503
|
var xScaleDataType = chart.x.scale.dataType;
|
|
43435
|
-
var xScale =
|
|
43436
|
-
|
|
43437
|
-
return scaleBand(_extends({
|
|
43438
|
-
range: [0, innerWidth],
|
|
43439
|
-
domain: xScaleKey ? [].concat(chart.data.map(function (d) {
|
|
43440
|
-
return d[xScaleKey] && d[xScaleKey].value !== null ? String(d[xScaleKey].value) : '';
|
|
43441
|
-
})) : []
|
|
43442
|
-
}, PADDING));
|
|
43443
|
-
}
|
|
43444
|
-
if (xScaleDataType === 'date_time' && xScaleKey) {
|
|
43445
|
-
return scaleBand(_extends({
|
|
43446
|
-
range: [0, innerWidth],
|
|
43447
|
-
domain: chart.data.map(function (d) {
|
|
43448
|
-
return new Date(d[xScaleKey].value);
|
|
43449
|
-
})
|
|
43450
|
-
}, PADDING));
|
|
43451
|
-
}
|
|
43452
|
-
if (xScaleDataType === 'number' && xScaleKey) {
|
|
43453
|
-
return scaleBand(_extends({
|
|
43454
|
-
range: [0, innerWidth],
|
|
43455
|
-
domain: chart.data.map(function (d) {
|
|
43456
|
-
return d[xScaleKey] && d[xScaleKey].value !== null ? Number(d[xScaleKey].value) : 0;
|
|
43457
|
-
})
|
|
43458
|
-
}, PADDING));
|
|
43459
|
-
}
|
|
43460
|
-
return null;
|
|
43461
|
-
}, [innerWidth, chart.x, chart.data]);
|
|
43462
|
-
var yScale = useMemo(function () {
|
|
43463
|
-
return scaleLinear({
|
|
43464
|
-
range: [innerHeight, 0],
|
|
43465
|
-
domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
|
|
43466
|
-
nice: true,
|
|
43467
|
-
round: true
|
|
43468
|
-
});
|
|
43469
|
-
}, [innerHeight, chart.y]);
|
|
43504
|
+
var xScale = useBarXScale(xScaleDataType, innerWidth, xScaleKey, chart.data);
|
|
43505
|
+
var yScale = useYScale(innerHeight, chart.y.scale);
|
|
43470
43506
|
var innerXScale = useMemo(function () {
|
|
43471
43507
|
if (!options.stacked && xScale && 'bandwidth' in xScale) {
|
|
43472
43508
|
return scaleBand({
|
|
@@ -43477,7 +43513,7 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
43477
43513
|
}
|
|
43478
43514
|
return undefined;
|
|
43479
43515
|
}, [xScale, yScaleKeys, options.stacked, xScaleDataType]);
|
|
43480
|
-
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
43516
|
+
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
|
|
43481
43517
|
var handleMouseMove = useCallback(function (event) {
|
|
43482
43518
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
43483
43519
|
var tooltipData = getTooltipData({
|
|
@@ -43523,6 +43559,13 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
43523
43559
|
var yTickValues = chart.y.ticks.map(function (tick) {
|
|
43524
43560
|
return Number(tick.value);
|
|
43525
43561
|
});
|
|
43562
|
+
var legendTooltipItems = [{
|
|
43563
|
+
visibleYKeys: chart.bars.map(function (legendItem) {
|
|
43564
|
+
return legendItem.yKey;
|
|
43565
|
+
}),
|
|
43566
|
+
legendItems: chart.bars,
|
|
43567
|
+
conditionalFormattingRules: chart.conditionalFormattingRules
|
|
43568
|
+
}];
|
|
43526
43569
|
return jsxs(Fragment, {
|
|
43527
43570
|
children: [jsxs(ChartWrapper$1, {
|
|
43528
43571
|
width: width,
|
|
@@ -43558,57 +43601,25 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
43558
43601
|
ticks: yTickValues,
|
|
43559
43602
|
stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
|
|
43560
43603
|
}), jsxs(Group$2, {
|
|
43561
|
-
children: [!options.stacked && jsx(BarGroup
|
|
43604
|
+
children: [!options.stacked && jsx(BarGroup, {
|
|
43562
43605
|
data: dataFlattened,
|
|
43563
43606
|
keys: yScaleKeys,
|
|
43564
43607
|
height: innerHeight,
|
|
43565
|
-
|
|
43566
|
-
|
|
43567
|
-
|
|
43568
|
-
|
|
43569
|
-
var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
|
|
43570
|
-
// @ts-ignore
|
|
43571
|
-
return xValueAdjusted;
|
|
43572
|
-
}
|
|
43573
|
-
// @ts-ignore
|
|
43574
|
-
,
|
|
43575
|
-
x0Scale: xScale
|
|
43576
|
-
// @ts-ignore
|
|
43577
|
-
,
|
|
43578
|
-
x1Scale: innerXScale,
|
|
43608
|
+
xKey: xKey,
|
|
43609
|
+
xScaleDataType: xScaleDataType,
|
|
43610
|
+
xScale: xScale,
|
|
43611
|
+
innerXScale: innerXScale,
|
|
43579
43612
|
yScale: yScale,
|
|
43580
|
-
|
|
43581
|
-
|
|
43582
|
-
|
|
43583
|
-
|
|
43584
|
-
return barGroups.map(function (barGroup) {
|
|
43585
|
-
return jsx(Group$2, {
|
|
43586
|
-
left: barGroup.x0,
|
|
43587
|
-
children: barGroup.bars.map(function (bar) {
|
|
43588
|
-
if (bar.value === null) return null;
|
|
43589
|
-
if (bar.height < 0 || bar.width < 0) return null;
|
|
43590
|
-
return jsx(Bar, {
|
|
43591
|
-
x: bar.x,
|
|
43592
|
-
y: bar.y,
|
|
43593
|
-
width: bar.width,
|
|
43594
|
-
height: bar.height,
|
|
43595
|
-
fill: getBarFill(chart.bars, chart.conditionalFormattingRules, bar.key, bar.value),
|
|
43596
|
-
onClick: function onClick(e) {
|
|
43597
|
-
return handleOnBarClick(e, barGroup, bar);
|
|
43598
|
-
},
|
|
43599
|
-
enableHover: enableHover
|
|
43600
|
-
}, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key);
|
|
43601
|
-
})
|
|
43602
|
-
}, "bar-group-" + barGroup.index + "-" + barGroup.x0);
|
|
43603
|
-
});
|
|
43604
|
-
}
|
|
43613
|
+
onClick: handleOnBarClick,
|
|
43614
|
+
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
43615
|
+
bars: chart.bars,
|
|
43616
|
+
enableHover: enableHover
|
|
43605
43617
|
}), options.stacked && jsx(BarStack$1, {
|
|
43606
43618
|
x: function x(d) {
|
|
43607
43619
|
// @ts-ignore
|
|
43608
43620
|
var xValue = d[xScaleKey];
|
|
43609
43621
|
if (xScaleDataType === 'string') return xValue;
|
|
43610
43622
|
var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(xValue) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
|
|
43611
|
-
// @ts-ignore
|
|
43612
43623
|
return xValueAdjusted;
|
|
43613
43624
|
}
|
|
43614
43625
|
// @ts-ignore
|
|
@@ -43656,31 +43667,79 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
43656
43667
|
width: innerWidth
|
|
43657
43668
|
})]
|
|
43658
43669
|
}), options.showLegend && jsx(Legend$1, {
|
|
43659
|
-
|
|
43660
|
-
visibleYKeys: chart.bars.map(function (legendItem) {
|
|
43661
|
-
return legendItem.yKey;
|
|
43662
|
-
}),
|
|
43670
|
+
items: legendTooltipItems,
|
|
43663
43671
|
setVisibleYKeys: function setVisibleYKeys() {},
|
|
43664
43672
|
keys: chart.keys,
|
|
43665
|
-
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
43666
43673
|
marginLeft: margin.left - margin.leftTitleOffset
|
|
43667
43674
|
}), tooltipOpen && tooltipData && xKey && jsx(Tooltip$1, {
|
|
43675
|
+
items: legendTooltipItems,
|
|
43668
43676
|
tooltipData: tooltipData,
|
|
43669
43677
|
tooltipLeft: tooltipLeft,
|
|
43670
43678
|
tooltipTop: tooltipTop,
|
|
43671
43679
|
xKey: xKey,
|
|
43672
43680
|
keys: chart.keys,
|
|
43673
|
-
visibleYKeys: chart.bars.map(function (legendItem) {
|
|
43674
|
-
return legendItem.yKey;
|
|
43675
|
-
}),
|
|
43676
43681
|
yKeys: chart.y.keys,
|
|
43677
|
-
legendItems: chart.bars,
|
|
43678
43682
|
showRoundedTotal: options.showRoundedTotal,
|
|
43679
|
-
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
43680
43683
|
theme: themeCSS.popoverMenus
|
|
43681
43684
|
})]
|
|
43682
43685
|
});
|
|
43683
43686
|
};
|
|
43687
|
+
function BarGroup(_ref2) {
|
|
43688
|
+
var data = _ref2.data,
|
|
43689
|
+
keys = _ref2.keys,
|
|
43690
|
+
height = _ref2.height,
|
|
43691
|
+
xKey = _ref2.xKey,
|
|
43692
|
+
xScaleDataType = _ref2.xScaleDataType,
|
|
43693
|
+
xScale = _ref2.xScale,
|
|
43694
|
+
innerXScale = _ref2.innerXScale,
|
|
43695
|
+
yScale = _ref2.yScale,
|
|
43696
|
+
_onClick = _ref2.onClick,
|
|
43697
|
+
conditionalFormattingRules = _ref2.conditionalFormattingRules,
|
|
43698
|
+
bars = _ref2.bars,
|
|
43699
|
+
enableHover = _ref2.enableHover;
|
|
43700
|
+
return jsx(BarGroup$2, {
|
|
43701
|
+
data: data,
|
|
43702
|
+
keys: keys,
|
|
43703
|
+
height: height,
|
|
43704
|
+
x0: function x0(d) {
|
|
43705
|
+
var xValue = d[xKey];
|
|
43706
|
+
if (xScaleDataType === 'string') return String(xValue);
|
|
43707
|
+
var xValueAdjusted = xScaleDataType === 'date_time' ? new Date(String(xValue)) : xScaleDataType === 'number' ? Number(xValue) : String(xValue);
|
|
43708
|
+
return xValueAdjusted;
|
|
43709
|
+
}
|
|
43710
|
+
// @ts-ignore
|
|
43711
|
+
,
|
|
43712
|
+
x0Scale: xScale
|
|
43713
|
+
// @ts-ignore
|
|
43714
|
+
,
|
|
43715
|
+
x1Scale: innerXScale,
|
|
43716
|
+
yScale: yScale,
|
|
43717
|
+
color: function color() {
|
|
43718
|
+
return '';
|
|
43719
|
+
},
|
|
43720
|
+
children: function children(barGroups) {
|
|
43721
|
+
return barGroups.map(function (barGroup) {
|
|
43722
|
+
return jsx(Group$2, {
|
|
43723
|
+
left: barGroup.x0,
|
|
43724
|
+
children: barGroup.bars.map(function (bar) {
|
|
43725
|
+
if (bar.value === null || bar.height < 0 || bar.width < 0) return null;
|
|
43726
|
+
return jsx(Bar, {
|
|
43727
|
+
x: bar.x,
|
|
43728
|
+
y: bar.y,
|
|
43729
|
+
width: bar.width,
|
|
43730
|
+
height: bar.height,
|
|
43731
|
+
fill: getBarFill(bars, conditionalFormattingRules, String(bar.key), bar.value),
|
|
43732
|
+
onClick: function onClick(e) {
|
|
43733
|
+
return _onClick(e, barGroup, bar);
|
|
43734
|
+
},
|
|
43735
|
+
enableHover: enableHover
|
|
43736
|
+
}, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + String(bar.key));
|
|
43737
|
+
})
|
|
43738
|
+
}, "bar-group-" + barGroup.index + "-" + barGroup.x0);
|
|
43739
|
+
});
|
|
43740
|
+
}
|
|
43741
|
+
});
|
|
43742
|
+
}
|
|
43684
43743
|
var Bar = function Bar(props) {
|
|
43685
43744
|
var _useState = useState(props.fill),
|
|
43686
43745
|
fillColor = _useState[0],
|
|
@@ -43705,7 +43764,7 @@ var Bar = function Bar(props) {
|
|
|
43705
43764
|
} : {
|
|
43706
43765
|
name: "4nk3o1-Bar",
|
|
43707
43766
|
styles: "cursor:pointer;label:Bar;",
|
|
43708
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwWXFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24gfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnQHZpc3gvZ3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRUaGVtZUNTUywgZ2V0VG9vbHRpcERhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGcmFnbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uL1Rvb2x0aXAnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vTGVnZW5kJztcbmltcG9ydCB7IEJhckdyb3VwLCBCYXJTdGFjayB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9GaWVsZC90eXBlcyc7XG5pbXBvcnQgeyBzY2FsZUxpbmVhciwgc2NhbGVCYW5kIH0gZnJvbSAnQHZpc3gvc2NhbGUnO1xuaW1wb3J0IHsgZ2V0QmFyRmlsbCB9IGZyb20gJy4vZ2V0QmFyRmlsbCc7XG5pbXBvcnQgeyBidWlsZE1hcmdpbiB9IGZyb20gJy4uLy4uL3V0aWxzL2J1aWxkTWFyZ2luJztcbmltcG9ydCB7IENoYXJ0T25WaWV3Q2xpY2ssIENoYXJ0RGF0YURlZmluaXRpb24sIERhdGFJdGVtIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBsaWdodGVuQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29sb3IuZnVuY3Rpb25zJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJHcm91cEJhciwgQmFyR3JvdXAgYXMgQmFyR3JvdXBUeXBlIH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IHVzZUZsYXR0ZW5lZERhdGEgfSBmcm9tICcuLi9ob29rcy91c2VGbGF0dGVuZWREYXRhJztcbmltcG9ydCBHb2FsTGluZXMgZnJvbSAnLi4vR29hbExpbmUvR29hbExpbmVzJztcbmltcG9ydCB7IEF4aXNCb3R0b20gfSBmcm9tICcuLi9BeGlzL0F4aXNCb3R0b20nO1xuaW1wb3J0IHsgQXhpc0xlZnQgfSBmcm9tICcuLi9BeGlzL0F4aXNMZWZ0JztcbmltcG9ydCB7IEdyaWRSb3dzIH0gZnJvbSAnLi4vR3JpZFJvd3MvR3JpZFJvd3MnO1xuaW1wb3J0IHsgQ2hhcnRXcmFwcGVyIH0gZnJvbSAnLi4vQ2hhcnRXcmFwcGVyL0NoYXJ0V3JhcHBlcic7XG5pbXBvcnQgeyBMaW5lIH0gZnJvbSAnLi4vVG9vbHRpcC9MaW5lJztcbmltcG9ydCB1c2VUb29sdGlwIGZyb20gJy4uL2hvb2tzL3VzZVRvb2x0aXAnO1xuXG4vLyBOZWVkIHRvIGxvb2sgYXQgdXBkYXRpbmcgQmFyQ2hhcnQgdG8gdXNlIHRoaXMgdHlwZSBtZXRob2Qgb2YgcmVuZGVyaW5nIC0gaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9wL3NhbmRib3gvdmlzeC1iYXItY2hhcnQtajlzbXBqP2ZpbGU9JTJGRXhhbXBsZS50c3hcbi8vIEN1cnJlbnRseSBpdCdzIHVzaW5nIFN0YWNrZWQgQ2hhcnQgd2hpY2ggaXNuJ3QgdGVjaG5pY2FsbHkgY29ycmVjdFxuXG5leHBvcnQgdHlwZSBCYXJDaGFydFByb3BzID0ge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdGhlbWU/OiBDaGFydFRoZW1lO1xuICBjaGFydDogQmFyQ2hhcnRSZXByZXNlbnRhdGlvbjtcbiAgb3B0aW9uczoge1xuICAgIHN0YWNrZWQ6IGJvb2xlYW47XG4gICAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgICBzaG93TGVnZW5kOiBib29sZWFuO1xuICAgIHJlbW92ZVN0cm9rZTogYm9vbGVhbjtcbiAgICBheGlzOiB7XG4gICAgICBzaG93WEF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgICBzaG93WUF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgb25DbGljazogKHBhcmFtczogQ2hhcnRPblZpZXdDbGljaykgPT4gdm9pZDtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufTtcblxuY29uc3QgQkFSX1JBRElVUyA9IDI7XG5cbmNvbnN0IFBBRERJTkcgPSB7XG4gIHBhZGRpbmdPdXRlcjogMC4wNSxcbiAgcGFkZGluZ0lubmVyOiAwLjMsXG59O1xuXG5leHBvcnQgY29uc3QgQmFyQ2hhcnQgPSAoeyBjaGFydCwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucywgdGhlbWUsIG9uQ2xpY2ssIGVuYWJsZUhvdmVyIH06IEJhckNoYXJ0UHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIHRvb2x0aXBPcGVuLFxuICAgIHRvb2x0aXBMZWZ0ID0gMCxcbiAgICB0b29sdGlwVG9wID0gMCxcbiAgICBsaW5lTGVmdCA9IDAsXG4gICAgdG9vbHRpcERhdGEsXG4gICAgaGlkZVRvb2x0aXAsXG4gICAgc2hvd1Rvb2x0aXAsXG4gIH0gPSB1c2VUb29sdGlwPHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9IHwgbnVsbD4oKTtcblxuICBjb25zdCBtYXJnaW4gPSBidWlsZE1hcmdpbihjaGFydC55LnRpY2tzLCBvcHRpb25zLmF4aXMuc2hvd1lBeGlzTGFiZWxzLCBjaGFydC55LnRpdGxlICE9IG51bGwsIGNoYXJ0LngudGl0bGUgIT0gbnVsbCk7XG5cbiAgLy8gY29uc3QgW3Zpc2libGVZS2V5cywgc2V0VmlzaWJsZVlLZXlzXSA9IHVzZVN0YXRlKGNoYXJ0LmJhcnMubWFwKChsZWdlbmRJdGVtKSA9PiBsZWdlbmRJdGVtLnlLZXkpKTtcblxuICBjb25zdCBpbm5lcldpZHRoID0gd2lkdGggLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgY29uc3QgaW5uZXJIZWlnaHQgPSBoZWlnaHQgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIChvcHRpb25zLnNob3dMZWdlbmQgPyA0MCA6IDApO1xuICBjb25zdCB4S2V5ID0gY2hhcnQueC5rZXk7XG4gIGNvbnN0IHhTY2FsZUtleSA9IGNoYXJ0Lnguc2NhbGUua2V5O1xuICBjb25zdCB5U2NhbGVLZXlzID0gY2hhcnQueS5rZXlzO1xuICBjb25zdCB4U2NhbGVEYXRhVHlwZTogRGF0YVR5cGUgPSBjaGFydC54LnNjYWxlLmRhdGFUeXBlO1xuXG4gIGNvbnN0IHhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogeFNjYWxlS2V5XG4gICAgICAgICAgPyBbLi4uY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IFN0cmluZyhkW3hTY2FsZUtleV0udmFsdWUpIDogJycpKV1cbiAgICAgICAgICA6IFtdLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8RGF0ZT4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IGNoYXJ0LmRhdGEubWFwKGQgPT4gbmV3IERhdGUoZFt4U2NhbGVLZXldLnZhbHVlIGFzIHN0cmluZykpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IE51bWJlcihkW3hTY2FsZUtleV0udmFsdWUpIDogMCkpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtpbm5lcldpZHRoLCBjaGFydC54LCBjaGFydC5kYXRhXSk7XG5cbiAgY29uc3QgeVNjYWxlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgc2NhbGVMaW5lYXI8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbaW5uZXJIZWlnaHQsIDBdLFxuICAgICAgICBkb21haW46XG4gICAgICAgICAgY2hhcnQueS5zY2FsZS5vcmRlcmluZyA9PT0gJ2FzYydcbiAgICAgICAgICAgID8gW2NoYXJ0Lnkuc2NhbGUubWluIGFzIG51bWJlciwgY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgOiBbY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyLCBjaGFydC55LnNjYWxlLm1pbiBhcyBudW1iZXJdLFxuICAgICAgICBuaWNlOiB0cnVlLFxuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIFtpbm5lckhlaWdodCwgY2hhcnQueV1cbiAgKTtcblxuICBjb25zdCBpbm5lclhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3B0aW9ucy5zdGFja2VkICYmIHhTY2FsZSAmJiAnYmFuZHdpZHRoJyBpbiB4U2NhbGUpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgeFNjYWxlPy5iYW5kd2lkdGgoKV0sXG4gICAgICAgIGRvbWFpbjogeVNjYWxlS2V5cyxcbiAgICAgICAgcGFkZGluZzogMC4xLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSwgW3hTY2FsZSwgeVNjYWxlS2V5cywgb3B0aW9ucy5zdGFja2VkLCB4U2NhbGVEYXRhVHlwZV0pO1xuXG4gIGNvbnN0IGRhdGFGbGF0dGVuZWQgPSB1c2VGbGF0dGVuZWREYXRhPEJhckNoYXJ0UmVwcmVzZW50YXRpb24sIENoYXJ0RGF0YURlZmluaXRpb24+KHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0KTtcblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICgheEtleSB8fCAheFNjYWxlS2V5IHx8IHhTY2FsZSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB0b29sdGlwRGF0YSA9IGdldFRvb2x0aXBEYXRhKHtcbiAgICAgICAgZGF0YTogY2hhcnQuZGF0YSxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG1hcmdpbixcbiAgICAgICAgeFNjYWxlS2V5LFxuICAgICAgICB4U2NhbGVEYXRhVHlwZSxcbiAgICAgICAgeE9yZGVyaW5nOiBjaGFydC54LnNjYWxlLm9yZGVyaW5nLFxuICAgICAgICB4U2NhbGUsXG4gICAgICAgIGNoYXJ0VHlwZTogJ2JhcicsXG4gICAgICB9KTtcblxuICAgICAgc2hvd1Rvb2x0aXAoe1xuICAgICAgICBsaW5lTGVmdDogdG9vbHRpcERhdGE/LmxpbmVMZWZ0LFxuICAgICAgICB0b29sdGlwTGVmdDogZXZlbnQucGFnZVgsXG4gICAgICAgIHRvb2x0aXBUb3A6IGV2ZW50LnBhZ2VZLFxuICAgICAgICB0b29sdGlwRGF0YTogdG9vbHRpcERhdGE/LnRvb2x0aXBEYXRhLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbc2hvd1Rvb2x0aXAsIHhTY2FsZSwgbWFyZ2luLCB4S2V5LCB4U2NhbGVLZXksIHhTY2FsZURhdGFUeXBlLCBjaGFydC54LnNjYWxlLm9yZGVyaW5nLCBjaGFydC5kYXRhXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlTGVhdmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaGlkZVRvb2x0aXAoKTtcbiAgfSwgW2hpZGVUb29sdGlwXSk7XG5cbiAgY29uc3QgaGFuZGxlT25CYXJDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4sIGJhckdyb3VwOiBCYXJHcm91cFR5cGU8c3RyaW5nPiwgYmFyOiBCYXJHcm91cEJhcjxzdHJpbmc+KSA9PiB7XG4gICAgICBvbkNsaWNrKHtcbiAgICAgICAgY2xpY2tlZFZhbHVlOiB7XG4gICAgICAgICAgaW5kZXg6IGJhckdyb3VwLmluZGV4LFxuICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgIGtleTogYmFyLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBiYXIudmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAuLi5jaGFydC54LnRpY2tzW2Jhckdyb3VwLmluZGV4XSxcbiAgICAgICAgICAgIHZhbHVlOiBjaGFydC5kYXRhW2Jhckdyb3VwLmluZGV4XVt4S2V5XS52YWx1ZSA/PyAnJyxcbiAgICAgICAgICAgIGtleTogeEtleSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjbGlja0V2ZW50OiBldmVudCxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW29uQ2xpY2ssIGNoYXJ0LmRhdGEsIHhLZXldXG4gICk7XG5cbiAgY29uc3QgdGhlbWVDU1MgPSB1c2VNZW1vKCgpID0+IGdldENoYXJ0VGhlbWVDU1ModGhlbWUpLCBbdGhlbWVdKTtcblxuICBjb25zdCB5VGlja1ZhbHVlcyA9IGNoYXJ0LnkudGlja3MubWFwKHRpY2sgPT4gTnVtYmVyKHRpY2sudmFsdWUpKTtcblxuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIHsvKiB3aWR0aC9oZWlnaHQgMTAwJSByZXF1aXJlZCBvciB1c2VQYXJlbnRTaXplKCkgY29udGludW91c2x5IHNjYWxlcyBhcyBwYXJlbnQgZWxlbWVudCBoYXMgbm8gc3BlY2lmaWVkIGhlaWdodCAqL31cbiAgICAgIDxDaGFydFdyYXBwZXJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgb25Nb3VzZU1vdmU9e2hhbmRsZU1vdXNlTW92ZX1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVNb3VzZUxlYXZlfVxuICAgICAgICBzaG93TGVnZW5kPXtvcHRpb25zLnNob3dMZWdlbmR9XG4gICAgICA+XG4gICAgICAgIDxHcm91cCBsZWZ0PXttYXJnaW4ubGVmdH0gdG9wPXttYXJnaW4udG9wfT5cbiAgICAgICAgICA8R3JpZFJvd3NcbiAgICAgICAgICAgIHRpY2tzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgd2lkdGg9e2lubmVyV2lkdGh9XG4gICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgcmVtb3ZlU3Ryb2tlPXtvcHRpb25zLnJlbW92ZVN0cm9rZX1cbiAgICAgICAgICAgIHRoZW1lQ1NTPXt0aGVtZUNTU31cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxBeGlzQm90dG9tXG4gICAgICAgICAgICB4PXtjaGFydC54fVxuICAgICAgICAgICAgbWFyZ2luPXttYXJnaW59XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgICBzaG93PXtvcHRpb25zLmF4aXMuc2hvd1hBeGlzTGFiZWxzfVxuICAgICAgICAgICAgcmVtb3ZlU3Ryb2tlPXtvcHRpb25zLnJlbW92ZVN0cm9rZX1cbiAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlPXt4U2NhbGVEYXRhVHlwZX1cbiAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxBeGlzTGVmdFxuICAgICAgICAgICAgc2hvdz17b3B0aW9ucy5heGlzLnNob3dZQXhpc0xhYmVsc31cbiAgICAgICAgICAgIHk9e2NoYXJ0Lnl9XG4gICAgICAgICAgICBtYXJnaW49e21hcmdpbn1cbiAgICAgICAgICAgIHRoZW1lQ1NTPXt0aGVtZUNTU31cbiAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgdGlja3M9e3lUaWNrVmFsdWVzfVxuICAgICAgICAgICAgc3Ryb2tlPXt0aGVtZT8uYXhpcz8uc3Ryb2tlfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgeyFvcHRpb25zLnN0YWNrZWQgJiYgKFxuICAgICAgICAgICAgICA8QmFyR3JvdXBcbiAgICAgICAgICAgICAgICBkYXRhPXtkYXRhRmxhdHRlbmVkfVxuICAgICAgICAgICAgICAgIGtleXM9e3lTY2FsZUtleXN9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAgICAgICB4MD17ZCA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWUgPSBkW3hTY2FsZUtleV07XG5cbiAgICAgICAgICAgICAgICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHJldHVybiB4VmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHhWYWx1ZUFkanVzdGVkID1cbiAgICAgICAgICAgICAgICAgICAgeFNjYWxlRGF0YVR5cGUgPT09ICdkYXRlX3RpbWUnXG4gICAgICAgICAgICAgICAgICAgICAgPyBuZXcgRGF0ZSh4VmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgOiB4U2NhbGVEYXRhVHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgICA/IE51bWJlcih4VmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmcoeFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgIHJldHVybiB4VmFsdWVBZGp1c3RlZDtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB4MFNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHgxU2NhbGU9e2lubmVyWFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYXJHcm91cHMgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhckdyb3Vwcy5tYXAoYmFyR3JvdXAgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAgICAgICAgICAgIHtiYXJHcm91cC5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci52YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFyLmhlaWdodCA8IDAgfHwgYmFyLndpZHRoIDwgMCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLWdyb3VwLWJhci0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhci5pbmRleH0tJHtiYXIudmFsdWV9LSR7YmFyLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg9e2Jhci54fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk9e2Jhci55fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtiYXIuaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoY2hhcnQuYmFycywgY2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIGJhci5rZXksIGJhci52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiBoYW5kbGVPbkJhckNsaWNrKGUsIGJhckdyb3VwLCBiYXIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUhvdmVyPXtlbmFibGVIb3Zlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L0Jhckdyb3VwPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgey8qIEhvdyB0byB3ZSBnZXQgJ3NjYWxlVmFsdWUnIGhlcmU/IFdpbGwgd2UgbmVlZCB0byBzdGFydCBzdG9yaW5nIHNjYWxlS2V5IGFzIHdlbGwgYXMgeEtleT8gKi99XG4gICAgICAgICAgICB7b3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhclN0YWNrXG4gICAgICAgICAgICAgICAgeD17ZCA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWUgPSBkW3hTY2FsZUtleV07XG4gICAgICAgICAgICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4geFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWVBZGp1c3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICByZXR1cm4geFZhbHVlQWRqdXN0ZWQ7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgeFNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgICAgeVNjYWxlPXt5U2NhbGV9XG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXtjaGFydC55LmtleXN9XG4gICAgICAgICAgICAgICAgY29sb3I9eygpID0+ICcnfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgd2lkdGg9e2lubmVyV2lkdGh9XG4gICAgICAgICAgICAgICAgb2Zmc2V0PVwibm9uZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFyU3RhY2tzID0+XG4gICAgICAgICAgICAgICAgICBiYXJTdGFja3MubWFwKGJhclN0YWNrID0+XG4gICAgICAgICAgICAgICAgICAgIGJhclN0YWNrLmJhcnMubWFwKGJhciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci5oZWlnaHQgPCAzKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCQVJfUEFERElORyA9IDEuNTtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLXN0YWNrLSR7YmFyU3RhY2suaW5kZXh9LSR7YmFyLmluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHg9e2Jhci54fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e2Jhci53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtiYXIuaGVpZ2h0IC0gQkFSX1BBRERJTkd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoY2hhcnQuYmFycywgY2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIGJhci5rZXksIGJhci5iYXIuZGF0YSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJ4PXtCQVJfUkFESVVTfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9CYXJTdGFjaz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgey8qIC0tLS0tIFRPT0xUSVAgQ1JPU1NIQUlSIC0tLS0tICovfVxuICAgICAgICB7dG9vbHRpcERhdGEgJiYgKFxuICAgICAgICAgIDxnPlxuICAgICAgICAgICAgPExpbmUgeD17bGluZUxlZnR9IG1hcmdpbj17bWFyZ2lufSBoZWlnaHQ9e2lubmVySGVpZ2h0fSAvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgKX1cbiAgICAgICAgey8qIC0tLS0tIEdPQUwgTElORVMgLS0tLS0tICovfVxuICAgICAgICA8R29hbExpbmVzIGdvYWxMaW5lcz17Y2hhcnQuZ29hbExpbmVzfSB5PXtkID0+IHlTY2FsZShkKX0gbWFyZ2luPXttYXJnaW59IHdpZHRoPXtpbm5lcldpZHRofSAvPlxuICAgICAgPC9DaGFydFdyYXBwZXI+XG4gICAgICB7LyogLS0tLS0gTEVHRU5EIC0tLS0tICovfVxuICAgICAge29wdGlvbnMuc2hvd0xlZ2VuZCAmJiAoXG4gICAgICAgIDxMZWdlbmRcbiAgICAgICAgICBsZWdlbmRJdGVtcz17Y2hhcnQuYmFyc31cbiAgICAgICAgICB2aXNpYmxlWUtleXM9e2NoYXJ0LmJhcnMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KX1cbiAgICAgICAgICBzZXRWaXNpYmxlWUtleXM9eygpID0+IHt9fVxuICAgICAgICAgIGtleXM9e2NoYXJ0LmtleXN9XG4gICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgIG1hcmdpbkxlZnQ9e21hcmdpbi5sZWZ0IC0gbWFyZ2luLmxlZnRUaXRsZU9mZnNldH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7LyogLS0tLS0gVE9PTFRJUCAtLS0tLSAqL31cbiAgICAgIHt0b29sdGlwT3BlbiAmJiB0b29sdGlwRGF0YSAmJiB4S2V5ICYmIChcbiAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICB0b29sdGlwRGF0YT17dG9vbHRpcERhdGF9XG4gICAgICAgICAgdG9vbHRpcExlZnQ9e3Rvb2x0aXBMZWZ0fVxuICAgICAgICAgIHRvb2x0aXBUb3A9e3Rvb2x0aXBUb3B9XG4gICAgICAgICAgeEtleT17eEtleX1cbiAgICAgICAgICBrZXlzPXtjaGFydC5rZXlzfVxuICAgICAgICAgIHZpc2libGVZS2V5cz17Y2hhcnQuYmFycy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpfVxuICAgICAgICAgIHlLZXlzPXtjaGFydC55LmtleXN9XG4gICAgICAgICAgbGVnZW5kSXRlbXM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgc2hvd1JvdW5kZWRUb3RhbD17b3B0aW9ucy5zaG93Um91bmRlZFRvdGFsfVxuICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjaGFydC5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICB0aGVtZT17dGhlbWVDU1MucG9wb3Zlck1lbnVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxuY29uc3QgQmFyID0gKHByb3BzOiB7XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgZmlsbD86IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBrZXk6IHN0cmluZztcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufSkgPT4ge1xuICBjb25zdCBbZmlsbENvbG9yLCBzZXRGaWxsQ29sb3JdID0gdXNlU3RhdGUocHJvcHMuZmlsbCk7XG4gIHJldHVybiAoXG4gICAgPHJlY3RcbiAgICAgIGtleT17cHJvcHMua2V5fVxuICAgICAgeD17cHJvcHMueH1cbiAgICAgIHk9e3Byb3BzLnl9XG4gICAgICB3aWR0aD17cHJvcHMud2lkdGh9XG4gICAgICBoZWlnaHQ9e3Byb3BzLmhlaWdodH1cbiAgICAgIGZpbGw9e2ZpbGxDb2xvcn1cbiAgICAgIHJ4PXtCQVJfUkFESVVTfVxuICAgICAgb25DbGljaz17cHJvcHMub25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gcHJvcHMuZW5hYmxlSG92ZXIgJiYgc2V0RmlsbENvbG9yKGxpZ2h0ZW5Db2xvcihwcm9wcy5maWxsLCAwLjgpKX1cbiAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gcHJvcHMuZW5hYmxlSG92ZXIgJiYgc2V0RmlsbENvbG9yKHByb3BzLmZpbGwpfVxuICAgICAgY2xhc3NOYW1lPXtwcm9wcy5lbmFibGVIb3ZlciA/IGNzcyh7IGN1cnNvcjogJ3BvaW50ZXInIH0pIDogJyd9XG4gICAgLz5cbiAgKTtcbn07XG4iXX0= */",
|
|
43767
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4WXFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24sIEJhclN0eWxlcyB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQmFyQ2hhcnRWMi90eXBlcyc7XG5pbXBvcnQgeyBDaGFydFRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tICdAdmlzeC9ncm91cCc7XG5pbXBvcnQgeyBnZXRDaGFydFRoZW1lQ1NTLCBnZXRUb29sdGlwRGF0YSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcCc7XG5pbXBvcnQgeyBMZWdlbmQgfSBmcm9tICcuLi9MZWdlbmQnO1xuaW1wb3J0IHsgQmFyR3JvdXAgYXMgVmlzeEJhckdyb3VwLCBCYXJTdGFjayB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9GaWVsZC90eXBlcyc7XG5pbXBvcnQgeyBzY2FsZUJhbmQgfSBmcm9tICdAdmlzeC9zY2FsZSc7XG5pbXBvcnQgeyBnZXRCYXJGaWxsIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0QmFyRmlsbCc7XG5pbXBvcnQgeyBidWlsZE1hcmdpbiB9IGZyb20gJy4uLy4uL3V0aWxzL2J1aWxkTWFyZ2luJztcbmltcG9ydCB7XG4gIENoYXJ0RGF0YURlZmluaXRpb24sXG4gIENoYXJ0T25WaWV3Q2xpY2ssXG4gIENvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGUsXG4gIERhdGFJdGVtLFxuICBTaGFwZURlZmluaXRpb24sXG59IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgbGlnaHRlbkNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbG9yLmZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyR3JvdXBCYXIsIEJhckdyb3VwIGFzIEJhckdyb3VwVHlwZSwgRGF0dW1PYmplY3QgfSBmcm9tICdAdmlzeC9zaGFwZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgdXNlRmxhdHRlbmVkRGF0YSB9IGZyb20gJy4uL2hvb2tzL3VzZUZsYXR0ZW5lZERhdGEnO1xuaW1wb3J0IEdvYWxMaW5lcyBmcm9tICcuLi9Hb2FsTGluZS9Hb2FsTGluZXMnO1xuaW1wb3J0IHsgQXhpc0JvdHRvbSB9IGZyb20gJy4uL0F4aXMvQXhpc0JvdHRvbSc7XG5pbXBvcnQgeyBBeGlzTGVmdCB9IGZyb20gJy4uL0F4aXMvQXhpc0xlZnQnO1xuaW1wb3J0IHsgR3JpZFJvd3MgfSBmcm9tICcuLi9HcmlkUm93cy9HcmlkUm93cyc7XG5pbXBvcnQgeyBDaGFydFdyYXBwZXIgfSBmcm9tICcuLi9DaGFydFdyYXBwZXIvQ2hhcnRXcmFwcGVyJztcbmltcG9ydCB7IFNjYWxlTGluZWFyLCBTY2FsZUJhbmQgfSBmcm9tICdAdmlzeC92ZW5kb3IvZDMtc2NhbGUnO1xuaW1wb3J0IHsgTGluZSB9IGZyb20gJy4uL1Rvb2x0aXAvTGluZSc7XG5pbXBvcnQgdXNlVG9vbHRpcCBmcm9tICcuLi9ob29rcy91c2VUb29sdGlwJztcbmltcG9ydCB7IHVzZUJhclhTY2FsZSB9IGZyb20gJy4vdXNlQmFyWFNjYWxlJztcbmltcG9ydCB7IHVzZVlTY2FsZSB9IGZyb20gJy4uL2hvb2tzL3VzZVlTY2FsZSc7XG5cbi8vIE5lZWQgdG8gbG9vayBhdCB1cGRhdGluZyBCYXJDaGFydCB0byB1c2UgdGhpcyB0eXBlIG1ldGhvZCBvZiByZW5kZXJpbmcgLSBodHRwczovL2NvZGVzYW5kYm94LmlvL3Avc2FuZGJveC92aXN4LWJhci1jaGFydC1qOXNtcGo/ZmlsZT0lMkZFeGFtcGxlLnRzeFxuLy8gQ3VycmVudGx5IGl0J3MgdXNpbmcgU3RhY2tlZCBDaGFydCB3aGljaCBpc24ndCB0ZWNobmljYWxseSBjb3JyZWN0XG5cbmV4cG9ydCB0eXBlIEJhckNoYXJ0UHJvcHMgPSB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB0aGVtZT86IENoYXJ0VGhlbWU7XG4gIGNoYXJ0OiBCYXJDaGFydFJlcHJlc2VudGF0aW9uO1xuICBvcHRpb25zOiB7XG4gICAgc3RhY2tlZDogYm9vbGVhbjtcbiAgICBzaG93Um91bmRlZFRvdGFsOiBib29sZWFuO1xuICAgIHNob3dMZWdlbmQ6IGJvb2xlYW47XG4gICAgcmVtb3ZlU3Ryb2tlOiBib29sZWFuO1xuICAgIGF4aXM6IHtcbiAgICAgIHNob3dYQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICAgIHNob3dZQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBvbkNsaWNrOiAocGFyYW1zOiBDaGFydE9uVmlld0NsaWNrKSA9PiB2b2lkO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCQVJfUkFESVVTID0gMjtcblxuZXhwb3J0IGNvbnN0IEJhckNoYXJ0ID0gKHsgY2hhcnQsIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMsIHRoZW1lLCBvbkNsaWNrLCBlbmFibGVIb3ZlciB9OiBCYXJDaGFydFByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICB0b29sdGlwT3BlbixcbiAgICB0b29sdGlwTGVmdCA9IDAsXG4gICAgdG9vbHRpcFRvcCA9IDAsXG4gICAgbGluZUxlZnQgPSAwLFxuICAgIHRvb2x0aXBEYXRhLFxuICAgIGhpZGVUb29sdGlwLFxuICAgIHNob3dUb29sdGlwLFxuICB9ID0gdXNlVG9vbHRpcDx7XG4gICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgfSB8IG51bGw+KCk7XG5cbiAgY29uc3QgbWFyZ2luID0gYnVpbGRNYXJnaW4oY2hhcnQueS50aWNrcywgb3B0aW9ucy5heGlzLnNob3dZQXhpc0xhYmVscywgY2hhcnQueS50aXRsZSAhPSBudWxsLCBjaGFydC54LnRpdGxlICE9IG51bGwpO1xuXG4gIC8vIGNvbnN0IFt2aXNpYmxlWUtleXMsIHNldFZpc2libGVZS2V5c10gPSB1c2VTdGF0ZShjaGFydC5iYXJzLm1hcCgobGVnZW5kSXRlbSkgPT4gbGVnZW5kSXRlbS55S2V5KSk7XG5cbiAgY29uc3QgaW5uZXJXaWR0aCA9IHdpZHRoIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gIGNvbnN0IGlubmVySGVpZ2h0ID0gaGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSAob3B0aW9ucy5zaG93TGVnZW5kID8gNDAgOiAwKTtcbiAgY29uc3QgeEtleSA9IGNoYXJ0Lngua2V5O1xuICBjb25zdCB4U2NhbGVLZXkgPSBjaGFydC54LnNjYWxlLmtleTtcbiAgY29uc3QgeVNjYWxlS2V5cyA9IGNoYXJ0Lnkua2V5cztcbiAgY29uc3QgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlID0gY2hhcnQueC5zY2FsZS5kYXRhVHlwZTtcblxuICBjb25zdCB4U2NhbGUgPSB1c2VCYXJYU2NhbGUoeFNjYWxlRGF0YVR5cGUsIGlubmVyV2lkdGgsIHhTY2FsZUtleSwgY2hhcnQuZGF0YSk7XG5cbiAgY29uc3QgeVNjYWxlID0gdXNlWVNjYWxlKGlubmVySGVpZ2h0LCBjaGFydC55LnNjYWxlKTtcblxuICBjb25zdCBpbm5lclhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3B0aW9ucy5zdGFja2VkICYmIHhTY2FsZSAmJiAnYmFuZHdpZHRoJyBpbiB4U2NhbGUpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgeFNjYWxlPy5iYW5kd2lkdGgoKV0sXG4gICAgICAgIGRvbWFpbjogeVNjYWxlS2V5cyxcbiAgICAgICAgcGFkZGluZzogMC4xLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSwgW3hTY2FsZSwgeVNjYWxlS2V5cywgb3B0aW9ucy5zdGFja2VkLCB4U2NhbGVEYXRhVHlwZV0pO1xuXG4gIGNvbnN0IGRhdGFGbGF0dGVuZWQgPSB1c2VGbGF0dGVuZWREYXRhPENoYXJ0RGF0YURlZmluaXRpb24+KHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0LmRhdGEsIGNoYXJ0Lnkua2V5cyk7XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PFNWR0VsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIXhLZXkgfHwgIXhTY2FsZUtleSB8fCB4U2NhbGUgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgY29uc3QgdG9vbHRpcERhdGEgPSBnZXRUb29sdGlwRGF0YSh7XG4gICAgICAgIGRhdGE6IGNoYXJ0LmRhdGEsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgIHhTY2FsZUtleSxcbiAgICAgICAgeFNjYWxlRGF0YVR5cGUsXG4gICAgICAgIHhPcmRlcmluZzogY2hhcnQueC5zY2FsZS5vcmRlcmluZyxcbiAgICAgICAgeFNjYWxlLFxuICAgICAgICBjaGFydFR5cGU6ICdiYXInLFxuICAgICAgfSk7XG5cbiAgICAgIHNob3dUb29sdGlwKHtcbiAgICAgICAgbGluZUxlZnQ6IHRvb2x0aXBEYXRhPy5saW5lTGVmdCxcbiAgICAgICAgdG9vbHRpcExlZnQ6IGV2ZW50LnBhZ2VYLFxuICAgICAgICB0b29sdGlwVG9wOiBldmVudC5wYWdlWSxcbiAgICAgICAgdG9vbHRpcERhdGE6IHRvb2x0aXBEYXRhPy50b29sdGlwRGF0YSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW3Nob3dUb29sdGlwLCB4U2NhbGUsIG1hcmdpbiwgeEtleSwgeFNjYWxlS2V5LCB4U2NhbGVEYXRhVHlwZSwgY2hhcnQueC5zY2FsZS5vcmRlcmluZywgY2hhcnQuZGF0YV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhpZGVUb29sdGlwKCk7XG4gIH0sIFtoaWRlVG9vbHRpcF0pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQmFyQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogQmFyR3JvdXBUeXBlPHN0cmluZz4sIGJhcjogQmFyR3JvdXBCYXI8c3RyaW5nPikgPT4ge1xuICAgICAgb25DbGljayh7XG4gICAgICAgIGNsaWNrZWRWYWx1ZToge1xuICAgICAgICAgIGluZGV4OiBiYXJHcm91cC5pbmRleCxcbiAgICAgICAgICB5OiB7XG4gICAgICAgICAgICBrZXk6IGJhci5rZXksXG4gICAgICAgICAgICB2YWx1ZTogYmFyLnZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeDoge1xuICAgICAgICAgICAgLi4uY2hhcnQueC50aWNrc1tiYXJHcm91cC5pbmRleF0sXG4gICAgICAgICAgICB2YWx1ZTogY2hhcnQuZGF0YVtiYXJHcm91cC5pbmRleF1beEtleV0udmFsdWUgPz8gJycsXG4gICAgICAgICAgICBrZXk6IHhLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xpY2tFdmVudDogZXZlbnQsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNsaWNrLCBjaGFydC5kYXRhLCB4S2V5XVxuICApO1xuXG4gIGNvbnN0IHRoZW1lQ1NTID0gdXNlTWVtbygoKSA9PiBnZXRDaGFydFRoZW1lQ1NTKHRoZW1lKSwgW3RoZW1lXSk7XG5cbiAgY29uc3QgeVRpY2tWYWx1ZXMgPSBjaGFydC55LnRpY2tzLm1hcCh0aWNrID0+IE51bWJlcih0aWNrLnZhbHVlKSk7XG5cbiAgY29uc3QgbGVnZW5kVG9vbHRpcEl0ZW1zID0gW1xuICAgIHtcbiAgICAgIHZpc2libGVZS2V5czogY2hhcnQuYmFycy5tYXAobGVnZW5kSXRlbSA9PiBsZWdlbmRJdGVtLnlLZXkpLFxuICAgICAgbGVnZW5kSXRlbXM6IGNoYXJ0LmJhcnMsXG4gICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlczogY2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsXG4gICAgfSxcbiAgXTtcbiAgcmV0dXJuIChcbiAgICA8RnJhZ21lbnQ+XG4gICAgICA8Q2hhcnRXcmFwcGVyXG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgc2hvd0xlZ2VuZD17b3B0aW9ucy5zaG93TGVnZW5kfVxuICAgICAgPlxuICAgICAgICA8R3JvdXAgbGVmdD17bWFyZ2luLmxlZnR9IHRvcD17bWFyZ2luLnRvcH0+XG4gICAgICAgICAgPEdyaWRSb3dzXG4gICAgICAgICAgICB0aWNrcz17eVRpY2tWYWx1ZXN9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0JvdHRvbVxuICAgICAgICAgICAgeD17Y2hhcnQueH1cbiAgICAgICAgICAgIG1hcmdpbj17bWFyZ2lufVxuICAgICAgICAgICAgdGhlbWVDU1M9e3RoZW1lQ1NTfVxuICAgICAgICAgICAgc2hvdz17b3B0aW9ucy5heGlzLnNob3dYQXhpc0xhYmVsc31cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB4U2NhbGVEYXRhVHlwZT17eFNjYWxlRGF0YVR5cGV9XG4gICAgICAgICAgICB4U2NhbGU9e3hTY2FsZX1cbiAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0xlZnRcbiAgICAgICAgICAgIHNob3c9e29wdGlvbnMuYXhpcy5zaG93WUF4aXNMYWJlbHN9XG4gICAgICAgICAgICB5PXtjaGFydC55fVxuICAgICAgICAgICAgbWFyZ2luPXttYXJnaW59XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHRpY2tzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgIHN0cm9rZT17dGhlbWU/LmF4aXM/LnN0cm9rZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxHcm91cD5cbiAgICAgICAgICAgIHshb3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhckdyb3VwXG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXt5U2NhbGVLZXlzfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgeEtleT17eEtleX1cbiAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZT17eFNjYWxlRGF0YVR5cGV9XG4gICAgICAgICAgICAgICAgeFNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgICAgaW5uZXJYU2NhbGU9e2lubmVyWFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9uQmFyQ2xpY2t9XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXM9e2NoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzfVxuICAgICAgICAgICAgICAgIGJhcnM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgICAgICAgZW5hYmxlSG92ZXI9e2VuYWJsZUhvdmVyfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge29wdGlvbnMuc3RhY2tlZCAmJiAoXG4gICAgICAgICAgICAgIDxCYXJTdGFja1xuICAgICAgICAgICAgICAgIHg9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHhWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlQWRqdXN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyh4VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGRhdGE9e2RhdGFGbGF0dGVuZWR9XG4gICAgICAgICAgICAgICAga2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgIG9mZnNldD1cIm5vbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhclN0YWNrcyA9PlxuICAgICAgICAgICAgICAgICAgYmFyU3RhY2tzLm1hcChiYXJTdGFjayA9PlxuICAgICAgICAgICAgICAgICAgICBiYXJTdGFjay5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIuaGVpZ2h0IDwgMykgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkFSX1BBRERJTkcgPSAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1zdGFjay0ke2JhclN0YWNrLmluZGV4fS0ke2Jhci5pbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeT17YmFyLnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodCAtIEJBUl9QQURESU5HfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIuYmFyLmRhdGEpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByeD17QkFSX1JBRElVU31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvQmFyU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgIDwvR3JvdXA+XG4gICAgICAgIHsvKiAtLS0tLSBUT09MVElQIENST1NTSEFJUiAtLS0tLSAqL31cbiAgICAgICAge3Rvb2x0aXBEYXRhICYmIChcbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxMaW5lIHg9e2xpbmVMZWZ0fSBtYXJnaW49e21hcmdpbn0gaGVpZ2h0PXtpbm5lckhlaWdodH0gLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICl9XG4gICAgICAgIHsvKiAtLS0tLSBHT0FMIExJTkVTIC0tLS0tLSAqL31cbiAgICAgICAgPEdvYWxMaW5lcyBnb2FsTGluZXM9e2NoYXJ0LmdvYWxMaW5lc30geT17ZCA9PiB5U2NhbGUoZCl9IG1hcmdpbj17bWFyZ2lufSB3aWR0aD17aW5uZXJXaWR0aH0gLz5cbiAgICAgIDwvQ2hhcnRXcmFwcGVyPlxuICAgICAgey8qIC0tLS0tIExFR0VORCAtLS0tLSAqL31cbiAgICAgIHtvcHRpb25zLnNob3dMZWdlbmQgJiYgKFxuICAgICAgICA8TGVnZW5kXG4gICAgICAgICAgaXRlbXM9e2xlZ2VuZFRvb2x0aXBJdGVtc31cbiAgICAgICAgICBzZXRWaXNpYmxlWUtleXM9eygpID0+IHt9fVxuICAgICAgICAgIGtleXM9e2NoYXJ0LmtleXN9XG4gICAgICAgICAgbWFyZ2luTGVmdD17bWFyZ2luLmxlZnQgLSBtYXJnaW4ubGVmdFRpdGxlT2Zmc2V0fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHsvKiAtLS0tLSBUT09MVElQIC0tLS0tICovfVxuICAgICAge3Rvb2x0aXBPcGVuICYmIHRvb2x0aXBEYXRhICYmIHhLZXkgJiYgKFxuICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgIGl0ZW1zPXtsZWdlbmRUb29sdGlwSXRlbXN9XG4gICAgICAgICAgdG9vbHRpcERhdGE9e3Rvb2x0aXBEYXRhfVxuICAgICAgICAgIHRvb2x0aXBMZWZ0PXt0b29sdGlwTGVmdH1cbiAgICAgICAgICB0b29sdGlwVG9wPXt0b29sdGlwVG9wfVxuICAgICAgICAgIHhLZXk9e3hLZXl9XG4gICAgICAgICAga2V5cz17Y2hhcnQua2V5c31cbiAgICAgICAgICB5S2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgIHNob3dSb3VuZGVkVG90YWw9e29wdGlvbnMuc2hvd1JvdW5kZWRUb3RhbH1cbiAgICAgICAgICB0aGVtZT17dGhlbWVDU1MucG9wb3Zlck1lbnVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEJhckdyb3VwKHtcbiAgZGF0YSxcbiAga2V5cyxcbiAgaGVpZ2h0LFxuICB4S2V5LFxuICB4U2NhbGVEYXRhVHlwZSxcbiAgeFNjYWxlLFxuICBpbm5lclhTY2FsZSxcbiAgeVNjYWxlLFxuICBvbkNsaWNrLFxuICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcyxcbiAgYmFycyxcbiAgZW5hYmxlSG92ZXIsXG59OiB7XG4gIGRhdGE6IENoYXJ0RGF0YURlZmluaXRpb25bXTtcbiAga2V5czogc3RyaW5nW107XG4gIGhlaWdodDogbnVtYmVyO1xuICB4S2V5OiBzdHJpbmc7XG4gIHhTY2FsZURhdGFUeXBlOiBEYXRhVHlwZTtcbiAgeFNjYWxlOiBTY2FsZUJhbmQ8c3RyaW5nPiB8IFNjYWxlQmFuZDxEYXRlPiB8IFNjYWxlQmFuZDxudW1iZXI+IHwgbnVsbDtcbiAgaW5uZXJYU2NhbGU6IFNjYWxlQmFuZDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICB5U2NhbGU6IFNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyLCBuZXZlcj47XG4gIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PiwgYmFyR3JvdXA6IGFueSwgYmFyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzOiBDb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlW107XG4gIGJhcnM6IFNoYXBlRGVmaW5pdGlvbjxCYXJTdHlsZXM+W107XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8VmlzeEJhckdyb3VwPERhdHVtT2JqZWN0PlxuICAgICAgZGF0YT17ZGF0YSBhcyBEYXR1bU9iamVjdFtdfVxuICAgICAga2V5cz17a2V5c31cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgeDA9e2QgPT4ge1xuICAgICAgICBjb25zdCB4VmFsdWUgPSBkW3hLZXkgYXMga2V5b2YgdHlwZW9mIGRdO1xuICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4gU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgIGNvbnN0IHhWYWx1ZUFkanVzdGVkID1cbiAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgID8gbmV3IERhdGUoU3RyaW5nKHhWYWx1ZSkpXG4gICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgOiBTdHJpbmcoeFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgfX1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHgwU2NhbGU9e3hTY2FsZX1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHgxU2NhbGU9e2lubmVyWFNjYWxlfVxuICAgICAgeVNjYWxlPXt5U2NhbGV9XG4gICAgICBjb2xvcj17KCkgPT4gJyd9XG4gICAgPlxuICAgICAge2Jhckdyb3VwcyA9PiB7XG4gICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKGJhckdyb3VwID0+IChcbiAgICAgICAgICA8R3JvdXAga2V5PXtgYmFyLWdyb3VwLSR7YmFyR3JvdXAuaW5kZXh9LSR7YmFyR3JvdXAueDB9YH0gbGVmdD17YmFyR3JvdXAueDB9PlxuICAgICAgICAgICAge2Jhckdyb3VwLmJhcnMubWFwKGJhciA9PiB7XG4gICAgICAgICAgICAgIGlmIChiYXIudmFsdWUgPT09IG51bGwgfHwgYmFyLmhlaWdodCA8IDAgfHwgYmFyLndpZHRoIDwgMCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLWdyb3VwLWJhci0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhci5pbmRleH0tJHtiYXIudmFsdWV9LSR7U3RyaW5nKGJhci5rZXkpfWB9XG4gICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgIHk9e2Jhci55fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e2Jhci53aWR0aH1cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIGZpbGw9e2dldEJhckZpbGwoYmFycywgY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXMsIFN0cmluZyhiYXIua2V5KSwgYmFyLnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gb25DbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICAgICAgICAgIGVuYWJsZUhvdmVyPXtlbmFibGVIb3Zlcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgKSk7XG4gICAgICB9fVxuICAgIDwvVmlzeEJhckdyb3VwPlxuICApO1xufVxuXG5jb25zdCBCYXIgPSAocHJvcHM6IHtcbiAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xuICBmaWxsPzogc3RyaW5nO1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGtleTogc3RyaW5nO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59KSA9PiB7XG4gIGNvbnN0IFtmaWxsQ29sb3IsIHNldEZpbGxDb2xvcl0gPSB1c2VTdGF0ZShwcm9wcy5maWxsKTtcbiAgcmV0dXJuIChcbiAgICA8cmVjdFxuICAgICAga2V5PXtwcm9wcy5rZXl9XG4gICAgICB4PXtwcm9wcy54fVxuICAgICAgeT17cHJvcHMueX1cbiAgICAgIHdpZHRoPXtwcm9wcy53aWR0aH1cbiAgICAgIGhlaWdodD17cHJvcHMuaGVpZ2h0fVxuICAgICAgZmlsbD17ZmlsbENvbG9yfVxuICAgICAgcng9e0JBUl9SQURJVVN9XG4gICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBwcm9wcy5lbmFibGVIb3ZlciAmJiBzZXRGaWxsQ29sb3IobGlnaHRlbkNvbG9yKHByb3BzLmZpbGwsIDAuOCkpfVxuICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBwcm9wcy5lbmFibGVIb3ZlciAmJiBzZXRGaWxsQ29sb3IocHJvcHMuZmlsbCl9XG4gICAgICBjbGFzc05hbWU9e3Byb3BzLmVuYWJsZUhvdmVyID8gY3NzKHsgY3Vyc29yOiAncG9pbnRlcicgfSkgOiAnJ31cbiAgICAvPlxuICApO1xufTtcbiJdfQ== */",
|
|
43709
43768
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$9
|
|
43710
43769
|
}) : ''
|
|
43711
43770
|
}, props.key);
|
|
@@ -43881,14 +43940,8 @@ var AreaChart$5 = function AreaChart(_ref) {
|
|
|
43881
43940
|
}
|
|
43882
43941
|
return null;
|
|
43883
43942
|
}, [innerWidth, chart.x, chart.data]);
|
|
43884
|
-
var _yScale =
|
|
43885
|
-
|
|
43886
|
-
range: [innerHeight, 0],
|
|
43887
|
-
domain: chart.y.scale.ordering === 'asc' ? [chart.y.scale.min, chart.y.scale.max] : [chart.y.scale.max, chart.y.scale.min],
|
|
43888
|
-
nice: true
|
|
43889
|
-
});
|
|
43890
|
-
}, [innerHeight, chart.y.scale]);
|
|
43891
|
-
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
43943
|
+
var _yScale = useYScale(innerHeight, chart.y.scale);
|
|
43944
|
+
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart.data, chart.y.keys);
|
|
43892
43945
|
var handleMouseMove = useCallback(function (event) {
|
|
43893
43946
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
43894
43947
|
var tooltipData = getTooltipData({
|
|
@@ -43918,12 +43971,17 @@ var AreaChart$5 = function AreaChart(_ref) {
|
|
|
43918
43971
|
step: curveStep,
|
|
43919
43972
|
straight: curveLinear
|
|
43920
43973
|
};
|
|
43921
|
-
return curveMap[(_options$curve = options.curve) != null ? _options$curve : '
|
|
43974
|
+
return curveMap[(_options$curve = options.curve) != null ? _options$curve : 'natural'];
|
|
43922
43975
|
}, [options.curve]);
|
|
43923
43976
|
if (width === 0 || height === 0 || xScale === null) return jsx(React__default.Fragment, {});
|
|
43924
43977
|
var yTickValues = chart.y.ticks.map(function (tick) {
|
|
43925
43978
|
return Number(tick.value);
|
|
43926
43979
|
});
|
|
43980
|
+
var legendTooltipItems = [{
|
|
43981
|
+
visibleYKeys: visibleYKeys,
|
|
43982
|
+
legendItems: chart.areas,
|
|
43983
|
+
conditionalFormattingRules: chart.conditionalFormattingRules
|
|
43984
|
+
}];
|
|
43927
43985
|
return jsxs(React__default.Fragment, {
|
|
43928
43986
|
children: [jsxs(ChartWrapper$1, {
|
|
43929
43987
|
width: width,
|
|
@@ -44079,23 +44137,19 @@ var AreaChart$5 = function AreaChart(_ref) {
|
|
|
44079
44137
|
width: innerWidth
|
|
44080
44138
|
})]
|
|
44081
44139
|
}), options.showLegend && jsx(Legend$1, {
|
|
44082
|
-
|
|
44083
|
-
visibleYKeys: visibleYKeys,
|
|
44140
|
+
items: legendTooltipItems,
|
|
44084
44141
|
setVisibleYKeys: setVisibleYKeys,
|
|
44085
44142
|
keys: chart.keys,
|
|
44086
|
-
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
44087
44143
|
marginLeft: margin.left - margin.leftTitleOffset
|
|
44088
44144
|
}), tooltipOpen && tooltipData && xKey && jsx(Tooltip$1, {
|
|
44145
|
+
items: legendTooltipItems,
|
|
44089
44146
|
tooltipData: tooltipData,
|
|
44090
44147
|
tooltipLeft: tooltipLeft,
|
|
44091
44148
|
tooltipTop: tooltipTop,
|
|
44092
44149
|
xKey: xKey,
|
|
44093
44150
|
keys: chart.keys,
|
|
44094
|
-
visibleYKeys: visibleYKeys,
|
|
44095
44151
|
yKeys: chart.y.keys,
|
|
44096
|
-
legendItems: chart.areas,
|
|
44097
44152
|
showRoundedTotal: options.showRoundedTotal,
|
|
44098
|
-
conditionalFormattingRules: chart.conditionalFormattingRules,
|
|
44099
44153
|
theme: themeCSS.popoverMenus
|
|
44100
44154
|
})]
|
|
44101
44155
|
});
|
|
@@ -44398,11 +44452,13 @@ var RadarChart$2 = function RadarChart(_ref) {
|
|
|
44398
44452
|
})]
|
|
44399
44453
|
})
|
|
44400
44454
|
}), options.showLegend && jsx(Legend$1, {
|
|
44401
|
-
|
|
44402
|
-
|
|
44455
|
+
items: [{
|
|
44456
|
+
legendItems: chart.lines,
|
|
44457
|
+
visibleYKeys: visibleYKeys,
|
|
44458
|
+
conditionalFormattingRules: []
|
|
44459
|
+
}],
|
|
44403
44460
|
setVisibleYKeys: setVisibleYKeys,
|
|
44404
44461
|
keys: chart.keys,
|
|
44405
|
-
conditionalFormattingRules: [],
|
|
44406
44462
|
marginLeft: margin.left - margin.leftTitleOffset
|
|
44407
44463
|
})]
|
|
44408
44464
|
});
|
|
@@ -49114,30 +49170,6 @@ var BarChartV2 = function BarChartV2(props) {
|
|
|
49114
49170
|
});
|
|
49115
49171
|
};
|
|
49116
49172
|
|
|
49117
|
-
function getBarFill$1(bars, conditionalFormattingRules, barKey, barValues) {
|
|
49118
|
-
var _bars$find;
|
|
49119
|
-
// Default fill color from the corresponding bar
|
|
49120
|
-
var fill = (_bars$find = bars.find(function (chartBar) {
|
|
49121
|
-
return chartBar.yKey === barKey;
|
|
49122
|
-
})) == null ? void 0 : _bars$find.color;
|
|
49123
|
-
|
|
49124
|
-
// Determine the value based on barValues type
|
|
49125
|
-
var value = typeof barValues === 'number' ? barValues : barValues == null ? void 0 : barValues[barKey];
|
|
49126
|
-
if (typeof value === 'number') {
|
|
49127
|
-
for (var _iterator = _createForOfIteratorHelperLoose(conditionalFormattingRules), _step; !(_step = _iterator()).done;) {
|
|
49128
|
-
var rule = _step.value;
|
|
49129
|
-
if (compare({
|
|
49130
|
-
op: rule.operator,
|
|
49131
|
-
value: rule.value
|
|
49132
|
-
}, value)) {
|
|
49133
|
-
fill = rule.color;
|
|
49134
|
-
break;
|
|
49135
|
-
}
|
|
49136
|
-
}
|
|
49137
|
-
}
|
|
49138
|
-
return fill;
|
|
49139
|
-
}
|
|
49140
|
-
|
|
49141
49173
|
var ASSUMED_AVERAGE_CHAR_WIDTH$1 = 8.8;
|
|
49142
49174
|
function calculateWordWidth$1(word, avgCharWidth) {
|
|
49143
49175
|
if (avgCharWidth === void 0) {
|
|
@@ -49319,15 +49351,17 @@ var IconTrendingDown$1 = function IconTrendingDown() {
|
|
|
49319
49351
|
|
|
49320
49352
|
var Legend$2 = function Legend(_ref) {
|
|
49321
49353
|
var showLegend = _ref.showLegend,
|
|
49322
|
-
margin = _ref.margin
|
|
49354
|
+
margin = _ref.margin,
|
|
49355
|
+
increaseColor = _ref.increaseColor,
|
|
49356
|
+
decreaseColor = _ref.decreaseColor;
|
|
49323
49357
|
var items = [{
|
|
49324
|
-
color:
|
|
49358
|
+
color: increaseColor,
|
|
49325
49359
|
yKey: 'increase',
|
|
49326
49360
|
style: {
|
|
49327
49361
|
type: 'bar'
|
|
49328
49362
|
}
|
|
49329
49363
|
}, {
|
|
49330
|
-
color:
|
|
49364
|
+
color: decreaseColor,
|
|
49331
49365
|
yKey: 'decrease',
|
|
49332
49366
|
style: {
|
|
49333
49367
|
type: 'bar'
|
|
@@ -49347,11 +49381,13 @@ var Legend$2 = function Legend(_ref) {
|
|
|
49347
49381
|
};
|
|
49348
49382
|
if (!showLegend) return null;
|
|
49349
49383
|
return jsx(Legend$1, {
|
|
49350
|
-
|
|
49351
|
-
|
|
49384
|
+
items: [{
|
|
49385
|
+
legendItems: items,
|
|
49386
|
+
visibleYKeys: ['increase', 'decrease'],
|
|
49387
|
+
conditionalFormattingRules: []
|
|
49388
|
+
}],
|
|
49352
49389
|
keys: keys,
|
|
49353
49390
|
marginLeft: margin.left - margin.leftTitleOffset,
|
|
49354
|
-
conditionalFormattingRules: [],
|
|
49355
49391
|
setVisibleYKeys: function setVisibleYKeys() {}
|
|
49356
49392
|
});
|
|
49357
49393
|
};
|
|
@@ -49369,7 +49405,9 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
|
|
|
49369
49405
|
options = _ref.options,
|
|
49370
49406
|
chart = _ref.chart,
|
|
49371
49407
|
steps = _ref.steps,
|
|
49372
|
-
theme = _ref.theme
|
|
49408
|
+
theme = _ref.theme,
|
|
49409
|
+
increaseColor = _ref.increaseColor,
|
|
49410
|
+
decreaseColor = _ref.decreaseColor;
|
|
49373
49411
|
//Waterfall TODO: fix chart for other x types
|
|
49374
49412
|
if (chart.x.scale.dataType === 'date_time' || chart.x.scale.dataType === 'number') {
|
|
49375
49413
|
return null;
|
|
@@ -49597,7 +49635,7 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
|
|
|
49597
49635
|
},
|
|
49598
49636
|
stroke: (_theme$axis$stroke = theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke) != null ? _theme$axis$stroke : 'transparent'
|
|
49599
49637
|
}), jsx(Group$2, {
|
|
49600
|
-
children: jsx(BarGroup$
|
|
49638
|
+
children: jsx(BarGroup$2, {
|
|
49601
49639
|
data: dataFlattened,
|
|
49602
49640
|
keys: yScaleKeys,
|
|
49603
49641
|
height: innerHeight,
|
|
@@ -49618,6 +49656,8 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
|
|
|
49618
49656
|
left: barGroup.x0,
|
|
49619
49657
|
children: barGroup.bars.map(function (bar) {
|
|
49620
49658
|
return jsx(Bar$1, {
|
|
49659
|
+
increaseColor: increaseColor,
|
|
49660
|
+
decreaseColor: decreaseColor,
|
|
49621
49661
|
bar: bar,
|
|
49622
49662
|
barGroup: barGroup,
|
|
49623
49663
|
yScale: yScale,
|
|
@@ -49638,7 +49678,9 @@ var WaterfallChart$2 = function WaterfallChart(_ref) {
|
|
|
49638
49678
|
})]
|
|
49639
49679
|
}), jsx(Legend$2, {
|
|
49640
49680
|
showLegend: options.showLegend,
|
|
49641
|
-
margin: margin
|
|
49681
|
+
margin: margin,
|
|
49682
|
+
increaseColor: increaseColor,
|
|
49683
|
+
decreaseColor: decreaseColor
|
|
49642
49684
|
}), jsx(Tooltip$2, {
|
|
49643
49685
|
showTooltip: tooltipOpen,
|
|
49644
49686
|
tooltipData: tooltipData,
|
|
@@ -49654,7 +49696,9 @@ var Bar$1 = function Bar(_ref4) {
|
|
|
49654
49696
|
var bar = _ref4.bar,
|
|
49655
49697
|
barGroup = _ref4.barGroup,
|
|
49656
49698
|
yScale = _ref4.yScale,
|
|
49657
|
-
formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart
|
|
49699
|
+
formattedChartDataForBarChart = _ref4.formattedChartDataForBarChart,
|
|
49700
|
+
increaseColor = _ref4.increaseColor,
|
|
49701
|
+
decreaseColor = _ref4.decreaseColor;
|
|
49658
49702
|
var step = formattedChartDataForBarChart.steps[barGroup.index];
|
|
49659
49703
|
var y = yScale(Math.max(step.start, step.end));
|
|
49660
49704
|
var barHeight = Math.abs(yScale(step.start) - yScale(step.end));
|
|
@@ -49664,7 +49708,7 @@ var Bar$1 = function Bar(_ref4) {
|
|
|
49664
49708
|
y: y,
|
|
49665
49709
|
width: bar.width,
|
|
49666
49710
|
height: barHeight,
|
|
49667
|
-
fill:
|
|
49711
|
+
fill: bar.value > 0 ? increaseColor : decreaseColor,
|
|
49668
49712
|
rx: 4
|
|
49669
49713
|
}, "bar-group-bar-" + barGroup.index + "-" + bar.index + "-" + bar.value + "-" + bar.key)
|
|
49670
49714
|
});
|
|
@@ -49940,7 +49984,9 @@ var WaterfallChartView = function WaterfallChartView(props) {
|
|
|
49940
49984
|
xAxisPrefix = props.xAxisPrefix,
|
|
49941
49985
|
yAxisFormat = props.yAxisFormat,
|
|
49942
49986
|
yAxisPostfix = props.yAxisPostfix,
|
|
49943
|
-
yAxisPrefix = props.yAxisPrefix
|
|
49987
|
+
yAxisPrefix = props.yAxisPrefix,
|
|
49988
|
+
increaseColor = props.increaseColor,
|
|
49989
|
+
decreaseColor = props.decreaseColor;
|
|
49944
49990
|
var _useDashboardBehaviou = useDashboardBehaviourContext(),
|
|
49945
49991
|
textOverride = _useDashboardBehaviou.textOverride,
|
|
49946
49992
|
valueAlias = _useDashboardBehaviou.valueAlias,
|
|
@@ -50034,7 +50080,9 @@ var WaterfallChartView = function WaterfallChartView(props) {
|
|
|
50034
50080
|
},
|
|
50035
50081
|
theme: theme == null ? void 0 : theme.charts,
|
|
50036
50082
|
chart: chartRepresentation,
|
|
50037
|
-
steps: steps
|
|
50083
|
+
steps: steps,
|
|
50084
|
+
increaseColor: increaseColor,
|
|
50085
|
+
decreaseColor: decreaseColor
|
|
50038
50086
|
});
|
|
50039
50087
|
}
|
|
50040
50088
|
})
|
|
@@ -60530,6 +60578,47 @@ var RichTextFormatSection = function RichTextFormatSection(props) {
|
|
|
60530
60578
|
});
|
|
60531
60579
|
};
|
|
60532
60580
|
|
|
60581
|
+
var WaterfallColorsSection = function WaterfallColorsSection(props) {
|
|
60582
|
+
var _props$section;
|
|
60583
|
+
var _useDashboardBehaviou = useDashboardBehaviourContext(),
|
|
60584
|
+
textOverride = _useDashboardBehaviou.textOverride;
|
|
60585
|
+
if (props.attributes.type != 'waterfallChart') return null;
|
|
60586
|
+
var _props$attributes = props.attributes,
|
|
60587
|
+
increaseColor = _props$attributes.increaseColor,
|
|
60588
|
+
decreaseColor = _props$attributes.decreaseColor;
|
|
60589
|
+
var debouncedSetAttributes = debounce$1(props.setAttributes, 200);
|
|
60590
|
+
return jsx(Section, {
|
|
60591
|
+
title: props == null ? void 0 : props.section.title,
|
|
60592
|
+
tooltip: props == null || (_props$section = props.section) == null ? void 0 : _props$section.description,
|
|
60593
|
+
children: jsxs(Section.Grid, {
|
|
60594
|
+
columns: 2,
|
|
60595
|
+
children: [jsx("div", {
|
|
60596
|
+
children: jsx(ColorInput, {
|
|
60597
|
+
id: 'waterfall-increase-color',
|
|
60598
|
+
label: textOverride('increase_color', 'Positive value'),
|
|
60599
|
+
currentValue: increaseColor,
|
|
60600
|
+
setColor: function setColor(increaseColor) {
|
|
60601
|
+
return debouncedSetAttributes({
|
|
60602
|
+
increaseColor: increaseColor
|
|
60603
|
+
});
|
|
60604
|
+
}
|
|
60605
|
+
})
|
|
60606
|
+
}), jsx("div", {
|
|
60607
|
+
children: jsx(ColorInput, {
|
|
60608
|
+
id: 'waterfall-decrease-color',
|
|
60609
|
+
label: textOverride('decrease_color', 'Negative value'),
|
|
60610
|
+
currentValue: decreaseColor,
|
|
60611
|
+
setColor: function setColor(decreaseColor) {
|
|
60612
|
+
return debouncedSetAttributes({
|
|
60613
|
+
decreaseColor: decreaseColor
|
|
60614
|
+
});
|
|
60615
|
+
}
|
|
60616
|
+
})
|
|
60617
|
+
})]
|
|
60618
|
+
})
|
|
60619
|
+
});
|
|
60620
|
+
};
|
|
60621
|
+
|
|
60533
60622
|
var FormatPanelFromConfig = function FormatPanelFromConfig(props) {
|
|
60534
60623
|
return jsx(EditorGrid, {
|
|
60535
60624
|
children: props == null ? void 0 : props.formatPanelConfig.map(function (section, i) {
|
|
@@ -60560,6 +60649,8 @@ var FormatPanelFromConfig = function FormatPanelFromConfig(props) {
|
|
|
60560
60649
|
section: section
|
|
60561
60650
|
})), section.type === 'mapColors' && jsx(MapColorsSection, _extends({}, props, {
|
|
60562
60651
|
section: section
|
|
60652
|
+
})), section.type === 'waterfallColors' && jsx(WaterfallColorsSection, _extends({}, props, {
|
|
60653
|
+
section: section
|
|
60563
60654
|
})), section.type === 'conditionalFormatting' && jsx(ConditionalFormattingSection, _extends({}, props, {
|
|
60564
60655
|
section: section
|
|
60565
60656
|
})), section.type === 'goalLine' && jsx(GoalLineSection, _extends({}, props, {
|