este-library-oldschool
Version:
Library for github.com/steida/este.git
79 lines (72 loc) • 2.28 kB
JavaScript
// Generated by github.com/steida/coffee2closure 900.1.18
/**
@fileoverview Wrapper for submit event with fix for IE8.
@see /demos/events/submithandler.html
*/
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.superClass_ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
goog.provide('este.events.SubmitEvent');
goog.provide('este.events.SubmitHandler');
goog.provide('este.events.SubmitHandler.EventType');
goog.require('este.Base');
goog.require('este.dom');
goog.require('goog.events.BrowserEvent');
goog.require('goog.userAgent');
/**
@param {Element|Document=} node
@constructor
@extends {este.Base}
*/
este.events.SubmitHandler = function(node) {
var eventType;
if (node == null) {
node = document;
}
este.events.SubmitHandler.superClass_.constructor.call(this);
eventType = goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9) ? 'focusin' : 'submit';
this.on(node, eventType, this);
}
extend(este.events.SubmitHandler, superClass);
/**
@enum {string}
*/
este.events.SubmitHandler.EventType = {
SUBMIT: 'submit'
};
/**
@param {goog.events.BrowserEvent} e
@protected
*/
este.events.SubmitHandler.prototype.handleEvent = function(e) {
var form, json, submitEvent, target;
target = /** @type {Element} */(e.target);
if (e.type === 'focusin') {
form = goog.dom.getAncestorByTagNameAndClass(target, 'form');
if (form) {
this.on(form, 'submit', this);
}
return;
}
e.preventDefault();
json = este.dom.serializeForm(target);
submitEvent = new este.events.SubmitEvent(json, e);
return this.dispatchEvent(submitEvent);
};
/**
@fileoverview este.events.SubmitEvent.
*/
/**
@param {Object} json
@param {goog.events.BrowserEvent} browserEvent
@constructor
@extends {goog.events.BrowserEvent}
*/
este.events.SubmitEvent = function(json1, browserEvent) {
this.json = json1;
este.events.SubmitEvent.superClass_.constructor.call(this, browserEvent);
}
extend(este.events.SubmitEvent, superClass);
/**
@type {Object}
*/
este.events.SubmitEvent.prototype.json = null;