jam-cloud/jam-ui/node_modules/element-resize-event/example/bundle.js

129 lines
4.3 KiB
JavaScript

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
elementResizeEvent = require('../index.js');
element = document.getElementById("resize");
window.p = p = document.getElementById("width");
console.log(p);
console.log(elementResizeEvent);
function onResize() {
console.log("resized!");
console.log(element.offsetWidth);
console.log(p);
console.log(element.offsetWidth + "px wide");
p.innerHTML = element.offsetWidth + "px wide";
}
//check unbind when nothing is bound
elementResizeEvent.unbind(element);
elementResizeEvent.unbind(element, onResize);
elementResizeEvent(element, onResize);
//check unbind for bounded function
elementResizeEvent.unbind(element, onResize);
//bind again
console.log(elementResizeEvent(element, onResize));
//check unbind of non-existent function
elementResizeEvent.unbind(element, function() {})
},{"../index.js":2}],2:[function(require,module,exports){
function resizeListener(e) {
var win = e.target || e.srcElement
if (win.__resizeRAF__) {
cancelAnimationFrame(win.__resizeRAF__)
}
win.__resizeRAF__ = requestAnimationFrame(function () {
var trigger = win.__resizeTrigger__
var listeners = trigger && trigger.__resizeListeners__
if (listeners) {
listeners.forEach(function (fn) {
fn.call(trigger, e)
})
}
})
}
var exports = function exports(element, fn) {
var window = this
var document = window.document
var isIE
var attachEvent = document.attachEvent
if (typeof navigator !== 'undefined') {
isIE = navigator.userAgent.match(/Trident/) ||
navigator.userAgent.match(/Edge/)
}
function objectLoad() {
this.contentDocument.defaultView.__resizeTrigger__ = this.__resizeElement__
this.contentDocument.defaultView.addEventListener('resize', resizeListener)
}
if (!element.__resizeListeners__) {
element.__resizeListeners__ = []
if (attachEvent) {
element.__resizeTrigger__ = element
element.attachEvent('onresize', resizeListener)
} else {
if (getComputedStyle(element).position === 'static') {
element.style.position = 'relative'
}
var obj = (element.__resizeTrigger__ = document.createElement('object'))
obj.setAttribute(
'style',
'position: absolute; top: 0; left: 0; height: 100%; width: 100%; pointer-events: none; z-index: -1; opacity: 0;'
)
obj.setAttribute('class', 'resize-sensor')
// prevent <object> from stealing keyboard focus
obj.setAttribute('tabindex', '-1');
obj.__resizeElement__ = element
obj.onload = objectLoad
obj.type = 'text/html'
if (isIE) {
element.appendChild(obj)
}
obj.data = 'about:blank'
if (!isIE) {
element.appendChild(obj)
}
}
}
element.__resizeListeners__.push(fn)
}
module.exports = typeof window === 'undefined' ? exports : exports.bind(window)
module.exports.unbind = function (element, fn) {
var attachEvent = document.attachEvent
var listeners = element.__resizeListeners__ || []
if (fn) {
var index = listeners.indexOf(fn)
if (index !== -1) {
listeners.splice(index, 1)
}
} else {
listeners = element.__resizeListeners__ = []
}
if (!listeners.length) {
if (attachEvent) {
element.detachEvent('onresize', resizeListener)
} else if (element.__resizeTrigger__) {
var contentDocument = element.__resizeTrigger__.contentDocument;
var defaultView = contentDocument && contentDocument.defaultView;
if (defaultView) {
defaultView.removeEventListener('resize', resizeListener);
delete defaultView.__resizeTrigger__;
}
element.__resizeTrigger__ = !element.removeChild(
element.__resizeTrigger__
)
}
delete element.__resizeListeners__
}
}
},{}]},{},[1]);