1class Article { 2 constructor(json) { 3 for (let key in json) { 4 this[key] = json[key]; 5 } 6 this.subtype = this.type; 7 this.type = 'article'; 8 this.id = this.article_id; 9 } 10 Render() { 11 let wrapper = $('<div></div>').addClass('my-3').attr('data-entity-id', this.article_id).attr('data-entity-type', this.type); 12 let controls = $('<div></div>').addClass('article-editor-controls d-none d-print-none mt-2 mb-2 d-flex align-items-end justify-content-between gap-2').appendTo(wrapper); 13 let yearGroup = $('<div></div>').addClass('d-flex flex-column gap-1').appendTo(controls); 14 $('<label></label>').addClass('small text-muted mb-0').attr('for', `article-year-${this.article_id}`).text('Year').appendTo(yearGroup); 15 $('<span></span>').addClass('article-year border rounded px-2 py-1 d-inline-block').attr('id', `article-year-${this.article_id}`).css('min-width', '5rem').text(this.year || '').appendTo(yearGroup); 16 $('<button></button>').addClass('btn btn-sm btn-outline-danger ms-2 bi-trash').attr('data-action', 'DeleteAuthorArticle').attr('data-bs-title', 'Delete article').attr('data-bs-placement', 'top').appendTo(controls); 17 $('<p></p>').addClass('article-citation reference mb-0').html(this.citation).appendTo(wrapper); 18 return wrapper[0]; 19 } 20}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.