2017-08-22 09:53:26 +02:00
|
|
|
import Component from '@ember/component';
|
2017-08-02 09:05:59 +02:00
|
|
|
import InViewportMixin from 'ember-in-viewport';
|
|
|
|
|
|
|
|
export default Component.extend(InViewportMixin, {
|
|
|
|
|
2018-04-24 14:10:20 +02:00
|
|
|
enter() {},
|
|
|
|
exit() {},
|
|
|
|
registerElement() {},
|
2017-08-02 09:05:59 +02:00
|
|
|
|
|
|
|
didInsertElement() {
|
2019-03-06 14:53:54 +01:00
|
|
|
let offset = this.triggerOffset || {};
|
2018-04-24 14:10:20 +02:00
|
|
|
|
|
|
|
// if triggerOffset is a number we use it for all dimensions
|
|
|
|
if (typeof offset === 'number') {
|
|
|
|
offset = {
|
|
|
|
top: offset,
|
|
|
|
bottom: offset,
|
|
|
|
left: offset,
|
|
|
|
right: offset
|
|
|
|
};
|
|
|
|
}
|
2017-08-02 09:05:59 +02:00
|
|
|
|
|
|
|
this.set('viewportSpy', true);
|
|
|
|
this.set('viewportTolerance', {
|
2018-04-24 14:10:20 +02:00
|
|
|
top: offset.top,
|
|
|
|
bottom: offset.bottom,
|
|
|
|
left: offset.left,
|
|
|
|
right: offset.right
|
2017-08-02 09:05:59 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
this._super(...arguments);
|
2018-04-24 14:10:20 +02:00
|
|
|
|
|
|
|
this.registerElement(this.element);
|
2017-08-02 09:05:59 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
didEnterViewport() {
|
2018-04-24 14:10:20 +02:00
|
|
|
return this.enter();
|
|
|
|
},
|
|
|
|
|
|
|
|
didExitViewport() {
|
|
|
|
return this.exit();
|
2017-08-02 09:05:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
});
|