UNPKG

easyui-draganddrop

Version:

Drag and drop elements including a file explorer and a rubbish bin.

1,322 lines (1,067 loc) 184 kB
(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(