import _ from 'lodash'; import tpl from 'vj/utils/tpl'; import request from 'vj/utils/request'; import DOMAttachedObject from 'vj/components/DOMAttachedObject'; import AutoComplete from './index'; function getText(pdoc) { return pdoc.docId; } function getItems(prefix) { return request.get('/problem/list', { prefix }); } function renderItem(pdoc) { return tpl`
${pdoc.pid ? `${pdoc.pid} ` : ''}${pdoc.title}
ID = ${pdoc.docId}
`; } export default class ProblemSelectAutoComplete extends AutoComplete { static DOMAttachKey = 'vjProblemSelectAutoCompleteInstance'; constructor($dom, options) { super($dom, { classes: 'problem-select', items: getItems, render: renderItem, text: getText, ...options, }); } } _.assign(ProblemSelectAutoComplete, DOMAttachedObject); window.Hydro.components.ProblemSelectAutoComplete = ProblemSelectAutoComplete;