Merge pull request #12665 from Snuffleupagus/update-packages

Update packages and translations
This commit is contained in:
Tim van der Meij 2020-11-29 15:35:43 +01:00 committed by GitHub
commit 43550be484
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 1222 additions and 1202 deletions

View File

@ -202,14 +202,14 @@ function preprocessCSS(mode, source, destination) {
} }
function expandImports(content, baseUrl) { function expandImports(content, baseUrl) {
return content.replace(/^\s*@import\s+url\(([^)]+)\);\s*$/gm, function ( return content.replace(
all, /^\s*@import\s+url\(([^)]+)\);\s*$/gm,
url function (all, url) {
) { var file = path.join(path.dirname(baseUrl), url);
var file = path.join(path.dirname(baseUrl), url); var imported = fs.readFileSync(file, "utf8").toString();
var imported = fs.readFileSync(file, "utf8").toString(); return expandImports(imported, file);
return expandImports(imported, file); }
}); );
} }
function removePrefixed(content, hasPrefixedFilter) { function removePrefixed(content, hasPrefixedFilter) {

View File

@ -577,45 +577,46 @@ gulp.task("buildnumber", function (done) {
console.log(); console.log();
console.log("### Getting extension build number"); console.log("### Getting extension build number");
exec("git log --format=oneline " + config.baseVersion + "..", function ( exec(
err, "git log --format=oneline " + config.baseVersion + "..",
stdout, function (err, stdout, stderr) {
stderr var buildNumber = 0;
) { if (!err) {
var buildNumber = 0; // Build number is the number of commits since base version
if (!err) { buildNumber = stdout ? stdout.match(/\n/g).length : 0;
// Build number is the number of commits since base version } else {
buildNumber = stdout ? stdout.match(/\n/g).length : 0; console.log(
} else { "This is not a Git repository; using default build number."
console.log("This is not a Git repository; using default build number."); );
}
console.log("Extension build number: " + buildNumber);
var version = config.versionPrefix + buildNumber;
exec('git log --format="%h" -n 1', function (err2, stdout2, stderr2) {
var buildCommit = "";
if (!err2) {
buildCommit = stdout2.replace("\n", "");
} }
createStringSource( console.log("Extension build number: " + buildNumber);
"version.json",
JSON.stringify( var version = config.versionPrefix + buildNumber;
{
version: version, exec('git log --format="%h" -n 1', function (err2, stdout2, stderr2) {
build: buildNumber, var buildCommit = "";
commit: buildCommit, if (!err2) {
}, buildCommit = stdout2.replace("\n", "");
null, }
2
createStringSource(
"version.json",
JSON.stringify(
{
version: version,
build: buildNumber,
commit: buildCommit,
},
null,
2
)
) )
) .pipe(gulp.dest(BUILD_DIR))
.pipe(gulp.dest(BUILD_DIR)) .on("end", done);
.on("end", done); });
}); }
}); );
}); });
gulp.task("default_preferences-pre", function () { gulp.task("default_preferences-pre", function () {
@ -1619,17 +1620,19 @@ gulp.task("baseline", function (done) {
return; return;
} }
exec("git checkout " + baselineCommit, { cwd: workingDirectory }, function ( exec(
error2 "git checkout " + baselineCommit,
) { { cwd: workingDirectory },
if (error2) { function (error2) {
done(new Error("Baseline commit checkout failed.")); if (error2) {
return; done(new Error("Baseline commit checkout failed."));
} return;
}
console.log('Baseline commit "' + baselineCommit + '" checked out.'); console.log('Baseline commit "' + baselineCommit + '" checked out.');
done(); done();
}); }
);
}); });
}); });

View File

