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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | 1x 1x | import { Promise } from 'rsvp'; import Component from '@ember/component'; import layout from '../../templates/components/freestyle/bootstrap-power-select-lazy'; const { setTimeout } = window; const COLORS = [ 'Aqua', 'Black', 'Blue', 'Brown', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'B10', 'B11', 'B12', 'B12', 'B12', 'B12', 'B12', 'B12', 'B12', 'B12', 'B12', 'Cyan', 'Dark Blue', 'Fuchsia', 'Gray', 'Green', 'White', 'Magenta', 'Navy Blue', 'Orange', 'Purple', 'Red', 'Salmon', 'Teal', 'Violet', 'Yellow' ]; function fuzzySearch(array, searchString) { return array.filter((string) => { return string.toLowerCase().includes(searchString.toLowerCase()); }); } export default Component.extend({ layout, pageSize: 10, selected: undefined, multiSelectSelected: undefined, init() { this._super(...arguments); }, pageCount(results) { const pageSize = this.get('pageSize'); return Math.ceil(results.length / pageSize); }, /* Create fake async search task */ fetchColors(searchString, page) { const timeout = 1000; const pageSize = this.get('pageSize'); return new Promise((resolve) => { setTimeout(() => { const fuzzyColors = fuzzySearch(COLORS, searchString); const pageColors = fuzzyColors.slice((page - 1) * pageSize, page * pageSize); resolve({ options: pageColors, pageCount: this.pageCount(fuzzyColors) }); }, timeout); }); }, actions: { fetchColors(searchString, page) { return this.fetchColors(searchString, page); }, } }); |