tibas-form-json-generator
Version:
Fully configured form generator via JSON data with a custom template for each attribute + onChange events.
238 lines • 16.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/label-editable/label-editable.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, forwardRef, Input, Renderer, ViewChild } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
/** @type {?} */
var INLINE_EDIT_CONTROL_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return LabelEditableComponent; })),
multi: true
};
var LabelEditableComponent = /** @class */ (function () {
function LabelEditableComponent(element, _renderer) {
this._renderer = _renderer;
// input DOM element
this.label = ''; // Label value for input element
// Label value for input element
this.type = 'text'; // The type of input element
// The type of input element
this.required = true; // Is input requried?
// Is input requried?
this.disabled = false; // Is input disabled?
// Is input disabled?
this._value = ''; // Private variable for input value
// Private variable for input value
this.preValue = ''; // The value before clicking to edit
// The value before clicking to edit
this.editing = true; // Is Component in edit mode?
// Is Component in edit mode?
this.onChange = Function.prototype; // Trascend the onChange event
// Trascend the onChange event
this.onTouched = Function.prototype; // Trascend the onTouch event
this.editing = true;
}
Object.defineProperty(LabelEditableComponent.prototype, "value", {
// Control Value Accessors for ngModel
get:
// Trascend the onTouch event
// Control Value Accessors for ngModel
/**
* @return {?}
*/
function () {
return this._value;
},
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
if (v !== this._value) {
this._value = v;
this.onChange(v);
}
},
enumerable: true,
configurable: true
});
// Required for ControlValueAccessor interface
// Required for ControlValueAccessor interface
/**
* @param {?} value
* @return {?}
*/
LabelEditableComponent.prototype.writeValue =
// Required for ControlValueAccessor interface
/**
* @param {?} value
* @return {?}
*/
function (value) {
this._value = value;
};
// Required forControlValueAccessor interface
// Required forControlValueAccessor interface
/**
* @param {?} fn
* @return {?}
*/
LabelEditableComponent.prototype.registerOnChange =
// Required forControlValueAccessor interface
/**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChange = fn;
};
// Required forControlValueAccessor interface
// Required forControlValueAccessor interface
/**
* @param {?} fn
* @return {?}
*/
LabelEditableComponent.prototype.registerOnTouched =
// Required forControlValueAccessor interface
/**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouched = fn;
};
// Do stuff when the input element loses focus
// Do stuff when the input element loses focus
/**
* @param {?} $event
* @return {?}
*/
LabelEditableComponent.prototype.onBlur =
// Do stuff when the input element loses focus
/**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this._value !== '' && this._value) {
this.editing = false;
}
};
/**
* @param {?} $event
* @return {?}
*/
LabelEditableComponent.prototype.onClose = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this._value !== '' && this._value) {
this.editing = false;
}
};
// Start the editting process for the input element
// Start the editting process for the input element
/**
* @param {?} value
* @return {?}
*/
LabelEditableComponent.prototype.edit =
// Start the editting process for the input element
/**
* @param {?} value
* @return {?}
*/
function (value) {
var _this = this;
if (this.disabled) {
return;
}
this.preValue = value;
this.editing = true;
// Focus on the input element just as the editing begins
if (this.labelEditControl) {
setTimeout((/**
* @param {?} _
* @return {?}
*/
function (_) { return _this._renderer.invokeElementMethod(_this.labelEditControl, 'focus', []); }));
}
};
/**
* @return {?}
*/
LabelEditableComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this._renderer.listen('window', 'click', (/**
* @param {?} e
* @return {?}
*/
function (e) {
if (_this.labelEditControl && _this.labelEditControl.nativeElement && e.target !== _this.labelEditControl.nativeElement) {
if (_this._value !== '' && _this._value) {
_this.editing = false;
}
}
}));
this.editing = true;
};
LabelEditableComponent.decorators = [
{ type: Component, args: [{
selector: 'app-label-edit',
template: "<div class=\"labeleditable\" style=\"display: inline-block;white-space: nowrap!important;overflow: scroll;width: 70%;margin-right: 1rem;padding: 2px;height: 43px\" [ngStyle]=\"{'padding-top':editing?'2px':'12px'}\">\n <div *ngIf=\"editing\" (focusout)=\"onClose($event)\">\n <input #labelEditControl class=\"attInput additeminput\"\n type=\"text\" [required]=\"required\" (blur)=\"onBlur($event)\" (keydown.enter)='$event.target.blur()' (focusout)=\"onClose($event)\" [name]=\"value\" [(ngModel)]=\"value\" [type]=\"type\" [placeholder]=\"label\" />\n </div>\n <div *ngIf=\"!editing\" >\n <div title=\"Modifier\" class=\"cell\" (click)=\"edit(value)\" (focus)=\"edit(value);\" tabindex=\"0\" >{{value}} <i class=\"fa fa-pencil\"></i></div>\n </div>\n</div>\n\n",
providers: [INLINE_EDIT_CONTROL_VALUE_ACCESSOR],
styles: [".cell{border:1px solid transparent}.cell:hover{cursor:pointer;border:1px dashed #c8c8c8}"]
}] }
];
/** @nocollapse */
LabelEditableComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer }
]; };
LabelEditableComponent.propDecorators = {
labelEditControl: [{ type: ViewChild, args: ['labelEditControl', { static: false },] }],
label: [{ type: Input }],
type: [{ type: Input }],
required: [{ type: Input }],
disabled: [{ type: Input }]
};
return LabelEditableComponent;
}());
export { LabelEditableComponent };
if (false) {
/** @type {?} */
LabelEditableComponent.prototype.labelEditControl;
/** @type {?} */
LabelEditableComponent.prototype.label;
/** @type {?} */
LabelEditableComponent.prototype.type;
/** @type {?} */
LabelEditableComponent.prototype.required;
/** @type {?} */
LabelEditableComponent.prototype.disabled;
/** @type {?} */
LabelEditableComponent.prototype._value;
/** @type {?} */
LabelEditableComponent.prototype.preValue;
/** @type {?} */
LabelEditableComponent.prototype.editing;
/** @type {?} */
LabelEditableComponent.prototype.onChange;
/** @type {?} */
LabelEditableComponent.prototype.onTouched;
/**
* @type {?}
* @private
*/
LabelEditableComponent.prototype._renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtZWRpdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGliYXMtZm9ybS1qc29uLWdlbmVyYXRvci8iLCJzb3VyY2VzIjpbImxpYi9sYWJlbC1lZGl0YWJsZS9sYWJlbC1lZGl0YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztJQUVqRSxrQ0FBa0MsR0FBRztJQUN6QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVOzs7SUFBQyxjQUFNLE9BQUEsc0JBQXNCLEVBQXRCLENBQXNCLEVBQUM7SUFDckQsS0FBSyxFQUFFLElBQUk7Q0FDWjtBQUVEO0lBK0JFLGdDQUFZLE9BQW1CLEVBQVUsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTs7UUF0Qm5ELFVBQUssR0FBVyxFQUFFLENBQUMsQ0FBRSxnQ0FBZ0M7O1FBQ3JELFNBQUksR0FBVyxNQUFNLENBQUMsQ0FBQyw0QkFBNEI7O1FBQ25ELGFBQVEsR0FBWSxJQUFJLENBQUMsQ0FBQyxxQkFBcUI7O1FBQy9DLGFBQVEsR0FBWSxLQUFLLENBQUMsQ0FBQyxxQkFBcUI7O1FBQ3pELFdBQU0sR0FBVyxFQUFFLENBQUMsQ0FBQyxtQ0FBbUM7O1FBQ3hELGFBQVEsR0FBVyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7O1FBQzNELFlBQU8sR0FBWSxJQUFJLENBQUMsQ0FBQyw2QkFBNkI7O1FBQ3RELGFBQVEsR0FBUSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsOEJBQThCOztRQUNsRSxjQUFTLEdBQVEsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLDZCQUE2QjtRQWVoRSxJQUFJLENBQUMs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LEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzt3QkFDN0MsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSzs7SUErRVIsNkJBQUM7Q0FBQSxBQTNGRCxJQTJGQztTQXJGWSxzQkFBc0I7OztJQUVqQyxrREFBNkU7O0lBQzdFLHVDQUE0Qjs7SUFDNUIsc0NBQStCOztJQUMvQiwwQ0FBa0M7O0lBQ2xDLDBDQUFtQzs7SUFDbkMsd0NBQW9COztJQUNwQiwwQ0FBc0I7O0lBQ3RCLHlDQUF3Qjs7SUFDeEIsMENBQW1DOztJQUNuQywyQ0FBb0M7Ozs7O0lBY0gsMkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgSU5MSU5FX0VESVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExhYmVsRWRpdGFibGVDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWxhYmVsLWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFiZWwtZWRpdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtJTkxJTkVfRURJVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgc3R5bGVVcmxzOiBbJy4vbGFiZWwtZWRpdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMYWJlbEVkaXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnbGFiZWxFZGl0Q29udHJvbCcsIHtzdGF0aWM6IGZhbHNlfSkgbGFiZWxFZGl0Q29udHJvbDogRWxlbWVudFJlZjsgLy8gaW5wdXQgRE9NIGVsZW1lbnRcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnOyAgLy8gTGFiZWwgdmFsdWUgZm9yIGlucHV0IGVsZW1lbnRcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ3RleHQnOyAvLyBUaGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50XG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gdHJ1ZTsgLy8gSXMgaW5wdXQgcmVxdXJpZWQ/XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7IC8vIElzIGlucHV0IGRpc2FibGVkP1xuICBfdmFsdWU6IHN0cmluZyA9ICcnOyAvLyBQcml2YXRlIHZhcmlhYmxlIGZvciBpbnB1dCB2YWx1ZVxuICBwcmVWYWx1ZTogc3RyaW5nID0gJyc7IC8vIFRoZSB2YWx1ZSBiZWZvcmUgY2xpY2tpbmcgdG8gZWRpdFxuICBlZGl0aW5nOiBib29sZWFuID0gdHJ1ZTsgLy8gSXMgQ29tcG9uZW50IGluIGVkaXQgbW9kZT9cbiAgb25DaGFuZ2U6IGFueSA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgLy8gVHJhc2NlbmQgdGhlIG9uQ2hhbmdlIGV2ZW50XG4gIG9uVG91Y2hlZDogYW55ID0gRnVuY3Rpb24ucHJvdG90eXBlOyAvLyBUcmFzY2VuZCB0aGUgb25Ub3VjaCBldmVudFxuXG4gIC8vIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JzIGZvciBuZ01vZGVsXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyKSB7XG4gICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIFJlcXVpcmVkIGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIFJlcXVpcmVkIGZvckNvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4ge30pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBSZXF1aXJlZCBmb3JDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBEbyBzdHVmZiB3aGVuIHRoZSBpbnB1dCBlbGVtZW50IGxvc2VzIGZvY3VzXG4gIG9uQmx1cigkZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9PSAnJyAmJiB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25DbG9zZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9PSAnJyAmJiB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICAvLyBTdGFydCB0aGUgZWRpdHRpbmcgcHJvY2VzcyBmb3IgdGhlIGlucHV0IGVsZW1lbnRcbiAgZWRpdCh2YWx1ZSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcmVWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgLy8gRm9jdXMgb24gdGhlIGlucHV0IGVsZW1lbnQganVzdCBhcyB0aGUgZWRpdGluZyBiZWdpbnNcbiAgICBpZiAodGhpcy5sYWJlbEVkaXRDb250cm9sKSB7XG4gICAgICBzZXRUaW1lb3V0KF8gPT4gdGhpcy5fcmVuZGVyZXIuaW52b2tlRWxlbWVudE1ldGhvZCh0aGlzLmxhYmVsRWRpdENvbnRyb2wsXG4gICAgICAgICdmb2N1cycsIFtdKSk7XG4gICAgfVxuXG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5sYWJlbEVkaXRDb250cm9sICYmIHRoaXMubGFiZWxFZGl0Q29udHJvbC5uYXRpdmVFbGVtZW50ICYmIGUudGFyZ2V0ICE9PSB0aGlzLmxhYmVsRWRpdENvbnRyb2wubmF0aXZlRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5fdmFsdWUgIT09ICcnICYmIHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmVkaXRpbmcgPSB0cnVlO1xuICB9XG59XG4iXX0=