Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/embedpre.../assets/pdf/build
File: script.js
var esnext_set_intersection_v2 = __webpack_require__(9225);
[5500] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js
[5501] Fix | Delete
var esnext_set_is_disjoint_from_v2 = __webpack_require__(3972);
[5502] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js
[5503] Fix | Delete
var esnext_set_is_subset_of_v2 = __webpack_require__(9209);
[5504] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js
[5505] Fix | Delete
var esnext_set_is_superset_of_v2 = __webpack_require__(5714);
[5506] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js
[5507] Fix | Delete
var esnext_set_symmetric_difference_v2 = __webpack_require__(7561);
[5508] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.union.v2.js
[5509] Fix | Delete
var esnext_set_union_v2 = __webpack_require__(6197);
[5510] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-exception.stack.js
[5511] Fix | Delete
var web_dom_exception_stack = __webpack_require__(4979);
[5512] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.constructor.js
[5513] Fix | Delete
var esnext_iterator_constructor = __webpack_require__(8992);
[5514] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.every.js
[5515] Fix | Delete
var esnext_iterator_every = __webpack_require__(3215);
[5516] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.some.js
[5517] Fix | Delete
var esnext_iterator_some = __webpack_require__(7550);
[5518] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.json.parse.js
[5519] Fix | Delete
var esnext_json_parse = __webpack_require__(8335);
[5520] Fix | Delete
// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.filter.js
[5521] Fix | Delete
var esnext_iterator_filter = __webpack_require__(4520);
[5522] Fix | Delete
;// CONCATENATED MODULE: ./src/display/base_factory.js
[5523] Fix | Delete
[5524] Fix | Delete
class BaseFilterFactory {
[5525] Fix | Delete
constructor() {
[5526] Fix | Delete
if (this.constructor === BaseFilterFactory) {
[5527] Fix | Delete
unreachable("Cannot initialize BaseFilterFactory.");
[5528] Fix | Delete
}
[5529] Fix | Delete
}
[5530] Fix | Delete
addFilter(maps) {
[5531] Fix | Delete
return "none";
[5532] Fix | Delete
}
[5533] Fix | Delete
addHCMFilter(fgColor, bgColor) {
[5534] Fix | Delete
return "none";
[5535] Fix | Delete
}
[5536] Fix | Delete
addAlphaFilter(map) {
[5537] Fix | Delete
return "none";
[5538] Fix | Delete
}
[5539] Fix | Delete
addLuminosityFilter(map) {
[5540] Fix | Delete
return "none";
[5541] Fix | Delete
}
[5542] Fix | Delete
addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {
[5543] Fix | Delete
return "none";
[5544] Fix | Delete
}
[5545] Fix | Delete
destroy(keepHCM = false) {}
[5546] Fix | Delete
}
[5547] Fix | Delete
class BaseCanvasFactory {
[5548] Fix | Delete
constructor() {
[5549] Fix | Delete
if (this.constructor === BaseCanvasFactory) {
[5550] Fix | Delete
unreachable("Cannot initialize BaseCanvasFactory.");
[5551] Fix | Delete
}
[5552] Fix | Delete
}
[5553] Fix | Delete
create(width, height) {
[5554] Fix | Delete
if (width <= 0 || height <= 0) {
[5555] Fix | Delete
throw new Error("Invalid canvas size");
[5556] Fix | Delete
}
[5557] Fix | Delete
const canvas = this._createCanvas(width, height);
[5558] Fix | Delete
return {
[5559] Fix | Delete
canvas,
[5560] Fix | Delete
context: canvas.getContext("2d")
[5561] Fix | Delete
};
[5562] Fix | Delete
}
[5563] Fix | Delete
reset(canvasAndContext, width, height) {
[5564] Fix | Delete
if (!canvasAndContext.canvas) {
[5565] Fix | Delete
throw new Error("Canvas is not specified");
[5566] Fix | Delete
}
[5567] Fix | Delete
if (width <= 0 || height <= 0) {
[5568] Fix | Delete
throw new Error("Invalid canvas size");
[5569] Fix | Delete
}
[5570] Fix | Delete
canvasAndContext.canvas.width = width;
[5571] Fix | Delete
canvasAndContext.canvas.height = height;
[5572] Fix | Delete
}
[5573] Fix | Delete
destroy(canvasAndContext) {
[5574] Fix | Delete
if (!canvasAndContext.canvas) {
[5575] Fix | Delete
throw new Error("Canvas is not specified");
[5576] Fix | Delete
}
[5577] Fix | Delete
canvasAndContext.canvas.width = 0;
[5578] Fix | Delete
canvasAndContext.canvas.height = 0;
[5579] Fix | Delete
canvasAndContext.canvas = null;
[5580] Fix | Delete
canvasAndContext.context = null;
[5581] Fix | Delete
}
[5582] Fix | Delete
_createCanvas(width, height) {
[5583] Fix | Delete
unreachable("Abstract method `_createCanvas` called.");
[5584] Fix | Delete
}
[5585] Fix | Delete
}
[5586] Fix | Delete
class BaseCMapReaderFactory {
[5587] Fix | Delete
constructor({
[5588] Fix | Delete
baseUrl = null,
[5589] Fix | Delete
isCompressed = true
[5590] Fix | Delete
}) {
[5591] Fix | Delete
if (this.constructor === BaseCMapReaderFactory) {
[5592] Fix | Delete
unreachable("Cannot initialize BaseCMapReaderFactory.");
[5593] Fix | Delete
}
[5594] Fix | Delete
this.baseUrl = baseUrl;
[5595] Fix | Delete
this.isCompressed = isCompressed;
[5596] Fix | Delete
}
[5597] Fix | Delete
async fetch({
[5598] Fix | Delete
name
[5599] Fix | Delete
}) {
[5600] Fix | Delete
if (!this.baseUrl) {
[5601] Fix | Delete
throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.');
[5602] Fix | Delete
}
[5603] Fix | Delete
if (!name) {
[5604] Fix | Delete
throw new Error("CMap name must be specified.");
[5605] Fix | Delete
}
[5606] Fix | Delete
const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
[5607] Fix | Delete
const compressionType = this.isCompressed ? CMapCompressionType.BINARY : CMapCompressionType.NONE;
[5608] Fix | Delete
return this._fetchData(url, compressionType).catch(reason => {
[5609] Fix | Delete
throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`);
[5610] Fix | Delete
});
[5611] Fix | Delete
}
[5612] Fix | Delete
_fetchData(url, compressionType) {
[5613] Fix | Delete
unreachable("Abstract method `_fetchData` called.");
[5614] Fix | Delete
}
[5615] Fix | Delete
}
[5616] Fix | Delete
class BaseStandardFontDataFactory {
[5617] Fix | Delete
constructor({
[5618] Fix | Delete
baseUrl = null
[5619] Fix | Delete
}) {
[5620] Fix | Delete
if (this.constructor === BaseStandardFontDataFactory) {
[5621] Fix | Delete
unreachable("Cannot initialize BaseStandardFontDataFactory.");
[5622] Fix | Delete
}
[5623] Fix | Delete
this.baseUrl = baseUrl;
[5624] Fix | Delete
}
[5625] Fix | Delete
async fetch({
[5626] Fix | Delete
filename
[5627] Fix | Delete
}) {
[5628] Fix | Delete
if (!this.baseUrl) {
[5629] Fix | Delete
throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.');
[5630] Fix | Delete
}
[5631] Fix | Delete
if (!filename) {
[5632] Fix | Delete
throw new Error("Font filename must be specified.");
[5633] Fix | Delete
}
[5634] Fix | Delete
const url = `${this.baseUrl}${filename}`;
[5635] Fix | Delete
return this._fetchData(url).catch(reason => {
[5636] Fix | Delete
throw new Error(`Unable to load font data at: ${url}`);
[5637] Fix | Delete
});
[5638] Fix | Delete
}
[5639] Fix | Delete
_fetchData(url) {
[5640] Fix | Delete
unreachable("Abstract method `_fetchData` called.");
[5641] Fix | Delete
}
[5642] Fix | Delete
}
[5643] Fix | Delete
class BaseSVGFactory {
[5644] Fix | Delete
constructor() {
[5645] Fix | Delete
if (this.constructor === BaseSVGFactory) {
[5646] Fix | Delete
unreachable("Cannot initialize BaseSVGFactory.");
[5647] Fix | Delete
}
[5648] Fix | Delete
}
[5649] Fix | Delete
create(width, height, skipDimensions = false) {
[5650] Fix | Delete
if (width <= 0 || height <= 0) {
[5651] Fix | Delete
throw new Error("Invalid SVG dimensions");
[5652] Fix | Delete
}
[5653] Fix | Delete
const svg = this._createSVG("svg:svg");
[5654] Fix | Delete
svg.setAttribute("version", "1.1");
[5655] Fix | Delete
if (!skipDimensions) {
[5656] Fix | Delete
svg.setAttribute("width", `${width}px`);
[5657] Fix | Delete
svg.setAttribute("height", `${height}px`);
[5658] Fix | Delete
}
[5659] Fix | Delete
svg.setAttribute("preserveAspectRatio", "none");
[5660] Fix | Delete
svg.setAttribute("viewBox", `0 0 ${width} ${height}`);
[5661] Fix | Delete
return svg;
[5662] Fix | Delete
}
[5663] Fix | Delete
createElement(type) {
[5664] Fix | Delete
if (typeof type !== "string") {
[5665] Fix | Delete
throw new Error("Invalid SVG element type");
[5666] Fix | Delete
}
[5667] Fix | Delete
return this._createSVG(type);
[5668] Fix | Delete
}
[5669] Fix | Delete
_createSVG(type) {
[5670] Fix | Delete
unreachable("Abstract method `_createSVG` called.");
[5671] Fix | Delete
}
[5672] Fix | Delete
}
[5673] Fix | Delete
[5674] Fix | Delete
;// CONCATENATED MODULE: ./src/display/display_utils.js
[5675] Fix | Delete
[5676] Fix | Delete
[5677] Fix | Delete
[5678] Fix | Delete
[5679] Fix | Delete
[5680] Fix | Delete
[5681] Fix | Delete
[5682] Fix | Delete
[5683] Fix | Delete
[5684] Fix | Delete
[5685] Fix | Delete
[5686] Fix | Delete
[5687] Fix | Delete
[5688] Fix | Delete
[5689] Fix | Delete
[5690] Fix | Delete
const SVG_NS = "http://www.w3.org/2000/svg";
[5691] Fix | Delete
class PixelsPerInch {
[5692] Fix | Delete
static CSS = 96.0;
[5693] Fix | Delete
static PDF = 72.0;
[5694] Fix | Delete
static PDF_TO_CSS_UNITS = this.CSS / this.PDF;
[5695] Fix | Delete
}
[5696] Fix | Delete
class DOMFilterFactory extends BaseFilterFactory {
[5697] Fix | Delete
#_cache;
[5698] Fix | Delete
#_defs;
[5699] Fix | Delete
#docId;
[5700] Fix | Delete
#document;
[5701] Fix | Delete
#_hcmCache;
[5702] Fix | Delete
#id = 0;
[5703] Fix | Delete
constructor({
[5704] Fix | Delete
docId,
[5705] Fix | Delete
ownerDocument = globalThis.document
[5706] Fix | Delete
} = {}) {
[5707] Fix | Delete
super();
[5708] Fix | Delete
this.#docId = docId;
[5709] Fix | Delete
this.#document = ownerDocument;
[5710] Fix | Delete
}
[5711] Fix | Delete
get #cache() {
[5712] Fix | Delete
return this.#_cache ||= new Map();
[5713] Fix | Delete
}
[5714] Fix | Delete
get #hcmCache() {
[5715] Fix | Delete
return this.#_hcmCache ||= new Map();
[5716] Fix | Delete
}
[5717] Fix | Delete
get #defs() {
[5718] Fix | Delete
if (!this.#_defs) {
[5719] Fix | Delete
const div = this.#document.createElement("div");
[5720] Fix | Delete
const {
[5721] Fix | Delete
style
[5722] Fix | Delete
} = div;
[5723] Fix | Delete
style.visibility = "hidden";
[5724] Fix | Delete
style.contain = "strict";
[5725] Fix | Delete
style.width = style.height = 0;
[5726] Fix | Delete
style.position = "absolute";
[5727] Fix | Delete
style.top = style.left = 0;
[5728] Fix | Delete
style.zIndex = -1;
[5729] Fix | Delete
const svg = this.#document.createElementNS(SVG_NS, "svg");
[5730] Fix | Delete
svg.setAttribute("width", 0);
[5731] Fix | Delete
svg.setAttribute("height", 0);
[5732] Fix | Delete
this.#_defs = this.#document.createElementNS(SVG_NS, "defs");
[5733] Fix | Delete
div.append(svg);
[5734] Fix | Delete
svg.append(this.#_defs);
[5735] Fix | Delete
this.#document.body.append(div);
[5736] Fix | Delete
}
[5737] Fix | Delete
return this.#_defs;
[5738] Fix | Delete
}
[5739] Fix | Delete
#createTables(maps) {
[5740] Fix | Delete
if (maps.length === 1) {
[5741] Fix | Delete
const mapR = maps[0];
[5742] Fix | Delete
const buffer = new Array(256);
[5743] Fix | Delete
for (let i = 0; i < 256; i++) {
[5744] Fix | Delete
buffer[i] = mapR[i] / 255;
[5745] Fix | Delete
}
[5746] Fix | Delete
const table = buffer.join(",");
[5747] Fix | Delete
return [table, table, table];
[5748] Fix | Delete
}
[5749] Fix | Delete
const [mapR, mapG, mapB] = maps;
[5750] Fix | Delete
const bufferR = new Array(256);
[5751] Fix | Delete
const bufferG = new Array(256);
[5752] Fix | Delete
const bufferB = new Array(256);
[5753] Fix | Delete
for (let i = 0; i < 256; i++) {
[5754] Fix | Delete
bufferR[i] = mapR[i] / 255;
[5755] Fix | Delete
bufferG[i] = mapG[i] / 255;
[5756] Fix | Delete
bufferB[i] = mapB[i] / 255;
[5757] Fix | Delete
}
[5758] Fix | Delete
return [bufferR.join(","), bufferG.join(","), bufferB.join(",")];
[5759] Fix | Delete
}
[5760] Fix | Delete
addFilter(maps) {
[5761] Fix | Delete
if (!maps) {
[5762] Fix | Delete
return "none";
[5763] Fix | Delete
}
[5764] Fix | Delete
let value = this.#cache.get(maps);
[5765] Fix | Delete
if (value) {
[5766] Fix | Delete
return value;
[5767] Fix | Delete
}
[5768] Fix | Delete
const [tableR, tableG, tableB] = this.#createTables(maps);
[5769] Fix | Delete
const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;
[5770] Fix | Delete
value = this.#cache.get(key);
[5771] Fix | Delete
if (value) {
[5772] Fix | Delete
this.#cache.set(maps, value);
[5773] Fix | Delete
return value;
[5774] Fix | Delete
}
[5775] Fix | Delete
const id = `g_${this.#docId}_transfer_map_${this.#id++}`;
[5776] Fix | Delete
const url = `url(#${id})`;
[5777] Fix | Delete
this.#cache.set(maps, url);
[5778] Fix | Delete
this.#cache.set(key, url);
[5779] Fix | Delete
const filter = this.#createFilter(id);
[5780] Fix | Delete
this.#addTransferMapConversion(tableR, tableG, tableB, filter);
[5781] Fix | Delete
return url;
[5782] Fix | Delete
}
[5783] Fix | Delete
addHCMFilter(fgColor, bgColor) {
[5784] Fix | Delete
const key = `${fgColor}-${bgColor}`;
[5785] Fix | Delete
const filterName = "base";
[5786] Fix | Delete
let info = this.#hcmCache.get(filterName);
[5787] Fix | Delete
if (info?.key === key) {
[5788] Fix | Delete
return info.url;
[5789] Fix | Delete
}
[5790] Fix | Delete
if (info) {
[5791] Fix | Delete
info.filter?.remove();
[5792] Fix | Delete
info.key = key;
[5793] Fix | Delete
info.url = "none";
[5794] Fix | Delete
info.filter = null;
[5795] Fix | Delete
} else {
[5796] Fix | Delete
info = {
[5797] Fix | Delete
key,
[5798] Fix | Delete
url: "none",
[5799] Fix | Delete
filter: null
[5800] Fix | Delete
};
[5801] Fix | Delete
this.#hcmCache.set(filterName, info);
[5802] Fix | Delete
}
[5803] Fix | Delete
if (!fgColor || !bgColor) {
[5804] Fix | Delete
return info.url;
[5805] Fix | Delete
}
[5806] Fix | Delete
const fgRGB = this.#getRGB(fgColor);
[5807] Fix | Delete
fgColor = Util.makeHexColor(...fgRGB);
[5808] Fix | Delete
const bgRGB = this.#getRGB(bgColor);
[5809] Fix | Delete
bgColor = Util.makeHexColor(...bgRGB);
[5810] Fix | Delete
this.#defs.style.color = "";
[5811] Fix | Delete
if (fgColor === "#000000" && bgColor === "#ffffff" || fgColor === bgColor) {
[5812] Fix | Delete
return info.url;
[5813] Fix | Delete
}
[5814] Fix | Delete
const map = new Array(256);
[5815] Fix | Delete
for (let i = 0; i <= 255; i++) {
[5816] Fix | Delete
const x = i / 255;
[5817] Fix | Delete
map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;
[5818] Fix | Delete
}
[5819] Fix | Delete
const table = map.join(",");
[5820] Fix | Delete
const id = `g_${this.#docId}_hcm_filter`;
[5821] Fix | Delete
const filter = info.filter = this.#createFilter(id);
[5822] Fix | Delete
this.#addTransferMapConversion(table, table, table, filter);
[5823] Fix | Delete
this.#addGrayConversion(filter);
[5824] Fix | Delete
const getSteps = (c, n) => {
[5825] Fix | Delete
const start = fgRGB[c] / 255;
[5826] Fix | Delete
const end = bgRGB[c] / 255;
[5827] Fix | Delete
const arr = new Array(n + 1);
[5828] Fix | Delete
for (let i = 0; i <= n; i++) {
[5829] Fix | Delete
arr[i] = start + i / n * (end - start);
[5830] Fix | Delete
}
[5831] Fix | Delete
return arr.join(",");
[5832] Fix | Delete
};
[5833] Fix | Delete
this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);
[5834] Fix | Delete
info.url = `url(#${id})`;
[5835] Fix | Delete
return info.url;
[5836] Fix | Delete
}
[5837] Fix | Delete
addAlphaFilter(map) {
[5838] Fix | Delete
let value = this.#cache.get(map);
[5839] Fix | Delete
if (value) {
[5840] Fix | Delete
return value;
[5841] Fix | Delete
}
[5842] Fix | Delete
const [tableA] = this.#createTables([map]);
[5843] Fix | Delete
const key = `alpha_${tableA}`;
[5844] Fix | Delete
value = this.#cache.get(key);
[5845] Fix | Delete
if (value) {
[5846] Fix | Delete
this.#cache.set(map, value);
[5847] Fix | Delete
return value;
[5848] Fix | Delete
}
[5849] Fix | Delete
const id = `g_${this.#docId}_alpha_map_${this.#id++}`;
[5850] Fix | Delete
const url = `url(#${id})`;
[5851] Fix | Delete
this.#cache.set(map, url);
[5852] Fix | Delete
this.#cache.set(key, url);
[5853] Fix | Delete
const filter = this.#createFilter(id);
[5854] Fix | Delete
this.#addTransferMapAlphaConversion(tableA, filter);
[5855] Fix | Delete
return url;
[5856] Fix | Delete
}
[5857] Fix | Delete
addLuminosityFilter(map) {
[5858] Fix | Delete
let value = this.#cache.get(map || "luminosity");
[5859] Fix | Delete
if (value) {
[5860] Fix | Delete
return value;
[5861] Fix | Delete
}
[5862] Fix | Delete
let tableA, key;
[5863] Fix | Delete
if (map) {
[5864] Fix | Delete
[tableA] = this.#createTables([map]);
[5865] Fix | Delete
key = `luminosity_${tableA}`;
[5866] Fix | Delete
} else {
[5867] Fix | Delete
key = "luminosity";
[5868] Fix | Delete
}
[5869] Fix | Delete
value = this.#cache.get(key);
[5870] Fix | Delete
if (value) {
[5871] Fix | Delete
this.#cache.set(map, value);
[5872] Fix | Delete
return value;
[5873] Fix | Delete
}
[5874] Fix | Delete
const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;
[5875] Fix | Delete
const url = `url(#${id})`;
[5876] Fix | Delete
this.#cache.set(map, url);
[5877] Fix | Delete
this.#cache.set(key, url);
[5878] Fix | Delete
const filter = this.#createFilter(id);
[5879] Fix | Delete
this.#addLuminosityConversion(filter);
[5880] Fix | Delete
if (map) {
[5881] Fix | Delete
this.#addTransferMapAlphaConversion(tableA, filter);
[5882] Fix | Delete
}
[5883] Fix | Delete
return url;
[5884] Fix | Delete
}
[5885] Fix | Delete
addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {
[5886] Fix | Delete
const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;
[5887] Fix | Delete
let info = this.#hcmCache.get(filterName);
[5888] Fix | Delete
if (info?.key === key) {
[5889] Fix | Delete
return info.url;
[5890] Fix | Delete
}
[5891] Fix | Delete
if (info) {
[5892] Fix | Delete
info.filter?.remove();
[5893] Fix | Delete
info.key = key;
[5894] Fix | Delete
info.url = "none";
[5895] Fix | Delete
info.filter = null;
[5896] Fix | Delete
} else {
[5897] Fix | Delete
info = {
[5898] Fix | Delete
key,
[5899] Fix | Delete
url: "none",
[5900] Fix | Delete
filter: null
[5901] Fix | Delete
};
[5902] Fix | Delete
this.#hcmCache.set(filterName, info);
[5903] Fix | Delete
}
[5904] Fix | Delete
if (!fgColor || !bgColor) {
[5905] Fix | Delete
return info.url;
[5906] Fix | Delete
}
[5907] Fix | Delete
const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));
[5908] Fix | Delete
let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);
[5909] Fix | Delete
let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);
[5910] Fix | Delete
let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));
[5911] Fix | Delete
if (bgGray < fgGray) {
[5912] Fix | Delete
[fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];
[5913] Fix | Delete
}
[5914] Fix | Delete
this.#defs.style.color = "";
[5915] Fix | Delete
const getSteps = (fg, bg, n) => {
[5916] Fix | Delete
const arr = new Array(256);
[5917] Fix | Delete
const step = (bgGray - fgGray) / n;
[5918] Fix | Delete
const newStart = fg / 255;
[5919] Fix | Delete
const newStep = (bg - fg) / (255 * n);
[5920] Fix | Delete
let prev = 0;
[5921] Fix | Delete
for (let i = 0; i <= n; i++) {
[5922] Fix | Delete
const k = Math.round(fgGray + i * step);
[5923] Fix | Delete
const value = newStart + i * newStep;
[5924] Fix | Delete
for (let j = prev; j <= k; j++) {
[5925] Fix | Delete
arr[j] = value;
[5926] Fix | Delete
}
[5927] Fix | Delete
prev = k + 1;
[5928] Fix | Delete
}
[5929] Fix | Delete
for (let i = prev; i < 256; i++) {
[5930] Fix | Delete
arr[i] = arr[prev - 1];
[5931] Fix | Delete
}
[5932] Fix | Delete
return arr.join(",");
[5933] Fix | Delete
};
[5934] Fix | Delete
const id = `g_${this.#docId}_hcm_${filterName}_filter`;
[5935] Fix | Delete
const filter = info.filter = this.#createFilter(id);
[5936] Fix | Delete
this.#addGrayConversion(filter);
[5937] Fix | Delete
this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);
[5938] Fix | Delete
info.url = `url(#${id})`;
[5939] Fix | Delete
return info.url;
[5940] Fix | Delete
}
[5941] Fix | Delete
destroy(keepHCM = false) {
[5942] Fix | Delete
if (keepHCM && this.#hcmCache.size !== 0) {
[5943] Fix | Delete
return;
[5944] Fix | Delete
}
[5945] Fix | Delete
if (this.#_defs) {
[5946] Fix | Delete
this.#_defs.parentNode.parentNode.remove();
[5947] Fix | Delete
this.#_defs = null;
[5948] Fix | Delete
}
[5949] Fix | Delete
if (this.#_cache) {
[5950] Fix | Delete
this.#_cache.clear();
[5951] Fix | Delete
this.#_cache = null;
[5952] Fix | Delete
}
[5953] Fix | Delete
this.#id = 0;
[5954] Fix | Delete
}
[5955] Fix | Delete
#addLuminosityConversion(filter) {
[5956] Fix | Delete
const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix");
[5957] Fix | Delete
feColorMatrix.setAttribute("type", "matrix");
[5958] Fix | Delete
feColorMatrix.setAttribute("values", "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0");
[5959] Fix | Delete
filter.append(feColorMatrix);
[5960] Fix | Delete
}
[5961] Fix | Delete
#addGrayConversion(filter) {
[5962] Fix | Delete
const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix");
[5963] Fix | Delete
feColorMatrix.setAttribute("type", "matrix");
[5964] Fix | Delete
feColorMatrix.setAttribute("values", "0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0");
[5965] Fix | Delete
filter.append(feColorMatrix);
[5966] Fix | Delete
}
[5967] Fix | Delete
#createFilter(id) {
[5968] Fix | Delete
const filter = this.#document.createElementNS(SVG_NS, "filter");
[5969] Fix | Delete
filter.setAttribute("color-interpolation-filters", "sRGB");
[5970] Fix | Delete
filter.setAttribute("id", id);
[5971] Fix | Delete
this.#defs.append(filter);
[5972] Fix | Delete
return filter;
[5973] Fix | Delete
}
[5974] Fix | Delete
#appendFeFunc(feComponentTransfer, func, table) {
[5975] Fix | Delete
const feFunc = this.#document.createElementNS(SVG_NS, func);
[5976] Fix | Delete
feFunc.setAttribute("type", "discrete");
[5977] Fix | Delete
feFunc.setAttribute("tableValues", table);
[5978] Fix | Delete
feComponentTransfer.append(feFunc);
[5979] Fix | Delete
}
[5980] Fix | Delete
#addTransferMapConversion(rTable, gTable, bTable, filter) {
[5981] Fix | Delete
const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer");
[5982] Fix | Delete
filter.append(feComponentTransfer);
[5983] Fix | Delete
this.#appendFeFunc(feComponentTransfer, "feFuncR", rTable);
[5984] Fix | Delete
this.#appendFeFunc(feComponentTransfer, "feFuncG", gTable);
[5985] Fix | Delete
this.#appendFeFunc(feComponentTransfer, "feFuncB", bTable);
[5986] Fix | Delete
}
[5987] Fix | Delete
#addTransferMapAlphaConversion(aTable, filter) {
[5988] Fix | Delete
const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer");
[5989] Fix | Delete
filter.append(feComponentTransfer);
[5990] Fix | Delete
this.#appendFeFunc(feComponentTransfer, "feFuncA", aTable);
[5991] Fix | Delete
}
[5992] Fix | Delete
#getRGB(color) {
[5993] Fix | Delete
this.#defs.style.color = color;
[5994] Fix | Delete
return getRGB(getComputedStyle(this.#defs).getPropertyValue("color"));
[5995] Fix | Delete
}
[5996] Fix | Delete
}
[5997] Fix | Delete
class DOMCanvasFactory extends BaseCanvasFactory {
[5998] Fix | Delete
constructor({
[5999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function