UNPKG

@neocomplexx/ngx-neo-completer

Version:

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.5.

65 lines 8.11 kB
'use strict'; import { __decorate, __metadata } from "tslib"; import { Component, Input } from '@angular/core'; let CompleterListItemCmp = // tslint:disable-next-line:component-class-suffix class CompleterListItemCmp { constructor() { this.parts = []; } ngOnInit() { if (!this.searchStr) { this.parts.push({ isMatch: false, text: this.text }); return; } const matchStr = this.text.toLowerCase(); let matchPos = matchStr.indexOf(this.searchStr.toLowerCase()); let startIndex = 0; while (matchPos >= 0) { const matchText = this.text.slice(matchPos, matchPos + this.searchStr.length); if (matchPos === 0) { this.parts.push({ isMatch: true, text: matchText }); startIndex += this.searchStr.length; } else if (matchPos > 0) { const matchPart = this.text.slice(startIndex, matchPos); this.parts.push({ isMatch: false, text: matchPart }); this.parts.push({ isMatch: true, text: matchText }); startIndex += this.searchStr.length + matchPart.length; } matchPos = matchStr.indexOf(this.searchStr.toLowerCase(), startIndex); } if (startIndex < this.text.length) { this.parts.push({ isMatch: false, text: this.text.slice(startIndex, this.text.length) }); } } }; __decorate([ Input(), __metadata("design:type", String) ], CompleterListItemCmp.prototype, "text", void 0); __decorate([ Input(), __metadata("design:type", String) ], CompleterListItemCmp.prototype, "searchStr", void 0); __decorate([ Input(), __metadata("design:type", String) ], CompleterListItemCmp.prototype, "matchClass", void 0); __decorate([ Input(), __metadata("design:type", String) ], CompleterListItemCmp.prototype, "type", void 0); CompleterListItemCmp = __decorate([ Component({ // tslint:disable-next-line:component-selector selector: 'completer-list-item', // tslint:disable-next-line:max-line-length template: `<span class="completer-list-item-holder" [ngClass]="{'completer-title': type === 'title', 'completer-description': type === 'description'}" > <span class="completer-list-item" *ngFor="let part of parts" [ngClass]="part.isMatch ? matchClass : null">{{part.text}}</span> </span>` }) // tslint:disable-next-line:component-class-suffix ], CompleterListItemCmp); export { CompleterListItemCmp }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGVyLWxpc3QtaXRlbS1jbXAuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1jb21wbGV0ZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jb21wbGV0ZXItbGlzdC1pdGVtLWNtcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBQ2IsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpQmhELElBQWEsb0JBQW9CO0FBRGpDLGtEQUFrRDtBQUNsRCxNQUFhLG9CQUFvQjtJQUFqQztRQU1XLFVBQUssR0FBZ0IsRUFBRSxDQUFDO0lBMEJuQyxDQUFDO0lBekJVLFFBQVE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE9BQU87U0FDVjtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekMsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE9BQU8sUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUUsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUN2QztpQkFBTSxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO2FBQzFEO1lBQ0QsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdGO0lBQ0wsQ0FBQztDQUNKLENBQUE7QUEvQlk7SUFBUixLQUFLLEVBQUU7O2tEQUFxQjtBQUNwQjtJQUFSLEtBQUssRUFBRTs7dURBQTBCO0FBQ3pCO0lBQVIsS0FBSyxFQUFFOzt3REFBMkI7QUFDMUI7SUFBUixLQUFLLEVBQUU7O2tEQUFxQjtBQUpwQixvQkFBb0I7SUFUaEMsU0FBUyxDQUFDO1FBQ1AsOENBQThDO1FBQzlDLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsMkNBQTJDO1FBQzNDLFFBQVEsRUFBRTs7Z0JBRUU7S0FDZixDQUFDO0lBQ0Ysa0RBQWtEO0dBQ3JDLG9CQUFvQixDQWdDaEM7U0FoQ1ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuaW1wb3J0IHtDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBNYXRjaFBhcnQge1xuICAgIGlzTWF0Y2g6IGJvb2xlYW47XG4gICAgdGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdjb21wbGV0ZXItbGlzdC1pdGVtJyxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgdGVtcGxhdGU6IGA8c3BhbiBjbGFzcz1cImNvbXBsZXRlci1saXN0LWl0ZW0taG9sZGVyXCIgW25nQ2xhc3NdPVwieydjb21wbGV0ZXItdGl0bGUnOiB0eXBlID09PSAndGl0bGUnLCAnY29tcGxldGVyLWRlc2NyaXB0aW9uJzogdHlwZSA9PT0gJ2Rlc2NyaXB0aW9uJ31cIiA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcGxldGVyLWxpc3QtaXRlbVwiICpuZ0Zvcj1cImxldCBwYXJ0IG9mIHBhcnRzXCIgW25nQ2xhc3NdPVwicGFydC5pc01hdGNoID8gbWF0Y2hDbGFzcyA6IG51bGxcIj57e3BhcnQudGV4dH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+YFxufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgQ29tcGxldGVyTGlzdEl0ZW1DbXAgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNlYXJjaFN0cjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXRjaENsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHR5cGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBwYXJ0czogTWF0Y2hQYXJ0W10gPSBbXTtcbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hTdHIpIHtcbiAgICAgICAgICAgIHRoaXMucGFydHMucHVzaCh7IGlzTWF0Y2g6IGZhbHNlLCB0ZXh0OiB0aGlzLnRleHQgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hTdHIgPSB0aGlzLnRleHQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgbGV0IG1hdGNoUG9zID0gbWF0Y2hTdHIuaW5kZXhPZih0aGlzLnNlYXJjaFN0ci50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAobWF0Y2hQb3MgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hUZXh0ID0gdGhpcy50ZXh0LnNsaWNlKG1hdGNoUG9zLCBtYXRjaFBvcyArIHRoaXMuc2VhcmNoU3RyLmxlbmd0aCk7XG4gICAgICAgICAgICBpZiAobWF0Y2hQb3MgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRzLnB1c2goeyBpc01hdGNoOiB0cnVlLCB0ZXh0OiBtYXRjaFRleHQgfSk7XG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSB0aGlzLnNlYXJjaFN0ci5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoUG9zID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoUGFydCA9IHRoaXMudGV4dC5zbGljZShzdGFydEluZGV4LCBtYXRjaFBvcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0cy5wdXNoKHsgaXNNYXRjaDogZmFsc2UsIHRleHQ6IG1hdGNoUGFydCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRzLnB1c2goeyBpc01hdGNoOiB0cnVlLCB0ZXh0OiBtYXRjaFRleHQgfSk7XG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSB0aGlzLnNlYXJjaFN0ci5sZW5ndGggKyBtYXRjaFBhcnQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF0Y2hQb3MgPSBtYXRjaFN0ci5pbmRleE9mKHRoaXMuc2VhcmNoU3RyLnRvTG93ZXJDYXNlKCksIHN0YXJ0SW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydEluZGV4IDwgdGhpcy50ZXh0Lmxlbmd0aCkge1xuICAgICAgICAgICAgIHRoaXMucGFydHMucHVzaCh7IGlzTWF0Y2g6IGZhbHNlLCB0ZXh0OiB0aGlzLnRleHQuc2xpY2Uoc3RhcnRJbmRleCwgdGhpcy50ZXh0Lmxlbmd0aCkgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=