Files

38 lines
846 B
JavaScript

import Ember from 'ember';
export default Ember.Mixin.create( {
resizeEndDelay: 350,
resizing: false,
didInsertElement(){
this._super(...arguments);
this.installHandlers();
},
willDestroyElement(){
this._super(...arguments);
this.removeHandlers();
},
installHandlers() {
return Ember.$(window).on("resize." + this.elementId, this.handlerManager.bind(this));
},
removeHandlers() {
Ember.$(window).off("resize." + this.elementId);
},
endResize(event) {
this.set('resizing', false);
Ember.tryInvoke(this, 'onResizeEnd', [event]);
},
handlerManager(event) {
if( !this.get('resizing') ) {
this.set('resizing', true);
Ember.tryInvoke(this, 'onResizeStart', [event]);
Ember.run.debounce(this, this.get('endResize'), event, this.get('resizeEndDelay'));
}
}
});