У меня есть js файл, который создает объект диаграммы Highcharts. Я добавил плагин для изменения контрастности надписи. Плагин находится ниже:
/**
* Override getContrast function; make threshold for showing white text very high
*/
(function(H) {
H.Renderer.prototype.getContrast = function(rgba) {
rgba = H.Color(rgba).rgba;
return rgba[0] + rgba[1] + rgba[2] > 210 ? '#000000' : '#FFFFFF';
};
}(Highcharts));
Он работал просто отлично в течение нескольких месяцев. Недавно я заметил, что диаграмма больше не отображается, и моя консоль ошибок показывает это: Uncaught TypeError: this.init не является функцией в Object.e [as Color] (highcharts.sr c. js: 2839 )
Мне удалось проследить источник до этой части файла Highcharts.sr c. js:
/**
* Handle color operations. Some object methods are chainable.
*
* @param {Highcharts.ColorType} input
* The input color in either rbga or hex format
*/
function Color(input) {
// Collection of parsers. This can be extended from the outside by pushing
// parsers to Highcharts.Color.prototype.parsers.
this.parsers = [{
// RGBA color
// eslint-disable-next-line max-len
regex: /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,
parse: function (result) {
return [
pInt(result[1]),
pInt(result[2]),
pInt(result[3]),
parseFloat(result[4], 10)
];
}
}, {
// RGB color
regex: /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
parse: function (result) {
return [pInt(result[1]), pInt(result[2]), pInt(result[3]), 1];
}
}];
this.rgba = [];
this.init(input); //<!--ERROR RIGHT HERE
}
Это похоже на внутреннее изменение в Highcharts ' конец, в частности, метод init () для подкласса Color. У кого-нибудь еще была похожая ошибка?