@ngqp/core
Version:
51 lines • 5.53 kB
JavaScript
import { Directive, ElementRef, Host, Input, Optional, Renderer2 } from '@angular/core';
import { MultiSelectControlValueAccessorDirective } from './multi-select-control-value-accessor.directive';
/** @ignore */
export class MultiSelectOptionDirective {
constructor(parent, renderer, elementRef) {
this.parent = parent;
this.renderer = renderer;
this.elementRef = elementRef;
this.id = null;
if (this.parent) {
this.id = this.parent.registerOption(this);
}
}
ngOnInit() {
if (this.parent) {
this.renderer.setProperty(this.elementRef.nativeElement, 'value', this.id);
}
}
ngOnDestroy() {
if (this.parent) {
this.parent.deregisterOption(this.id);
}
}
set value(value) {
if (this.parent) {
this.parent.updateOptionValue(this.id, value);
}
}
get selected() {
return this.elementRef.nativeElement.selected;
}
set selected(selected) {
if (this.parent) {
this.renderer.setProperty(this.elementRef.nativeElement, 'selected', selected);
}
}
}
MultiSelectOptionDirective.decorators = [
{ type: Directive, args: [{
selector: 'option',
},] }
];
MultiSelectOptionDirective.ctorParameters = () => [
{ type: MultiSelectControlValueAccessorDirective, decorators: [{ type: Optional }, { type: Host }] },
{ type: Renderer2 },
{ type: ElementRef }
];
MultiSelectOptionDirective.propDecorators = {
value: [{ type: Input, args: ['value',] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdxcC9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hY2Nlc3NvcnMvbXVsdGktc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUUzRyxjQUFjO0FBSWQsTUFBTSxPQUFPLDBCQUEwQjtJQUluQyxZQUNnQyxNQUFtRCxFQUN2RSxRQUFtQixFQUNuQixVQUFzQjtRQUZGLFdBQU0sR0FBTixNQUFNLENBQTZDO1FBQ3ZFLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxqQixPQUFFLEdBQWtCLElBQUksQ0FBQztRQU90QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFHLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxJQUNXLEtBQUssQ0FBQyxLQUFRO1FBQ3JCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBbUMsQ0FBQyxRQUFRLENBQUM7SUFDekUsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLFFBQWlCO1FBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNsRjtJQUNMLENBQUM7OztZQTVDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFFBQVE7YUFDckI7OztZQUxRLHdDQUF3Qyx1QkFXeEMsUUFBUSxZQUFJLElBQUk7WUFaaUQsU0FBUztZQUEvRCxVQUFVOzs7b0JBaUN6QixLQUFLLFNBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi9tdWx0aS1zZWxlY3QtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xuXG4vKiogQGlnbm9yZSAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdvcHRpb24nLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE9wdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBwYXJlbnQ6IE11bHRpU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VD4sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnBhcmVudC5yZWdpc3Rlck9wdGlvbih0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB0aGlzLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5kZXJlZ2lzdGVyT3B0aW9uKHRoaXMuaWQhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgndmFsdWUnKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC51cGRhdGVPcHRpb25WYWx1ZSh0aGlzLmlkISwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MT3B0aW9uRWxlbWVudCkuc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdzZWxlY3RlZCcsIHNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxufSJdfQ==