Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/entity-selector/src/search/ |
Upload File : |
import MatchField from './match-field'; import type MatchIndex from './match-index'; import type SearchField from './search-field'; import type Item from '../item/item'; export default class MatchResult { item: Item = null; queryWords: string[] = null; matchFields: Map<SearchField, MatchField> = new Map(); sort: ?number = null; constructor(item: Item, queryWords: string[], matchIndexes: MatchIndex[] = []) { this.item = item; this.queryWords = queryWords; this.addIndexes(matchIndexes); } getItem(): Item { return this.item; } getQueryWords(): string[] { return this.queryWords; } getMatchFields(): Map<SearchField, MatchField> { return this.matchFields; } getSort(): ?number { return this.sort; } addIndex(matchIndex: MatchIndex): void { let matchField = this.matchFields.get(matchIndex.getField()); if (!matchField) { matchField = new MatchField(matchIndex.getField()); this.matchFields.set(matchIndex.getField(), matchField); const fieldSort = matchIndex.getField().getSort(); if (fieldSort !== null) { this.sort = this.sort === null ? fieldSort : Math.min(this.sort, fieldSort); } } matchField.addIndex(matchIndex); } addIndexes(matchIndexes: MatchIndex[]): void { matchIndexes.forEach(matchIndex => { this.addIndex(matchIndex); }); } }