diff --git a/external/builder/builder.js b/external/builder/builder.js
index e1d2cf03d..6c05bbcd2 100644
--- a/external/builder/builder.js
+++ b/external/builder/builder.js
@@ -66,7 +66,14 @@ function preprocess(inFilename, outFilename, defines) {
var realPath = fs.realpathSync(inFilename);
var dir = path.dirname(realPath);
try {
- preprocess(path.join(dir, file), writeLine, defines);
+ var fullpath;
+ if (file.indexOf('$ROOT/') === 0) {
+ fullpath = path.join(__dirname, '../..',
+ file.substring('$ROOT/'.length));
+ } else {
+ fullpath = path.join(dir, file);
+ }
+ preprocess(fullpath, writeLine, defines);
} catch (e) {
if (e.code === 'ENOENT') {
throw new Error('Failed to include "' + file + '" at ' + loc());
diff --git a/external/umdutils/verifier.js b/external/umdutils/verifier.js
index 97ed7f852..000872a9b 100644
--- a/external/umdutils/verifier.js
+++ b/external/umdutils/verifier.js
@@ -245,7 +245,8 @@ function validateFile(path, name, context) {
if (name !== umd.amdId) {
error('AMD name does not match module name');
}
- if (name.replace(/[_\/]/g, '') !== umd.jsRootName.toLowerCase()) {
+ if (name.replace(/[_\-\/]/g, '').toLowerCase() !==
+ umd.jsRootName.toLowerCase()) {
error('root name does not look like module name');
}
@@ -272,7 +273,7 @@ function validateFile(path, name, context) {
return;
}
i = i.substring('root.'.length);
- var j = umd.imports[index];
+ var j = umd.imports[index].replace(/(_|Lib)$/, '');
var offset = i.toLowerCase().lastIndexOf(j.toLowerCase());
if (offset + j.length !== i.length) {
error('JS import name does not look like corresponding body import ' +
@@ -281,7 +282,7 @@ function validateFile(path, name, context) {
j = umd.amdImports[index];
if (j) {
- if (j.replace(/[_\/]/g, '') !== i.toLowerCase()) {
+ if (j.replace(/[_\-\/]/g, '').toLowerCase() !== i.toLowerCase()) {
error('JS import name does not look like corresponding AMD import ' +
'name: ' + i + ' vs ' + j);
}
diff --git a/make.js b/make.js
index d3a70d4b5..0815b16d5 100644
--- a/make.js
+++ b/make.js
@@ -36,6 +36,7 @@ var config = JSON.parse(fs.readFileSync(CONFIG_FILE));
// Defined by buildnumber target.
var BUILD_NUMBER,
+ BUILD_COMMIT,
VERSION;
var ROOT_DIR = __dirname + '/', // absolute path to project's root
@@ -100,8 +101,7 @@ var COMMON_WEB_FILES =
['web/images',
'web/debugger.js'],
COMMON_WEB_FILES_PREPROCESS =
- ['web/viewer.js',
- 'web/viewer.html'],
+ ['web/viewer.html'],
COMMON_FIREFOX_FILES_PREPROCESS =
[FIREFOX_CONTENT_DIR + 'PdfStreamConverter.jsm',
FIREFOX_CONTENT_DIR + 'PdfjsContentUtils.jsm',
@@ -127,6 +127,13 @@ target.generic = function() {
var defines = builder.merge(DEFINES, {GENERIC: true});
+ var TMP_VIEWER = GENERIC_DIR + '/web/viewer.js.tmp';
+ cd('web/');
+ var viewerBundleFiles = ['app.js'];
+ bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
+ 'pdfjs-dist/web/viewer', defines, true);
+ cd(ROOT_DIR);
+
var setup = {
defines: defines,
copy: [
@@ -140,6 +147,7 @@ target.generic = function() {
],
preprocess: [
[BUILD_TARGETS, GENERIC_DIR + BUILD_DIR],
+ [TMP_VIEWER, GENERIC_DIR + '/web/viewer.js'],
[COMMON_WEB_FILES_PREPROCESS, GENERIC_DIR + '/web']
],
preprocessCSS: [
@@ -152,6 +160,7 @@ target.generic = function() {
cleanupJSSource(GENERIC_DIR + '/build/pdf.js');
cleanupJSSource(GENERIC_DIR + '/web/viewer.js');
cleanupCSSSource(GENERIC_DIR + '/web/viewer.css');
+ rm(TMP_VIEWER);
};
target.components = function() {
@@ -163,7 +172,18 @@ target.components = function() {
mkdir('-p', COMPONENTS_DIR);
mkdir('-p', COMPONENTS_DIR + 'images');
- var defines = builder.merge(DEFINES, {COMPONENTS: true});
+ var defines = builder.merge(DEFINES, {COMPONENTS: true, GENERIC: true});
+
+ var TMP_PDF_VIEWER = COMPONENTS_DIR + 'pdf_viewer.js.tmp';
+ cd('web/');
+ var bundleFiles = [
+ 'pdf_viewer.js',
+ 'pdf_history.js',
+ 'download_manager.js'
+ ];
+ bundle('pdf_viewer.component.js', ROOT_DIR + TMP_PDF_VIEWER, bundleFiles,
+ 'pdfjs-dist/web/pdf_viewer', defines, true);
+ cd(ROOT_DIR);
var COMPONENTS_IMAGES = [
'web/images/annotation-*.svg',
@@ -179,7 +199,7 @@ target.components = function() {
['web/compatibility.js', COMPONENTS_DIR],
],
preprocess: [
- ['web/pdf_viewer.component.js', COMPONENTS_DIR + 'pdf_viewer.js'],
+ [TMP_PDF_VIEWER, COMPONENTS_DIR + 'pdf_viewer.js'],
],
preprocessCSS: [
['components', 'web/pdf_viewer.css', COMPONENTS_DIR + 'pdf_viewer.css'],
@@ -189,6 +209,7 @@ target.components = function() {
cleanupJSSource(COMPONENTS_DIR + 'pdf_viewer.js');
cleanupCSSSource(COMPONENTS_DIR + 'pdf_viewer.css');
+ rm(TMP_PDF_VIEWER);
};
target.jsdoc = function() {
@@ -479,6 +500,46 @@ target.cmaps = function () {
compressCmaps(CMAP_INPUT, VIEWER_CMAP_OUTPUT, true);
};
+function bundle(filename, outfilename, initFiles, amdName, defines,
+ isMainFile) {
+ // Reading UMD headers and building loading orders of modules. The
+ // readDependencies returns AMD module names: removing 'pdfjs' prefix and
+ // adding '.js' extensions to the name.
+ var umd = require('./external/umdutils/verifier.js');
+ var files = umd.readDependencies(initFiles).loadOrder.map(
+ function (name) { return name.replace(/^[\w\-]+\//, '') + '.js'; });
+
+ crlfchecker.checkIfCrlfIsPresent(files);
+
+ var bundleContent = cat(files),
+ bundleVersion = VERSION,
+ bundleBuild = BUILD_COMMIT;
+
+ // Prepend a newline because stripCommentHeaders only strips comments that
+ // follow a line feed. The file where bundleContent is inserted already
+ // contains a license header, so the header of bundleContent can be removed.
+ bundleContent = stripCommentHeaders('\n' + bundleContent);
+
+ // Removes AMD and CommonJS branches from UMD headers.
+ bundleContent = stripUMDHeaders(bundleContent);
+
+ var jsName = amdName.replace(/[\-_\.\/]\w/g, function (all) {
+ return all[1].toUpperCase();
+ });
+
+ // This just preprocesses the empty pdf.js file, we don't actually want to
+ // preprocess everything yet since other build targets use this file.
+ builder.preprocess(filename, outfilename,
+ builder.merge(defines, {
+ BUNDLE: bundleContent,
+ BUNDLE_VERSION: bundleVersion,
+ BUNDLE_BUILD: bundleBuild,
+ BUNDLE_AMD_NAME: amdName,
+ BUNDLE_JS_NAME: jsName,
+ MAIN_FILE: isMainFile
+ }));
+}
+
//
// make bundle
// Bundles all source files into one wrapper 'pdf.js' file, in the given order.
@@ -493,86 +554,45 @@ target.bundle = function(args) {
echo();
echo('### Bundling files into ' + BUILD_TARGET);
- function bundle(filename, outfilename, files, distname, isMainFile) {
- var bundleContent = cat(files),
- bundleVersion = VERSION,
- bundleBuild = exec('git log --format="%h" -n 1',
- {silent: true}).output.replace('\n', '');
-
- crlfchecker.checkIfCrlfIsPresent(files);
-
- // Prepend a newline because stripCommentHeaders only strips comments that
- // follow a line feed. The file where bundleContent is inserted already
- // contains a license header, so the header of bundleContent can be removed.
- bundleContent = stripCommentHeaders('\n' + bundleContent);
-
- // Removes AMD and CommonJS branches from UMD headers.
- bundleContent = stripUMDHeaders(bundleContent);
-
- var amdName = 'pdfjs-dist/build/' + distname.replace(/\.js$/, '');
- var jsName = amdName.replace(/[\-_\.\/]\w/g, function (all) {
- return all[1].toUpperCase();
- });
- // This just preprocesses the empty pdf.js file, we don't actually want to
- // preprocess everything yet since other build targets use this file.
- builder.preprocess(filename, outfilename, builder.merge(defines,
- {BUNDLE: bundleContent,
- BUNDLE_VERSION: bundleVersion,
- BUNDLE_BUILD: bundleBuild,
- BUNDLE_AMD_NAME: amdName,
- BUNDLE_JS_NAME: jsName,
- MAIN_FILE: isMainFile}));
- }
-
if (!test('-d', BUILD_DIR)) {
mkdir(BUILD_DIR);
}
- var umd = require('./external/umdutils/verifier.js');
- var MAIN_SRC_FILES = [
- SRC_DIR + 'display/global.js'
+ var mainFiles = [
+ 'display/global.js'
];
- var WORKER_SRC_FILES = [
- SRC_DIR + 'core/worker.js'
+ var workerFiles = [
+ 'core/worker.js'
];
- var mainFileName = 'pdf.js';
- var workerFileName = 'pdf.worker.js';
+ var mainAMDName = 'pdfjs-dist/build/pdf';
+ var workerAMDName = 'pdfjs-dist/build/pdf.worker';
// Extension does not need network.js file.
if (!defines.FIREFOX && !defines.MOZCENTRAL) {
- WORKER_SRC_FILES.push(SRC_DIR + 'core/network.js');
+ workerFiles.push('core/network.js');
}
if (defines.SINGLE_FILE) {
// In singlefile mode, all of the src files will be bundled into
// the main pdf.js output.
- MAIN_SRC_FILES = MAIN_SRC_FILES.concat(WORKER_SRC_FILES);
- WORKER_SRC_FILES = null; // no need for worker file
- mainFileName = 'pdf.combined.js';
- workerFileName = null;
+ mainFiles = mainFiles.concat(workerFiles);
+ workerFiles = null; // no need for worker file
+ mainAMDName = 'pdfjs-dist/build/pdf.combined';
+ workerAMDName = null;
}
- // Reading UMD headers and building loading orders of modules. The
- // readDependencies returns AMD module names: removing 'pdfjs' prefix and
- // adding '.js' extensions to the name.
- var mainFiles = umd.readDependencies(MAIN_SRC_FILES).loadOrder.map(
- function (name) { return name.replace('pdfjs/', '') + '.js'; });
-
- var workerFiles = WORKER_SRC_FILES &&
- umd.readDependencies(WORKER_SRC_FILES).loadOrder.map(
- function (name) { return name.replace('pdfjs/', '') + '.js'; });
-
cd(SRC_DIR);
- bundle('pdf.js', ROOT_DIR + BUILD_TARGET, mainFiles, mainFileName, true);
+ bundle('pdf.js', ROOT_DIR + BUILD_TARGET, mainFiles, mainAMDName, defines,
+ true);
if (workerFiles) {
var srcCopy = ROOT_DIR + BUILD_DIR + 'pdf.worker.js.temp';
cp('pdf.js', srcCopy);
- bundle(srcCopy, ROOT_DIR + BUILD_WORKER_TARGET, workerFiles,
- workerFileName, false);
+ bundle(srcCopy, ROOT_DIR + BUILD_WORKER_TARGET, workerFiles, workerAMDName,
+ defines, false);
rm(srcCopy);
}
};
@@ -676,6 +696,13 @@ target.minified = function() {
var defines = builder.merge(DEFINES, {GENERIC: true, MINIFIED: true});
+ var TMP_VIEWER = MINIFIED_DIR + '/web/viewer.js.tmp';
+ cd('web/');
+ var viewerBundleFiles = ['app.js'];
+ bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
+ 'pdfjs-dist/web/viewer', defines, true);
+ cd(ROOT_DIR);
+
var setup = {
defines: defines,
copy: [
@@ -686,6 +713,7 @@ target.minified = function() {
],
preprocess: [
[BUILD_TARGETS, MINIFIED_DIR + BUILD_DIR],
+ [TMP_VIEWER, MINIFIED_DIR + '/web/viewer.js'],
[COMMON_WEB_FILES_PREPROCESS, MINIFIED_DIR + '/web']
],
preprocessCSS: [
@@ -696,6 +724,7 @@ target.minified = function() {
builder.build(setup);
cleanupCSSSource(MINIFIED_DIR + '/web/viewer.css');
+ rm(TMP_VIEWER);
var viewerFiles = [
'web/compatibility.js',
@@ -762,6 +791,9 @@ target.buildnumber = function() {
echo('Extension build number: ' + BUILD_NUMBER);
VERSION = config.versionPrefix + BUILD_NUMBER;
+
+ BUILD_COMMIT = exec('git log --format="%h" -n 1', {silent: true}).
+ output.replace('\n', '');
};
//
@@ -819,6 +851,14 @@ target.firefox = function() {
cp('-R', FIREFOX_EXTENSION_FILES_TO_COPY, ROOT_DIR + FIREFOX_BUILD_DIR);
cd(ROOT_DIR);
+ var TMP_VIEWER = FIREFOX_BUILD_CONTENT_DIR + '/web/viewer.js.tmp';
+ cd('web/');
+ var viewerBundleFiles = ['app.js', 'firefoxcom.js'];
+ bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
+ 'pdfjs-dist/web/viewer', defines, true);
+ cd(ROOT_DIR);
+
+
var setup = {
defines: defines,
copy: [
@@ -829,6 +869,7 @@ target.firefox = function() {
FIREFOX_BUILD_CONTENT_DIR + '/web']
],
preprocess: [
+ [TMP_VIEWER, FIREFOX_BUILD_CONTENT_DIR + '/web/viewer.js'],
[COMMON_WEB_FILES_PREPROCESS, FIREFOX_BUILD_CONTENT_DIR + '/web'],
[BUILD_TARGETS, FIREFOX_BUILD_CONTENT_DIR + BUILD_DIR],
[COMMON_FIREFOX_FILES_PREPROCESS, FIREFOX_BUILD_CONTENT_DIR],
@@ -846,6 +887,7 @@ target.firefox = function() {
cleanupJSSource(FIREFOX_BUILD_DIR + 'bootstrap.js');
cleanupJSSource(FIREFOX_BUILD_CONTENT_DIR + 'PdfjsChromeUtils.jsm');
cleanupCSSSource(FIREFOX_BUILD_CONTENT_DIR + '/web/viewer.css');
+ rm(TMP_VIEWER);
// Remove '.DS_Store' and other hidden files
find(FIREFOX_BUILD_DIR).forEach(function(file) {
@@ -946,6 +988,13 @@ target.mozcentral = function() {
ROOT_DIR + MOZCENTRAL_EXTENSION_DIR + '/chrome.manifest');
cd(ROOT_DIR);
+ var TMP_VIEWER = MOZCENTRAL_CONTENT_DIR + '/web/viewer.js.tmp';
+ cd('web/');
+ var viewerBundleFiles = ['app.js', 'firefoxcom.js'];
+ bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
+ 'pdfjs-dist/web/viewer', defines, true);
+ cd(ROOT_DIR);
+
var setup = {
defines: defines,
copy: [
@@ -954,6 +1003,7 @@ target.mozcentral = function() {
['extensions/firefox/tools/l10n.js', MOZCENTRAL_CONTENT_DIR + '/web']
],
preprocess: [
+ [TMP_VIEWER, MOZCENTRAL_CONTENT_DIR + '/web/viewer.js'],
[COMMON_WEB_FILES_PREPROCESS, MOZCENTRAL_CONTENT_DIR + '/web'],
[FIREFOX_CONTENT_DIR + 'pdfjschildbootstrap.js', MOZCENTRAL_CONTENT_DIR],
[BUILD_TARGETS, MOZCENTRAL_CONTENT_DIR + BUILD_DIR],
@@ -973,6 +1023,7 @@ target.mozcentral = function() {
cleanupJSSource(MOZCENTRAL_CONTENT_DIR + '/PdfJs.jsm');
cleanupJSSource(MOZCENTRAL_CONTENT_DIR + '/PdfjsChromeUtils.jsm');
cleanupCSSSource(MOZCENTRAL_CONTENT_DIR + '/web/viewer.css');
+ rm(TMP_VIEWER);
// Remove '.DS_Store' and other hidden files
find(MOZCENTRAL_DIR).forEach(function(file) {
@@ -1078,6 +1129,13 @@ target.chromium = function() {
mkdir('-p', CHROME_BUILD_CONTENT_DIR + BUILD_DIR);
mkdir('-p', CHROME_BUILD_CONTENT_DIR + '/web');
+ var TMP_VIEWER = CHROME_BUILD_CONTENT_DIR + '/web/viewer.js.tmp';
+ cd('web/');
+ var viewerBundleFiles = ['app.js', 'chromecom.js'];
+ bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
+ 'pdfjs-dist/web/viewer', defines, true);
+ cd(ROOT_DIR);
+
var setup = {
defines: defines,
copy: [
@@ -1096,6 +1154,7 @@ target.chromium = function() {
],
preprocess: [
[BUILD_TARGETS, CHROME_BUILD_CONTENT_DIR + BUILD_DIR],
+ [TMP_VIEWER, CHROME_BUILD_CONTENT_DIR + '/web/viewer.js'],
[COMMON_WEB_FILES_PREPROCESS, CHROME_BUILD_CONTENT_DIR + '/web']
],
preprocessCSS: [
@@ -1107,6 +1166,7 @@ target.chromium = function() {
cleanupJSSource(CHROME_BUILD_CONTENT_DIR + '/web/viewer.js');
cleanupCSSSource(CHROME_BUILD_CONTENT_DIR + '/web/viewer.css');
+ rm(TMP_VIEWER);
// Update the build version number
sed('-i', /PDFJSSCRIPT_VERSION/, VERSION,
@@ -1508,7 +1568,7 @@ target.lint = function() {
echo();
echo('### Checking UMD dependencies');
var umd = require('./external/umdutils/verifier.js');
- if (!umd.validateFiles({'pdfjs': './src'})) {
+ if (!umd.validateFiles({'pdfjs': './src', 'pdfjs-web': './web'})) {
exit(1);
}
diff --git a/src/display/api.js b/src/display/api.js
index 3dfb93926..c882bca40 100644
--- a/src/display/api.js
+++ b/src/display/api.js
@@ -71,7 +71,7 @@ var isPostMessageTransfersDisabled = false;
//#if PRODUCTION && !SINGLE_FILE
//#if GENERIC
-//#include ../src/frameworks.js
+//#include $ROOT/src/frameworks.js
//#else
//var fakeWorkerFilesLoader = null;
//#endif
diff --git a/test/unit/jasmine-boot.js b/test/unit/jasmine-boot.js
index e71d51aed..575d97361 100644
--- a/test/unit/jasmine-boot.js
+++ b/test/unit/jasmine-boot.js
@@ -43,19 +43,19 @@
var pdfjsLibs;
function initializePDFJS(callback) {
- require.config({paths: {'pdfjs': '../../src'}});
+ require.config({paths: {'pdfjs': '../../src', 'pdfjs-web': '../../web'}});
require(['pdfjs/shared/util', 'pdfjs/display/global', 'pdfjs/core/primitives',
'pdfjs/core/annotation', 'pdfjs/core/crypto', 'pdfjs/core/stream',
'pdfjs/core/fonts', 'pdfjs/core/ps_parser', 'pdfjs/core/function',
'pdfjs/core/parser', 'pdfjs/core/evaluator', 'pdfjs/core/cmap',
'pdfjs/core/worker', 'pdfjs/core/network', 'pdfjs/core/type1_parser',
'pdfjs/core/cff_parser', 'pdfjs/display/api', 'pdfjs/display/metadata',
- 'pdfjs/display/dom_utils'],
+ 'pdfjs/display/dom_utils', 'pdfjs-web/ui_utils'],
function (sharedUtil, displayGlobal, corePrimitives, coreAnnotation,
coreCrypto, coreStream, coreFonts, corePsParser, coreFunction,
coreParser, coreEvaluator, coreCMap, coreWorker, coreNetwork,
coreType1Parser, coreCFFParser, displayAPI, displayMetadata,
- displayDOMUtils) {
+ displayDOMUtils, webUIUtils) {
pdfjsLibs = {
sharedUtil: sharedUtil,
@@ -76,7 +76,8 @@ function initializePDFJS(callback) {
coreCFFParser: coreCFFParser,
displayAPI: displayAPI,
displayMetadata: displayMetadata,
- displayDOMUtils: displayDOMUtils
+ displayDOMUtils: displayDOMUtils,
+ webUIUtils: webUIUtils
};
// Expose all loaded internal exported members to global scope.
diff --git a/test/unit/unit_test.html b/test/unit/unit_test.html
index dcef3728d..720f63612 100644
--- a/test/unit/unit_test.html
+++ b/test/unit/unit_test.html
@@ -11,8 +11,6 @@
-
-
diff --git a/web/annotation_layer_builder.js b/web/annotation_layer_builder.js
index d2bf28ba2..9a77bf5af 100644
--- a/web/annotation_layer_builder.js
+++ b/web/annotation_layer_builder.js
@@ -12,10 +12,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*globals pdfjsLib, mozL10n, SimpleLinkService */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/annotation_layer_builder', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/pdf_link_service',
+ 'pdfjs-web/pdfjs'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'),
+ require('./pdf_link_service.js'), require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebAnnotationLayerBuilder = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebPDFLinkService, root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, uiUtils, pdfLinkService, pdfjsLib) {
+
+var mozL10n = uiUtils.mozL10n;
+var SimpleLinkService = pdfLinkService.SimpleLinkService;
+
/**
* @typedef {Object} AnnotationLayerBuilderOptions
* @property {HTMLDivElement} pageDiv
@@ -119,3 +135,6 @@ DefaultAnnotationLayerFactory.prototype = {
});
}
};
+
+exports.AnnotationLayerBuilder = AnnotationLayerBuilder;
+}));
diff --git a/web/app.js b/web/app.js
index 532286ed9..9d03cc234 100644
--- a/web/app.js
+++ b/web/app.js
@@ -12,18 +12,93 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals pdfjsLib, PDFBug, FirefoxCom, Stats, ProgressBar, DownloadManager,
- getPDFFileNameFromURL, PDFHistory, Preferences, SidebarView,
- ViewHistory, Stats, PDFThumbnailViewer, URL, noContextMenuHandler,
- SecondaryToolbar, PasswordPrompt, PDFPresentationMode, PDFSidebar,
- PDFDocumentProperties, HandTool, Promise, PDFLinkService,
- PDFOutlineViewer, PDFAttachmentViewer, OverlayManager,
- PDFFindController, PDFFindBar, PDFViewer, PDFRenderingQueue,
- PresentationModeState, parseQueryString, RenderingStates,
- UNKNOWN_SCALE, DEFAULT_SCALE_VALUE, DEFAULT_URL, mozL10n */
+/* globals DEFAULT_URL, PDFBug, Stats */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/app', ['exports', 'pdfjs-web/ui_utils',
+ 'pdfjs-web/firefoxcom', 'pdfjs-web/download_manager',
+ 'pdfjs-web/pdf_history', 'pdfjs-web/preferences', 'pdfjs-web/pdf_sidebar',
+ 'pdfjs-web/view_history', 'pdfjs-web/pdf_thumbnail_viewer',
+ 'pdfjs-web/secondary_toolbar', 'pdfjs-web/password_prompt',
+ 'pdfjs-web/pdf_presentation_mode', 'pdfjs-web/pdf_document_properties',
+ 'pdfjs-web/hand_tool', 'pdfjs-web/pdf_viewer',
+ 'pdfjs-web/pdf_rendering_queue', 'pdfjs-web/pdf_link_service',
+ 'pdfjs-web/pdf_outline_viewer', 'pdfjs-web/overlay_manager',
+ 'pdfjs-web/pdf_attachment_viewer', 'pdfjs-web/pdf_find_controller',
+ 'pdfjs-web/pdf_find_bar', 'pdfjs-web/mozPrintCallback_polyfill',
+ 'pdfjs-web/pdfjs'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'), require('./firefoxcom.js'),
+ require('./download_manager.js'), require('./pdf_history.js'),
+ require('./preferences.js'), require('./pdf_sidebar.js'),
+ require('./view_history.js'), require('./pdf_thumbnail_viewer.js'),
+ require('./secondary_toolbar.js'), require('./password_prompt.js'),
+ require('./pdf_presentation_mode.js'),
+ require('./pdf_document_properties.js'), require('./hand_tool.js'),
+ require('./pdf_viewer.js'), require('./pdf_rendering_queue.js'),
+ require('./pdf_link_service.js'), require('./pdf_outline_viewer.js'),
+ require('./overlay_manager.js'), require('./pdf_attachment_viewer.js'),
+ require('./pdf_find_controller.js'), require('./pdf_find_bar.js'),
+ require('./mozPrintCallback_polyfill.js'), require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebApp = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebFirefoxCom, root.pdfjsWebDownloadManager,
+ root.pdfjsWebPDFHistory, root.pdfjsWebPreferences,
+ root.pdfjsWebPDFSidebar, root.pdfjsWebViewHistory,
+ root.pdfjsWebPDFThumbnailViewer, root.pdfjsWebSecondaryToolbar,
+ root.pdfjsWebPasswordPrompt, root.pdfjsWebPDFPresentationMode,
+ root.pdfjsWebPDFDocumentProperties, root.pdfjsWebHandTool,
+ root.pdfjsWebPDFViewer, root.pdfjsWebPDFRenderingQueue,
+ root.pdfjsWebPDFLinkService, root.pdfjsWebPDFOutlineViewer,
+ root.pdfjsWebOverlayManager, root.pdfjsWebPDFAttachmentViewer,
+ root.pdfjsWebPDFFindController, root.pdfjsWebPDFFindBar,
+ root.pdfjsWebMozPrintCallbackPolyfill, root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, uiUtilsLib, firefoxComLib, downloadManagerLib,
+ pdfHistoryLib, preferencesLib, pdfSidebarLib, viewHistoryLib,
+ pdfThumbnailViewerLib, secondaryToolbarLib, passwordPromptLib,
+ pdfPresentationModeLib, pdfDocumentPropertiesLib, handToolLib,
+ pdfViewerLib, pdfRenderingQueueLib, pdfLinkServiceLib,
+ pdfOutlineViewerLib, overlayManagerLib,
+ pdfAttachmentViewerLib, pdfFindControllerLib, pdfFindBarLib,
+ mozPrintCallbackPolyfillLib, pdfjsLib) {
+
+var FirefoxCom = firefoxComLib.FirefoxCom;
+var UNKNOWN_SCALE = uiUtilsLib.UNKNOWN_SCALE;
+var DEFAULT_SCALE_VALUE = uiUtilsLib.DEFAULT_SCALE_VALUE;
+var ProgressBar = uiUtilsLib.ProgressBar;
+var getPDFFileNameFromURL = uiUtilsLib.getPDFFileNameFromURL;
+var noContextMenuHandler = uiUtilsLib.noContextMenuHandler;
+var mozL10n = uiUtilsLib.mozL10n;
+var parseQueryString = uiUtilsLib.parseQueryString;
+var DownloadManager = downloadManagerLib.DownloadManager ||
+ firefoxComLib.DownloadManager;
+var PDFHistory = pdfHistoryLib.PDFHistory;
+var Preferences = preferencesLib.Preferences;
+var SidebarView = pdfSidebarLib.SidebarView;
+var PDFSidebar = pdfSidebarLib.PDFSidebar;
+var ViewHistory = viewHistoryLib.ViewHistory;
+var PDFThumbnailViewer = pdfThumbnailViewerLib.PDFThumbnailViewer;
+var SecondaryToolbar = secondaryToolbarLib.SecondaryToolbar;
+var PasswordPrompt = passwordPromptLib.PasswordPrompt;
+var PDFPresentationMode = pdfPresentationModeLib.PDFPresentationMode;
+var PDFDocumentProperties = pdfDocumentPropertiesLib.PDFDocumentProperties;
+var HandTool = handToolLib.HandTool;
+var PresentationModeState = pdfViewerLib.PresentationModeState;
+var PDFViewer = pdfViewerLib.PDFViewer;
+var RenderingStates = pdfRenderingQueueLib.RenderingStates;
+var PDFRenderingQueue = pdfRenderingQueueLib.PDFRenderingQueue;
+var PDFLinkService = pdfLinkServiceLib.PDFLinkService;
+var PDFOutlineViewer = pdfOutlineViewerLib.PDFOutlineViewer;
+var OverlayManager = overlayManagerLib.OverlayManager;
+var PDFAttachmentViewer = pdfAttachmentViewerLib.PDFAttachmentViewer;
+var PDFFindController = pdfFindControllerLib.PDFFindController;
+var PDFFindBar = pdfFindBarLib.PDFFindBar;
+
var DEFAULT_SCALE_DELTA = 1.1;
var MIN_SCALE = 0.25;
var MAX_SCALE = 10.0;
@@ -47,26 +122,6 @@ function configure(PDFJS) {
//#endif
}
-//#include ui_utils.js
-//#include preferences.js
-//#include platform_integration.js
-//#include view_history.js
-//#include pdf_find_bar.js
-//#include pdf_find_controller.js
-//#include pdf_link_service.js
-//#include pdf_history.js
-//#include secondary_toolbar.js
-//#include pdf_presentation_mode.js
-//#include hand_tool.js
-//#include overlay_manager.js
-//#include password_prompt.js
-//#include pdf_document_properties.js
-//#include pdf_viewer.js
-//#include pdf_thumbnail_viewer.js
-//#include pdf_sidebar.js
-//#include pdf_outline_viewer.js
-//#include pdf_attachment_viewer.js
-
var PDFViewerApplication = {
initialBookmark: document.location.hash.substring(1),
initialDestination: null,
@@ -1230,9 +1285,6 @@ var PDFViewerApplication = {
this.pdfPresentationMode.mouseScroll(delta);
}
};
-//#if GENERIC
-window.PDFView = PDFViewerApplication; // obsolete name, using it as an alias
-//#endif
//#if GENERIC
var HOSTED_VIEWER_ORIGINS = ['null',
@@ -1369,7 +1421,7 @@ function webViewerInitialized() {
var pdfBug = hashParams['pdfbug'];
var enabled = pdfBug.split(',');
PDFBug.enable(enabled);
- PDFBug.init();
+ PDFBug.init(pdfjsLib);
}
}
@@ -2144,3 +2196,10 @@ window.addEventListener('afterprint', function afterPrint(evt) {
window.requestAnimationFrame(resolve);
});
})();
+
+exports.PDFViewerApplication = PDFViewerApplication;
+
+// TODO remove circular reference of pdfjs-web/secondary_toolbar on app.
+secondaryToolbarLib._setApp(exports);
+
+}));
diff --git a/web/chromecom.js b/web/chromecom.js
index f9848f0f8..e587fb3d1 100644
--- a/web/chromecom.js
+++ b/web/chromecom.js
@@ -13,10 +13,28 @@
* limitations under the License.
*/
-/* globals chrome, pdfjsLib, PDFViewerApplication, OverlayManager */
+/* globals chrome */
'use strict';
-var ChromeCom = (function ChromeComClosure() {
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/chromecom', ['exports', 'pdfjs-web/app',
+ 'pdfjs-web/overlay_manager', 'pdfjs-web/pdfjs'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./app.js'), require('./overlay_manager.js'),
+ require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebChromeCom = {}), root.pdfjsWebApp,
+ root.pdfjsWebOverlayManager, root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, app, overlayManager, pdfjsLib) {
+//#if CHROME
+//#if !CHROME
+ if (true) { return; } // TODO ensure nothing depends on this module.
+//#endif
+ var PDFViewerApplication = app.PDFViewerApplication;
+ var OverlayManager = overlayManager.OverlayManager;
+
var ChromeCom = {};
/**
* Creates an event that the extension is listening for and will
@@ -205,7 +223,7 @@ var ChromeCom = (function ChromeComClosure() {
// because the shown string should match the UI at chrome://extensions.
// These strings are from chrome/app/resources/generated_resources_*.xtb.
var i18nFileAccessLabel =
-//#include chrome-i18n-allow-access-to-file-urls.json
+//#include $ROOT/web/chrome-i18n-allow-access-to-file-urls.json
[chrome.i18n.getUILanguage && chrome.i18n.getUILanguage()];
if (i18nFileAccessLabel) {
@@ -304,5 +322,6 @@ var ChromeCom = (function ChromeComClosure() {
}
}
- return ChromeCom;
-})();
+ exports.ChromeCom = ChromeCom;
+//#endif
+}));
diff --git a/web/debugger.js b/web/debugger.js
index bd3e5620d..05e279c9b 100644
--- a/web/debugger.js
+++ b/web/debugger.js
@@ -12,7 +12,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals pdfjsLib */
'use strict';
@@ -65,7 +64,7 @@ var FontInspector = (function FontInspectorClosure() {
name: 'Font Inspector',
panel: null,
manager: null,
- init: function init() {
+ init: function init(pdfjsLib) {
var panel = this.panel;
panel.setAttribute('style', 'padding: 5px;');
var tmp = document.createElement('button');
@@ -291,7 +290,7 @@ var Stepper = (function StepperClosure() {
this.operatorListIdx = 0;
}
Stepper.prototype = {
- init: function init() {
+ init: function init(pdfjsLib) {
var panel = this.panel;
var content = c('div', 'c=continue, s=step');
var table = c('table');
@@ -458,7 +457,7 @@ var Stats = (function Stats() {
name: 'Stats',
panel: null,
manager: null,
- init: function init() {
+ init: function init(pdfjsLib) {
this.panel.setAttribute('style', 'padding: 5px;');
pdfjsLib.PDFJS.enableStats = true;
},
@@ -532,7 +531,7 @@ var PDFBug = (function PDFBugClosure() {
});
}
},
- init: function init() {
+ init: function init(pdfjsLib) {
/*
* Basic Layout:
* PDFBug
@@ -576,7 +575,7 @@ var PDFBug = (function PDFBugClosure() {
tool.panel = panel;
tool.manager = this;
if (tool.enabled) {
- tool.init();
+ tool.init(pdfjsLib);
} else {
panel.textContent = tool.name + ' is disabled. To enable add ' +
' "' + tool.id + '" to the pdfBug parameter ' +
diff --git a/web/download_manager.js b/web/download_manager.js
index dc899e739..748176473 100644
--- a/web/download_manager.js
+++ b/web/download_manager.js
@@ -12,12 +12,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals URL, pdfjsLib */
'use strict';
-var DownloadManager = (function DownloadManagerClosure() {
-
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/download_manager', ['exports', 'pdfjs-web/pdfjs'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebDownloadManager = {}), root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, pdfjsLib) {
+//#if GENERIC || CHROME
function download(blobUrl, filename) {
var a = document.createElement('a');
if (a.click) {
@@ -97,5 +105,6 @@ var DownloadManager = (function DownloadManagerClosure() {
}
};
- return DownloadManager;
-})();
+ exports.DownloadManager = DownloadManager;
+//#endif
+}));
diff --git a/web/firefoxcom.js b/web/firefoxcom.js
index 1931f1fc9..9a60097a9 100644
--- a/web/firefoxcom.js
+++ b/web/firefoxcom.js
@@ -12,10 +12,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals Preferences, pdfjsLib, Promise */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/firefoxcom', ['exports', 'pdfjs-web/preferences',
+ 'pdfjs-web/pdfjs'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./preferences.js'), require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebFirefoxCom = {}), root.pdfjsWebPreferences,
+ root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, preferences, pdfjsLib) {
+//#if FIREFOX || MOZCENTRAL
+//#if !(FIREFOX || MOZCENTRAL)
+ if (true) { return; } // TODO ensure nothing depends on this module.
+//#endif
+var Preferences = preferences.Preferences;
+
var FirefoxCom = (function FirefoxComClosure() {
return {
/**
@@ -132,3 +148,8 @@ Preferences._readFromStorage = function (prefObj) {
});
});
};
+
+exports.DownloadManager = DownloadManager;
+exports.FirefoxCom = FirefoxCom;
+//#endif
+}));
diff --git a/web/grab_to_pan.js b/web/grab_to_pan.js
index e50a6bce6..f27f74f6e 100644
--- a/web/grab_to_pan.js
+++ b/web/grab_to_pan.js
@@ -16,7 +16,15 @@
'use strict';
-var GrabToPan = (function GrabToPanClosure() {
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/grab_to_pan', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebGrabToPan = {}));
+ }
+}(this, function (exports) {
/**
* Construct a GrabToPan instance for a given HTML element.
* @param options.element {Element}
@@ -217,5 +225,5 @@ var GrabToPan = (function GrabToPanClosure() {
}
}
- return GrabToPan;
-})();
+ exports.GrabToPan = GrabToPan;
+}));
diff --git a/web/hand_tool.js b/web/hand_tool.js
index a16e01913..85addc5ea 100644
--- a/web/hand_tool.js
+++ b/web/hand_tool.js
@@ -12,11 +12,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals mozL10n, GrabToPan, Preferences, SecondaryToolbar */
'use strict';
-//#include grab_to_pan.js
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/hand_tool', ['exports', 'pdfjs-web/ui_utils',
+ 'pdfjs-web/grab_to_pan', 'pdfjs-web/preferences',
+ 'pdfjs-web/secondary_toolbar'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'), require('./grab_to_pan.js'),
+ require('./preferences.js'), require('./secondary_toolbar.js'));
+ } else {
+ factory((root.pdfjsWebHandTool = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebGrabToPan, root.pdfjsWebPreferences,
+ root.pdfjsWebSecondaryToolbar);
+ }
+}(this, function (exports, uiUtils, grabToPan, preferences, secondaryToolbar) {
+
+var mozL10n = uiUtils.mozL10n;
+var GrabToPan = grabToPan.GrabToPan;
+var Preferences = preferences.Preferences;
+var SecondaryToolbar = secondaryToolbar.SecondaryToolbar;
+
var HandTool = {
initialize: function handToolInitialize(options) {
var toggleHandTool = options.toggleHandTool;
@@ -82,3 +100,6 @@ var HandTool = {
}
}
};
+
+exports.HandTool = HandTool;
+}));
diff --git a/web/mozPrintCallback_polyfill.js b/web/mozPrintCallback_polyfill.js
index d1a2f8edc..afc4407a4 100644
--- a/web/mozPrintCallback_polyfill.js
+++ b/web/mozPrintCallback_polyfill.js
@@ -15,10 +15,21 @@
/* globals HTMLCanvasElement */
'use strict';
-(function mozPrintCallbackPolyfillClosure() {
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/mozPrintCallback_polyfill', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebMozPrintCallbackPolyfill = {}));
+ }
+}(this, function (exports) {
+//#if !(FIREFOX || MOZCENTRAL)
if ('mozPrintCallback' in document.createElement('canvas')) {
return;
}
+
// Cause positive result on feature-detection:
HTMLCanvasElement.prototype.mozPrintCallback = undefined;
@@ -139,4 +150,5 @@
window.addEventListener('beforeprint', stopPropagationIfNeeded, false);
window.addEventListener('afterprint', stopPropagationIfNeeded, false);
}
-})();
+//#endif
+}));
diff --git a/web/overlay_manager.js b/web/overlay_manager.js
index 56b23ab8f..1807d2788 100644
--- a/web/overlay_manager.js
+++ b/web/overlay_manager.js
@@ -15,6 +15,16 @@
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/overlay_manager', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebOverlayManager = {}));
+ }
+}(this, function (exports) {
+
var OverlayManager = {
overlays: {},
active: null,
@@ -141,3 +151,6 @@ var OverlayManager = {
}
}
};
+
+exports.OverlayManager = OverlayManager;
+}));
diff --git a/web/password_prompt.js b/web/password_prompt.js
index 4ca9474df..1202dfba2 100644
--- a/web/password_prompt.js
+++ b/web/password_prompt.js
@@ -12,10 +12,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals pdfjsLib, mozL10n, OverlayManager */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/password_prompt', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/overlay_manager', 'pdfjs-web/pdfjs'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'), require('./overlay_manager.js'),
+ require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebPasswordPrompt = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebOverlayManager, root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, uiUtils, overlayManager, pdfjsLib) {
+
+var mozL10n = uiUtils.mozL10n;
+var OverlayManager = overlayManager.OverlayManager;
+
var PasswordPrompt = {
overlayName: null,
updatePassword: null,
@@ -79,3 +95,6 @@ var PasswordPrompt = {
}
}
};
+
+exports.PasswordPrompt = PasswordPrompt;
+}));
diff --git a/web/pdf_attachment_viewer.js b/web/pdf_attachment_viewer.js
index 68c90d88d..5d29d1faf 100644
--- a/web/pdf_attachment_viewer.js
+++ b/web/pdf_attachment_viewer.js
@@ -12,10 +12,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals pdfjsLib */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_attachment_viewer', ['exports', 'pdfjs-web/pdfjs'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebPDFAttachmentViewer = {}), root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, pdfjsLib) {
+
/**
* @typedef {Object} PDFAttachmentViewerOptions
* @property {HTMLDivElement} container - The viewer element.
@@ -114,3 +124,6 @@ var PDFAttachmentViewer = (function PDFAttachmentViewerClosure() {
return PDFAttachmentViewer;
})();
+
+exports.PDFAttachmentViewer = PDFAttachmentViewer;
+}));
diff --git a/web/pdf_document_properties.js b/web/pdf_document_properties.js
index 73444b3eb..4fa9bc874 100644
--- a/web/pdf_document_properties.js
+++ b/web/pdf_document_properties.js
@@ -12,10 +12,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals mozL10n, getPDFFileNameFromURL, OverlayManager */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_document_properties', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/overlay_manager'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'), require('./overlay_manager.js'));
+ } else {
+ factory((root.pdfjsWebPDFDocumentProperties = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebOverlayManager);
+ }
+}(this, function (exports, uiUtils, overlayManager) {
+
+var getPDFFileNameFromURL = uiUtils.getPDFFileNameFromURL;
+var mozL10n = uiUtils.mozL10n;
+var OverlayManager = overlayManager.OverlayManager;
+
/**
* @typedef {Object} PDFDocumentPropertiesOptions
* @property {string} overlayName - Name/identifier for the overlay.
@@ -222,3 +237,6 @@ var PDFDocumentProperties = (function PDFDocumentPropertiesClosure() {
return PDFDocumentProperties;
})();
+
+exports.PDFDocumentProperties = PDFDocumentProperties;
+}));
diff --git a/web/pdf_find_bar.js b/web/pdf_find_bar.js
index ffcbef719..02d2e75f4 100644
--- a/web/pdf_find_bar.js
+++ b/web/pdf_find_bar.js
@@ -12,10 +12,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals FindStates, mozL10n */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_find_bar', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/pdf_find_controller'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'),
+ require('./pdf_find_controller.js'));
+ } else {
+ factory((root.pdfjsWebPDFFindBar = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebPDFFindController);
+ }
+}(this, function (exports, uiUtils, pdfFindController) {
+
+var mozL10n = uiUtils.mozL10n;
+var FindStates = pdfFindController.FindStates;
+
/**
* Creates a "search bar" given a set of DOM elements that act as controls
* for searching or for setting search preferences in the UI. This object
@@ -188,3 +203,6 @@ var PDFFindBar = (function PDFFindBarClosure() {
};
return PDFFindBar;
})();
+
+exports.PDFFindBar = PDFFindBar;
+}));
diff --git a/web/pdf_find_controller.js b/web/pdf_find_controller.js
index 89fae7515..ac813f7c2 100644
--- a/web/pdf_find_controller.js
+++ b/web/pdf_find_controller.js
@@ -12,10 +12,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals FirefoxCom, Promise, scrollIntoView */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_find_controller', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/firefoxcom'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'), require('./firefoxcom.js'));
+ } else {
+ factory((root.pdfjsWebPDFFindController = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebFirefoxCom);
+ }
+}(this, function (exports, uiUtils, firefoxCom) {
+
+var scrollIntoView = uiUtils.scrollIntoView;
+var FirefoxCom = firefoxCom.FirefoxCom;
+
var FindStates = {
FIND_FOUND: 0,
FIND_NOTFOUND: 1,
@@ -416,3 +430,7 @@ var PDFFindController = (function PDFFindControllerClosure() {
};
return PDFFindController;
})();
+
+exports.FindStates = FindStates;
+exports.PDFFindController = PDFFindController;
+}));
diff --git a/web/pdf_history.js b/web/pdf_history.js
index fdca1e59a..403caef39 100644
--- a/web/pdf_history.js
+++ b/web/pdf_history.js
@@ -15,7 +15,16 @@
'use strict';
-var PDFHistory = (function () {
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_history', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebPDFHistory = {}));
+ }
+}(this, function (exports) {
+
function PDFHistory(options) {
this.linkService = options.linkService;
@@ -423,5 +432,5 @@ var PDFHistory = (function () {
}
};
- return PDFHistory;
-})();
+ exports.PDFHistory = PDFHistory;
+}));
diff --git a/web/pdf_link_service.js b/web/pdf_link_service.js
index 43401184d..eac27ddf3 100644
--- a/web/pdf_link_service.js
+++ b/web/pdf_link_service.js
@@ -12,10 +12,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals PDFViewer, PDFHistory, Promise, parseQueryString */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_link_service', ['exports', 'pdfjs-web/ui_utils'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'));
+ } else {
+ factory((root.pdfjsWebPDFLinkService = {}), root.pdfjsWebUIUtils);
+ }
+}(this, function (exports, uiUtils) {
+
+var parseQueryString = uiUtils.parseQueryString;
+
/**
* Performs navigation functions inside PDF, such as opening specified page,
* or destination.
@@ -299,3 +311,56 @@ var PDFLinkService = (function () {
return PDFLinkService;
})();
+
+var SimpleLinkService = (function SimpleLinkServiceClosure() {
+ function SimpleLinkService() {}
+
+ SimpleLinkService.prototype = {
+ /**
+ * @returns {number}
+ */
+ get page() {
+ return 0;
+ },
+ /**
+ * @param {number} value
+ */
+ set page(value) {},
+ /**
+ * @param dest - The PDF destination object.
+ */
+ navigateTo: function (dest) {},
+ /**
+ * @param dest - The PDF destination object.
+ * @returns {string} The hyperlink to the PDF object.
+ */
+ getDestinationHash: function (dest) {
+ return '#';
+ },
+ /**
+ * @param hash - The PDF parameters/hash.
+ * @returns {string} The hyperlink to the PDF object.
+ */
+ getAnchorUrl: function (hash) {
+ return '#';
+ },
+ /**
+ * @param {string} hash
+ */
+ setHash: function (hash) {},
+ /**
+ * @param {string} action
+ */
+ executeNamedAction: function (action) {},
+ /**
+ * @param {number} pageNum - page number.
+ * @param {Object} pageRef - reference to the page.
+ */
+ cachePageRef: function (pageNum, pageRef) {}
+ };
+ return SimpleLinkService;
+})();
+
+exports.PDFLinkService = PDFLinkService;
+exports.SimpleLinkService = SimpleLinkService;
+}));
diff --git a/web/pdf_outline_viewer.js b/web/pdf_outline_viewer.js
index 235380c99..c2310881a 100644
--- a/web/pdf_outline_viewer.js
+++ b/web/pdf_outline_viewer.js
@@ -12,10 +12,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals pdfjsLib */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_outline_viewer', ['exports', 'pdfjs-web/pdfjs'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebPDFOutlineViewer = {}), root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, pdfjsLib) {
+
var DEFAULT_TITLE = '\u2013';
/**
@@ -210,3 +220,6 @@ var PDFOutlineViewer = (function PDFOutlineViewerClosure() {
return PDFOutlineViewer;
})();
+
+exports.PDFOutlineViewer = PDFOutlineViewer;
+}));
diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js
index 81e1c1b17..a563b50af 100644
--- a/web/pdf_page_view.js
+++ b/web/pdf_page_view.js
@@ -12,11 +12,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals RenderingStates, pdfjsLib, DEFAULT_SCALE, CSS_UNITS, getOutputScale,
- TextLayerBuilder, Promise, approximateFraction, roundToDivide */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_page_view', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/pdf_rendering_queue',
+ 'pdfjs-web/pdfjs'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'),
+ require('./pdf_rendering_queue.js'), require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebPDFPageView = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebPDFRenderingQueue, root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, uiUtils, pdfRenderingQueue, pdfjsLib) {
+
+var CSS_UNITS = uiUtils.CSS_UNITS;
+var DEFAULT_SCALE = uiUtils.DEFAULT_SCALE;
+var getOutputScale = uiUtils.getOutputScale;
+var approximateFraction = uiUtils.approximateFraction;
+var roundToDivide = uiUtils.roundToDivide;
+var RenderingStates = pdfRenderingQueue.RenderingStates;
+
var TEXT_LAYER_RENDER_DELAY = 200; // ms
/**
@@ -437,15 +456,6 @@ var PDFPageView = (function PDFPageViewClosure() {
cssTransform: false,
});
div.dispatchEvent(event);
-//#if GENERIC
- // This custom event is deprecated, and will be removed in the future,
- // please use the |pagerendered| event instead.
- var deprecatedEvent = document.createEvent('CustomEvent');
- deprecatedEvent.initCustomEvent('pagerender', true, true, {
- pageNumber: pdfPage.pageNumber
- });
- div.dispatchEvent(deprecatedEvent);
-//#endif
if (!error) {
resolveRenderPromise(undefined);
@@ -582,3 +592,6 @@ var PDFPageView = (function PDFPageViewClosure() {
return PDFPageView;
})();
+
+exports.PDFPageView = PDFPageView;
+}));
diff --git a/web/pdf_presentation_mode.js b/web/pdf_presentation_mode.js
index 4da6f349c..537ee3dbe 100644
--- a/web/pdf_presentation_mode.js
+++ b/web/pdf_presentation_mode.js
@@ -15,6 +15,16 @@
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_presentation_mode', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebPDFPresentationMode = {}));
+ }
+}(this, function (exports) {
+
var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; // in ms
var DELAY_BEFORE_HIDING_CONTROLS = 3000; // in ms
var ACTIVE_SELECTOR = 'pdfPresentationMode';
@@ -389,3 +399,6 @@ var PDFPresentationMode = (function PDFPresentationModeClosure() {
return PDFPresentationMode;
})();
+
+exports.PDFPresentationMode = PDFPresentationMode;
+}));
diff --git a/web/pdf_rendering_queue.js b/web/pdf_rendering_queue.js
index 89f77cd76..63f0ba4bb 100644
--- a/web/pdf_rendering_queue.js
+++ b/web/pdf_rendering_queue.js
@@ -15,6 +15,16 @@
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_rendering_queue', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebPDFRenderingQueue = {}));
+ }
+}(this, function (exports) {
+
var CLEANUP_TIMEOUT = 30000;
var RenderingStates = {
@@ -175,3 +185,7 @@ var PDFRenderingQueue = (function PDFRenderingQueueClosure() {
return PDFRenderingQueue;
})();
+
+exports.RenderingStates = RenderingStates;
+exports.PDFRenderingQueue = PDFRenderingQueue;
+}));
diff --git a/web/pdf_sidebar.js b/web/pdf_sidebar.js
index aa78803f5..c28b4db49 100644
--- a/web/pdf_sidebar.js
+++ b/web/pdf_sidebar.js
@@ -12,10 +12,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
- /* globals RenderingStates */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_sidebar', ['exports',
+ 'pdfjs-web/pdf_rendering_queue'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./pdf_rendering_queue.js'));
+ } else {
+ factory((root.pdfjsWebPDFSidebar = {}), root.pdfjsWebPDFRenderingQueue);
+ }
+}(this, function (exports, pdfRenderingQueue) {
+
+var RenderingStates = pdfRenderingQueue.RenderingStates;
+
var SidebarView = {
NONE: 0,
THUMBS: 1,
@@ -330,3 +342,7 @@ var PDFSidebar = (function PDFSidebarClosure() {
return PDFSidebar;
})();
+
+exports.SidebarView = SidebarView;
+exports.PDFSidebar = PDFSidebar;
+}));
diff --git a/web/pdf_thumbnail_view.js b/web/pdf_thumbnail_view.js
index 5908904da..1d96af77b 100644
--- a/web/pdf_thumbnail_view.js
+++ b/web/pdf_thumbnail_view.js
@@ -12,10 +12,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals mozL10n, RenderingStates, Promise, getOutputScale */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_thumbnail_view', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/pdf_rendering_queue'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'),
+ require('./pdf_rendering_queue.js'));
+ } else {
+ factory((root.pdfjsWebPDFThumbnailView = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebPDFRenderingQueue);
+ }
+}(this, function (exports, uiUtils, pdfRenderingQueue) {
+
+var mozL10n = uiUtils.mozL10n;
+var getOutputScale = uiUtils.getOutputScale;
+var RenderingStates = pdfRenderingQueue.RenderingStates;
+
var THUMBNAIL_WIDTH = 98; // px
var THUMBNAIL_CANVAS_BORDER_WIDTH = 1; // px
@@ -377,3 +393,6 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
})();
PDFThumbnailView.tempImageCache = null;
+
+exports.PDFThumbnailView = PDFThumbnailView;
+}));
diff --git a/web/pdf_thumbnail_viewer.js b/web/pdf_thumbnail_viewer.js
index 2b1397bdb..2a6741498 100644
--- a/web/pdf_thumbnail_viewer.js
+++ b/web/pdf_thumbnail_viewer.js
@@ -12,14 +12,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals watchScroll, getVisibleElements, scrollIntoView, PDFThumbnailView,
- Promise */
'use strict';
-var THUMBNAIL_SCROLL_MARGIN = -19;
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_thumbnail_viewer', ['exports',
+ 'pdfjs-web/ui_utils', 'pdfjs-web/pdf_thumbnail_view'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'),
+ require('./pdf_thumbnail_view.js'));
+ } else {
+ factory((root.pdfjsWebPDFThumbnailViewer = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebPDFThumbnailView);
+ }
+}(this, function (exports, uiUtils, pdfThumbnailView) {
-//#include pdf_thumbnail_view.js
+var watchScroll = uiUtils.watchScroll;
+var getVisibleElements = uiUtils.getVisibleElements;
+var scrollIntoView = uiUtils.scrollIntoView;
+var PDFThumbnailView = pdfThumbnailView.PDFThumbnailView;
+
+var THUMBNAIL_SCROLL_MARGIN = -19;
/**
* @typedef {Object} PDFThumbnailViewerOptions
@@ -196,3 +210,6 @@ var PDFThumbnailViewer = (function PDFThumbnailViewerClosure() {
return PDFThumbnailViewer;
})();
+
+exports.PDFThumbnailViewer = PDFThumbnailViewer;
+}));
diff --git a/web/pdf_viewer.component.js b/web/pdf_viewer.component.js
index 596362c71..53da359ef 100644
--- a/web/pdf_viewer.component.js
+++ b/web/pdf_viewer.component.js
@@ -12,41 +12,47 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*jshint globalstrict: false */
-/* globals PDFJS, PDFViewer, PDFPageView, TextLayerBuilder, PDFLinkService,
- DefaultTextLayerFactory, AnnotationLayerBuilder, PDFHistory,
- DefaultAnnotationLayerFactory, DownloadManager, ProgressBar */
+/* jshint globalstrict: false */
+/* umdutils ignore */
-(function pdfViewerWrapper() {
+(function (root, factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-dist/web/pdf.components', ['exports', 'pdfjs-dist/build/pdf'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('../build/pdf.js'));
+ } else {
+ factory((root.pdfjsDistWebPDFComponents = {}), root.pdfjsDistBuildPdf);
+ }
+}(this, function (exports, pdfjsLib) {
'use strict';
- var root = this;
- if (!root.pdfjsLib) {
- Object.defineProperty(root, 'pdfjsLib', {
- get: function () {
- return root.pdfjsDistBuildPdf || root.pdfjsDistBuildPdfCombined ||
- root.pdfjsMainLoader;
- },
- enumerable: true,
- configurable: true
- });
- }
+ var pdfViewerLibs = {
+ pdfjsWebPDFJS: pdfjsLib
+ };
-//#include ui_utils.js
-//#include pdf_link_service.js
-//#include pdf_viewer.js
-//#include pdf_history.js
-//#include download_manager.js
+ (function () {
+//#expand __BUNDLE__
+ }).call(pdfViewerLibs);
- PDFJS.PDFViewer = PDFViewer;
- PDFJS.PDFPageView = PDFPageView;
- PDFJS.PDFLinkService = PDFLinkService;
- PDFJS.TextLayerBuilder = TextLayerBuilder;
- PDFJS.DefaultTextLayerFactory = DefaultTextLayerFactory;
- PDFJS.AnnotationLayerBuilder = AnnotationLayerBuilder;
- PDFJS.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;
- PDFJS.PDFHistory = PDFHistory;
+ var PDFJS = pdfjsLib.PDFJS;
- PDFJS.DownloadManager = DownloadManager;
- PDFJS.ProgressBar = ProgressBar;
-}).call((typeof window === 'undefined') ? this : window);
+ PDFJS.PDFViewer = pdfViewerLibs.pdfjsWebPDFViewer.PDFViewer;
+ PDFJS.PDFPageView = pdfViewerLibs.pdfjsWebPDFPageView.PDFPageView;
+ PDFJS.PDFLinkService = pdfViewerLibs.pdfjsWebPDFLinkService.PDFLinkService;
+ PDFJS.TextLayerBuilder =
+ pdfViewerLibs.pdfjsWebTextLayerBuilder.TextLayerBuilder;
+ PDFJS.DefaultTextLayerFactory =
+ pdfViewerLibs.pdfjsWebTextLayerBuilder.DefaultTextLayerFactory;
+ PDFJS.AnnotationLayerBuilder =
+ pdfViewerLibs.pdfjsWebAnnotationLayerBuilder.AnnotationLayerBuilder;
+ PDFJS.DefaultAnnotationLayerFactory =
+ pdfViewerLibs.pdfjsWebAnnotationLayerBuilder.DefaultAnnotationLayerFactory;
+ PDFJS.PDFHistory = pdfViewerLibs.pdfjsWebPDFHistory.PDFHistory;
+
+ PDFJS.DownloadManager = pdfViewerLibs.pdfjsWebDownloadManager.DownloadManager;
+ PDFJS.ProgressBar = pdfViewerLibs.pdfjsWebUIUtils.ProgressBar;
+
+ exports.PDFJS = PDFJS;
+}));
diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js
index 766d88c0a..d932867c6 100644
--- a/web/pdf_viewer.js
+++ b/web/pdf_viewer.js
@@ -12,14 +12,47 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
- /*globals watchScroll, PDFPageView, UNKNOWN_SCALE,
- SCROLLBAR_PADDING, VERTICAL_PADDING, MAX_AUTO_SCALE, CSS_UNITS,
- DEFAULT_SCALE, scrollIntoView, getVisibleElements, RenderingStates,
- pdfjsLib, Promise, TextLayerBuilder, PDFRenderingQueue,
- AnnotationLayerBuilder, DEFAULT_SCALE_VALUE */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdf_viewer', ['exports', 'pdfjs-web/ui_utils',
+ 'pdfjs-web/pdf_page_view', 'pdfjs-web/pdf_rendering_queue',
+ 'pdfjs-web/text_layer_builder', 'pdfjs-web/annotation_layer_builder',
+ 'pdfjs-web/pdf_link_service', 'pdfjs-web/pdfjs'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'), require('./pdf_page_view.js'),
+ require('./pdf_rendering_queue.js'), require('./text_layer_builder.js'),
+ require('./annotation_layer_builder.js'),
+ require('./pdf_link_service.js'), require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebPDFViewer = {}), root.pdfjsWebUIUtils,
+ root.pdfjsWebPDFPageView, root.pdfjsWebPDFRenderingQueue,
+ root.pdfjsWebTextLayerBuilder, root.pdfjsWebAnnotationLayerBuilder,
+ root.pdfjsWebPDFLinkService, root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, uiUtils, pdfPageView, pdfRenderingQueue,
+ textLayerBuilder, annotationLayerBuilder, pdfLinkService,
+ pdfjsLib) {
+
+var UNKNOWN_SCALE = uiUtils.UNKNOWN_SCALE;
+var SCROLLBAR_PADDING = uiUtils.SCROLLBAR_PADDING;
+var VERTICAL_PADDING = uiUtils.VERTICAL_PADDING;
+var MAX_AUTO_SCALE = uiUtils.MAX_AUTO_SCALE;
+var CSS_UNITS = uiUtils.CSS_UNITS;
+var DEFAULT_SCALE = uiUtils.DEFAULT_SCALE;
+var DEFAULT_SCALE_VALUE = uiUtils.DEFAULT_SCALE_VALUE;
+var scrollIntoView = uiUtils.scrollIntoView;
+var watchScroll = uiUtils.watchScroll;
+var getVisibleElements = uiUtils.getVisibleElements;
+var PDFPageView = pdfPageView.PDFPageView;
+var RenderingStates = pdfRenderingQueue.RenderingStates;
+var PDFRenderingQueue = pdfRenderingQueue.PDFRenderingQueue;
+var TextLayerBuilder = textLayerBuilder.TextLayerBuilder;
+var AnnotationLayerBuilder = annotationLayerBuilder.AnnotationLayerBuilder;
+var SimpleLinkService = pdfLinkService.SimpleLinkService;
+
var PresentationModeState = {
UNKNOWN: 0,
NORMAL: 1,
@@ -29,11 +62,6 @@ var PresentationModeState = {
var DEFAULT_CACHE_SIZE = 10;
-//#include pdf_rendering_queue.js
-//#include pdf_page_view.js
-//#include text_layer_builder.js
-//#include annotation_layer_builder.js
-
/**
* @typedef {Object} PDFViewerOptions
* @property {HTMLDivElement} container - The container for the viewer element.
@@ -772,51 +800,6 @@ var PDFViewer = (function pdfViewer() {
return PDFViewer;
})();
-var SimpleLinkService = (function SimpleLinkServiceClosure() {
- function SimpleLinkService() {}
-
- SimpleLinkService.prototype = {
- /**
- * @returns {number}
- */
- get page() {
- return 0;
- },
- /**
- * @param {number} value
- */
- set page(value) {},
- /**
- * @param dest - The PDF destination object.
- */
- navigateTo: function (dest) {},
- /**
- * @param dest - The PDF destination object.
- * @returns {string} The hyperlink to the PDF object.
- */
- getDestinationHash: function (dest) {
- return '#';
- },
- /**
- * @param hash - The PDF parameters/hash.
- * @returns {string} The hyperlink to the PDF object.
- */
- getAnchorUrl: function (hash) {
- return '#';
- },
- /**
- * @param {string} hash
- */
- setHash: function (hash) {},
- /**
- * @param {string} action
- */
- executeNamedAction: function (action) {},
- /**
- * @param {number} pageNum - page number.
- * @param {Object} pageRef - reference to the page.
- */
- cachePageRef: function (pageNum, pageRef) {}
- };
- return SimpleLinkService;
-})();
+exports.PresentationModeState = PresentationModeState;
+exports.PDFViewer = PDFViewer;
+}));
diff --git a/web/platform_integration.js b/web/pdfjs.js
similarity index 50%
rename from web/platform_integration.js
rename to web/pdfjs.js
index bd7f80d3d..60de07895 100644
--- a/web/platform_integration.js
+++ b/web/pdfjs.js
@@ -12,19 +12,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+/* umdutils ignore */
-//#if !(FIREFOX || MOZCENTRAL)
-//#include mozPrintCallback_polyfill.js
-//#endif
+'use strict';
-//#if GENERIC || CHROME
-//#include download_manager.js
-//#endif
-
-//#if FIREFOX || MOZCENTRAL
-//#include firefoxcom.js
-//#endif
-
-//#if CHROME
-//#include chromecom.js
-//#endif
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/pdfjs', ['exports', 'pdfjs/main_loader'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('../src/main_loader.js'));
+ } else {
+ factory((root.pdfjsWebPDFJS = {}), root.pdfjsMainLoader);
+ }
+}(this, function (exports, mainLoader) {
+ // Re-export all mainLoader members.
+ for (var i in mainLoader) {
+ if (Object.prototype.hasOwnProperty.call(mainLoader, i)) {
+ exports[i] = mainLoader[i];
+ }
+ }
+}));
diff --git a/web/preferences.js b/web/preferences.js
index f0cd46f89..e3c28f39a 100644
--- a/web/preferences.js
+++ b/web/preferences.js
@@ -12,11 +12,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals DEFAULT_PREFERENCES, Promise */
+/* globals DEFAULT_PREFERENCES, chrome */
'use strict';
-//#include default_preferences.js
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/preferences', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebPreferences = {}));
+ }
+}(this, function (exports) {
+
+//#include $ROOT/web/default_preferences.js
/**
* Preferences - Utility for storing persistent settings.
@@ -209,3 +219,6 @@ Preferences._readFromStorage = function (prefObj) {
});
};
//#endif
+
+exports.Preferences = Preferences;
+}));
diff --git a/web/secondary_toolbar.js b/web/secondary_toolbar.js
index a672783df..83adaf7cb 100644
--- a/web/secondary_toolbar.js
+++ b/web/secondary_toolbar.js
@@ -12,10 +12,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals PDFViewerApplication, SCROLLBAR_PADDING */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/secondary_toolbar', ['exports', 'pdfjs-web/ui_utils'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./ui_utils.js'));
+ } else {
+ factory((root.pdfjsWebSecondaryToolbar = {}), root.pdfjsWebUIUtils);
+ }
+}(this, function (exports, uiUtils) {
+
+var SCROLLBAR_PADDING = uiUtils.SCROLLBAR_PADDING;
+
+var app; // Avoiding circular reference, see _setApp function below.
+var PDFViewerApplication = null; // = app.PDFViewerApplication;
+
var SecondaryToolbar = {
opened: false,
previousContainerHeight: null,
@@ -158,3 +173,12 @@ var SecondaryToolbar = {
}
}
};
+
+function _setApp(app_) {
+ app = app_;
+ PDFViewerApplication = app.PDFViewerApplication;
+}
+
+exports.SecondaryToolbar = SecondaryToolbar;
+exports._setApp = _setApp;
+}));
diff --git a/web/text_layer_builder.js b/web/text_layer_builder.js
index e246fa91a..5d6b1429f 100644
--- a/web/text_layer_builder.js
+++ b/web/text_layer_builder.js
@@ -12,10 +12,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals pdfjsLib */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/text_layer_builder', ['exports', 'pdfjs-web/pdfjs'],
+ factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebTextLayerBuilder = {}), root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, pdfjsLib) {
+
/**
* @typedef {Object} TextLayerBuilderOptions
* @property {HTMLDivElement} textLayerDiv - The text layer container.
@@ -346,3 +356,7 @@ DefaultTextLayerFactory.prototype = {
});
}
};
+
+exports.TextLayerBuilder = TextLayerBuilder;
+exports.DefaultTextLayerFactory = DefaultTextLayerFactory;
+}));
diff --git a/web/ui_utils.js b/web/ui_utils.js
index 0f54adc48..090440206 100644
--- a/web/ui_utils.js
+++ b/web/ui_utils.js
@@ -12,10 +12,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
- /* global PDFJS */
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/ui_utils', ['exports', 'pdfjs-web/pdfjs'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports, require('./pdfjs.js'));
+ } else {
+ factory((root.pdfjsWebUIUtils = {}), root.pdfjsWebPDFJS);
+ }
+}(this, function (exports, pdfjsLib) {
+
var CSS_UNITS = 96.0 / 72.0;
var DEFAULT_SCALE_VALUE = 'auto';
var DEFAULT_SCALE = 1.0;
@@ -26,9 +35,7 @@ var VERTICAL_PADDING = 5;
var mozL10n = document.mozL10n || document.webL10n;
-if (typeof PDFJS === 'undefined') {
- (typeof window !== 'undefined' ? window : this).PDFJS = {};
-}
+var PDFJS = pdfjsLib.PDFJS;
/**
* Disables fullscreen support, and by extension Presentation Mode,
@@ -458,3 +465,24 @@ var ProgressBar = (function ProgressBarClosure() {
return ProgressBar;
})();
+
+exports.CSS_UNITS = CSS_UNITS;
+exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;
+exports.DEFAULT_SCALE = DEFAULT_SCALE;
+exports.UNKNOWN_SCALE = UNKNOWN_SCALE;
+exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;
+exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;
+exports.VERTICAL_PADDING = VERTICAL_PADDING;
+exports.mozL10n = mozL10n;
+exports.ProgressBar = ProgressBar;
+exports.getPDFFileNameFromURL = getPDFFileNameFromURL;
+exports.noContextMenuHandler = noContextMenuHandler;
+exports.parseQueryString = parseQueryString;
+exports.getVisibleElements = getVisibleElements;
+exports.roundToDivide = roundToDivide;
+exports.approximateFraction = approximateFraction;
+exports.getOutputScale = getOutputScale;
+exports.scrollIntoView = scrollIntoView;
+exports.watchScroll = watchScroll;
+exports.binarySearchFirstItem = binarySearchFirstItem;
+}));
diff --git a/web/view_history.js b/web/view_history.js
index b8404e66a..8f1852025 100644
--- a/web/view_history.js
+++ b/web/view_history.js
@@ -15,6 +15,16 @@
'use strict';
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('pdfjs-web/view_history', ['exports'], factory);
+ } else if (typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ factory((root.pdfjsWebViewHistory = {}));
+ }
+}(this, function (exports) {
+
var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20;
/**
@@ -115,3 +125,6 @@ var ViewHistory = (function ViewHistoryClosure() {
return ViewHistory;
})();
+
+exports.ViewHistory = ViewHistory;
+}));
diff --git a/web/viewer.html b/web/viewer.html
index 0018bbadc..8c11041d7 100644
--- a/web/viewer.html
+++ b/web/viewer.html
@@ -61,34 +61,7 @@ See https://github.com/adobe-type-tools/cmap-resources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/web/viewer.js b/web/viewer.js
index 20b637117..7e393ee88 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -12,21 +12,34 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*globals require, parseQueryString, chrome, PDFViewerApplication */
+/*globals require, chrome */
'use strict';
var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf';
-//#include app.js
+//#if PRODUCTION
+//var pdfjsWebLibs = {
+// pdfjsWebPDFJS: window.pdfjsDistBuildPdf
+//};
+//
+//(function () {
+//#expand __BUNDLE__
+//}).call(pdfjsWebLibs);
+//#endif
+
+//#if FIREFOX || MOZCENTRAL
+//// FIXME the l10n.js file in the Firefox extension needs global FirefoxCom.
+//window.FirefoxCom = pdfjsWebLibs.pdfjsWebFirefoxCom.FirefoxCom;
+//#endif
//#if CHROME
//(function rewriteUrlClosure() {
// // Run this code outside DOMContentLoaded to make sure that the URL
// // is rewritten as soon as possible.
// var queryString = document.location.search.slice(1);
-// var params = parseQueryString(queryString);
-// DEFAULT_URL = params.file || '';
+// var m = /(^|&)file=([^&]*)/.exec(queryString);
+// DEFAULT_URL = m ? decodeURIComponent(m[2]) : '';
//
// // Example: chrome-extension://.../http://example.com/file.pdf
// var humanReadableUrl = '/' + DEFAULT_URL + location.hash;
@@ -39,14 +52,14 @@ var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf';
function webViewerLoad() {
//#if !PRODUCTION
- require.config({paths: {'pdfjs': '../src'}});
- require(['pdfjs/main_loader'], function (loader) {
- window.pdfjsLib = loader;
- PDFViewerApplication.run();
+ require.config({paths: {'pdfjs': '../src', 'pdfjs-web': '.'}});
+ require(['pdfjs-web/app'], function (web) {
+ window.PDFViewerApplication = web.PDFViewerApplication;
+ web.PDFViewerApplication.run();
});
//#else
-//window.pdfjsLib = window.pdfjsDistBuildPdf;
-//PDFViewerApplication.run();
+//window.PDFViewerApplication = pdfjsWebLibs.pdfjsWebApp.PDFViewerApplication;
+//pdfjsWebLibs.pdfjsWebApp.PDFViewerApplication.run();
//#endif
}