easyui-draganddrop
Version:
Drag and drop elements including a file explorer and a rubbish bin.
1,322 lines (1,067 loc) • 184 kB
JavaScript
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.easyui = f()}})(function(){var define,module,exports;return (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){
'use strict';
module.exports = {
window: require('./lib/window'),
document: require('./lib/document'),
TextElement: require('./lib/textElement'),
Div: require('./lib/element/div'),
Span: require('./lib/element/span'),
Body: require('./lib/element/body'),
Element: require('./lib/element'),
Link: require('./lib/inputElement/link'),
Input: require('./lib/inputElement/input'),
Select: require('./lib/inputElement/select'),
Button: require('./lib/inputElement/button'),
Checkbox: require('./lib/inputElement/checkbox'),
Textarea: require('./lib/inputElement/textarea'),
InputElement: require('./lib/inputElement'),
Bounds: require('./lib/misc/bounds'),
Offset: require('./lib/misc/offset'),
React: require('./lib/react')
};
},{"./lib/document":2,"./lib/element":3,"./lib/element/body":4,"./lib/element/div":5,"./lib/element/span":6,"./lib/inputElement":7,"./lib/inputElement/button":8,"./lib/inputElement/checkbox":9,"./lib/inputElement/input":10,"./lib/inputElement/link":11,"./lib/inputElement/select":12,"./lib/inputElement/textarea":13,"./lib/misc/bounds":14,"./lib/misc/offset":15,"./lib/react":21,"./lib/textElement":22,"./lib/window":23}],2:[function(require,module,exports){
'use strict';
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var eventMixin = require('./mixin/event'),
clickMixin = require('./mixin/click'),
mouseMixin = require('./mixin/mouse');
var Document = function Document() {
_classCallCheck(this, Document);
this.domElement = document;
this.handlersMap = {};
};
Object.assign(Document.prototype, eventMixin);
Object.assign(Document.prototype, clickMixin);
Object.assign(Document.prototype, mouseMixin);
module.exports = new Document(); ///
},{"./mixin/click":16,"./mixin/event":17,"./mixin/mouse":19}],3:[function(require,module,exports){
'use strict';
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Offset = require('./misc/offset'),
Bounds = require('./misc/bounds'),
jsxMixin = require('./mixin/jsx'),
eventMixin = require('./mixin/event'),
clickMixin = require('./mixin/click'),
mouseMixin = require('./mixin/mouse'),
resizeMixin = require('./mixin/resize');
var Element = function () {
function Element(selector) {
_classCallCheck(this, Element);
this.domElement = domElementFromSelector(selector);
this.domElement.__element__ = this;
this.handlersMap = {};
}
_createClass(Element, [{
key: 'clone',
value: function clone() {
return Element.clone(this);
}
}, {
key: 'getOffset',
value: function getOffset() {
var top = this.domElement.offsetTop,
///
left = this.domElement.offsetLeft,
///
offset = new Offset(top, left);
return offset;
}
}, {
key: 'getBounds',
value: function getBounds() {
var includeBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var boundingClientRect = this.domElement.getBoundingClientRect(),
bounds = Bounds.fromBoundingClientRect(boundingClientRect);
return bounds;
}
}, {
key: 'getWidth',
value: function getWidth() {
var includeBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var width = includeBorder ? this.domElement.offsetWidth : this.domElement.clientWidth;
return width;
}
}, {
key: 'setWidth',
value: function setWidth(width) {
this.domElement.style.width = width + 'px';
}
}, {
key: 'getHeight',
value: function getHeight() {
var includeBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var height = includeBorder ? this.domElement.offsetHeight : this.domElement.clientHeight;
return height;
}
}, {
key: 'setHeight',
value: function setHeight(height) {
this.domElement.style.height = height + 'px';
}
}, {
key: 'getAttribute',
value: function getAttribute(name) {
return this.domElement.getAttribute(name);
}
}, {
key: 'setAttribute',
value: function setAttribute(name, value) {
this.domElement.setAttribute(name, value);
}
}, {
key: 'clearAttribute',
value: function clearAttribute(name) {
this.domElement.removeAttribute(name);
}
}, {
key: 'addAttribute',
value: function addAttribute(name, value) {
this.setAttribute(name, value);
}
}, {
key: 'removeAttribute',
value: function removeAttribute(name) {
this.clearAttribute(name);
}
}, {
key: 'setClass',
value: function setClass(className) {
this.domElement.className = className;
}
}, {
key: 'addClass',
value: function addClass(className) {
this.domElement.classList.add(className);
}
}, {
key: 'removeClass',
value: function removeClass(className) {
this.domElement.classList.remove(className);
}
}, {
key: 'toggleClass',
value: function toggleClass(className) {
this.domElement.classList.toggle(className);
}
}, {
key: 'hasClass',
value: function hasClass(className) {
return this.domElement.classList.contains(className);
}
}, {
key: 'clearClasses',
value: function clearClasses() {
this.domElement.className = '';
}
}, {
key: 'prepend',
value: function prepend(element) {
var domElement = element.domElement,
firstChildDOMElement = this.domElement.firstChild;
this.domElement.insertBefore(domElement, firstChildDOMElement);
}
}, {
key: 'append',
value: function append(element) {
var domElement = element.domElement;
this.domElement.insertBefore(domElement, null); ///
}
}, {
key: 'appendTo',
value: function appendTo(parentElement) {
var parentDOMElement = parentElement.domElement,
firstSiblingDOMElement = parentDOMElement.firstChild; ///
parentDOMElement.insertBefore(this.domElement, firstSiblingDOMElement);
}
}, {
key: 'prependTo',
value: function prependTo(parentElement) {
var parentDOMElement = parentElement.domElement;
parentDOMElement.insertBefore(this.domElement, null); ///
}
}, {
key: 'removeFrom',
value: function removeFrom(parentElement) {
var parentDOMElement = parentElement.domElement;
parentDOMElement.removeChild(this.domElement);
}
}, {
key: 'remove',
value: function remove(element) {
if (element) {
var domElement = element.domElement;
this.domElement.removeChild(domElement);
} else {
this.domElement.remove();
}
}
}, {
key: 'insertBefore',
value: function insertBefore(siblingElement) {
var parentDOMNode = siblingElement.domElement.parentNode,
siblingDOMElement = siblingElement.domElement;
parentDOMNode.insertBefore(this.domElement, siblingDOMElement);
}
}, {
key: 'insertAfter',
value: function insertAfter(siblingElement) {
var parentDOMNode = siblingElement.domElement.parentNode,
siblingDOMElement = siblingElement.domElement;
parentDOMNode.insertBefore(this.domElement, siblingDOMElement.nextSibling); ///
}
}, {
key: 'show',
value: function show() {
var displayStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'block';
this.domElement.style.display = displayStyle;
}
}, {
key: 'hide',
value: function hide() {
this.domElement.style.display = 'none';
}
}, {
key: 'enable',
value: function enable() {
this.clearAttribute('disabled');
}
}, {
key: 'disable',
value: function disable() {
this.setAttribute('disabled', 'disabled');
}
}, {
key: 'html',
value: function html(_html) {
if (_html === undefined) {
_html = this.domElement.innerHTML; ///
return _html;
} else {
var innerHTML = _html; ///
this.domElement.innerHTML = innerHTML;
}
}
}, {
key: 'css',
value: function css(_css) {
if (_css === undefined) {
var computedStyle = getComputedStyle(this.domElement),
css = {};
for (var index = 0; index < computedStyle.length; index++) {
var name = computedStyle[0],
///
value = computedStyle.getPropertyValue(name); ///
css[name] = value;
}
return css;
} else if (typeof _css === 'string') {
var _name = _css; ///
var _computedStyle = getComputedStyle(this.domElement),
_value = _computedStyle.getPropertyValue(_name); ///
_css = _value; ///
return _css;
} else {
var names = Object.keys(_css); ///
names.forEach(function (name) {
var value = _css[name];
this.domElement.style[name] = value;
}.bind(this));
}
}
}, {
key: 'getDescendantElements',
value: function getDescendantElements() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*';
var domNode = this.domElement,
///
descendantDOMNodes = descendantDOMNodesFromDOMNode(domNode),
descendantElements = filterDOMNodes(descendantDOMNodes, selector);
return descendantElements;
}
}, {
key: 'getChildElements',
value: function getChildElements() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*';
var childDOMNodes = this.domElement.childNodes,
childDOMElements = filterDOMNodes(childDOMNodes, selector),
childElements = elementsFromDOMElements(childDOMElements);
return childElements;
}
}, {
key: 'getParentElement',
value: function getParentElement() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*';
var parentElement = null;
var parentDOMElement = this.domElement.parentElement;
if (parentDOMElement !== null) {
if (parentDOMElement.matches(selector)) {
var parentDOMElements = [parentDOMElement],
parentElements = elementsFromDOMElements(parentDOMElements),
firstParentElement = first(parentElements);
parentElement = firstParentElement || null;
}
}
return parentElement;
}
}, {
key: 'getAscendantElements',
value: function getAscendantElements() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*';
var ascendantDOMElements = [],
parentDOMElement = this.domElement.parentElement;
var ascendantDOMElement = parentDOMElement; ///
while (ascendantDOMElement !== null) {
if (ascendantDOMElement.matches(selector)) {
ascendantDOMElements.push(ascendantDOMElement);
}
ascendantDOMElement = ascendantDOMElement.parentElement;
}
var ascendantElements = elementsFromDOMElements(ascendantDOMElements);
return ascendantElements;
}
}], [{
key: 'clone',
value: function clone(Class, element) {
for (var _len = arguments.length, remainingArguments = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
remainingArguments[_key - 2] = arguments[_key];
}
if (Class instanceof Element) {
element = Class;
remainingArguments.shift();
Class = Element;
}
var deep = true,
domElement = element.domElement.cloneNode(deep);
remainingArguments.unshift(domElement);
remainingArguments.unshift(null);
return new (Function.prototype.bind.apply(Class, remainingArguments))();
}
}, {
key: 'fromHTML',
value: function fromHTML(Class, html) {
for (var _len2 = arguments.length, remainingArguments = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
remainingArguments[_key2 - 2] = arguments[_key2];
}
if (typeof Class === 'string') {
html = Class;
remainingArguments.shift();
Class = Element;
}
var outerDOMElement = document.createElement('div');
outerDOMElement.innerHTML = html; ///
var domElement = outerDOMElement.firstChild;
remainingArguments.unshift(domElement);
remainingArguments.unshift(null);
return new (Function.prototype.bind.apply(Class, remainingArguments))();
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(Class, domElement) {
for (var _len3 = arguments.length, remainingArguments = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
remainingArguments[_key3 - 2] = arguments[_key3];
}
if ((typeof Class === 'undefined' ? 'undefined' : _typeof(Class)) === 'object') {
domElement = Class;
remainingArguments.shift();
Class = Element;
}
remainingArguments.unshift(domElement);
remainingArguments.unshift(null);
return new (Function.prototype.bind.apply(Class, remainingArguments))();
}
}, {
key: 'fromProperties',
value: function fromProperties(Class, properties) {
for (var _len4 = arguments.length, remainingArguments = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
remainingArguments[_key4 - 2] = arguments[_key4];
}
var tagName = Class.tagName,
ignoredProperties = Class.ignoredProperties,
additionalProperties = Class.additionalProperties,
html = '<' + tagName + '></' + tagName + '>',
element = Element.fromHTML.apply(Element, [Class, html].concat(remainingArguments));
element.applyProperties(properties, ignoredProperties, additionalProperties);
return element;
}
}]);
return Element;
}();
Object.assign(Element.prototype, jsxMixin);
Object.assign(Element.prototype, eventMixin);
Object.assign(Element.prototype, clickMixin);
Object.assign(Element.prototype, mouseMixin);
Object.assign(Element.prototype, resizeMixin);
Element.LEFT_MOUSE_BUTTON = 0;
Element.MIDDLE_MOUSE_BUTTON = 1;
Element.RIGHT_MOUSE_BUTTON = 2;
module.exports = Element;
function domElementFromSelector(selector) {
var domElement = typeof selector === 'string' ? document.querySelectorAll(selector)[0] : ///
selector; ///
return domElement;
}
function elementsFromDOMElements(domElements) {
var domElementsWithElements = filter(domElements, function (domElement) {
return domElement.__element__ !== undefined;
}),
elements = domElementsWithElements.map(function (domElement) {
return domElement.__element__;
});
return elements;
}
function descendantDOMNodesFromDOMNode(domNode) {
var descendantDOMNodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var childDOMNodes = domNode.childNodes; ///
descendantDOMNodes.concat(childDOMNodes);
childDOMNodes.forEach(function (childDOMNode) {
descendantDOMNodesFromDOMNode(childDOMNode, descendantDOMNodes);
});
return descendantDOMNodes;
}
function filterDOMNodes(domNodes, selector) {
var filteredDOMNodes = filter(domNodes, function (domNode) {
var domNodeType = domNode.nodeType;
switch (domNodeType) {
case Node.ELEMENT_NODE:
{
var domElement = domNode; ///
return domElement.matches(selector);
}
case Node.TEXT_NODE:
{
if (selector === '*') {
return true;
}
}
}
return false;
});
return filteredDOMNodes;
}
function filter(array, test) {
var filteredArray = [];
for (var index = 0; index < array.length; index++) {
var element = array[index],
result = test(element);
if (result) {
filteredArray.push(element);
}
}
return filteredArray;
}
function first(array) {
return array[0];
}
},{"./misc/bounds":14,"./misc/offset":15,"./mixin/click":16,"./mixin/event":17,"./mixin/jsx":18,"./mixin/mouse":19,"./mixin/resize":20}],4:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Element = require('../element');
var Body = function (_Element) {
_inherits(Body, _Element);
function Body() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'body';
_classCallCheck(this, Body);
return _possibleConstructorReturn(this, (Body.__proto__ || Object.getPrototypeOf(Body)).call(this, selector));
}
_createClass(Body, [{
key: 'clone',
value: function clone() {
return Body.clone(this);
}
}], [{
key: 'clone',
value: function clone(element) {
return Element.clone(Body, element);
}
}, {
key: 'fromHTML',
value: function fromHTML(html) {
return Element.fromHTML(Body, html);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement) {
return Element.fromDOMElement(Body, domElement);
}
}, {
key: 'fromProperties',
value: function fromProperties(Class, properties) {
if (arguments.length === 1) {
properties = Class;
Class = Body;
}
return Element.fromProperties(Class, properties);
}
}]);
return Body;
}(Element);
Body.tagName = 'body';
module.exports = Body;
},{"../element":3}],5:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Element = require('../element');
var Div = function (_Element) {
_inherits(Div, _Element);
function Div(selector) {
_classCallCheck(this, Div);
return _possibleConstructorReturn(this, (Div.__proto__ || Object.getPrototypeOf(Div)).call(this, selector));
}
_createClass(Div, [{
key: 'clone',
value: function clone() {
return Div.clone(this);
}
}], [{
key: 'clone',
value: function clone(element) {
return Element.clone(Div, element);
}
}, {
key: 'fromHTML',
value: function fromHTML(html) {
return Element.fromHTML(Div, html);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement) {
return Element.fromDOMElement(Div, domElement);
}
}, {
key: 'fromProperties',
value: function fromProperties(Class, properties) {
if (arguments.length === 1) {
properties = Class;
Class = Div;
}
return Element.fromProperties(Class, properties);
}
}]);
return Div;
}(Element);
Div.tagName = 'div';
module.exports = Div;
},{"../element":3}],6:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Element = require('../element');
var Span = function (_Element) {
_inherits(Span, _Element);
function Span(selector) {
_classCallCheck(this, Span);
return _possibleConstructorReturn(this, (Span.__proto__ || Object.getPrototypeOf(Span)).call(this, selector));
}
_createClass(Span, [{
key: 'clone',
value: function clone() {
return Span.clone(this);
}
}], [{
key: 'clone',
value: function clone(element) {
return Element.clone(Span, element);
}
}, {
key: 'fromHTML',
value: function fromHTML(html) {
return Element.fromHTML(Span, html);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement) {
return Element.fromDOMElement(Span, domElement);
}
}, {
key: 'fromProperties',
value: function fromProperties(Class, properties) {
if (arguments.length === 1) {
properties = Class;
Class = Span;
}
return Element.fromProperties(Class, properties);
}
}]);
return Span;
}(Element);
Span.tagName = 'span';
module.exports = Span;
},{"../element":3}],7:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Element = require('./element');
var InputElement = function (_Element) {
_inherits(InputElement, _Element);
function InputElement(selector) {
_classCallCheck(this, InputElement);
return _possibleConstructorReturn(this, (InputElement.__proto__ || Object.getPrototypeOf(InputElement)).call(this, selector));
}
_createClass(InputElement, [{
key: 'hasFocus',
value: function hasFocus() {
var focus = document.activeElement === this.domElement; ///
return focus;
}
}, {
key: 'focus',
value: function focus() {
this.domElement.focus();
}
}], [{
key: 'clone',
value: function clone(Class, element) {
for (var _len = arguments.length, remainingArguments = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
remainingArguments[_key - 2] = arguments[_key];
}
return Element.clone.apply(Element, [Class, element].concat(remainingArguments));
}
}, {
key: 'fromHTML',
value: function fromHTML(Class, html) {
for (var _len2 = arguments.length, remainingArguments = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
remainingArguments[_key2 - 2] = arguments[_key2];
}
return Element.fromHTML.apply(Element, [Class, html].concat(remainingArguments));
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(Class, domElement) {
for (var _len3 = arguments.length, remainingArguments = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
remainingArguments[_key3 - 2] = arguments[_key3];
}
return Element.fromDOMElement.apply(Element, [Class, domElement].concat(remainingArguments));
}
}, {
key: 'fromProperties',
value: function fromProperties(Class, properties) {
for (var _len4 = arguments.length, remainingArguments = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
remainingArguments[_key4 - 2] = arguments[_key4];
}
return Element.fromProperties.apply(Element, [Class, properties].concat(remainingArguments));
}
}]);
return InputElement;
}(Element);
module.exports = InputElement;
},{"./element":3}],8:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var InputElement = require('../inputElement');
var Button = function (_InputElement) {
_inherits(Button, _InputElement);
function Button(selector, clickHandler) {
_classCallCheck(this, Button);
var _this = _possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).call(this, selector));
if (clickHandler) {
_this.onClick(clickHandler);
}
return _this;
}
_createClass(Button, [{
key: 'clone',
value: function clone(clickHandler) {
return Button.clone(this, clickHandler);
}
}, {
key: 'onClick',
value: function onClick(handler) {
if (handler.intermediateHandler === undefined) {
handler.intermediateHandler = defaultIntermediateClickHandler;
}
_get(Button.prototype.__proto__ || Object.getPrototypeOf(Button.prototype), 'onClick', this).call(this, handler);
}
}, {
key: 'offClick',
value: function offClick(handler) {
_get(Button.prototype.__proto__ || Object.getPrototypeOf(Button.prototype), 'offClick', this).call(this, handler);
}
}], [{
key: 'clone',
value: function clone(element, clickHandler) {
return InputElement.clone(Button, element, clickHandler);
}
}, {
key: 'fromHTML',
value: function fromHTML(html, clickHandler) {
return InputElement.fromHTML(Button, html, clickHandler);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement, clickHandler) {
return InputElement.fromDOMElement(Button, domElement, clickHandler);
}
}, {
key: 'fromProperties',
value: function fromProperties(properties) {
var onClick = properties.onClick,
clickHandler = onClick; ///
return InputElement.fromProperties(Button, properties, clickHandler);
}
}]);
return Button;
}(InputElement);
Object.assign(Button, {
tagName: 'button',
ignoredProperties: ['onClick']
});
module.exports = Button;
function defaultIntermediateClickHandler(handler, event) {
var mouseButton = event.button,
preventDefault = handler(mouseButton);
return preventDefault;
}
},{"../inputElement":7}],9:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var InputElement = require('../inputElement');
var Checkbox = function (_InputElement) {
_inherits(Checkbox, _InputElement);
function Checkbox(selector, changeHandler) {
_classCallCheck(this, Checkbox);
var _this = _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).call(this, selector));
if (changeHandler) {
_this.onChange(changeHandler);
}
return _this;
}
_createClass(Checkbox, [{
key: 'clone',
value: function clone(changeHandler) {
return Checkbox.clone(this, changeHandler);
}
}, {
key: 'onChange',
value: function onChange(handler) {
if (handler.intermediateHandler === undefined) {
handler.intermediateHandler = defaultIntermediateChangeHandler.bind(this);
}
this.on('click', handler); ///
}
}, {
key: 'offChange',
value: function offChange(handler) {
this.off('click', handler); ///
}
}, {
key: 'check',
value: function check() {
var checked = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
checked ? this.setAttribute('checked', 'checked') : this.clearAttribute('checked');
}
}, {
key: 'isChecked',
value: function isChecked() {
return this.domElement.checked;
}
}], [{
key: 'clone',
value: function clone(element, changeHandler) {
return InputElement.clone(Checkbox, element, changeHandler);
}
}, {
key: 'fromHTML',
value: function fromHTML(html, changeHandler) {
return InputElement.fromHTML(Checkbox, html, changeHandler);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement, changeHandler) {
return InputElement.fromDOMElement(Checkbox, domElement, changeHandler);
}
}, {
key: 'fromProperties',
value: function fromProperties(properties) {
var onChange = properties.onChange,
changeHandler = onChange; ///
return InputElement.fromProperties(Checkbox, properties, changeHandler);
}
}]);
return Checkbox;
}(InputElement);
Object.assign(Checkbox, {
tagName: 'input',
ignoredProperties: ['onChange'],
additionalProperties: {
type: 'checkbox'
}
});
module.exports = Checkbox;
function defaultIntermediateChangeHandler(handler, event) {
var checked = this.isChecked(),
preventDefault = handler(checked);
return preventDefault;
}
},{"../inputElement":7}],10:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var InputElement = require('../inputElement');
var Input = function (_InputElement) {
_inherits(Input, _InputElement);
function Input(selector, changeHandler) {
_classCallCheck(this, Input);
var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, selector));
if (changeHandler) {
_this.onChange(changeHandler);
}
return _this;
}
_createClass(Input, [{
key: 'clone',
value: function clone(changeHandler) {
return Input.clone(this, changeHandler);
}
}, {
key: 'getValue',
value: function getValue() {
return this.domElement.value;
}
}, {
key: 'getSelectionStart',
value: function getSelectionStart() {
return this.domElement.selectionStart;
}
}, {
key: 'getSelectionEnd',
value: function getSelectionEnd() {
return this.domElement.selectionEnd;
}
}, {
key: 'setValue',
value: function setValue(value) {
this.domElement.value = value;
}
}, {
key: 'setSelectionStart',
value: function setSelectionStart(selectionStart) {
this.domElement.selectionStart = selectionStart;
}
}, {
key: 'setSelectionEnd',
value: function setSelectionEnd(selectionEnd) {
this.domElement.selectionEnd = selectionEnd;
}
}, {
key: 'onChange',
value: function onChange(handler) {
if (handler.intermediateHandler === undefined) {
handler.intermediateHandler = defaultIntermediateChangeHandler.bind(this);
}
this.on('change', handler);
}
}, {
key: 'offChange',
value: function offChange(handler) {
this.off('change', handler);
}
}], [{
key: 'clone',
value: function clone(element, changeHandler) {
return InputElement.clone(Input, element, changeHandler);
}
}, {
key: 'fromHTML',
value: function fromHTML(html, changeHandler) {
return InputElement.fromHTML(Input, html, changeHandler);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement, changeHandler) {
return InputElement.fromDOMElement(Input, domElement, changeHandler);
}
}, {
key: 'fromProperties',
value: function fromProperties(properties) {
var onChange = properties.onChange,
changeHandler = onChange; ///
return InputElement.fromProperties(Input, properties, changeHandler);
}
}]);
return Input;
}(InputElement);
Object.assign(Input, {
tagName: 'input',
ignoredProperties: ['onChange']
});
module.exports = Input;
function defaultIntermediateChangeHandler(handler, event) {
var value = this.getValue(),
preventDefault = handler(value);
return preventDefault;
}
},{"../inputElement":7}],11:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var InputElement = require('../inputElement');
var Link = function (_InputElement) {
_inherits(Link, _InputElement);
function Link(selector, clickHandler) {
_classCallCheck(this, Link);
var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, selector));
if (clickHandler) {
_this.onClick(clickHandler);
}
return _this;
}
_createClass(Link, [{
key: 'clone',
value: function clone(clickHandler) {
return Link.clone(this, clickHandler);
}
}, {
key: 'onClick',
value: function onClick(handler) {
if (handler.intermediateHandler === undefined) {
handler.intermediateHandler = defaultIntermediateClickHandler.bind(this);
}
this.on('click', handler);
}
}, {
key: 'offClick',
value: function offClick(handler) {
this.off('click', handler);
}
}], [{
key: 'clone',
value: function clone(element, clickHandler) {
return InputElement.clone(Link, element, clickHandler);
}
}, {
key: 'fromHTML',
value: function fromHTML(html, clickHandler) {
return InputElement.fromHTML(Link, html, clickHandler);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement, clickHandler) {
return InputElement.fromDOMElement(Link, domElement, clickHandler);
}
}, {
key: 'fromProperties',
value: function fromProperties(properties) {
var onClick = properties.onClick,
clickHandler = onClick; ///
return InputElement.fromProperties(Link, properties, clickHandler);
}
}]);
return Link;
}(InputElement);
Object.assign(Link, {
tagName: 'a',
ignoredProperties: ['onClick']
});
module.exports = Link;
function defaultIntermediateClickHandler(handler, event) {
var href = this.getAttribute('href'),
preventDefault = handler(href);
return preventDefault;
}
},{"../inputElement":7}],12:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var InputElement = require('../inputElement');
var Select = function (_InputElement) {
_inherits(Select, _InputElement);
function Select(selector, changeHandler) {
_classCallCheck(this, Select);
var _this = _possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, selector));
if (changeHandler) {
_this.onChange(changeHandler);
}
return _this;
}
_createClass(Select, [{
key: 'clone',
value: function clone(changeHandler) {
return Select.clone(this, changeHandler);
}
}, {
key: 'getSelectedOptionValue',
value: function getSelectedOptionValue() {
return this.domElement.value;
} ///
}, {
key: 'setSelectedOptionByValue',
value: function setSelectedOptionByValue(value) {
this.domElement.value = value;
} ///
}, {
key: 'onChange',
value: function onChange(handler) {
if (handler.intermediateHandler === undefined) {
handler.intermediateHandler = defaultIntermediateChangeHandler.bind(this);
}
this.on('change', handler);
}
}, {
key: 'offChange',
value: function offChange(handler) {
this.off('change', handler);
}
}], [{
key: 'clone',
value: function clone(element, changeHandler) {
return InputElement.clone(Select, element, changeHandler);
}
}, {
key: 'fromHTML',
value: function fromHTML(html, changeHandler) {
return InputElement.fromHTML(Select, html, changeHandler);
}
}, {
key: 'fromDOMElement',
value: function fromDOMElement(domElement, changeHandler) {
return InputElement.fromDOMElement(Select, domElement, changeHandler);
}
}, {
key: 'fromProperties',
value: function fromProperties(properties) {
var onChange = properties.onChange,
changeHandler = onChange; ///
return InputElement.fromProperties(Select, properties, changeHandler);
}
}]);
return Select;
}(InputElement);
Object.assign(Select, {
tagName: 'select',
ignoredProperties: ['onChange']
});
module.exports = Select;
function defaultIntermediateChangeHandler(handler, event) {
var selectedOptionValue = this.getSelectedOptionValue(),
preventDefault = handler(selectedOptionValue);
return preventDefault;
}
},{"../inputElement":7}],13:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(