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 { Type } from 'main.core'; import type SearchField from './search-field'; import MatchIndex from './match-index'; import { OrderedArray } from 'main.core.collections'; const comparator = (a: MatchIndex, b: MatchIndex) => { if (a.getStartIndex() === b.getStartIndex()) { return a.getEndIndex() > b.getEndIndex() ? -1 : 1; } else { return a.getStartIndex() > b.getStartIndex() ? 1 : -1; } }; export default class MatchField { field: SearchField = null; matchIndexes: OrderedArray<MatchIndex> = new OrderedArray(comparator); constructor(field: SearchField, indexes: MatchIndex[] = []) { this.field = field; this.addIndexes(indexes); } getField(): SearchField { return this.field; } getMatches(): OrderedArray<MatchIndex> { return this.matchIndexes; } addIndex(matchIndex: MatchIndex): void { this.matchIndexes.add(matchIndex); } addIndexes(matchIndexes: MatchIndex[]): void { if (Type.isArray(matchIndexes)) { matchIndexes.forEach(matchIndex => { this.addIndex(matchIndex); }); } } }