All files / addon/components bootstrap-multi-select-lazy.js

0% Statements 0/7
100% Branches 0/0
0% Functions 0/2
0% Lines 0/7

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                                                                               
import { assert } from '@ember/debug';
import Component from '@ember/component';
import { MULTI_SELECT_CLASS_NAME } from './bootstrap-multi-select';
import layout from '../templates/components/bootstrap-multi-select-lazy';
import LazySelectState from '../utils/lazy-select-state';
 
export default Component.extend({
  tagName: '', // We don't want a wrapping tag as this is a wrapper and the control-wrapper component will define the tag and bindings
  layout,
  classNames: [MULTI_SELECT_CLASS_NAME],
 
  /* Required Attributes */
  searchByPage: undefined,
 
  /* Optional Attributes */
  debounceMS: undefined,
 
  _lazyState: undefined,
 
  init() {
    // call super
    this._super(...arguments);
 
    // Set initial state
    this.set('_lazyState', LazySelectState.create());
  },
 
  actions: {
    search(term) {
      const lazyState = this.get('_lazyState');
      const searchByPage = this.get('searchByPage');
      const debounceMS = this.get('debounceMS');
 
      assert('Must pass a `searchByPage action to `bootstrap-multi-select-lazy`', searchByPage);
 
      return lazyState.search(term, searchByPage, debounceMS);
    }
  }
});