Add a helper, in DOMFilterFactory
, to reduce duplication when creating <feFuncX>
s
Currently we repeat the same code verbatim multiple times in the `DOMFilterFactory`, which seems completely unnecessary.
This commit is contained in:
parent
3903391f3c
commit
86cf62699c
@ -98,6 +98,13 @@ class DOMFilterFactory extends BaseFilterFactory {
|
|||||||
return this.#_defs;
|
return this.#_defs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#appendFeFunc(feComponentTransfer, func, table) {
|
||||||
|
const feFunc = this.#document.createElementNS(SVG_NS, func);
|
||||||
|
feFunc.setAttribute("type", "discrete");
|
||||||
|
feFunc.setAttribute("tableValues", table);
|
||||||
|
feComponentTransfer.append(feFunc);
|
||||||
|
}
|
||||||
|
|
||||||
addFilter(maps) {
|
addFilter(maps) {
|
||||||
if (!maps) {
|
if (!maps) {
|
||||||
return "none";
|
return "none";
|
||||||
@ -157,21 +164,9 @@ class DOMFilterFactory extends BaseFilterFactory {
|
|||||||
);
|
);
|
||||||
filter.append(feComponentTransfer);
|
filter.append(feComponentTransfer);
|
||||||
|
|
||||||
const type = "discrete";
|
this.#appendFeFunc(feComponentTransfer, "feFuncR", tableR);
|
||||||
const feFuncR = this.#document.createElementNS(SVG_NS, "feFuncR");
|
this.#appendFeFunc(feComponentTransfer, "feFuncG", tableG);
|
||||||
feFuncR.setAttribute("type", type);
|
this.#appendFeFunc(feComponentTransfer, "feFuncB", tableB);
|
||||||
feFuncR.setAttribute("tableValues", tableR);
|
|
||||||
feComponentTransfer.append(feFuncR);
|
|
||||||
|
|
||||||
const feFuncG = this.#document.createElementNS(SVG_NS, "feFuncG");
|
|
||||||
feFuncG.setAttribute("type", type);
|
|
||||||
feFuncG.setAttribute("tableValues", tableG);
|
|
||||||
feComponentTransfer.append(feFuncG);
|
|
||||||
|
|
||||||
const feFuncB = this.#document.createElementNS(SVG_NS, "feFuncB");
|
|
||||||
feFuncB.setAttribute("type", type);
|
|
||||||
feFuncB.setAttribute("tableValues", tableB);
|
|
||||||
feComponentTransfer.append(feFuncB);
|
|
||||||
|
|
||||||
this.#defs.append(filter);
|
this.#defs.append(filter);
|
||||||
|
|
||||||
@ -239,21 +234,9 @@ class DOMFilterFactory extends BaseFilterFactory {
|
|||||||
);
|
);
|
||||||
filter.append(feComponentTransfer);
|
filter.append(feComponentTransfer);
|
||||||
|
|
||||||
let type = "discrete";
|
this.#appendFeFunc(feComponentTransfer, "feFuncR", table);
|
||||||
let feFuncR = this.#document.createElementNS(SVG_NS, "feFuncR");
|
this.#appendFeFunc(feComponentTransfer, "feFuncG", table);
|
||||||
feFuncR.setAttribute("type", type);
|
this.#appendFeFunc(feComponentTransfer, "feFuncB", table);
|
||||||
feFuncR.setAttribute("tableValues", table);
|
|
||||||
feComponentTransfer.append(feFuncR);
|
|
||||||
|
|
||||||
let feFuncG = this.#document.createElementNS(SVG_NS, "feFuncG");
|
|
||||||
feFuncG.setAttribute("type", type);
|
|
||||||
feFuncG.setAttribute("tableValues", table);
|
|
||||||
feComponentTransfer.append(feFuncG);
|
|
||||||
|
|
||||||
let feFuncB = this.#document.createElementNS(SVG_NS, "feFuncB");
|
|
||||||
feFuncB.setAttribute("type", type);
|
|
||||||
feFuncB.setAttribute("tableValues", table);
|
|
||||||
feComponentTransfer.append(feFuncB);
|
|
||||||
|
|
||||||
const feColorMatrix = this.#document.createElementNS(
|
const feColorMatrix = this.#document.createElementNS(
|
||||||
SVG_NS,
|
SVG_NS,
|
||||||
@ -281,22 +264,9 @@ class DOMFilterFactory extends BaseFilterFactory {
|
|||||||
}
|
}
|
||||||
return arr.join(",");
|
return arr.join(",");
|
||||||
};
|
};
|
||||||
|
this.#appendFeFunc(feComponentTransfer, "feFuncR", getSteps(0, 5));
|
||||||
type = "discrete";
|
this.#appendFeFunc(feComponentTransfer, "feFuncG", getSteps(1, 5));
|
||||||
feFuncR = this.#document.createElementNS(SVG_NS, "feFuncR");
|
this.#appendFeFunc(feComponentTransfer, "feFuncB", getSteps(2, 5));
|
||||||
feFuncR.setAttribute("type", type);
|
|
||||||
feFuncR.setAttribute("tableValues", `${getSteps(0, 5)}`);
|
|
||||||
feComponentTransfer.append(feFuncR);
|
|
||||||
|
|
||||||
feFuncG = this.#document.createElementNS(SVG_NS, "feFuncG");
|
|
||||||
feFuncG.setAttribute("type", type);
|
|
||||||
feFuncG.setAttribute("tableValues", `${getSteps(1, 5)}`);
|
|
||||||
feComponentTransfer.append(feFuncG);
|
|
||||||
|
|
||||||
feFuncB = this.#document.createElementNS(SVG_NS, "feFuncB");
|
|
||||||
feFuncB.setAttribute("type", type);
|
|
||||||
feFuncB.setAttribute("tableValues", `${getSteps(2, 5)}`);
|
|
||||||
feComponentTransfer.append(feFuncB);
|
|
||||||
|
|
||||||
this.#defs.append(filter);
|
this.#defs.append(filter);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user