@neocomplexx/ngx-neo-completer-mat
Version:
78 lines • 9.64 kB
JavaScript
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