rev task updated only runs on dist

This commit is contained in:
0dp 2018-06-04 23:27:23 +02:00
parent ebef7b3c08
commit 4c3a923fd4
15 changed files with 10075 additions and 942 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

BIN
css/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -1,2 +1,2 @@
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVkaXRvci1zdHlsZS5jc3MiLCJzb3VyY2VzIjpbImN1c3RvbS1lZGl0b3Itc3R5bGUuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvL0FkZCB5b3VyIG93biBlZGl0b3Igc3R5bGVzIGhlcmUgb3IgY29tbWVudCBvdXQgdGhlIG5leHQgbGluZSBpZiB5b3Ugd2FudCB0byBwdWxsIGluIHRoZSB3aG9sZSBCb290c3RyYXAgc3R1ZmZcbi8vQGltcG9ydCBcInRoZW1lXCI7ICJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0= */ /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjdXN0b20tZWRpdG9yLXN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbXX0= */

File diff suppressed because one or more lines are too long

4
css/theme.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"browserSyncOptions" : { "browserSyncOptions" : {
"proxy": "localhost/wordpress/", "proxy": "localhost/",
"notify": false "notify": false
}, },
"browserSyncWatchFiles" : [ "browserSyncWatchFiles" : [

View File

@ -11,7 +11,8 @@ var autoprefixer = require( 'autoprefixer' ),
replace = require( 'gulp-replace' ), replace = require( 'gulp-replace' ),
sass = require( 'gulp-sass' ), sass = require( 'gulp-sass' ),
sourcemaps = require( 'gulp-sourcemaps' ), sourcemaps = require( 'gulp-sourcemaps' ),
uglify = require( 'gulp-uglify' ); uglify = require( 'gulp-uglify' ),
rev = require('gulp-rev');
// Configuration file to keep your code DRY // Configuration file to keep your code DRY
@ -143,14 +144,28 @@ gulp.task( 'clean-dist', function() {
return del( ['dist/**/*', '!dist'] ); return del( ['dist/**/*', '!dist'] );
}); });
gulp.task('revision', function(done) {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
gulp.src([paths.css + '/theme.min.css', paths.js + '/theme.min.js'], {base: './'})
.pipe(rev())
.pipe(gulp.dest('./')) // write rev'd assets to build dir
.pipe(rev.manifest())
.pipe(gulp.dest('./')); // write manifest to build dir
done();
});
// Run // Run
// gulp dist // gulp dist
// Copies the files to the /dist folder for distribution as simple theme // Copies the files to the /dist folder for distribution as simple theme
gulp.task( 'dist', gulp.series('clean-dist', function() { gulp.task( 'dist', gulp.series( 'clean-dist', 'revision', function(done) {
return gulp.src( ['**/*', '!' + paths.bower, '!' + paths.bower + '/**', '!' + paths.node, '!' + paths.node + '/**', '!' + paths.dev, '!' + paths.dev + '/**', '!' + paths.dist, '!' + paths.dist + '/**', '!' + paths.distprod, '!' + paths.distprod + '/**', '!' + paths.sass, '!' + paths.sass + '/**', '!readme.txt', '!readme.md', '!package.json', '!package-lock.json', '!gulpfile.js', '!gulpconfig.json', '!CHANGELOG.md', '!.travis.yml', '!jshintignore', '!codesniffer.ruleset.xml', '*'], { 'buffer': false } )
gulp.src( ['**/*', '!' + paths.bower, '!' + paths.bower + '/**', '!' + paths.node, '!' + paths.node + '/**', '!' + paths.dev, '!' + paths.dev + '/**', '!' + paths.dist, '!' + paths.dist + '/**', '!' + paths.distprod, '!' + paths.distprod + '/**', '!' + paths.sass, '!' + paths.sass + '/**', '!readme.txt', '!readme.md', '!package.json', '!package-lock.json', '!gulpfile.js', '!gulpconfig.json', '!CHANGELOG.md', '!.travis.yml', '!jshintignore', '!codesniffer.ruleset.xml', 'rev-manifest.json', '*'], { 'buffer': false } )
.pipe( replace( '/js/jquery.slim.min.js', '/js' + paths.vendor + '/jquery.slim.min.js', { 'skipBinary': true } ) ) .pipe( replace( '/js/jquery.slim.min.js', '/js' + paths.vendor + '/jquery.slim.min.js', { 'skipBinary': true } ) )
.pipe( replace( '/js/popper.min.js', '/js' + paths.vendor + '/popper.min.js', { 'skipBinary': true } ) ) .pipe( replace( '/js/popper.min.js', '/js' + paths.vendor + '/popper.min.js', { 'skipBinary': true } ) )
.pipe( gulp.dest( paths.dist ) ); .pipe( gulp.dest( paths.dist ) );
done();
})); }));
// BrowserSync reload helper function // BrowserSync reload helper function
@ -170,3 +185,15 @@ gulp.task( 'watch-bs', function( done ) {
done(); done();
}); });
gulp.task( 'revision', function(done) {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
gulp.src([paths.css + '/theme.min.css', paths.js + '/theme.min.js'], {base: './'})
.pipe(rev())
.pipe(gulp.dest('./')) // write rev'd assets to build dir
.pipe(rev.manifest())
.pipe(gulp.dest('./')); // write manifest to build dir
done();
});

