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
ownerDocument = globalThis.document
[6000] Fix | Delete
} = {}) {
[6001] Fix | Delete
super();
[6002] Fix | Delete
this._document = ownerDocument;
[6003] Fix | Delete
}
[6004] Fix | Delete
_createCanvas(width, height) {
[6005] Fix | Delete
const canvas = this._document.createElement("canvas");
[6006] Fix | Delete
canvas.width = width;
[6007] Fix | Delete
canvas.height = height;
[6008] Fix | Delete
return canvas;
[6009] Fix | Delete
}
[6010] Fix | Delete
}
[6011] Fix | Delete
async function fetchData(url, type = "text") {
[6012] Fix | Delete
if (isValidFetchUrl(url, document.baseURI)) {
[6013] Fix | Delete
const response = await fetch(url);
[6014] Fix | Delete
if (!response.ok) {
[6015] Fix | Delete
throw new Error(response.statusText);
[6016] Fix | Delete
}
[6017] Fix | Delete
switch (type) {
[6018] Fix | Delete
case "arraybuffer":
[6019] Fix | Delete
return response.arrayBuffer();
[6020] Fix | Delete
case "blob":
[6021] Fix | Delete
return response.blob();
[6022] Fix | Delete
case "json":
[6023] Fix | Delete
return response.json();
[6024] Fix | Delete
}
[6025] Fix | Delete
return response.text();
[6026] Fix | Delete
}
[6027] Fix | Delete
return new Promise((resolve, reject) => {
[6028] Fix | Delete
const request = new XMLHttpRequest();
[6029] Fix | Delete
request.open("GET", url, true);
[6030] Fix | Delete
request.responseType = type;
[6031] Fix | Delete
request.onreadystatechange = () => {
[6032] Fix | Delete
if (request.readyState !== XMLHttpRequest.DONE) {
[6033] Fix | Delete
return;
[6034] Fix | Delete
}
[6035] Fix | Delete
if (request.status === 200 || request.status === 0) {
[6036] Fix | Delete
switch (type) {
[6037] Fix | Delete
case "arraybuffer":
[6038] Fix | Delete
case "blob":
[6039] Fix | Delete
case "json":
[6040] Fix | Delete
resolve(request.response);
[6041] Fix | Delete
return;
[6042] Fix | Delete
}
[6043] Fix | Delete
resolve(request.responseText);
[6044] Fix | Delete
return;
[6045] Fix | Delete
}
[6046] Fix | Delete
reject(new Error(request.statusText));
[6047] Fix | Delete
};
[6048] Fix | Delete
request.send(null);
[6049] Fix | Delete
});
[6050] Fix | Delete
}
[6051] Fix | Delete
class DOMCMapReaderFactory extends BaseCMapReaderFactory {
[6052] Fix | Delete
_fetchData(url, compressionType) {
[6053] Fix | Delete
return fetchData(url, this.isCompressed ? "arraybuffer" : "text").then(data => ({
[6054] Fix | Delete
cMapData: data instanceof ArrayBuffer ? new Uint8Array(data) : stringToBytes(data),
[6055] Fix | Delete
compressionType
[6056] Fix | Delete
}));
[6057] Fix | Delete
}
[6058] Fix | Delete
}
[6059] Fix | Delete
class DOMStandardFontDataFactory extends BaseStandardFontDataFactory {
[6060] Fix | Delete
_fetchData(url) {
[6061] Fix | Delete
return fetchData(url, "arraybuffer").then(data => new Uint8Array(data));
[6062] Fix | Delete
}
[6063] Fix | Delete
}
[6064] Fix | Delete
class DOMSVGFactory extends BaseSVGFactory {
[6065] Fix | Delete
_createSVG(type) {
[6066] Fix | Delete
return document.createElementNS(SVG_NS, type);
[6067] Fix | Delete
}
[6068] Fix | Delete
}
[6069] Fix | Delete
class PageViewport {
[6070] Fix | Delete
constructor({
[6071] Fix | Delete
viewBox,
[6072] Fix | Delete
scale,
[6073] Fix | Delete
rotation,
[6074] Fix | Delete
offsetX = 0,
[6075] Fix | Delete
offsetY = 0,
[6076] Fix | Delete
dontFlip = false
[6077] Fix | Delete
}) {
[6078] Fix | Delete
this.viewBox = viewBox;
[6079] Fix | Delete
this.scale = scale;
[6080] Fix | Delete
this.rotation = rotation;
[6081] Fix | Delete
this.offsetX = offsetX;
[6082] Fix | Delete
this.offsetY = offsetY;
[6083] Fix | Delete
const centerX = (viewBox[2] + viewBox[0]) / 2;
[6084] Fix | Delete
const centerY = (viewBox[3] + viewBox[1]) / 2;
[6085] Fix | Delete
let rotateA, rotateB, rotateC, rotateD;
[6086] Fix | Delete
rotation %= 360;
[6087] Fix | Delete
if (rotation < 0) {
[6088] Fix | Delete
rotation += 360;
[6089] Fix | Delete
}
[6090] Fix | Delete
switch (rotation) {
[6091] Fix | Delete
case 180:
[6092] Fix | Delete
rotateA = -1;
[6093] Fix | Delete
rotateB = 0;
[6094] Fix | Delete
rotateC = 0;
[6095] Fix | Delete
rotateD = 1;
[6096] Fix | Delete
break;
[6097] Fix | Delete
case 90:
[6098] Fix | Delete
rotateA = 0;
[6099] Fix | Delete
rotateB = 1;
[6100] Fix | Delete
rotateC = 1;
[6101] Fix | Delete
rotateD = 0;
[6102] Fix | Delete
break;
[6103] Fix | Delete
case 270:
[6104] Fix | Delete
rotateA = 0;
[6105] Fix | Delete
rotateB = -1;
[6106] Fix | Delete
rotateC = -1;
[6107] Fix | Delete
rotateD = 0;
[6108] Fix | Delete
break;
[6109] Fix | Delete
case 0:
[6110] Fix | Delete
rotateA = 1;
[6111] Fix | Delete
rotateB = 0;
[6112] Fix | Delete
rotateC = 0;
[6113] Fix | Delete
rotateD = -1;
[6114] Fix | Delete
break;
[6115] Fix | Delete
default:
[6116] Fix | Delete
throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.");
[6117] Fix | Delete
}
[6118] Fix | Delete
if (dontFlip) {
[6119] Fix | Delete
rotateC = -rotateC;
[6120] Fix | Delete
rotateD = -rotateD;
[6121] Fix | Delete
}
[6122] Fix | Delete
let offsetCanvasX, offsetCanvasY;
[6123] Fix | Delete
let width, height;
[6124] Fix | Delete
if (rotateA === 0) {
[6125] Fix | Delete
offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
[6126] Fix | Delete
offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
[6127] Fix | Delete
width = (viewBox[3] - viewBox[1]) * scale;
[6128] Fix | Delete
height = (viewBox[2] - viewBox[0]) * scale;
[6129] Fix | Delete
} else {
[6130] Fix | Delete
offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
[6131] Fix | Delete
offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
[6132] Fix | Delete
width = (viewBox[2] - viewBox[0]) * scale;
[6133] Fix | Delete
height = (viewBox[3] - viewBox[1]) * scale;
[6134] Fix | Delete
}
[6135] Fix | Delete
this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
[6136] Fix | Delete
this.width = width;
[6137] Fix | Delete
this.height = height;
[6138] Fix | Delete
}
[6139] Fix | Delete
get rawDims() {
[6140] Fix | Delete
const {
[6141] Fix | Delete
viewBox
[6142] Fix | Delete
} = this;
[6143] Fix | Delete
return shadow(this, "rawDims", {
[6144] Fix | Delete
pageWidth: viewBox[2] - viewBox[0],
[6145] Fix | Delete
pageHeight: viewBox[3] - viewBox[1],
[6146] Fix | Delete
pageX: viewBox[0],
[6147] Fix | Delete
pageY: viewBox[1]
[6148] Fix | Delete
});
[6149] Fix | Delete
}
[6150] Fix | Delete
clone({
[6151] Fix | Delete
scale = this.scale,
[6152] Fix | Delete
rotation = this.rotation,
[6153] Fix | Delete
offsetX = this.offsetX,
[6154] Fix | Delete
offsetY = this.offsetY,
[6155] Fix | Delete
dontFlip = false
[6156] Fix | Delete
} = {}) {
[6157] Fix | Delete
return new PageViewport({
[6158] Fix | Delete
viewBox: this.viewBox.slice(),
[6159] Fix | Delete
scale,
[6160] Fix | Delete
rotation,
[6161] Fix | Delete
offsetX,
[6162] Fix | Delete
offsetY,
[6163] Fix | Delete
dontFlip
[6164] Fix | Delete
});
[6165] Fix | Delete
}
[6166] Fix | Delete
convertToViewportPoint(x, y) {
[6167] Fix | Delete
return Util.applyTransform([x, y], this.transform);
[6168] Fix | Delete
}
[6169] Fix | Delete
convertToViewportRectangle(rect) {
[6170] Fix | Delete
const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);
[6171] Fix | Delete
const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);
[6172] Fix | Delete
return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
[6173] Fix | Delete
}
[6174] Fix | Delete
convertToPdfPoint(x, y) {
[6175] Fix | Delete
return Util.applyInverseTransform([x, y], this.transform);
[6176] Fix | Delete
}
[6177] Fix | Delete
}
[6178] Fix | Delete
class RenderingCancelledException extends BaseException {
[6179] Fix | Delete
constructor(msg, extraDelay = 0) {
[6180] Fix | Delete
super(msg, "RenderingCancelledException");
[6181] Fix | Delete
this.extraDelay = extraDelay;
[6182] Fix | Delete
}
[6183] Fix | Delete
}
[6184] Fix | Delete
function isDataScheme(url) {
[6185] Fix | Delete
const ii = url.length;
[6186] Fix | Delete
let i = 0;
[6187] Fix | Delete
while (i < ii && url[i].trim() === "") {
[6188] Fix | Delete
i++;
[6189] Fix | Delete
}
[6190] Fix | Delete
return url.substring(i, i + 5).toLowerCase() === "data:";
[6191] Fix | Delete
}
[6192] Fix | Delete
function isPdfFile(filename) {
[6193] Fix | Delete
return typeof filename === "string" && /\.pdf$/i.test(filename);
[6194] Fix | Delete
}
[6195] Fix | Delete
function getFilenameFromUrl(url) {
[6196] Fix | Delete
[url] = url.split(/[#?]/, 1);
[6197] Fix | Delete
return url.substring(url.lastIndexOf("/") + 1);
[6198] Fix | Delete
}
[6199] Fix | Delete
function getPdfFilenameFromUrl(url, defaultFilename = "document.pdf") {
[6200] Fix | Delete
if (typeof url !== "string") {
[6201] Fix | Delete
return defaultFilename;
[6202] Fix | Delete
}
[6203] Fix | Delete
if (isDataScheme(url)) {
[6204] Fix | Delete
warn('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');
[6205] Fix | Delete
return defaultFilename;
[6206] Fix | Delete
}
[6207] Fix | Delete
const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
[6208] Fix | Delete
const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i;
[6209] Fix | Delete
const splitURI = reURI.exec(url);
[6210] Fix | Delete
let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);
[6211] Fix | Delete
if (suggestedFilename) {
[6212] Fix | Delete
suggestedFilename = suggestedFilename[0];
[6213] Fix | Delete
if (suggestedFilename.includes("%")) {
[6214] Fix | Delete
try {
[6215] Fix | Delete
suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];
[6216] Fix | Delete
} catch {}
[6217] Fix | Delete
}
[6218] Fix | Delete
}
[6219] Fix | Delete
return suggestedFilename || defaultFilename;
[6220] Fix | Delete
}
[6221] Fix | Delete
class StatTimer {
[6222] Fix | Delete
started = Object.create(null);
[6223] Fix | Delete
times = [];
[6224] Fix | Delete
time(name) {
[6225] Fix | Delete
if (name in this.started) {
[6226] Fix | Delete
warn(`Timer is already running for ${name}`);
[6227] Fix | Delete
}
[6228] Fix | Delete
this.started[name] = Date.now();
[6229] Fix | Delete
}
[6230] Fix | Delete
timeEnd(name) {
[6231] Fix | Delete
if (!(name in this.started)) {
[6232] Fix | Delete
warn(`Timer has not been started for ${name}`);
[6233] Fix | Delete
}
[6234] Fix | Delete
this.times.push({
[6235] Fix | Delete
name,
[6236] Fix | Delete
start: this.started[name],
[6237] Fix | Delete
end: Date.now()
[6238] Fix | Delete
});
[6239] Fix | Delete
delete this.started[name];
[6240] Fix | Delete
}
[6241] Fix | Delete
toString() {
[6242] Fix | Delete
const outBuf = [];
[6243] Fix | Delete
let longest = 0;
[6244] Fix | Delete
for (const {
[6245] Fix | Delete
name
[6246] Fix | Delete
} of this.times) {
[6247] Fix | Delete
longest = Math.max(name.length, longest);
[6248] Fix | Delete
}
[6249] Fix | Delete
for (const {
[6250] Fix | Delete
name,
[6251] Fix | Delete
start,
[6252] Fix | Delete
end
[6253] Fix | Delete
} of this.times) {
[6254] Fix | Delete
outBuf.push(`${name.padEnd(longest)} ${end - start}ms\n`);
[6255] Fix | Delete
}
[6256] Fix | Delete
return outBuf.join("");
[6257] Fix | Delete
}
[6258] Fix | Delete
}
[6259] Fix | Delete
function isValidFetchUrl(url, baseUrl) {
[6260] Fix | Delete
try {
[6261] Fix | Delete
const {
[6262] Fix | Delete
protocol
[6263] Fix | Delete
} = baseUrl ? new URL(url, baseUrl) : new URL(url);
[6264] Fix | Delete
return protocol === "http:" || protocol === "https:";
[6265] Fix | Delete
} catch {
[6266] Fix | Delete
return false;
[6267] Fix | Delete
}
[6268] Fix | Delete
}
[6269] Fix | Delete
function noContextMenu(e) {
[6270] Fix | Delete
e.preventDefault();
[6271] Fix | Delete
}
[6272] Fix | Delete
function deprecated(details) {
[6273] Fix | Delete
console.log("Deprecated API usage: " + details);
[6274] Fix | Delete
}
[6275] Fix | Delete
let pdfDateStringRegex;
[6276] Fix | Delete
class PDFDateString {
[6277] Fix | Delete
static toDateObject(input) {
[6278] Fix | Delete
if (!input || typeof input !== "string") {
[6279] Fix | Delete
return null;
[6280] Fix | Delete
}
[6281] Fix | Delete
pdfDateStringRegex ||= new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
[6282] Fix | Delete
const matches = pdfDateStringRegex.exec(input);
[6283] Fix | Delete
if (!matches) {
[6284] Fix | Delete
return null;
[6285] Fix | Delete
}
[6286] Fix | Delete
const year = parseInt(matches[1], 10);
[6287] Fix | Delete
let month = parseInt(matches[2], 10);
[6288] Fix | Delete
month = month >= 1 && month <= 12 ? month - 1 : 0;
[6289] Fix | Delete
let day = parseInt(matches[3], 10);
[6290] Fix | Delete
day = day >= 1 && day <= 31 ? day : 1;
[6291] Fix | Delete
let hour = parseInt(matches[4], 10);
[6292] Fix | Delete
hour = hour >= 0 && hour <= 23 ? hour : 0;
[6293] Fix | Delete
let minute = parseInt(matches[5], 10);
[6294] Fix | Delete
minute = minute >= 0 && minute <= 59 ? minute : 0;
[6295] Fix | Delete
let second = parseInt(matches[6], 10);
[6296] Fix | Delete
second = second >= 0 && second <= 59 ? second : 0;
[6297] Fix | Delete
const universalTimeRelation = matches[7] || "Z";
[6298] Fix | Delete
let offsetHour = parseInt(matches[8], 10);
[6299] Fix | Delete
offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
[6300] Fix | Delete
let offsetMinute = parseInt(matches[9], 10) || 0;
[6301] Fix | Delete
offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
[6302] Fix | Delete
if (universalTimeRelation === "-") {
[6303] Fix | Delete
hour += offsetHour;
[6304] Fix | Delete
minute += offsetMinute;
[6305] Fix | Delete
} else if (universalTimeRelation === "+") {
[6306] Fix | Delete
hour -= offsetHour;
[6307] Fix | Delete
minute -= offsetMinute;
[6308] Fix | Delete
}
[6309] Fix | Delete
return new Date(Date.UTC(year, month, day, hour, minute, second));
[6310] Fix | Delete
}
[6311] Fix | Delete
}
[6312] Fix | Delete
function getXfaPageViewport(xfaPage, {
[6313] Fix | Delete
scale = 1,
[6314] Fix | Delete
rotation = 0
[6315] Fix | Delete
}) {
[6316] Fix | Delete
const {
[6317] Fix | Delete
width,
[6318] Fix | Delete
height
[6319] Fix | Delete
} = xfaPage.attributes.style;
[6320] Fix | Delete
const viewBox = [0, 0, parseInt(width), parseInt(height)];
[6321] Fix | Delete
return new PageViewport({
[6322] Fix | Delete
viewBox,
[6323] Fix | Delete
scale,
[6324] Fix | Delete
rotation
[6325] Fix | Delete
});
[6326] Fix | Delete
}
[6327] Fix | Delete
function getRGB(color) {
[6328] Fix | Delete
if (color.startsWith("#")) {
[6329] Fix | Delete
const colorRGB = parseInt(color.slice(1), 16);
[6330] Fix | Delete
return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];
[6331] Fix | Delete
}
[6332] Fix | Delete
if (color.startsWith("rgb(")) {
[6333] Fix | Delete
return color.slice(4, -1).split(",").map(x => parseInt(x));
[6334] Fix | Delete
}
[6335] Fix | Delete
if (color.startsWith("rgba(")) {
[6336] Fix | Delete
return color.slice(5, -1).split(",").map(x => parseInt(x)).slice(0, 3);
[6337] Fix | Delete
}
[6338] Fix | Delete
warn(`Not a valid color format: "${color}"`);
[6339] Fix | Delete
return [0, 0, 0];
[6340] Fix | Delete
}
[6341] Fix | Delete
function getColorValues(colors) {
[6342] Fix | Delete
const span = document.createElement("span");
[6343] Fix | Delete
span.style.visibility = "hidden";
[6344] Fix | Delete
document.body.append(span);
[6345] Fix | Delete
for (const name of colors.keys()) {
[6346] Fix | Delete
span.style.color = name;
[6347] Fix | Delete
const computedColor = window.getComputedStyle(span).color;
[6348] Fix | Delete
colors.set(name, getRGB(computedColor));
[6349] Fix | Delete
}
[6350] Fix | Delete
span.remove();
[6351] Fix | Delete
}
[6352] Fix | Delete
function getCurrentTransform(ctx) {
[6353] Fix | Delete
const {
[6354] Fix | Delete
a,
[6355] Fix | Delete
b,
[6356] Fix | Delete
c,
[6357] Fix | Delete
d,
[6358] Fix | Delete
e,
[6359] Fix | Delete
f
[6360] Fix | Delete
} = ctx.getTransform();
[6361] Fix | Delete
return [a, b, c, d, e, f];
[6362] Fix | Delete
}
[6363] Fix | Delete
function getCurrentTransformInverse(ctx) {
[6364] Fix | Delete
const {
[6365] Fix | Delete
a,
[6366] Fix | Delete
b,
[6367] Fix | Delete
c,
[6368] Fix | Delete
d,
[6369] Fix | Delete
e,
[6370] Fix | Delete
f
[6371] Fix | Delete
} = ctx.getTransform().invertSelf();
[6372] Fix | Delete
return [a, b, c, d, e, f];
[6373] Fix | Delete
}
[6374] Fix | Delete
function setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {
[6375] Fix | Delete
if (viewport instanceof PageViewport) {
[6376] Fix | Delete
const {
[6377] Fix | Delete
pageWidth,
[6378] Fix | Delete
pageHeight
[6379] Fix | Delete
} = viewport.rawDims;
[6380] Fix | Delete
const {
[6381] Fix | Delete
style
[6382] Fix | Delete
} = div;
[6383] Fix | Delete
const useRound = util_FeatureTest.isCSSRoundSupported;
[6384] Fix | Delete
const w = `var(--scale-factor) * ${pageWidth}px`,
[6385] Fix | Delete
h = `var(--scale-factor) * ${pageHeight}px`;
[6386] Fix | Delete
const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,
[6387] Fix | Delete
heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;
[6388] Fix | Delete
if (!mustFlip || viewport.rotation % 180 === 0) {
[6389] Fix | Delete
style.width = widthStr;
[6390] Fix | Delete
style.height = heightStr;
[6391] Fix | Delete
} else {
[6392] Fix | Delete
style.width = heightStr;
[6393] Fix | Delete
style.height = widthStr;
[6394] Fix | Delete
}
[6395] Fix | Delete
}
[6396] Fix | Delete
if (mustRotate) {
[6397] Fix | Delete
div.setAttribute("data-main-rotation", viewport.rotation);
[6398] Fix | Delete
}
[6399] Fix | Delete
}
[6400] Fix | Delete
[6401] Fix | Delete
;// CONCATENATED MODULE: ./src/display/editor/toolbar.js
[6402] Fix | Delete
[6403] Fix | Delete
class EditorToolbar {
[6404] Fix | Delete
#toolbar = null;
[6405] Fix | Delete
#colorPicker = null;
[6406] Fix | Delete
#editor;
[6407] Fix | Delete
#buttons = null;
[6408] Fix | Delete
constructor(editor) {
[6409] Fix | Delete
this.#editor = editor;
[6410] Fix | Delete
}
[6411] Fix | Delete
render() {
[6412] Fix | Delete
const editToolbar = this.#toolbar = document.createElement("div");
[6413] Fix | Delete
editToolbar.className = "editToolbar";
[6414] Fix | Delete
editToolbar.setAttribute("role", "toolbar");
[6415] Fix | Delete
editToolbar.addEventListener("contextmenu", noContextMenu);
[6416] Fix | Delete
editToolbar.addEventListener("pointerdown", EditorToolbar.#pointerDown);
[6417] Fix | Delete
const buttons = this.#buttons = document.createElement("div");
[6418] Fix | Delete
buttons.className = "buttons";
[6419] Fix | Delete
editToolbar.append(buttons);
[6420] Fix | Delete
const position = this.#editor.toolbarPosition;
[6421] Fix | Delete
if (position) {
[6422] Fix | Delete
const {
[6423] Fix | Delete
style
[6424] Fix | Delete
} = editToolbar;
[6425] Fix | Delete
const x = this.#editor._uiManager.direction === "ltr" ? 1 - position[0] : position[0];
[6426] Fix | Delete
style.insetInlineEnd = `${100 * x}%`;
[6427] Fix | Delete
style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;
[6428] Fix | Delete
}
[6429] Fix | Delete
this.#addDeleteButton();
[6430] Fix | Delete
return editToolbar;
[6431] Fix | Delete
}
[6432] Fix | Delete
static #pointerDown(e) {
[6433] Fix | Delete
e.stopPropagation();
[6434] Fix | Delete
}
[6435] Fix | Delete
#focusIn(e) {
[6436] Fix | Delete
this.#editor._focusEventsAllowed = false;
[6437] Fix | Delete
e.preventDefault();
[6438] Fix | Delete
e.stopPropagation();
[6439] Fix | Delete
}
[6440] Fix | Delete
#focusOut(e) {
[6441] Fix | Delete
this.#editor._focusEventsAllowed = true;
[6442] Fix | Delete
e.preventDefault();
[6443] Fix | Delete
e.stopPropagation();
[6444] Fix | Delete
}
[6445] Fix | Delete
#addListenersToElement(element) {
[6446] Fix | Delete
element.addEventListener("focusin", this.#focusIn.bind(this), {
[6447] Fix | Delete
capture: true
[6448] Fix | Delete
});
[6449] Fix | Delete
element.addEventListener("focusout", this.#focusOut.bind(this), {
[6450] Fix | Delete
capture: true
[6451] Fix | Delete
});
[6452] Fix | Delete
element.addEventListener("contextmenu", noContextMenu);
[6453] Fix | Delete
}
[6454] Fix | Delete
hide() {
[6455] Fix | Delete
this.#toolbar.classList.add("hidden");
[6456] Fix | Delete
this.#colorPicker?.hideDropdown();
[6457] Fix | Delete
}
[6458] Fix | Delete
show() {
[6459] Fix | Delete
this.#toolbar.classList.remove("hidden");
[6460] Fix | Delete
}
[6461] Fix | Delete
#addDeleteButton() {
[6462] Fix | Delete
const button = document.createElement("button");
[6463] Fix | Delete
button.className = "delete";
[6464] Fix | Delete
button.tabIndex = 0;
[6465] Fix | Delete
button.setAttribute("data-l10n-id", `pdfjs-editor-remove-${this.#editor.editorType}-button`);
[6466] Fix | Delete
this.#addListenersToElement(button);
[6467] Fix | Delete
button.addEventListener("click", e => {
[6468] Fix | Delete
this.#editor._uiManager.delete();
[6469] Fix | Delete
});
[6470] Fix | Delete
this.#buttons.append(button);
[6471] Fix | Delete
}
[6472] Fix | Delete
get #divider() {
[6473] Fix | Delete
const divider = document.createElement("div");
[6474] Fix | Delete
divider.className = "divider";
[6475] Fix | Delete
return divider;
[6476] Fix | Delete
}
[6477] Fix | Delete
addAltTextButton(button) {
[6478] Fix | Delete
this.#addListenersToElement(button);
[6479] Fix | Delete
this.#buttons.prepend(button, this.#divider);
[6480] Fix | Delete
}
[6481] Fix | Delete
addColorPicker(colorPicker) {
[6482] Fix | Delete
this.#colorPicker = colorPicker;
[6483] Fix | Delete
const button = colorPicker.renderButton();
[6484] Fix | Delete
this.#addListenersToElement(button);
[6485] Fix | Delete
this.#buttons.prepend(button, this.#divider);
[6486] Fix | Delete
}
[6487] Fix | Delete
remove() {
[6488] Fix | Delete
this.#toolbar.remove();
[6489] Fix | Delete
this.#colorPicker?.destroy();
[6490] Fix | Delete
this.#colorPicker = null;
[6491] Fix | Delete
}
[6492] Fix | Delete
}
[6493] Fix | Delete
class HighlightToolbar {
[6494] Fix | Delete
#buttons = null;
[6495] Fix | Delete
#toolbar = null;
[6496] Fix | Delete
#uiManager;
[6497] Fix | Delete
constructor(uiManager) {
[6498] Fix | Delete
this.#uiManager = uiManager;
[6499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function