@ -243,7 +243,7 @@ annotation_date_string={{date}}, {{time}}
text_annotation_type.alt=[{{type}} Σχόλιο] text_annotation_type.alt=[{{type}} Σχόλιο]
password_label=Εισαγωγή κωδικού για το άνοιγμα του PDF αρχείου. password_label=Εισαγωγή κωδικού για το άνοιγμα του PDF αρχείου.
password_invalid=Μη έγκυρος κωδικός. Προσπαθείστε ξανά. password_invalid=Μη έγκυρος κωδικός. Προσπαθείστε ξανά.
password_ok=ΟΚ password_ok=OK
password_cancel=Ακύρωση password_cancel=Ακύρωση
printing_not_supported=Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από αυτόν τον περιηγητή. printing_not_supported=Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από αυτόν τον περιηγητή.

View File

@ -143,11 +143,13 @@ document_outline.title=Erakutsi dokumentuaren eskema (klik bikoitza elementu guz
document_outline_label=Dokumentuaren eskema document_outline_label=Dokumentuaren eskema
attachments.title=Erakutsi eranskinak attachments.title=Erakutsi eranskinak
attachments_label=Eranskinak attachments_label=Eranskinak
layers_label=Geruzak
thumbs.title=Erakutsi koadro txikiak thumbs.title=Erakutsi koadro txikiak
thumbs_label=Koadro txikiak thumbs_label=Koadro txikiak
findbar.title=Bilatu dokumentuan findbar.title=Bilatu dokumentuan
findbar_label=Bilatu findbar_label=Bilatu
additional_layers=Geruza gehigarriak
# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. # LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
page_canvas={{page}}. orria page_canvas={{page}}. orria
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)

View File

