ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
72 lines • 2.84 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { autoinject, transient } from "aurelia-framework";
import { bindingMode as BindingMode } from "aurelia-binding";
import { BrowserService } from "../../services/browser-service";
import "jquery";
let EditableInputElementService = class EditableInputElementService {
constructor(bindingMode, browserService) {
this.bindingMode = bindingMode;
this.browserService = browserService;
this.windowResizeSubscription = null;
}
set maxLength(value) {
this.editor.attr("maxlength", this.maxLength);
}
set value(value) {
this.editor.val(value);
}
get value() {
return this.editor.val();
}
detached() {
if (this.windowResizeSubscription) {
this.windowResizeSubscription.dispose();
this.windowResizeSubscription = null;
}
}
attached() {
this.windowResizeSubscription = this.browserService.registerForWindowResize(this.windowResizeHandler.bind(this));
}
windowResizeHandler(event) {
if (this.element) {
this._refresh();
}
}
_show(element) {
let editor = this.editor;
if (this.element) {
this._hide();
}
this.element = element;
this._refresh();
editor.css({ "display": "inline-block" });
}
_refresh() {
if (this.element) {
let editor = this.editor;
var position = this.element.position();
editor.css({ left: position.left - 1, top: position.top - 1 });
editor.width(this.element.width());
editor.height(this.element.height());
}
}
_hide() {
this.element = null;
this.editor.css({ "display": "none" });
}
};
EditableInputElementService = __decorate([
transient(),
autoinject,
__metadata("design:paramtypes", [Number, BrowserService])
], EditableInputElementService);
export { EditableInputElementService };
//# sourceMappingURL=editable-input-element-service.js.map