Merge pull request #10152 from Snuffleupagus/classList-toggle

Add support for `classList.toggle` with the, optional, "force" parameter
This commit is contained in:
Tim van der Meij 2018-10-12 23:28:53 +02:00 committed by GitHub
commit e41c50c3c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 25 deletions

View File

@ -90,6 +90,28 @@ const hasDOM = typeof window === 'object' && typeof document === 'object';
}; };
})(); })();
// Provides support for DOMTokenList.prototype.toggle, with the optional
// "force" parameter, in legacy browsers.
// Support: IE
(function checkDOMTokenListToggle() {
if (!hasDOM || isNodeJS()) {
return;
}
const div = document.createElement('div');
if (div.classList.toggle('test', 0) === false) {
return;
}
const originalDOMTokenListToggle = DOMTokenList.prototype.toggle;
DOMTokenList.prototype.toggle = function(token) {
if (arguments.length > 1) {
const force = !!arguments[1];
return (this[force ? 'add' : 'remove'](token), force);
}
return originalDOMTokenListToggle(token);
};
})();
// Provides support for String.prototype.includes in legacy browsers. // Provides support for String.prototype.includes in legacy browsers.
// Support: IE, Chrome<41 // Support: IE, Chrome<41
(function checkStringIncludes() { (function checkStringIncludes() {

View File

@ -1038,16 +1038,10 @@ class BaseViewer {
_updateScrollMode(pageNumber = null) { _updateScrollMode(pageNumber = null) {
const scrollMode = this._scrollMode, viewer = this.viewer; const scrollMode = this._scrollMode, viewer = this.viewer;
if (scrollMode === ScrollMode.HORIZONTAL) { viewer.classList.toggle('scrollHorizontal',
viewer.classList.add('scrollHorizontal'); scrollMode === ScrollMode.HORIZONTAL);
} else { viewer.classList.toggle('scrollWrapped',
viewer.classList.remove('scrollHorizontal'); scrollMode === ScrollMode.WRAPPED);
}
if (scrollMode === ScrollMode.WRAPPED) {
viewer.classList.add('scrollWrapped');
} else {
viewer.classList.remove('scrollWrapped');
}
if (!this.pdfDocument || !pageNumber) { if (!this.pdfDocument || !pageNumber) {
return; return;

View File

@ -132,13 +132,9 @@ class PDFFindBar {
break; break;
} }
if (notFound) { this.findField.classList.toggle('notFound', notFound);
this.findField.classList.add('notFound');
} else {
this.findField.classList.remove('notFound');
}
this.findField.setAttribute('data-status', status); this.findField.setAttribute('data-status', status);
Promise.resolve(findMsg).then((msg) => { Promise.resolve(findMsg).then((msg) => {
this.findMsg.textContent = msg; this.findMsg.textContent = msg;
this._adjustWidth(); this._adjustWidth();

View File

@ -123,11 +123,11 @@ class SecondaryToolbar {
// current `BaseViewer` instance (in particular `PDFSinglePageViewer`). // current `BaseViewer` instance (in particular `PDFSinglePageViewer`).
this.eventBus.on('baseviewerinit', (evt) => { this.eventBus.on('baseviewerinit', (evt) => {
if (evt.source instanceof PDFSinglePageViewer) { if (evt.source instanceof PDFSinglePageViewer) {
this.toolbarButtonContainer.classList.add('hiddenScrollModeButtons'); this.toolbarButtonContainer.classList.add('hiddenScrollModeButtons',
this.toolbarButtonContainer.classList.add('hiddenSpreadModeButtons'); 'hiddenSpreadModeButtons');
} else { } else {
this.toolbarButtonContainer.classList.remove('hiddenScrollModeButtons'); this.toolbarButtonContainer.classList.remove('hiddenScrollModeButtons',
this.toolbarButtonContainer.classList.remove('hiddenSpreadModeButtons'); 'hiddenSpreadModeButtons');
} }
}); });
} }

View File

@ -224,11 +224,7 @@ class Toolbar {
updateLoadingIndicatorState(loading = false) { updateLoadingIndicatorState(loading = false) {
let pageNumberInput = this.items.pageNumber; let pageNumberInput = this.items.pageNumber;
if (loading) { pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading);
pageNumberInput.classList.add(PAGE_NUMBER_LOADING_INDICATOR);
} else {
pageNumberInput.classList.remove(PAGE_NUMBER_LOADING_INDICATOR);
}
} }
_adjustScaleWidth() { _adjustScaleWidth() {