UNPKG

@neocomplexx/ngx-neo-completer-mat

Version:
78 lines 9.64 kB
import { Component, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; function CompleterListItemCmp_span_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 2); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const part_r1 = ctx.$implicit; const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngClass", part_r1.isMatch ? ctx_r0.matchClass : null); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(part_r1.text); } } const _c0 = function (a0, a1) { return { "completer-title": a0, "completer-description": a1 }; }; 'use strict'; // tslint:disable-next-line:component-class-suffix export 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) }); } } } CompleterListItemCmp.ɵfac = function CompleterListItemCmp_Factory(t) { return new (t || CompleterListItemCmp)(); }; CompleterListItemCmp.ɵcmp = i0.ɵɵdefineComponent({ type: CompleterListItemCmp, selectors: [["completer-list-item"]], inputs: { text: "text", searchStr: "searchStr", matchClass: "matchClass", type: "type" }, decls: 2, vars: 5, consts: [[1, "completer-list-item-holder", 3, "ngClass"], ["class", "completer-list-item", 3, "ngClass", 4, "ngFor", "ngForOf"], [1, "completer-list-item", 3, "ngClass"]], template: function CompleterListItemCmp_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 0); i0.ɵɵtemplate(1, CompleterListItemCmp_span_1_Template, 2, 2, "span", 1); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c0, ctx.type === "title", ctx.type === "description")); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx.parts); } }, directives: [i1.NgClass, i1.NgForOf], encapsulation: 2 }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(CompleterListItemCmp, [{ type: Component, args: [{ // 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>` }] }], null, { text: [{ type: Input }], searchStr: [{ type: Input }], matchClass: [{ type: Input }], type: [{ type: Input }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGVyLWxpc3QtaXRlbS1jbXAuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1jb21wbGV0ZXItbWF0LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29tcGxldGVyLWxpc3QtaXRlbS1jbXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7SUFheEMsK0JBQTBHO0lBQUEsWUFBYTtJQUFBLGlCQUFPOzs7O0lBQWpFLG9FQUE0QztJQUFDLGVBQWE7SUFBYixrQ0FBYTs7O0FBZC9ILFlBQVksQ0FBQztBQWlCYixrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLG9CQUFvQjtJQVRqQztRQWVXLFVBQUssR0FBZ0IsRUFBRSxDQUFDO0tBMEJsQztJQXpCVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyRCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlFLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRCxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDdkM7aUJBQU0sSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRCxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUMxRDtZQUNELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDekU7UUFDRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM3RjtJQUNMLENBQUM7O3dGQS9CUSxvQkFBb0I7eURBQXBCLG9CQUFvQjtRQUxsQiwrQkFDUDtRQUFBLHVFQUEwRztRQUMxRyxpQkFBTzs7UUFGeUMsc0dBQWtHO1FBQ2hILGVBQTBCO1FBQTFCLG1DQUEwQjs7a0RBSXZELG9CQUFvQjtjQVRoQyxTQUFTO2VBQUM7Z0JBQ1AsOENBQThDO2dCQUM5QyxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQiwyQ0FBMkM7Z0JBQzNDLFFBQVEsRUFBRTs7Z0JBRUU7YUFDZjs7a0JBR0ksS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXRjaFBhcnQge1xyXG4gICAgaXNNYXRjaDogYm9vbGVhbjtcclxuICAgIHRleHQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ2NvbXBsZXRlci1saXN0LWl0ZW0nLFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgdGVtcGxhdGU6IGA8c3BhbiBjbGFzcz1cImNvbXBsZXRlci1saXN0LWl0ZW0taG9sZGVyXCIgW25nQ2xhc3NdPVwieydjb21wbGV0ZXItdGl0bGUnOiB0eXBlID09PSAndGl0bGUnLCAnY29tcGxldGVyLWRlc2NyaXB0aW9uJzogdHlwZSA9PT0gJ2Rlc2NyaXB0aW9uJ31cIiA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21wbGV0ZXItbGlzdC1pdGVtXCIgKm5nRm9yPVwibGV0IHBhcnQgb2YgcGFydHNcIiBbbmdDbGFzc109XCJwYXJ0LmlzTWF0Y2ggPyBtYXRjaENsYXNzIDogbnVsbFwiPnt7cGFydC50ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPmBcclxufSlcclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1jbGFzcy1zdWZmaXhcclxuZXhwb3J0IGNsYXNzIENvbXBsZXRlckxpc3RJdGVtQ21wIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoU3RyOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbWF0Y2hDbGFzczogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIHR5cGU6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgcGFydHM6IE1hdGNoUGFydFtdID0gW107XHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFN0cikge1xyXG4gICAgICAgICAgICB0aGlzLnBhcnRzLnB1c2goeyBpc01hdGNoOiBmYWxzZSwgdGV4dDogdGhpcy50ZXh0IH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG1hdGNoU3RyID0gdGhpcy50ZXh0LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgbGV0IG1hdGNoUG9zID0gbWF0Y2hTdHIuaW5kZXhPZih0aGlzLnNlYXJjaFN0ci50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XHJcbiAgICAgICAgd2hpbGUgKG1hdGNoUG9zID49IDApIHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2hUZXh0ID0gdGhpcy50ZXh0LnNsaWNlKG1hdGNoUG9zLCBtYXRjaFBvcyArIHRoaXMuc2VhcmNoU3RyLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaFBvcyA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0cy5wdXNoKHsgaXNNYXRjaDogdHJ1ZSwgdGV4dDogbWF0Y2hUZXh0IH0pO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSB0aGlzLnNlYXJjaFN0ci5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2hQb3MgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaFBhcnQgPSB0aGlzLnRleHQuc2xpY2Uoc3RhcnRJbmRleCwgbWF0Y2hQb3MpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0cy5wdXNoKHsgaXNNYXRjaDogZmFsc2UsIHRleHQ6IG1hdGNoUGFydCB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFydHMucHVzaCh7IGlzTWF0Y2g6IHRydWUsIHRleHQ6IG1hdGNoVGV4dCB9KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKz0gdGhpcy5zZWFyY2hTdHIubGVuZ3RoICsgbWF0Y2hQYXJ0Lmxlbmd0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBtYXRjaFBvcyA9IG1hdGNoU3RyLmluZGV4T2YodGhpcy5zZWFyY2hTdHIudG9Mb3dlckNhc2UoKSwgc3RhcnRJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzdGFydEluZGV4IDwgdGhpcy50ZXh0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgdGhpcy5wYXJ0cy5wdXNoKHsgaXNNYXRjaDogZmFsc2UsIHRleHQ6IHRoaXMudGV4dC5zbGljZShzdGFydEluZGV4LCB0aGlzLnRleHQubGVuZ3RoKSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19