@ -214,7 +214,7 @@ error_stack=Pila : {{stack}}
error_file=Fichièr : {{file}} error_file=Fichièr : {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Linha : {{line}} error_line=Linha : {{line}}
rendering_error=Una error s'es produita pendent l'afichatge de la pagina. rendering_error=Una error s'es producha pendent l'afichatge de la pagina.
# Predefined zoom values # Predefined zoom values
page_scale_width=Largor plena page_scale_width=Largor plena
@ -227,7 +227,7 @@ page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Error loading_error_indicator=Error
loading_error=Una error s'es produita pendent lo cargament del fichièr PDF. loading_error=Una error s'es producha pendent lo cargament del fichièr PDF.
invalid_file_error=Fichièr PDF invalid o corromput. invalid_file_error=Fichièr PDF invalid o corromput.
missing_file_error=Fichièr PDF mancant. missing_file_error=Fichièr PDF mancant.
unexpected_response_error=Responsa de servidor imprevista. unexpected_response_error=Responsa de servidor imprevista.

View File

@ -136,10 +136,10 @@ print_progress_close=Cancelar
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Alternar painel toggle_sidebar.title=Exibir/ocultar painel
toggle_sidebar_notification.title=Alternar o painel (documento contém marcadores e anexos) toggle_sidebar_notification.title=Alternar o painel (documento contém marcadores e anexos)
toggle_sidebar_notification2.title=Exibir/ocultar painel lateral (documento contém estrutura/anexos/camadas) toggle_sidebar_notification2.title=Exibir/ocultar painel lateral (documento contém estrutura/anexos/camadas)
toggle_sidebar_label=Alternar painel toggle_sidebar_label=Exibir/ocultar painel
document_outline.title=Mostrar a estrutura do documento (dê um duplo-clique para expandir/recolher todos os itens) document_outline.title=Mostrar a estrutura do documento (dê um duplo-clique para expandir/recolher todos os itens)
document_outline_label=Estrutura do documento document_outline_label=Estrutura do documento
attachments.title=Mostrar anexos attachments.title=Mostrar anexos

1683
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -2,26 +2,26 @@
"name": "pdf.js", "name": "pdf.js",
"version": "2.0.0", "version": "2.0.0",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.3", "@babel/core": "^7.12.9",
"@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1",
"@babel/plugin-transform-modules-commonjs": "^7.12.1", "@babel/plugin-transform-modules-commonjs": "^7.12.1",
"@babel/plugin-transform-runtime": "^7.12.1", "@babel/plugin-transform-runtime": "^7.12.1",
"@babel/preset-env": "^7.12.1", "@babel/preset-env": "^7.12.7",
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.12.5",
"acorn": "^8.0.4", "acorn": "^8.0.4",
"autoprefixer": "^10.0.2", "autoprefixer": "^10.0.4",
"babel-loader": "^8.2.1", "babel-loader": "^8.2.2",
"canvas": "^2.6.1", "canvas": "^2.6.1",
"core-js": "^3.7.0", "core-js": "^3.8.0",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"es-module-shims": "^0.6.0", "es-module-shims": "^0.6.0",
"escodegen": "^2.0.0", "escodegen": "^2.0.0",
"eslint": "^7.13.0", "eslint": "^7.14.0",
"eslint-config-prettier": "^6.15.0", "eslint-config-prettier": "^6.15.0",
"eslint-plugin-fetch-options": "^0.0.5", "eslint-plugin-fetch-options": "^0.0.5",
"eslint-plugin-html": "^6.1.1", "eslint-plugin-html": "^6.1.1",
"eslint-plugin-import": "^2.22.1", "eslint-plugin-import": "^2.22.1",
"eslint-plugin-mozilla": "^2.8.0", "eslint-plugin-mozilla": "^2.9.1",
"eslint-plugin-no-unsanitized": "^3.1.4", "eslint-plugin-no-unsanitized": "^3.1.4",
"eslint-plugin-prettier": "^3.1.4", "eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-unicorn": "^22.0.0", "eslint-plugin-unicorn": "^22.0.0",
@ -38,27 +38,27 @@
"merge-stream": "^2.0.0", "merge-stream": "^2.0.0",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"needle": "^2.5.2", "needle": "^2.5.2",
"postcss": "^8.1.7", "postcss": "^8.1.10",
"postcss-calc": "^7.0.5", "postcss-calc": "^7.0.5",
"postcss-css-variables": "^0.17.0", "postcss-css-variables": "^0.17.0",
"prettier": "^2.1.2", "prettier": "^2.2.1",
"puppeteer": "^5.5.0", "puppeteer": "^5.5.0",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"streamqueue": "^1.1.2", "streamqueue": "^1.1.2",
"stylelint": "^13.7.2", "stylelint": "^13.8.0",
"stylelint-config-prettier": "^8.0.2", "stylelint-config-prettier": "^8.0.2",
"stylelint-prettier": "^1.1.2", "stylelint-prettier": "^1.1.2",
"systemjs": "^0.21.6", "systemjs": "^0.21.6",
"systemjs-plugin-babel": "^0.0.25", "systemjs-plugin-babel": "^0.0.25",
"terser": "^5.3.8", "terser": "^5.5.1",
"through2": "^4.0.2", "through2": "^4.0.2",
"ttest": "^3.0.0", "ttest": "^3.0.0",
"typescript": "^4.0.5", "typescript": "^4.1.2",
"typogr": "^0.6.8", "typogr": "^0.6.8",
"vinyl": "^2.2.1", "vinyl": "^2.2.1",
"vinyl-fs": "^3.0.3", "vinyl-fs": "^3.0.3",
"web-streams-polyfill": "^3.0.1", "web-streams-polyfill": "^3.0.1",
"webpack": "^5.4.0", "webpack": "^5.9.0",
"webpack-stream": "~6.1.1", "webpack-stream": "~6.1.1",
"wintersmith": "^2.5.0", "wintersmith": "^2.5.0",
"yargs": "^11.1.1" "yargs": "^11.1.1"

View File

@ -994,11 +994,13 @@ var CMapFactory = (function CMapFactoryClosure() {
var cMap = new CMap(true); var cMap = new CMap(true);
if (compressionType === CMapCompressionType.BINARY) { if (compressionType === CMapCompressionType.BINARY) {
return new BinaryCMapReader().process(cMapData, cMap, function ( return new BinaryCMapReader().process(
useCMap cMapData,
) { cMap,
return extendCMap(cMap, fetchBuiltInCMap, useCMap); function (useCMap) {
}); return extendCMap(cMap, fetchBuiltInCMap, useCMap);
}
);
} }
if (compressionType === CMapCompressionType.NONE) { if (compressionType === CMapCompressionType.NONE) {
var lexer = new Lexer(new Stream(cMapData)); var lexer = new Lexer(new Stream(cMapData));

View File

@ -533,101 +533,100 @@ class WorkerMessageHandler {
return pdfManager.ensureDoc("calculationOrderIds"); return pdfManager.ensureDoc("calculationOrderIds");
}); });
handler.on("SaveDocument", function ({ handler.on(
numPages, "SaveDocument",
annotationStorage, function ({ numPages, annotationStorage, filename }) {
filename, pdfManager.requestLoadedStream();
}) { const promises = [
pdfManager.requestLoadedStream(); pdfManager.onLoadedStream(),
const promises = [ pdfManager.ensureCatalog("acroForm"),
pdfManager.onLoadedStream(), pdfManager.ensureDoc("xref"),
pdfManager.ensureCatalog("acroForm"), pdfManager.ensureDoc("startXRef"),
pdfManager.ensureDoc("xref"), ];
pdfManager.ensureDoc("startXRef"),
];
for (let pageIndex = 0; pageIndex < numPages; pageIndex++) { for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {
promises.push( promises.push(
pdfManager.getPage(pageIndex).then(function (page) { pdfManager.getPage(pageIndex).then(function (page) {
const task = new WorkerTask(`Save: page ${pageIndex}`); const task = new WorkerTask(`Save: page ${pageIndex}`);
startWorkerTask(task); startWorkerTask(task);
return page return page
.save(handler, task, annotationStorage) .save(handler, task, annotationStorage)
.finally(function () { .finally(function () {
finishWorkerTask(task); finishWorkerTask(task);
}); });
}) })
); );
}
return Promise.all(promises).then(function ([
stream,
acroForm,
xref,
startXRef,
...refs
]) {
let newRefs = [];
for (const ref of refs) {
newRefs = ref
.filter(x => x !== null)
.reduce((a, b) => a.concat(b), newRefs);
} }
if (newRefs.length === 0) { return Promise.all(promises).then(function ([
// No new refs so just return the initial bytes stream,
return stream.bytes; acroForm,
}
const xfa = (acroForm instanceof Dict && acroForm.get("XFA")) || [];
let xfaDatasets = null;
if (Array.isArray(xfa)) {
for (let i = 0, ii = xfa.length; i < ii; i += 2) {
if (xfa[i] === "datasets") {
xfaDatasets = xfa[i + 1];
}
}
} else {
// TODO: Support XFA streams.
warn("Unsupported XFA type.");
}
let newXrefInfo = Object.create(null);
if (xref.trailer) {
// Get string info from Info in order to compute fileId.
const infoObj = Object.create(null);
const xrefInfo = xref.trailer.get("Info") || null;
if (xrefInfo instanceof Dict) {
xrefInfo.forEach((key, value) => {
if (isString(key) && isString(value)) {
infoObj[key] = stringToPDFString(value);
}
});
}
newXrefInfo = {
rootRef: xref.trailer.getRaw("Root") || null,
encrypt: xref.trailer.getRaw("Encrypt") || null,
newRef: xref.getNewRef(),
infoRef: xref.trailer.getRaw("Info") || null,
info: infoObj,
fileIds: xref.trailer.getRaw("ID") || null,
startXRef,
filename,
};
}
xref.resetNewRef();
return incrementalUpdate({
originalData: stream.bytes,
xrefInfo: newXrefInfo,
newRefs,
xref, xref,
datasetsRef: xfaDatasets, startXRef,
...refs
]) {
let newRefs = [];
for (const ref of refs) {
newRefs = ref
.filter(x => x !== null)
.reduce((a, b) => a.concat(b), newRefs);
}
if (newRefs.length === 0) {
// No new refs so just return the initial bytes
return stream.bytes;
}
const xfa = (acroForm instanceof Dict && acroForm.get("XFA")) || [];
let xfaDatasets = null;
if (Array.isArray(xfa)) {
for (let i = 0, ii = xfa.length; i < ii; i += 2) {
if (xfa[i] === "datasets") {
xfaDatasets = xfa[i + 1];
}
}
} else {
// TODO: Support XFA streams.
warn("Unsupported XFA type.");
}
let newXrefInfo = Object.create(null);
if (xref.trailer) {
// Get string info from Info in order to compute fileId.
const infoObj = Object.create(null);
const xrefInfo = xref.trailer.get("Info") || null;
if (xrefInfo instanceof Dict) {
xrefInfo.forEach((key, value) => {
if (isString(key) && isString(value)) {
infoObj[key] = stringToPDFString(value);
}
});
}
newXrefInfo = {
rootRef: xref.trailer.getRaw("Root") || null,
encrypt: xref.trailer.getRaw("Encrypt") || null,
newRef: xref.getNewRef(),
infoRef: xref.trailer.getRaw("Info") || null,
info: infoObj,
fileIds: xref.trailer.getRaw("ID") || null,
startXRef,
filename,
};
}
xref.resetNewRef();
return incrementalUpdate({
originalData: stream.bytes,
xrefInfo: newXrefInfo,
newRefs,
xref,
datasetsRef: xfaDatasets,
});
}); });
}); }
}); );
handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) { handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
var pageIndex = data.pageIndex; var pageIndex = data.pageIndex;

View File

@ -70,140 +70,136 @@ class Util extends PDFObject {
const ZERO = 4; const ZERO = 4;
const HASH = 8; const HASH = 8;
let i = 0; let i = 0;
return args[0].replace(pattern, function ( return args[0].replace(
match, pattern,
nDecSep, function (match, nDecSep, cFlags, nWidth, nPrecision, cConvChar) {
cFlags, // cConvChar must be one of d, f, s, x
nWidth, if (
nPrecision, cConvChar !== "d" &&
cConvChar cConvChar !== "f" &&
) { cConvChar !== "s" &&
// cConvChar must be one of d, f, s, x cConvChar !== "x"
if ( ) {
cConvChar !== "d" && const buf = ["%"];
cConvChar !== "f" && for (const str of [nDecSep, cFlags, nWidth, nPrecision, cConvChar]) {
cConvChar !== "s" && if (str) {
cConvChar !== "x" buf.push(str);
) { }
const buf = ["%"]; }
for (const str of [nDecSep, cFlags, nWidth, nPrecision, cConvChar]) { return buf.join("");
if (str) { }
buf.push(str);
i++;
if (i === args.length) {
throw new Error("Not enough arguments in printf");
}
const arg = args[i];
if (cConvChar === "s") {
return arg.toString();
}
let flags = 0;
if (cFlags) {
for (const flag of cFlags) {
switch (flag) {
case "+":
flags |= PLUS;
break;
case " ":
flags |= SPACE;
break;
case "0":
flags |= ZERO;
break;
case "#":
flags |= HASH;
break;
}
} }
} }
return buf.join(""); cFlags = flags;
}
i++; if (nWidth) {
if (i === args.length) { nWidth = parseInt(nWidth);
throw new Error("Not enough arguments in printf"); }
}
const arg = args[i];
if (cConvChar === "s") { let intPart = Math.trunc(arg);
return arg.toString();
}
let flags = 0; if (cConvChar === "x") {
if (cFlags) { let hex = Math.abs(intPart).toString(16).toUpperCase();
for (const flag of cFlags) { if (nWidth !== undefined) {
switch (flag) { hex = hex.padStart(nWidth, cFlags & ZERO ? "0" : " ");
case "+": }
flags |= PLUS; if (cFlags & HASH) {
break; hex = `0x${hex}`;
case " ": }
flags |= SPACE; return hex;
break; }
case "0":
flags |= ZERO; if (nPrecision) {
break; nPrecision = parseInt(nPrecision.substring(1));
case "#": }
flags |= HASH;
break; nDecSep = nDecSep ? nDecSep.substring(1) : "0";
const separators = {
0: [",", "."],
1: ["", "."],
2: [".", ","],
3: ["", ","],
4: ["'", "."],
};
const [thousandSep, decimalSep] = separators[nDecSep];
let decPart = "";
if (cConvChar === "f") {
if (nPrecision !== undefined) {
decPart = (arg - intPart).toFixed(nPrecision);
} else {
decPart = (arg - intPart).toString();
}
if (decPart.length > 2) {
decPart = `${decimalSep}${decPart.substring(2)}`;
} else if (cFlags & HASH) {
decPart = ".";
} else {
decPart = "";
} }
} }
}
cFlags = flags;
if (nWidth) { let sign = "";
nWidth = parseInt(nWidth); if (intPart < 0) {
} sign = "-";
intPart = -intPart;
} else if (cFlags & PLUS) {
sign = "+";
} else if (cFlags & SPACE) {
sign = " ";
}
let intPart = Math.trunc(arg); if (thousandSep && intPart >= 1000) {
const buf = [];
while (true) {
buf.push((intPart % 1000).toString().padStart(3, "0"));
intPart = Math.trunc(intPart / 1000);
if (intPart < 1000) {
buf.push(intPart.toString());
break;
}
}
intPart = buf.reverse().join(thousandSep);
} else {
intPart = intPart.toString();
}
if (cConvChar === "x") { let n = `${intPart}${decPart}`;
let hex = Math.abs(intPart).toString(16).toUpperCase();
if (nWidth !== undefined) { if (nWidth !== undefined) {
hex = hex.padStart(nWidth, cFlags & ZERO ? "0" : " "); n = n.padStart(nWidth - sign.length, cFlags & ZERO ? "0" : " ");
} }
if (cFlags & HASH) {
hex = `0x${hex}`; return `${sign}${n}`;
}
return hex;
} }
);
if (nPrecision) {
nPrecision = parseInt(nPrecision.substring(1));
}
nDecSep = nDecSep ? nDecSep.substring(1) : "0";
const separators = {
0: [",", "."],
1: ["", "."],
2: [".", ","],
3: ["", ","],
4: ["'", "."],
};
const [thousandSep, decimalSep] = separators[nDecSep];
let decPart = "";
if (cConvChar === "f") {
if (nPrecision !== undefined) {
decPart = (arg - intPart).toFixed(nPrecision);
} else {
decPart = (arg - intPart).toString();
}
if (decPart.length > 2) {
decPart = `${decimalSep}${decPart.substring(2)}`;
} else if (cFlags & HASH) {
decPart = ".";
} else {
decPart = "";
}
}
let sign = "";
if (intPart < 0) {
sign = "-";
intPart = -intPart;
} else if (cFlags & PLUS) {
sign = "+";
} else if (cFlags & SPACE) {
sign = " ";
}
if (thousandSep && intPart >= 1000) {
const buf = [];
while (true) {
buf.push((intPart % 1000).toString().padStart(3, "0"));
intPart = Math.trunc(intPart / 1000);
if (intPart < 1000) {
buf.push(intPart.toString());
break;
}
}
intPart = buf.reverse().join(thousandSep);
} else {
intPart = intPart.toString();
}
let n = `${intPart}${decPart}`;
if (nWidth !== undefined) {
n = n.padStart(nWidth - sign.length, cFlags & ZERO ? "0" : " ");
}
return `${sign}${n}`;
});
} }
iconStreamFromIcon() { iconStreamFromIcon() {
@ -525,14 +521,14 @@ class Util extends PDFObject {
const patterns = /(mmmm|mmm|mm|m|dddd|ddd|dd|d|yyyy|yy|HH|H|hh|h|MM|M|ss|s|tt|t)/g; const patterns = /(mmmm|mmm|mm|m|dddd|ddd|dd|d|yyyy|yy|HH|H|hh|h|MM|M|ss|s|tt|t)/g;
const actions = []; const actions = [];
const re = escapedFormat.replace(patterns, function ( const re = escapedFormat.replace(
match, patterns,
patternElement function (match, patternElement) {
) { const { pattern, action } = handlers[patternElement];
const { pattern, action } = handlers[patternElement]; actions.push(action);
actions.push(action); return pattern;
return pattern; }
}); );
this._scandCache.set(cFormat, [new RegExp(re, "g"), actions]); this._scandCache.set(cFormat, [new RegExp(re, "g"), actions]);
} }

View File

@ -121,19 +121,22 @@ describe("evaluator", function () {
resources.XObject = xObject; resources.XObject = xObject;
const stream = new StringStream("/Res1 DoQ"); const stream = new StringStream("/Res1 DoQ");
runOperatorListCheck(partialEvaluator, stream, resources, function ( runOperatorListCheck(
result partialEvaluator,
) { stream,
expect(result.fnArray.length).toEqual(3); resources,
expect(result.fnArray[0]).toEqual(OPS.dependency); function (result) {
expect(result.fnArray[1]).toEqual(OPS.paintImageXObject); expect(result.fnArray.length).toEqual(3);
expect(result.fnArray[2]).toEqual(OPS.restore); expect(result.fnArray[0]).toEqual(OPS.dependency);
expect(result.argsArray.length).toEqual(3); expect(result.fnArray[1]).toEqual(OPS.paintImageXObject);
expect(result.argsArray[0]).toEqual(["img_p0_1"]); expect(result.fnArray[2]).toEqual(OPS.restore);
expect(result.argsArray[1]).toEqual(["img_p0_1", 1, 1]); expect(result.argsArray.length).toEqual(3);
expect(result.argsArray[2]).toEqual(null); expect(result.argsArray[0]).toEqual(["img_p0_1"]);
done(); expect(result.argsArray[1]).toEqual(["img_p0_1", 1, 1]);
}); expect(result.argsArray[2]).toEqual(null);
done();
}
);
}); });
it("should handle three glued operations", function (done) { it("should handle three glued operations", function (done) {
@ -157,16 +160,19 @@ describe("evaluator", function () {
const resources = new ResourcesMock(); const resources = new ResourcesMock();
resources.Res1 = {}; resources.Res1 = {};
const stream = new StringStream("B*Bf*"); const stream = new StringStream("B*Bf*");
runOperatorListCheck(partialEvaluator, stream, resources, function ( runOperatorListCheck(
result partialEvaluator,
) { stream,
expect(!!result.fnArray && !!result.argsArray).toEqual(true); resources,
expect(result.fnArray.length).toEqual(3); function (result) {
expect(result.fnArray[0]).toEqual(OPS.eoFillStroke); expect(!!result.fnArray && !!result.argsArray).toEqual(true);
expect(result.fnArray[1]).toEqual(OPS.fillStroke); expect(result.fnArray.length).toEqual(3);
expect(result.fnArray[2]).toEqual(OPS.eoFill); expect(result.fnArray[0]).toEqual(OPS.eoFillStroke);
done(); expect(result.fnArray[1]).toEqual(OPS.fillStroke);
}); expect(result.fnArray[2]).toEqual(OPS.eoFill);
done();
}
);
}); });
it("should handle glued operations and operands", function (done) { it("should handle glued operations and operands", function (done) {
@ -253,24 +259,27 @@ describe("evaluator", function () {
resources.ExtGState = extGState; resources.ExtGState = extGState;
const stream = new StringStream("/F2 /GS2 gs 5.711 Tf"); const stream = new StringStream("/F2 /GS2 gs 5.711 Tf");
runOperatorListCheck(partialEvaluator, stream, resources, function ( runOperatorListCheck(
result partialEvaluator,
) { stream,
expect(result.fnArray.length).toEqual(3); resources,
expect(result.fnArray[0]).toEqual(OPS.setGState); function (result) {
expect(result.fnArray[1]).toEqual(OPS.dependency); expect(result.fnArray.length).toEqual(3);
expect(result.fnArray[2]).toEqual(OPS.setFont); expect(result.fnArray[0]).toEqual(OPS.setGState);
expect(result.argsArray.length).toEqual(3); expect(result.fnArray[1]).toEqual(OPS.dependency);
expect(result.argsArray[0]).toEqual([ expect(result.fnArray[2]).toEqual(OPS.setFont);
[ expect(result.argsArray.length).toEqual(3);
["LW", 2], expect(result.argsArray[0]).toEqual([
["CA", 0.5], [
], ["LW", 2],
]); ["CA", 0.5],
expect(result.argsArray[1]).toEqual(["g_font_error"]); ],
expect(result.argsArray[2]).toEqual(["g_font_error", 5.711]); ]);
done(); expect(result.argsArray[1]).toEqual(["g_font_error"]);
}); expect(result.argsArray[2]).toEqual(["g_font_error", 5.711]);
done();
}
);
}); });
it("should skip if too few arguments", function (done) { it("should skip if too few arguments", function (done) {
const stream = new StringStream("5 d0"); const stream = new StringStream("5 d0");
@ -369,13 +378,16 @@ describe("evaluator", function () {
resources.set("XObject", xobjs); resources.set("XObject", xobjs);
const stream = new StringStream("/Res1 Do"); const stream = new StringStream("/Res1 Do");
runOperatorListCheck(partialEvaluator, stream, resources, function ( runOperatorListCheck(
result partialEvaluator,
) { stream,
expect(result.argsArray).toEqual([]); resources,
expect(result.fnArray).toEqual([]); function (result) {
done(); expect(result.argsArray).toEqual([]);
}); expect(result.fnArray).toEqual([]);
done();
}
);
}); });
}); });

View File

@ -98,29 +98,30 @@ describe("pdf_find_controller", function () {
return a + b; return a + b;
}); });
eventBus.on("updatefindmatchescount", function onUpdateFindMatchesCount( eventBus.on(
evt "updatefindmatchescount",
) { function onUpdateFindMatchesCount(evt) {
if (pdfFindController.pageMatches.length !== totalPages) { if (pdfFindController.pageMatches.length !== totalPages) {
return; return;
} }
eventBus.off("updatefindmatchescount", onUpdateFindMatchesCount); eventBus.off("updatefindmatchescount", onUpdateFindMatchesCount);
expect(evt.matchesCount.total).toBe(totalMatches); expect(evt.matchesCount.total).toBe(totalMatches);
for (let i = 0; i < totalPages; i++) { for (let i = 0; i < totalPages; i++) {
expect(pdfFindController.pageMatches[i].length).toEqual( expect(pdfFindController.pageMatches[i].length).toEqual(
matchesPerPage[i] matchesPerPage[i]
);
}
expect(pdfFindController.selected.pageIdx).toEqual(
selectedMatch.pageIndex
);
expect(pdfFindController.selected.matchIdx).toEqual(
selectedMatch.matchIndex
); );
}
expect(pdfFindController.selected.pageIdx).toEqual(
selectedMatch.pageIndex
);
expect(pdfFindController.selected.matchIdx).toEqual(
selectedMatch.matchIndex
);
resolve(); resolve();
}); }
);
}); });
} }