All files / addon/components/power-select lazy-options.js

0% Statements 0/17
0% Branches 0/8
0% Functions 0/8
0% Lines 0/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59                                                                                                                     
/* global $ */
import { get } from '@ember/object';
import layout from '../../templates/components/power-select/lazy-options';
import PSOptionsComponent from 'ember-power-select/components/power-select/options';
 
export default PSOptionsComponent.extend({
  layout,
 
  canLoadMore: false,
 
  init() {
    this._super(...arguments);
  },
 
  loadMore() {
    const select = this.get('select');
    if (select) {
      const searchAction = get(select, 'actions.search');
      const searchText = get(select, 'searchText');
 
      if (searchAction && searchText) {
        return searchAction(searchText);
      }
    }
  },
 
  attachCheckVisibilty() {
    const checkVisibility = () => {
      if ($(this.element).find('.ember-power-select-option--load-more').checkInView(true)) { // eslint-disable-line ember/no-global-jquery
        this.loadMore();
      }
    };
 
    $(this.element).on('scroll', checkVisibility); // eslint-disable-line ember/no-global-jquery
  },
 
  removeCheckVisibility() {
    $(this.element).off('scroll'); // eslint-disable-line ember/no-global-jquery
  },
 
  didInsertElement() {
    this._super(...arguments);
 
    this.attachCheckVisibilty();
  },
 
  willDestroyElement() {
    this._super(...arguments);
 
    this.removeCheckVisibility();
  },
 
  actions: {
    loadMore() {
      this.loadMore();
    },
  }
});