@neocomplexx/ngx-neo-completer-mat
Version:
144 lines • 14.6 kB
JavaScript
import { Directive, EventEmitter, Output } from '@angular/core';
import * as i0 from "@angular/core";
var CtrCompleter = /** @class */ (function () {
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
});
CtrCompleter.ɵfac = function CtrCompleter_Factory(t) { return new (t || CtrCompleter)(); };
CtrCompleter.ɵdir = i0.ɵɵdefineDirective({ type: CtrCompleter, selectors: [["", "ctrCompleter", ""]], outputs: { selected: "selected", highlighted: "highlighted", opened: "opened", dataSourceChange: "dataSourceChange" } });
return CtrCompleter;
}());
export { CtrCompleter };
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(CtrCompleter, [{
type: Directive,
args: [{
// tslint:disable-next-line:directive-selector
selector: '[ctrCompleter]',
}]
}], null, { selected: [{
type: Output
}], highlighted: [{
type: Output
}], opened: [{
type: Output
}], dataSourceChange: [{
type: Output
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3RyLWNvbXBsZXRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZW9jb21wbGV4eC9uZ3gtbmVvLWNvbXBsZXRlci1tYXQvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9jdHItY29tcGxldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFtQmhFO0lBQUE7UUFNcUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDdkQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUlyRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDO0tBd0gzQjtJQXJIVSxtQ0FBWSxHQUFuQixVQUFvQixJQUFtQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRU0sdUNBQWdCLEdBQXZCLFVBQXdCLFFBQWtDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFTSxvQ0FBYSxHQUFwQixVQUFxQixJQUEwQjtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVNLGlDQUFVLEdBQWpCLFVBQWtCLElBQW1CLEVBQUUsU0FBZ0I7UUFBaEIsMEJBQUEsRUFBQSxnQkFBZ0I7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFD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QUM7UUFDcEMsQ0FBQzthQUVELFVBQThCLEtBQW9CO1lBQzlDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3hEO1FBQ0wsQ0FBQzs7O09BUEE7SUFTRCxzQkFBVyxxQ0FBVzthQUF0QjtZQUNJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTs0RUFsSVEsWUFBWTtxREFBWixZQUFZO3VCQXhCekI7Q0EySkMsQUF4SUQsSUF3SUM7U0FuSVksWUFBWTtrREFBWixZQUFZO2NBTHhCLFNBQVM7ZUFBQztnQkFDUCw4Q0FBOEM7Z0JBQzlDLFFBQVEsRUFBRSxnQkFBZ0I7YUFDN0I7O2tCQUdJLE1BQU07O2tCQUNOLE1BQU07O2tCQUNOLE1BQU07O2tCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb21wbGV0ZXJJdGVtIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21wbGV0ZXItaXRlbSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlckxpc3Qge1xyXG4gICAgc2VhcmNoKHRlcm06IHN0cmluZyk6IHZvaWQ7XHJcbiAgICBvcGVuKCk6IHZvaWQ7XHJcbiAgICBpc09wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQ7XHJcbiAgICBjbGVhcigpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlckRyb3Bkb3duIHtcclxuICAgIGNsZWFyKCk6IHZvaWQ7XHJcbiAgICBzZWxlY3RDdXJyZW50KCk6IHZvaWQ7XHJcbiAgICBuZXh0Um93KCk6IHZvaWQ7XHJcbiAgICBwcmV2Um93KCk6IHZvaWQ7XHJcbiAgICBoaWdobGlnaHRSb3coaW5kZXg6IG51bWJlciB8IG51bGwpOiB2b2lkO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiAnW2N0ckNvbXBsZXRlcl0nLFxyXG59KVxyXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgY2xhc3MgQ3RyQ29tcGxldGVyIHtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBsZXRlckl0ZW0gfCBudWxsPigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBoaWdobGlnaHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcGxldGVySXRlbSB8IG51bGw+KCk7XHJcbiAgICBAT3V0cHV0KCkgcHVibGljIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgZGF0YVNvdXJjZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBwcml2YXRlIGxpc3Q6IENvbXBsZXRlckxpc3Q7XHJcbiAgICBwcml2YXRlIGRyb3Bkb3duOiBDb21wbGV0ZXJEcm9wZG93biB8IG51bGw7XHJcbiAgICBwcml2YXRlIF9oYXNIaWdobGlnaHRlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfaGFzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2NhbmNlbEJsdXIgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfYXV0b0hpZ2hsaWdodEluZGV4OiBudW1iZXIgfCBudWxsO1xyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlckxpc3QobGlzdDogQ29tcGxldGVyTGlzdCkge1xyXG4gICAgICAgIHRoaXMubGlzdCA9IGxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyRHJvcGRvd24oZHJvcGRvd246IENvbXBsZXRlckRyb3Bkb3duIHwgbnVsbCkge1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd24gPSBkcm9wZG93bjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25IaWdobGlnaHRlZChpdGVtOiBDb21wbGV0ZXJJdGVtIHwgbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQuZW1pdChpdGVtKTtcclxuICAgICAgICB0aGlzLl9oYXNIaWdobGlnaHRlZCA9ICEhaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TZWxlY3RlZChpdGVtOiBDb21wbGV0ZXJJdGVtLCBjbGVhckxpc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hhc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNsZWFyTGlzdCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkRhdGFTb3VyY2VDaGFuZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLl9oYXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZWFyY2godGVybTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2hhc1NlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5faGFzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdCkge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3Quc2VhcmNoKHRlcm0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5faGFzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bikge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5saXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdC5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0Q3VycmVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bikge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLnNlbGVjdEN1cnJlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5leHRSb3coKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd24pIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5uZXh0Um93KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcmV2Um93KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ucHJldlJvdygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFzSGlnaGxpZ2h0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0hpZ2hsaWdodGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYW5jZWxCbHVyKGNhbmNlbDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2NhbmNlbEJsdXIgPSBjYW5jZWw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ2FuY2VsQmx1cigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2FuY2VsQmx1cjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2lzT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdC5vcGVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNPcGVuKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc09wZW47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBpc09wZW4ob3BlbjogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IG9wZW47XHJcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCh0aGlzLl9pc09wZW4pO1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0LmlzT3BlbihvcGVuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhdXRvSGlnaGxpZ2h0SW5kZXgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dG9IaWdobGlnaHRJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IGF1dG9IaWdobGlnaHRJbmRleChpbmRleDogbnVtYmVyIHwgbnVsbCkge1xyXG4gICAgICAgIHRoaXMuX2F1dG9IaWdobGlnaHRJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24uaGlnaGxpZ2h0Um93KHRoaXMuX2F1dG9IaWdobGlnaHRJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaGFzU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1NlbGVjdGVkO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==