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 | export class GitLabDropdownInput { constructor(input, options) { this.input = input; this.options = options; this.fieldName = this.options.fieldName || 'field-name'; const $inputContainer = this.input.parent(); const $clearButton = $inputContainer.find('.js-dropdown-input-clear'); $clearButton.on('click', (e) => { // Clear click e.preventDefault(); e.stopPropagation(); return this.input.val('').trigger('input').focus(); }); this.input .on('keydown', (e) => { const keyCode = e.which; if (keyCode === 13 && !options.elIsInput) { e.preventDefault(); } }) .on('input', (e) => { let val = e.currentTarget.value || this.options.inputFieldName; val = val .split(' ') .join('-') // replaces space with dash .replace(/[^a-zA-Z0-9 -]/g, '') .toLowerCase() // replace non alphanumeric .replace(/(-)\1+/g, '-'); // replace repeated dashes this.cb(this.options.fieldName, val, {}, true); this.input.closest('.dropdown').find('.dropdown-toggle-text').text(val); }); } onInput(cb) { this.cb = cb; } } |