ngx-smart-spreadsheet
Version:
Lightweight spreadsheet module for Angular
34 lines • 3.8 kB
JavaScript
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
import * as i0 from "@angular/core";
export class ContentEditableDirective {
constructor(elementRef) {
this.elementRef = elementRef;
this.modelChange = new EventEmitter();
this.element.tabIndex = 0;
}
set model(value) {
this.element.innerText = value || '';
}
blur() {
this.modelChange.emit(this.element.innerText);
}
get element() {
return this.elementRef.nativeElement;
}
}
ContentEditableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ContentEditableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
ContentEditableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: ContentEditableDirective, selector: "[nssContentEditable]", inputs: { model: "model" }, outputs: { modelChange: "modelChange" }, host: { listeners: { "blur": "blur($event.target.value)" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ContentEditableDirective, decorators: [{
type: Directive,
args: [{
selector: '[nssContentEditable]'
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { model: [{
type: Input
}], modelChange: [{
type: Output
}], blur: [{
type: HostListener,
args: ['blur', ['$event.target.value']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1lZGl0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnQtc3ByZWFkc2hlZXQvc3JjL2xpYi9jb250ZW50LWVkaXRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLakcsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUFvQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUZ2RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFURCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQVNELElBQUk7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNEIsQ0FBQztJQUN0RCxDQUFDOztxSEFuQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQztpR0FHSyxLQUFLO3NCQURSLEtBQUs7Z0JBS04sV0FBVztzQkFEVixNQUFNO2dCQVFQLElBQUk7c0JBREgsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25zc0NvbnRlbnRFZGl0YWJsZV0nXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRFZGl0YWJsZURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpXG4gIHNldCBtb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbGVtZW50LmlubmVyVGV4dCA9IHZhbHVlIHx8ICcnO1xuICB9XG4gIEBPdXRwdXQoKVxuICBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBibHVyKCkge1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmVsZW1lbnQuaW5uZXJUZXh0KTtcbiAgfVxuXG4gIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==