axidio-styleguide-library1-v2 0.2.20 → 0.2.21
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.
|
@@ -3014,344 +3014,205 @@ class GuageChartComponent extends ComponentUniqueId {
|
|
|
3014
3014
|
svgHeight: 80,
|
|
3015
3015
|
low_colorMap: ['#43CC00', '#FFEF0C', '#FF4E0C'],
|
|
3016
3016
|
high_colorMap: ['#FF4E0C', '#FFEF0C', '#43CC00'],
|
|
3017
|
-
isHeaderVisible: undefined,
|
|
3018
3017
|
pointerWidth: 10,
|
|
3019
3018
|
pointerTailLength: 5,
|
|
3020
3019
|
pointerHeadLengthPercent: 0.7,
|
|
3021
3020
|
labelInset: 10,
|
|
3022
3021
|
legendJustified: false,
|
|
3023
3022
|
backgroundColor: '#FFFFFF',
|
|
3024
|
-
isDrilldownChart: undefined,
|
|
3025
3023
|
ringScaleFactor: 0,
|
|
3026
3024
|
textsAtCenterScaleFactor: 0,
|
|
3027
3025
|
currentValueWidthScaleFactor: 60,
|
|
3028
3026
|
currentValueHeightScaleFactor: 30,
|
|
3029
3027
|
pointerColor: '#686868',
|
|
3030
|
-
isToggleVisible: undefined,
|
|
3031
|
-
selectedKpiTooltop: undefined,
|
|
3032
|
-
isValueLableAdjust: undefined,
|
|
3033
|
-
isTitleHidden: undefined,
|
|
3034
3028
|
headerMenuOptions: HeaderConfigHelper.headerConfig.headerMenuOptions,
|
|
3035
3029
|
};
|
|
3036
3030
|
}
|
|
3037
3031
|
get isAlertEnabled() {
|
|
3038
|
-
return this.chartConfiguration?.headerMenuOptions?.some(option => option.id === 'editAlert');
|
|
3032
|
+
return (this.chartConfiguration?.headerMenuOptions?.some((option) => option.id === 'editAlert') ?? false);
|
|
3039
3033
|
}
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3034
|
+
ngOnInit() {
|
|
3035
|
+
this.buildChart();
|
|
3036
|
+
}
|
|
3037
|
+
ngOnChanges(changes) {
|
|
3038
|
+
if (changes['chartData'] || changes['customChartConfiguration']) {
|
|
3039
|
+
this.rebuildChart();
|
|
3040
|
+
}
|
|
3044
3041
|
}
|
|
3045
3042
|
onResized(event) {
|
|
3046
|
-
|
|
3047
|
-
d3.select('#' + self.uniqueId).remove();
|
|
3048
|
-
this.initializeLineChart();
|
|
3043
|
+
this.rebuildChart();
|
|
3049
3044
|
}
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
this.chartConfiguration[
|
|
3063
|
-
}
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3045
|
+
rebuildChart() {
|
|
3046
|
+
d3.select(`#${this.uniqueId}`).remove();
|
|
3047
|
+
this.buildChart();
|
|
3048
|
+
}
|
|
3049
|
+
buildChart() {
|
|
3050
|
+
if (!this.chartData?.data || !this.chartData?.metaData)
|
|
3051
|
+
return;
|
|
3052
|
+
this.mergeConfigurations();
|
|
3053
|
+
this.processDataAndRender();
|
|
3054
|
+
}
|
|
3055
|
+
mergeConfigurations() {
|
|
3056
|
+
Object.keys(this.defaultConfiguration).forEach((key) => {
|
|
3057
|
+
this.chartConfiguration[key] = ChartHelper.getValueByConfigurationType(key, this.defaultConfiguration, this.customChartConfiguration);
|
|
3058
|
+
});
|
|
3059
|
+
this.isHeaderVisible =
|
|
3060
|
+
this.chartConfiguration.isHeaderVisible ?? this.isHeaderVisible;
|
|
3061
|
+
}
|
|
3062
|
+
processDataAndRender() {
|
|
3063
|
+
const { data, metaData } = this.chartData;
|
|
3064
|
+
const colorMap = metaData.colorType === 'low'
|
|
3065
|
+
? this.chartConfiguration.low_colorMap
|
|
3066
|
+
: this.chartConfiguration.high_colorMap;
|
|
3067
|
+
this.setDataType(metaData);
|
|
3068
|
+
const diffs = data.slice(1).map((v, i) => v - data[i]);
|
|
3069
|
+
const total = diffs.reduce((sum, val) => sum + val, 0);
|
|
3070
|
+
const angles = this.computeAngles(diffs, total);
|
|
3071
|
+
const container = d3.select(this.containerElt.nativeElement);
|
|
3072
|
+
const width = parseInt(container.style('width')) -
|
|
3073
|
+
this.chartConfiguration.margin.left -
|
|
3074
|
+
this.chartConfiguration.margin.right;
|
|
3075
|
+
const height = parseInt(d3.select(this.guagecontainerElt.nativeElement).style('height')) -
|
|
3076
|
+
this.chartConfiguration.margin.top -
|
|
3077
|
+
this.chartConfiguration.margin.bottom -
|
|
3078
|
+
56;
|
|
3079
|
+
const radius = Math.min(width, height) / 2;
|
|
3080
|
+
const svg = this.createSvg(container, width, height, radius);
|
|
3081
|
+
this.drawArcs(svg, diffs, data, angles, colorMap, metaData, radius);
|
|
3082
|
+
this.drawPointer(svg, data, metaData, radius);
|
|
3083
|
+
this.drawLabels(svg, data, diffs, metaData, radius);
|
|
3084
|
+
this.drawTextBlocks(svg, metaData, radius);
|
|
3085
|
+
}
|
|
3086
|
+
setDataType(metaData) {
|
|
3073
3087
|
if (metaData.dataType) {
|
|
3074
|
-
this.dataType = metaData.dataType;
|
|
3075
|
-
|
|
3076
|
-
this.datatype_status = true;
|
|
3077
|
-
this.dataType = '$ ';
|
|
3078
|
-
}
|
|
3088
|
+
this.dataType = metaData.dataType === 'USD' ? '$ ' : metaData.dataType;
|
|
3089
|
+
this.datatype_status = metaData.dataType === 'USD';
|
|
3079
3090
|
}
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
var height = parseInt(guagecontainer.style('height')) -
|
|
3091
|
-
margin.top -
|
|
3092
|
-
margin.bottom -
|
|
3093
|
-
56; //chart header height
|
|
3094
|
-
if (this.chartConfiguration.isHeaderVisible != undefined)
|
|
3095
|
-
this.isHeaderVisible = this.chartConfiguration.isHeaderVisible;
|
|
3096
|
-
var svg = chartContainer
|
|
3091
|
+
}
|
|
3092
|
+
computeAngles(values, total) {
|
|
3093
|
+
return values.reduce((acc, unit, i) => {
|
|
3094
|
+
const angle = (unit / total) * 180;
|
|
3095
|
+
acc.push(i === 0 ? angle : acc[i - 1] + angle);
|
|
3096
|
+
return acc;
|
|
3097
|
+
}, []);
|
|
3098
|
+
}
|
|
3099
|
+
createSvg(container, width, height, radius) {
|
|
3100
|
+
return container
|
|
3097
3101
|
.append('svg')
|
|
3098
|
-
.attr('id',
|
|
3099
|
-
.attr('width', width + margin.left
|
|
3100
|
-
.attr('height', height + margin.top
|
|
3102
|
+
.attr('id', this.uniqueId)
|
|
3103
|
+
.attr('width', width + this.chartConfiguration.margin.left)
|
|
3104
|
+
.attr('height', height + this.chartConfiguration.margin.top)
|
|
3101
3105
|
.call(ChartHelper.responsivefy)
|
|
3102
|
-
.append('g')
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
else {
|
|
3109
|
-
if (window.innerWidth > 1400) {
|
|
3110
|
-
this.chartConfiguration.currentValueHeightScaleFactor += 15;
|
|
3111
|
-
this.chartConfiguration.currentValueWidthScaleFactor *= 2;
|
|
3112
|
-
}
|
|
3113
|
-
}
|
|
3114
|
-
let topTextPosition = radius / 2 - 10;
|
|
3115
|
-
let midTextPosition = topTextPosition + this.chartConfiguration.currentValueHeightScaleFactor;
|
|
3116
|
-
let bottomTextPosition = midTextPosition + this.chartConfiguration.currentValueHeightScaleFactor;
|
|
3117
|
-
var data_length = data.length;
|
|
3118
|
-
function deg2rad(deg) {
|
|
3119
|
-
return (deg * Math.PI) / 180;
|
|
3120
|
-
}
|
|
3121
|
-
let tempArray = [];
|
|
3122
|
-
let total = 0;
|
|
3123
|
-
data_ready.map(function (unit) {
|
|
3124
|
-
total += unit;
|
|
3125
|
-
});
|
|
3126
|
-
data_ready.map(function (unit, i) {
|
|
3127
|
-
var angle = (unit / total) * 180;
|
|
3128
|
-
if (i === 0) {
|
|
3129
|
-
tempArray.push(angle);
|
|
3130
|
-
}
|
|
3131
|
-
else {
|
|
3132
|
-
let currentAngle = tempArray[i - 1] + angle;
|
|
3133
|
-
tempArray.push(currentAngle);
|
|
3134
|
-
}
|
|
3135
|
-
});
|
|
3136
|
-
angleValue = tempArray;
|
|
3137
|
-
var arc = d3
|
|
3106
|
+
.append('g')
|
|
3107
|
+
.attr('transform', `translate(${(parseInt(container.style('width')) / 2 - radius) +
|
|
3108
|
+
this.chartConfiguration.margin.left},${this.chartConfiguration.margin.top})`);
|
|
3109
|
+
}
|
|
3110
|
+
drawArcs(svg, diffs, data, angles, colorMap, metaData, radius) {
|
|
3111
|
+
const arc = d3
|
|
3138
3112
|
.arc()
|
|
3139
3113
|
.innerRadius(radius -
|
|
3140
|
-
|
|
3141
|
-
|
|
3114
|
+
this.chartConfiguration.ringWidth -
|
|
3115
|
+
this.chartConfiguration.ringInset)
|
|
3142
3116
|
.outerRadius(radius)
|
|
3143
|
-
.startAngle(
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
.endAngle(function (d, i) {
|
|
3154
|
-
var ratio;
|
|
3155
|
-
if (i === data_ready.length - 1) {
|
|
3156
|
-
ratio = self.chartConfiguration.maxAngle;
|
|
3157
|
-
}
|
|
3158
|
-
else {
|
|
3159
|
-
ratio = self.chartConfiguration.minAngle + angleValue[i];
|
|
3160
|
-
}
|
|
3161
|
-
return deg2rad(ratio);
|
|
3162
|
-
});
|
|
3163
|
-
function centerTranslation() {
|
|
3164
|
-
return 'translate(' + radius + ',' + radius + ')';
|
|
3165
|
-
}
|
|
3166
|
-
var centerTx = centerTranslation();
|
|
3167
|
-
var tickData = d3
|
|
3168
|
-
.range(self.chartConfiguration.majorTicks)
|
|
3169
|
-
.map(function (i) {
|
|
3170
|
-
return 1 / self.chartConfiguration.majorTicks;
|
|
3171
|
-
});
|
|
3172
|
-
var arcs = svg.append('g').attr('class', 'arc').attr('transform', centerTx);
|
|
3117
|
+
.startAngle((_, i) => this.deg2rad(i === 0
|
|
3118
|
+
? this.chartConfiguration.minAngle
|
|
3119
|
+
: this.chartConfiguration.minAngle + angles[i - 1]))
|
|
3120
|
+
.endAngle((_, i) => this.deg2rad(i === diffs.length - 1
|
|
3121
|
+
? this.chartConfiguration.maxAngle
|
|
3122
|
+
: this.chartConfiguration.minAngle + angles[i]));
|
|
3123
|
+
const arcs = svg
|
|
3124
|
+
.append('g')
|
|
3125
|
+
.attr('class', 'arc')
|
|
3126
|
+
.attr('transform', `translate(${radius},${radius})`);
|
|
3173
3127
|
arcs
|
|
3174
3128
|
.selectAll('path')
|
|
3175
|
-
.data(
|
|
3129
|
+
.data(diffs)
|
|
3176
3130
|
.enter()
|
|
3177
3131
|
.append('path')
|
|
3178
|
-
.on('click', function (d) {
|
|
3179
|
-
if (!metaData.hasDrillDown || metaData.currentValue == 0) {
|
|
3180
|
-
return;
|
|
3181
|
-
}
|
|
3182
|
-
let range = getRange(d);
|
|
3183
|
-
self.handleClick(range);
|
|
3184
|
-
})
|
|
3185
|
-
.attr('fill', function (d, i) {
|
|
3186
|
-
return colorMaps[i];
|
|
3187
|
-
})
|
|
3188
|
-
.attr('id', function (d, i) {
|
|
3189
|
-
return colorMaps[i];
|
|
3190
|
-
})
|
|
3191
3132
|
.attr('d', arc)
|
|
3192
|
-
|
|
3193
|
-
.style('cursor',
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3133
|
+
.attr('fill', (_, i) => colorMap[i])
|
|
3134
|
+
.style('cursor', () => metaData.currentValue > 0 && metaData.hasDrillDown
|
|
3135
|
+
? 'pointer'
|
|
3136
|
+
: 'default')
|
|
3137
|
+
.on('click', (event, d) => {
|
|
3138
|
+
if (metaData.hasDrillDown && metaData.currentValue > 0) {
|
|
3139
|
+
this.handleClick(`${data[0]} - ${data[data.length - 1]}`);
|
|
3140
|
+
}
|
|
3198
3141
|
});
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3142
|
+
}
|
|
3143
|
+
drawPointer(svg, data, metaData, radius) {
|
|
3144
|
+
const pointerHeadLength = Math.round(radius * this.chartConfiguration.pointerHeadLengthPercent);
|
|
3145
|
+
const pointerValue = metaData.currentValue - data[0];
|
|
3146
|
+
const range = data[data.length - 1] - data[0];
|
|
3147
|
+
const angle = this.chartConfiguration.minAngle + (pointerValue / range) * 180;
|
|
3148
|
+
const lineData = [
|
|
3149
|
+
[this.chartConfiguration.pointerWidth / 2, 0],
|
|
3206
3150
|
[0, -pointerHeadLength],
|
|
3207
|
-
[-
|
|
3208
|
-
[0,
|
|
3209
|
-
[
|
|
3151
|
+
[-this.chartConfiguration.pointerWidth / 2, 0],
|
|
3152
|
+
[0, this.chartConfiguration.pointerTailLength],
|
|
3153
|
+
[this.chartConfiguration.pointerWidth / 2, 0],
|
|
3210
3154
|
];
|
|
3211
|
-
|
|
3212
|
-
|
|
3155
|
+
const pointerLine = d3.line();
|
|
3156
|
+
svg
|
|
3213
3157
|
.append('g')
|
|
3214
|
-
.data([lineData])
|
|
3215
3158
|
.attr('class', 'pointer')
|
|
3216
|
-
.attr('transform',
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
let labelArrayTemp = [{ name: data[0], value: 0 }];
|
|
3230
|
-
let count = 0;
|
|
3231
|
-
data_ready.map(function (dataUnit, i) {
|
|
3232
|
-
count += dataUnit;
|
|
3233
|
-
let temp = { name: data[i + 1], value: count };
|
|
3234
|
-
labelArrayTemp.push(temp);
|
|
3159
|
+
.attr('transform', `translate(${radius},${radius})`)
|
|
3160
|
+
.append('path')
|
|
3161
|
+
.attr('d', pointerLine(lineData))
|
|
3162
|
+
.attr('fill', this.chartConfiguration.pointerColor)
|
|
3163
|
+
.attr('transform', `rotate(${angle}) translate(0,${-radius + this.chartConfiguration.ringWidth + pointerHeadLength})`);
|
|
3164
|
+
}
|
|
3165
|
+
drawLabels(svg, data, diffs, metaData, radius) {
|
|
3166
|
+
const range = data[data.length - 1] - data[0];
|
|
3167
|
+
let cumulative = 0;
|
|
3168
|
+
const labelArray = [{ name: data[0], value: 0 }];
|
|
3169
|
+
diffs.forEach((diff, i) => {
|
|
3170
|
+
cumulative += diff;
|
|
3171
|
+
labelArray.push({ name: data[i + 1], value: cumulative });
|
|
3235
3172
|
});
|
|
3236
|
-
|
|
3237
|
-
|
|
3173
|
+
const labels = svg
|
|
3174
|
+
.append('g')
|
|
3175
|
+
.attr('class', 'label')
|
|
3176
|
+
.attr('transform', `translate(${radius},${radius})`);
|
|
3177
|
+
labels
|
|
3178
|
+
.selectAll('text')
|
|
3238
3179
|
.data(labelArray)
|
|
3239
3180
|
.enter()
|
|
3240
|
-
.append('g')
|
|
3241
|
-
.attr('transform', function (d) {
|
|
3242
|
-
var newAngle = self.chartConfiguration.minAngle + (d.value / range) * 180;
|
|
3243
|
-
return ('rotate(' +
|
|
3244
|
-
newAngle +
|
|
3245
|
-
') translate(0,' +
|
|
3246
|
-
(self.chartConfiguration.labelInset - radius - 20) +
|
|
3247
|
-
')');
|
|
3248
|
-
})
|
|
3249
|
-
.append('g')
|
|
3250
|
-
.attr('transform', function (d, i) {
|
|
3251
|
-
var newAngle = self.chartConfiguration.minAngle + (d.value / range) * 180;
|
|
3252
|
-
if (i == 0 && self.chartConfiguration.isValueLableAdjust) {
|
|
3253
|
-
return 'rotate(' + (0 - newAngle) + ') translate(-27,0)';
|
|
3254
|
-
}
|
|
3255
|
-
if (i == labelArray.length - 1 &&
|
|
3256
|
-
self.chartConfiguration.isValueLableAdjust) {
|
|
3257
|
-
return 'rotate(' + (0 - newAngle) + ') translate(-15,0)';
|
|
3258
|
-
}
|
|
3259
|
-
return 'rotate(' + (0 - newAngle) + ') translate(-17,0)';
|
|
3260
|
-
})
|
|
3261
3181
|
.append('text')
|
|
3262
|
-
.attr('
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
else
|
|
3266
|
-
return 'font-size: ' + '14px' + '; font-weight:' + '600;';
|
|
3182
|
+
.attr('transform', (d) => {
|
|
3183
|
+
const newAngle = this.chartConfiguration.minAngle + (d.value / range) * 180;
|
|
3184
|
+
return `rotate(${newAngle}) translate(0,${this.chartConfiguration.labelInset - radius - 20}) rotate(${-newAngle})`;
|
|
3267
3185
|
})
|
|
3268
3186
|
.attr('fill', 'var(--chart-text-color)')
|
|
3269
|
-
.
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
(radius - this.chartConfiguration.currentValueWidthScaleFactor / 2) +
|
|
3279
|
-
',' +
|
|
3280
|
-
topTextPosition +
|
|
3281
|
-
')')
|
|
3282
|
-
.attr('width', this.chartConfiguration.currentValueWidthScaleFactor + 8)
|
|
3283
|
-
.attr('height', this.chartConfiguration.currentValueHeightScaleFactor)
|
|
3284
|
-
.append('xhtml:div')
|
|
3285
|
-
.attr('class', 'value-display')
|
|
3286
|
-
.style('height', this.chartConfiguration.currentValueHeightScaleFactor + 10 + 'px')
|
|
3287
|
-
.style('font-size', function () {
|
|
3288
|
-
if (window.innerWidth > 1500) {
|
|
3289
|
-
self.chartConfiguration.currentValueHeightScaleFactor - 25 + 'px';
|
|
3290
|
-
}
|
|
3291
|
-
else {
|
|
3292
|
-
self.chartConfiguration.currentValueHeightScaleFactor - 15 + 'px';
|
|
3293
|
-
}
|
|
3294
|
-
})
|
|
3295
|
-
.html(metaData.currentValue + metaData.dataType);
|
|
3296
|
-
if (metaData.status) {
|
|
3297
|
-
let widthTemp = metaData.status.length > 4 ? 210 : 120;
|
|
3187
|
+
.style('font-size', window.innerWidth < 1400 ? '12px' : '14px')
|
|
3188
|
+
.style('font-weight', 600)
|
|
3189
|
+
.text((d) => `${d.name}${metaData.dataType ?? ''}`);
|
|
3190
|
+
}
|
|
3191
|
+
drawTextBlocks(svg, metaData, radius) {
|
|
3192
|
+
const top = radius / 2 - 10;
|
|
3193
|
+
const mid = top + this.chartConfiguration.currentValueHeightScaleFactor;
|
|
3194
|
+
const bottom = mid + this.chartConfiguration.currentValueHeightScaleFactor;
|
|
3195
|
+
const addText = (cls, text, y, width = 210) => {
|
|
3298
3196
|
svg
|
|
3299
3197
|
.append('foreignObject')
|
|
3300
|
-
.attr('transform',
|
|
3301
|
-
.attr('width',
|
|
3302
|
-
.attr('height', this.chartConfiguration.currentValueHeightScaleFactor
|
|
3198
|
+
.attr('transform', `translate(${radius - width / 2},${y})`)
|
|
3199
|
+
.attr('width', width)
|
|
3200
|
+
.attr('height', this.chartConfiguration.currentValueHeightScaleFactor)
|
|
3303
3201
|
.append('xhtml:div')
|
|
3304
|
-
.attr('class',
|
|
3305
|
-
.
|
|
3306
|
-
|
|
3307
|
-
}
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
.attr('height', this.chartConfiguration.currentValueHeightScaleFactor)
|
|
3313
|
-
.append('xhtml:div')
|
|
3314
|
-
.attr('class', 'daterange-display')
|
|
3315
|
-
.style('font-size', function () {
|
|
3316
|
-
if (self.chartConfiguration.isDrilldownChart) {
|
|
3317
|
-
{
|
|
3318
|
-
if (window.innerWidth < 1400)
|
|
3319
|
-
return '14px';
|
|
3320
|
-
else
|
|
3321
|
-
return '18px';
|
|
3322
|
-
}
|
|
3323
|
-
}
|
|
3324
|
-
else {
|
|
3325
|
-
if (window.innerWidth < 1400)
|
|
3326
|
-
return '14px';
|
|
3327
|
-
else
|
|
3328
|
-
return '18px';
|
|
3329
|
-
}
|
|
3330
|
-
})
|
|
3331
|
-
.html(function () {
|
|
3332
|
-
var desiredSize;
|
|
3333
|
-
if (window.innerWidth < 1400)
|
|
3334
|
-
desiredSize = '14px';
|
|
3335
|
-
else
|
|
3336
|
-
desiredSize = '18px';
|
|
3337
|
-
if (metaData.dateRange)
|
|
3338
|
-
return ('<span class="marginright-3"><i class="fa fa-calendar"></i></span><span> ' +
|
|
3339
|
-
metaData.dateRange +
|
|
3340
|
-
'</span>');
|
|
3341
|
-
else
|
|
3342
|
-
return '';
|
|
3343
|
-
});
|
|
3344
|
-
var containerMidWidth = parseInt(chartContainer.style('width')) / 2;
|
|
3345
|
-
var nodeHalfWidth = svg.node().getBoundingClientRect().width / 2;
|
|
3346
|
-
var updatedStartingPoint = containerMidWidth - nodeHalfWidth;
|
|
3347
|
-
svg.attr('transform', 'translate(' +
|
|
3348
|
-
(updatedStartingPoint + margin.left) +
|
|
3349
|
-
',' +
|
|
3350
|
-
margin.top +
|
|
3351
|
-
')');
|
|
3202
|
+
.attr('class', cls)
|
|
3203
|
+
.html(text);
|
|
3204
|
+
};
|
|
3205
|
+
addText('value-display', `${metaData.currentValue}${metaData.dataType ?? ''}`, top);
|
|
3206
|
+
if (metaData.status)
|
|
3207
|
+
addText('status-display', metaData.status, mid);
|
|
3208
|
+
if (metaData.dateRange)
|
|
3209
|
+
addText('daterange-display', `<i class="fa fa-calendar"></i> ${metaData.dateRange}`, bottom);
|
|
3352
3210
|
}
|
|
3353
|
-
|
|
3354
|
-
|
|
3211
|
+
deg2rad(deg) {
|
|
3212
|
+
return (deg * Math.PI) / 180;
|
|
3213
|
+
}
|
|
3214
|
+
handleClick(data) {
|
|
3215
|
+
this.clickEvent.emit(data);
|
|
3355
3216
|
}
|
|
3356
3217
|
handleHeaderMenuClick(id) {
|
|
3357
3218
|
this.headerMenuclickEvent.emit(id);
|