BIN
inc/.DS_Store vendored Normal file

Binary file not shown.

BIN
js/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.13.0 * @version 1.14.3
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@ -29,6 +29,7 @@
}(this, (function () { 'use strict'; }(this, (function () { 'use strict';
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0; var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
@ -148,13 +149,33 @@ function getScrollParent(element) {
overflowX = _getStyleComputedProp.overflowX, overflowX = _getStyleComputedProp.overflowX,
overflowY = _getStyleComputedProp.overflowY; overflowY = _getStyleComputedProp.overflowY;
if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) { if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
return element; return element;
} }
return getScrollParent(getParentNode(element)); return getScrollParent(getParentNode(element));
} }
var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
/**
* Determines if the browser is Internet Explorer
* @method
* @memberof Popper.Utils
* @param {Number} version to check
* @returns {Boolean} isIE
*/
function isIE(version) {
if (version === 11) {
return isIE11;
}
if (version === 10) {
return isIE10;
}
return isIE11 || isIE10;
}
/** /**
* Returns the offset parent of the given element * Returns the offset parent of the given element
* @method * @method
@ -163,16 +184,23 @@ function getScrollParent(element) {
* @returns {Element} offset parent * @returns {Element} offset parent
*/ */
function getOffsetParent(element) { function getOffsetParent(element) {
if (!element) {
return document.documentElement;
}
var noOffsetParent = isIE(10) ? document.body : null;
// NOTE: 1 DOM access here // NOTE: 1 DOM access here
var offsetParent = element && element.offsetParent; var offsetParent = element.offsetParent;
// Skip hidden elements which don't have an offsetParent
while (offsetParent === noOffsetParent && element.nextElementSibling) {
offsetParent = (element = element.nextElementSibling).offsetParent;
}
var nodeName = offsetParent && offsetParent.nodeName; var nodeName = offsetParent && offsetParent.nodeName;
if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
if (element) { return element ? element.ownerDocument.documentElement : document.documentElement;
return element.ownerDocument.documentElement;
}
return document.documentElement;
} }
// .offsetParent will return the closest TD or TABLE in case // .offsetParent will return the closest TD or TABLE in case
@ -314,29 +342,14 @@ function getBordersSize(styles, axis) {
return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
} }
/**
* Tells if you are running Internet Explorer 10
* @method
* @memberof Popper.Utils
* @returns {Boolean} isIE10
*/
var isIE10 = undefined;
var isIE10$1 = function () {
if (isIE10 === undefined) {
isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;
}
return isIE10;
};
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0); return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
} }
function getWindowSizes() { function getWindowSizes() {
var body = document.body; var body = document.body;
var html = document.documentElement; var html = document.documentElement;
var computedStyle = isIE10$1() && getComputedStyle(html); var computedStyle = isIE(10) && getComputedStyle(html);
return { return {
height: getSize('Height', body, html, computedStyle), height: getSize('Height', body, html, computedStyle),
@ -428,8 +441,8 @@ function getBoundingClientRect(element) {
// IE10 10 FIX: Please, don't ask, the element isn't // IE10 10 FIX: Please, don't ask, the element isn't
// considered in DOM in some circumstances... // considered in DOM in some circumstances...
// This isn't reproducible in IE10 compatibility mode of IE11 // This isn't reproducible in IE10 compatibility mode of IE11
if (isIE10$1()) {
try { try {
if (isIE(10)) {
rect = element.getBoundingClientRect(); rect = element.getBoundingClientRect();
var scrollTop = getScroll(element, 'top'); var scrollTop = getScroll(element, 'top');
var scrollLeft = getScroll(element, 'left'); var scrollLeft = getScroll(element, 'left');
@ -437,10 +450,10 @@ function getBoundingClientRect(element) {
rect.left += scrollLeft; rect.left += scrollLeft;
rect.bottom += scrollTop; rect.bottom += scrollTop;
rect.right += scrollLeft; rect.right += scrollLeft;
} catch (err) {}
} else { } else {
rect = element.getBoundingClientRect(); rect = element.getBoundingClientRect();
} }
} catch (e) {}
var result = { var result = {
left: rect.left, left: rect.left,
@ -472,7 +485,9 @@ function getBoundingClientRect(element) {
} }
function getOffsetRectRelativeToArbitraryNode(children, parent) { function getOffsetRectRelativeToArbitraryNode(children, parent) {
var isIE10 = isIE10$1(); var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var isIE10 = isIE(10);
var isHTML = parent.nodeName === 'HTML'; var isHTML = parent.nodeName === 'HTML';
var childrenRect = getBoundingClientRect(children); var childrenRect = getBoundingClientRect(children);
var parentRect = getBoundingClientRect(parent); var parentRect = getBoundingClientRect(parent);
@ -482,6 +497,11 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var borderTopWidth = parseFloat(styles.borderTopWidth, 10); var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && parent.nodeName === 'HTML') {
parentRect.top = Math.max(parentRect.top, 0);
parentRect.left = Math.max(parentRect.left, 0);
}
var offsets = getClientRect({ var offsets = getClientRect({
top: childrenRect.top - parentRect.top - borderTopWidth, top: childrenRect.top - parentRect.top - borderTopWidth,
left: childrenRect.left - parentRect.left - borderLeftWidth, left: childrenRect.left - parentRect.left - borderLeftWidth,
@ -509,7 +529,7 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
offsets.marginLeft = marginLeft; offsets.marginLeft = marginLeft;
} }
if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
offsets = includeScroll(offsets, parent); offsets = includeScroll(offsets, parent);
} }
@ -517,13 +537,15 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
} }
function getViewportOffsetRectRelativeToArtbitraryNode(element) { function getViewportOffsetRectRelativeToArtbitraryNode(element) {
var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var html = element.ownerDocument.documentElement; var html = element.ownerDocument.documentElement;
var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
var width = Math.max(html.clientWidth, window.innerWidth || 0); var width = Math.max(html.clientWidth, window.innerWidth || 0);
var height = Math.max(html.clientHeight, window.innerHeight || 0); var height = Math.max(html.clientHeight, window.innerHeight || 0);
var scrollTop = getScroll(html); var scrollTop = !excludeScroll ? getScroll(html) : 0;
var scrollLeft = getScroll(html, 'left'); var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
var offset = { var offset = {
top: scrollTop - relativeOffset.top + relativeOffset.marginTop, top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
@ -554,6 +576,26 @@ function isFixed(element) {
return isFixed(getParentNode(element)); return isFixed(getParentNode(element));
} }
/**
* Finds the first parent of an element that has a transformed property defined
* @method
* @memberof Popper.Utils
* @argument {Element} element
* @returns {Element} first transformed parent or documentElement
*/
function getFixedPositionOffsetParent(element) {
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
if (!element || !element.parentElement || isIE()) {
return document.documentElement;
}
var el = element.parentElement;
while (el && getStyleComputedProperty(el, 'transform') === 'none') {
el = el.parentElement;
}
return el || document.documentElement;
}
/** /**
* Computed the boundaries limits and return them * Computed the boundaries limits and return them
* @method * @method
@ -562,16 +604,20 @@ function isFixed(element) {
* @param {HTMLElement} reference * @param {HTMLElement} reference
* @param {number} padding * @param {number} padding
* @param {HTMLElement} boundariesElement - Element used to define the boundaries * @param {HTMLElement} boundariesElement - Element used to define the boundaries
* @param {Boolean} fixedPosition - Is in fixed position mode
* @returns {Object} Coordinates of the boundaries * @returns {Object} Coordinates of the boundaries
*/ */
function getBoundaries(popper, reference, padding, boundariesElement) { function getBoundaries(popper, reference, padding, boundariesElement) {
var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
// NOTE: 1 DOM access here // NOTE: 1 DOM access here
var boundaries = { top: 0, left: 0 }; var boundaries = { top: 0, left: 0 };
var offsetParent = findCommonOffsetParent(popper, reference); var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
// Handle viewport case // Handle viewport case
if (boundariesElement === 'viewport') { if (boundariesElement === 'viewport') {
boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent); boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
} else { } else {
// Handle other cases based on DOM element used as boundaries // Handle other cases based on DOM element used as boundaries
var boundariesNode = void 0; var boundariesNode = void 0;
@ -586,7 +632,7 @@ function getBoundaries(popper, reference, padding, boundariesElement) {
boundariesNode = boundariesElement; boundariesNode = boundariesElement;
} }
var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent); var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
// In case of HTML, we need a different computation // In case of HTML, we need a different computation
if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
@ -687,11 +733,14 @@ function computeAutoPlacement(placement, refRect, popper, reference, boundariesE
* @param {Object} state * @param {Object} state
* @param {Element} popper - the popper element * @param {Element} popper - the popper element
* @param {Element} reference - the reference element (the popper will be relative to this) * @param {Element} reference - the reference element (the popper will be relative to this)
* @param {Element} fixedPosition - is in fixed position mode
* @returns {Object} An object containing the offsets which will be applied to the popper * @returns {Object} An object containing the offsets which will be applied to the popper
*/ */
function getReferenceOffsets(state, popper, reference) { function getReferenceOffsets(state, popper, reference) {
var commonOffsetParent = findCommonOffsetParent(popper, reference); var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);
var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
} }
/** /**
@ -864,7 +913,7 @@ function update() {
}; };
// compute reference element offsets // compute reference element offsets
data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference); data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
// compute auto placement, store placement inside the data object, // compute auto placement, store placement inside the data object,
// modifiers will be able to edit `placement` if needed // modifiers will be able to edit `placement` if needed
@ -874,9 +923,12 @@ function update() {
// store the computed placement inside `originalPlacement` // store the computed placement inside `originalPlacement`
data.originalPlacement = data.placement; data.originalPlacement = data.placement;
data.positionFixed = this.options.positionFixed;
// compute the popper offsets // compute the popper offsets
data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
data.offsets.popper.position = 'absolute';
data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
// run the modifiers // run the modifiers
data = runModifiers(this.modifiers, data); data = runModifiers(this.modifiers, data);
@ -916,7 +968,7 @@ function getSupportedPropertyName(property) {
var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
var upperProp = property.charAt(0).toUpperCase() + property.slice(1); var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
for (var i = 0; i < prefixes.length - 1; i++) { for (var i = 0; i < prefixes.length; i++) {
var prefix = prefixes[i]; var prefix = prefixes[i];
var toCheck = prefix ? '' + prefix + upperProp : property; var toCheck = prefix ? '' + prefix + upperProp : property;
if (typeof document.body.style[toCheck] !== 'undefined') { if (typeof document.body.style[toCheck] !== 'undefined') {
@ -937,9 +989,12 @@ function destroy() {
// touch DOM only if `applyStyle` modifier is enabled // touch DOM only if `applyStyle` modifier is enabled
if (isModifierEnabled(this.modifiers, 'applyStyle')) { if (isModifierEnabled(this.modifiers, 'applyStyle')) {
this.popper.removeAttribute('x-placement'); this.popper.removeAttribute('x-placement');
this.popper.style.left = '';
this.popper.style.position = ''; this.popper.style.position = '';
this.popper.style.top = ''; this.popper.style.top = '';
this.popper.style.left = '';
this.popper.style.right = '';
this.popper.style.bottom = '';
this.popper.style.willChange = '';
this.popper.style[getSupportedPropertyName('transform')] = ''; this.popper.style[getSupportedPropertyName('transform')] = '';
} }
@ -1127,12 +1182,12 @@ function applyStyle(data) {
* @method * @method
* @memberof Popper.modifiers * @memberof Popper.modifiers
* @param {HTMLElement} reference - The reference element used to position the popper * @param {HTMLElement} reference - The reference element used to position the popper
* @param {HTMLElement} popper - The HTML element used as popper. * @param {HTMLElement} popper - The HTML element used as popper
* @param {Object} options - Popper.js options * @param {Object} options - Popper.js options
*/ */
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
// compute reference element offsets // compute reference element offsets
var referenceOffsets = getReferenceOffsets(state, popper, reference); var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
// compute auto placement, store placement inside the data object, // compute auto placement, store placement inside the data object,
// modifiers will be able to edit `placement` if needed // modifiers will be able to edit `placement` if needed
@ -1143,7 +1198,7 @@ function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
// Apply `position` to popper before anything else because // Apply `position` to popper before anything else because
// without the position applied we can't guarantee correct computations // without the position applied we can't guarantee correct computations
setStyles(popper, { position: 'absolute' }); setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
return options; return options;
} }
@ -1178,11 +1233,13 @@ function computeStyle(data, options) {
position: popper.position position: popper.position
}; };
// floor sides to avoid blurry text // Avoid blurry text by using full pixel integers.
// For pixel-perfect positioning, top/bottom prefers rounded
// values, while left/right prefers floored values.
var offsets = { var offsets = {
left: Math.floor(popper.left), left: Math.floor(popper.left),
top: Math.floor(popper.top), top: Math.round(popper.top),
bottom: Math.floor(popper.bottom), bottom: Math.round(popper.bottom),
right: Math.floor(popper.right) right: Math.floor(popper.right)
}; };
@ -1446,7 +1503,7 @@ function flip(data, options) {
return data; return data;
} }
var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement); var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
var placement = data.placement.split('-')[0]; var placement = data.placement.split('-')[0];
var placementOpposite = getOppositePlacement(placement); var placementOpposite = getOppositePlacement(placement);
@ -1738,7 +1795,27 @@ function preventOverflow(data, options) {
boundariesElement = getOffsetParent(boundariesElement); boundariesElement = getOffsetParent(boundariesElement);
} }
var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement); // NOTE: DOM access here
// resets the popper's position so that the document size can be calculated excluding
// the size of the popper element itself
var transformProp = getSupportedPropertyName('transform');
var popperStyles = data.instance.popper.style; // assignment to help minification
var top = popperStyles.top,
left = popperStyles.left,
transform = popperStyles[transformProp];
popperStyles.top = '';
popperStyles.left = '';
popperStyles[transformProp] = '';
var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
// NOTE: DOM access here
// restores the original style properties after the offsets have been computed
popperStyles.top = top;
popperStyles.left = left;
popperStyles[transformProp] = transform;
options.boundaries = boundaries; options.boundaries = boundaries;
var order = options.priority; var order = options.priority;
@ -2235,6 +2312,12 @@ var Defaults = {
*/ */
placement: 'bottom', placement: 'bottom',
/**
* Set this to true if you want popper to position it self in 'fixed' mode
* @prop {Boolean} positionFixed=false
*/
positionFixed: false,
/** /**
* Whether events (resize, scroll) are initially enabled * Whether events (resize, scroll) are initially enabled
* @prop {Boolean} eventsEnabled=true * @prop {Boolean} eventsEnabled=true

4
js/popper.min.js vendored

File diff suppressed because one or more lines are too long

8910
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -39,7 +39,8 @@
"gulp-postcss": "^7.0.1", "gulp-postcss": "^7.0.1",
"gulp-rename": "^1.2.2", "gulp-rename": "^1.2.2",
"gulp-replace": "^0.6.1", "gulp-replace": "^0.6.1",
"gulp-sass": "^3.2.1", "gulp-rev": "^8.1.1",
"gulp-sass": "^4.0.1",
"gulp-sourcemaps": "2.6.4", "gulp-sourcemaps": "2.6.4",
"gulp-uglify": "^3.0.0", "gulp-uglify": "^3.0.0",
"gulp-watch": "5.0.0", "gulp-watch": "5.0.0",

BIN
sass/.DS_Store vendored Normal file

Binary file not shown.