/* YUI 3.17.2 (build 9c3c78e) Copyright 2014 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ YUI.add('event-resize', function (Y, NAME) { /** * Adds a window resize event that has its behavior normalized to fire at the * end of the resize rather than constantly during the resize. * @module event * @submodule event-resize */ /** * Old firefox fires the window resize event once when the resize action * finishes, other browsers fire the event periodically during the * resize. This code uses timeout logic to simulate the Firefox * behavior in other browsers. * @event windowresize * @for YUI */ Y.Event.define('windowresize', { on: (Y.UA.gecko && Y.UA.gecko < 1.91) ? function (node, sub, notifier) { sub._handle = Y.Event.attach('resize', function (e) { notifier.fire(e); }); } : function (node, sub, notifier) { // interval bumped from 40 to 100ms as of 3.4.1 var delay = Y.config.windowResizeDelay || 100; sub._handle = Y.Event.attach('resize', function (e) { if (sub._timer) { sub._timer.cancel(); } sub._timer = Y.later(delay, Y, function () { notifier.fire(e); }); }); }, detach: function (node, sub) { if (sub._timer) { sub._timer.cancel(); } sub._handle.detach(); } // delegate methods not defined because this only works for window // subscriptions, so...yeah. }); }, '3.17.2', {"requires": ["node-base", "event-synthetic"]});