@neocomplexx/ngx-neo-completer
Version:
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.5.
151 lines • 14.2 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Directive, EventEmitter, Output } from '@angular/core';
var CtrCompleter = /** @class */ (function () {
// tslint:disable-next-line:directive-class-suffix
function CtrCompleter() {
this.selected = new EventEmitter();
this.highlighted = new EventEmitter();
this.opened = new EventEmitter();
this.dataSourceChange = new EventEmitter();
this._hasHighlighted = false;
this._hasSelected = false;
this._cancelBlur = false;
this._isOpen = false;
}
CtrCompleter.prototype.registerList = function (list) {
this.list = list;
};
CtrCompleter.prototype.registerDropdown = function (dropdown) {
this.dropdown = dropdown;
};
CtrCompleter.prototype.onHighlighted = function (item) {
this.highlighted.emit(item);
this._hasHighlighted = !!item;
};
CtrCompleter.prototype.onSelected = function (item, clearList) {
if (clearList === void 0) { clearList = true; }
this.selected.emit(item);
if (item) {
this._hasSelected = true;
}
if (clearList) {
this.clear();
}
};
CtrCompleter.prototype.onDataSourceChange = function () {
if (this.hasSelected) {
this.selected.emit(null);
this._hasSelected = false;
}
this.dataSourceChange.emit();
};
CtrCompleter.prototype.search = function (term) {
if (this._hasSelected) {
this.selected.emit(null);
this._hasSelected = false;
}
if (this.list) {
this.list.search(term);
}
};
CtrCompleter.prototype.clear = function () {
this._hasHighlighted = false;
this.isOpen = false;
if (this.dropdown) {
this.dropdown.clear();
}
if (this.list) {
this.list.clear();
}
};
CtrCompleter.prototype.selectCurrent = function () {
if (this.dropdown) {
this.dropdown.selectCurrent();
}
};
CtrCompleter.prototype.nextRow = function () {
if (this.dropdown) {
this.dropdown.nextRow();
}
};
CtrCompleter.prototype.prevRow = function () {
if (this.dropdown) {
this.dropdown.prevRow();
}
};
CtrCompleter.prototype.hasHighlighted = function () {
return this._hasHighlighted;
};
CtrCompleter.prototype.cancelBlur = function (cancel) {
this._cancelBlur = cancel;
};
CtrCompleter.prototype.isCancelBlur = function () {
return this._cancelBlur;
};
CtrCompleter.prototype.open = function () {
if (!this._isOpen) {
this.isOpen = true;
this.list.open();
}
};
Object.defineProperty(CtrCompleter.prototype, "isOpen", {
get: function () {
return this._isOpen;
},
set: function (open) {
this._isOpen = open;
this.opened.emit(this._isOpen);
if (this.list) {
this.list.isOpen(open);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(CtrCompleter.prototype, "autoHighlightIndex", {
get: function () {
return this._autoHighlightIndex;
},
set: function (index) {
this._autoHighlightIndex = index;
if (this.dropdown) {
this.dropdown.highlightRow(this._autoHighlightIndex);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(CtrCompleter.prototype, "hasSelected", {
get: function () {
return this._hasSelected;
},
enumerable: true,
configurable: true
});
__decorate([
Output(),
__metadata("design:type", Object)
], CtrCompleter.prototype, "selected", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], CtrCompleter.prototype, "highlighted", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], CtrCompleter.prototype, "opened", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], CtrCompleter.prototype, "dataSourceChange", void 0);
CtrCompleter = __decorate([
Directive({
// tslint:disable-next-line:directive-selector
selector: '[ctrCompleter]',
})
// tslint:disable-next-line:directive-class-suffix
], CtrCompleter);
return CtrCompleter;
}());
export { CtrCompleter };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3RyLWNvbXBsZXRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZW9jb21wbGV4eC9uZ3gtbmVvLWNvbXBsZXRlci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2N0ci1jb21wbGV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXdCaEU7SUFEQSxrREFBa0Q7SUFDbEQ7UUFDcUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDdkQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUlyRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBd0g1QixDQUFDO0lBckhVLG1DQUFZLEdBQW5CLFVBQW9CLElBQW1CO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSx1Q0FBZ0IsR0FBdkIsVUFBd0IsUUFBa0M7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVNLG9DQUFhLEdBQXBCLFVBQXFCLElBQTBCO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRU0saUNBQVUsR0FBakIsVUFBa0IsSUFBbUIsRUFBRSxTQUFnQjtRQUFoQiwwQkFBQSxFQUFBLGdCQUFnQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUks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Q0FBQyxtQkFBbUIsQ0FBQztRQUNwQyxDQUFDO2FBRUQsVUFBOEIsS0FBb0I7WUFDOUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDeEQ7UUFDTCxDQUFDOzs7T0FQQTtJQVNELHNCQUFXLHFDQUFXO2FBQXRCO1lBQ0ksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdCLENBQUM7OztPQUFBO0lBaklTO1FBQVQsTUFBTSxFQUFFOztrREFBNEQ7SUFDM0Q7UUFBVCxNQUFNLEVBQUU7O3FEQUErRDtJQUM5RDtRQUFULE1BQU0sRUFBRTs7Z0RBQTZDO0lBQzVDO1FBQVQsTUFBTSxFQUFFOzswREFBb0Q7SUFKcEQsWUFBWTtRQUx4QixTQUFTLENBQUM7WUFDUCw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLGdCQUFnQjtTQUM3QixDQUFDO1FBQ0Ysa0RBQWtEO09BQ3JDLFlBQVksQ0FtSXhCO0lBQUQsbUJBQUM7Q0FBQSxBQW5JRCxJQW1JQztTQW5JWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wbGV0ZXJJdGVtIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21wbGV0ZXItaXRlbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGVyTGlzdCB7XG4gICAgc2VhcmNoKHRlcm06IHN0cmluZyk6IHZvaWQ7XG4gICAgb3BlbigpOiB2b2lkO1xuICAgIGlzT3BlbihvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgICBjbGVhcigpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlckRyb3Bkb3duIHtcbiAgICBjbGVhcigpOiB2b2lkO1xuICAgIHNlbGVjdEN1cnJlbnQoKTogdm9pZDtcbiAgICBuZXh0Um93KCk6IHZvaWQ7XG4gICAgcHJldlJvdygpOiB2b2lkO1xuICAgIGhpZ2hsaWdodFJvdyhpbmRleDogbnVtYmVyIHwgbnVsbCk6IHZvaWQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tjdHJDb21wbGV0ZXJdJyxcbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIEN0ckNvbXBsZXRlciB7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcGxldGVySXRlbSB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBoaWdobGlnaHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcGxldGVySXRlbSB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBkYXRhU291cmNlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBsaXN0OiBDb21wbGV0ZXJMaXN0O1xuICAgIHByaXZhdGUgZHJvcGRvd246IENvbXBsZXRlckRyb3Bkb3duIHwgbnVsbDtcbiAgICBwcml2YXRlIF9oYXNIaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2hhc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfY2FuY2VsQmx1ciA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2F1dG9IaWdobGlnaHRJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAgIHB1YmxpYyByZWdpc3Rlckxpc3QobGlzdDogQ29tcGxldGVyTGlzdCkge1xuICAgICAgICB0aGlzLmxpc3QgPSBsaXN0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckRyb3Bkb3duKGRyb3Bkb3duOiBDb21wbGV0ZXJEcm9wZG93biB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93biA9IGRyb3Bkb3duO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkhpZ2hsaWdodGVkKGl0ZW06IENvbXBsZXRlckl0ZW0gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQuZW1pdChpdGVtKTtcbiAgICAgICAgdGhpcy5faGFzSGlnaGxpZ2h0ZWQgPSAhIWl0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0ZWQoaXRlbTogQ29tcGxldGVySXRlbSwgY2xlYXJMaXN0ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoaXRlbSk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLl9oYXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFyTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGF0YVNvdXJjZUNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2hhc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhU291cmNlQ2hhbmdlLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoKHRlcm06IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5faGFzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2hhc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgICAgICAgdGhpcy5saXN0LnNlYXJjaCh0ZXJtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5faGFzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bikge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5jbGVhcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgICAgICAgdGhpcy5saXN0LmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0Q3VycmVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24uc2VsZWN0Q3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRSb3coKSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm5leHRSb3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2Um93KCkge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bikge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5wcmV2Um93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzSGlnaGxpZ2h0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNIaWdobGlnaHRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsQmx1cihjYW5jZWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2FuY2VsQmx1ciA9IGNhbmNlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDYW5jZWxCbHVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FuY2VsQmx1cjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubGlzdC5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzT3BlbihvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IG9wZW47XG4gICAgICAgIHRoaXMub3BlbmVkLmVtaXQodGhpcy5faXNPcGVuKTtcbiAgICAgICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgICAgICAgdGhpcy5saXN0LmlzT3BlbihvcGVuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXV0b0hpZ2hsaWdodEluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b0hpZ2hsaWdodEluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYXV0b0hpZ2hsaWdodEluZGV4KGluZGV4OiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2F1dG9IaWdobGlnaHRJbmRleCA9IGluZGV4O1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bikge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5oaWdobGlnaHRSb3codGhpcy5fYXV0b0hpZ2hsaWdodEluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzU2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNTZWxlY3RlZDtcbiAgICB9XG59XG4iXX0=