com.phloxui
Version:
PhloxUI Ng2+ Framework
174 lines (173 loc) • 14.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { AbstractDataView } from './AbstractDataView';
import { Option } from '../../decorator/Option.decorator';
/**
* @abstract
*/
export class AbstractHasFormatterDataView extends AbstractDataView {
/**
* @param {?} elementRef
* @param {?} formatterFactory
*/
constructor(elementRef, formatterFactory) {
super(elementRef);
this.formatterFactory = formatterFactory;
this._formatterInited = false;
}
/**
* @return {?}
*/
get formattedData() {
if (!this.formatterUsePropertyValue && this._formatterInited) {
return this.getFormattedData();
}
else {
return this._formattedData;
}
}
/**
* @return {?}
*/
ngOnInit() {
super.ngOnInit();
this._formattedData = this.getFormattedData();
this._formatterInited = true;
}
/**
* @return {?}
*/
isFormatterUsePropertyValue() {
return this.formatterUsePropertyValue;
}
/**
* @param {?} formatter
* @param {?} data
* @return {?}
*/
static resolveFormattedData(formatter, data) {
if (formatter !== null && typeof formatter !== 'undefined') {
return formatter.format(data);
}
return data;
}
/**
* @return {?}
*/
getFormatterName() {
return this.formatterName;
}
/**
* @param {?} formatterName
* @return {?}
*/
setFormatterName(formatterName) {
this.formatterName = formatterName;
let /** @type {?} */ formatter = null;
if (this.formatterFactory !== null && typeof this.formatterFactory !== 'undefined') {
formatter = this.formatterFactory.createFormatter(formatterName);
}
this.formatter = formatter;
this.setFormatterOptions(this.formatterOptions);
this._formattedData = this.getFormattedData();
}
/**
* @return {?}
*/
getFormatterOptions() {
return this.formatterOptions;
}
/**
* @param {?} options
* @return {?}
*/
setFormatterOptions(options) {
this.formatterOptions = options;
if (this.formatter !== null && typeof this.formatter !== 'undefined') {
let /** @type {?} */ f = this.formatter;
if (typeof f.setOptions === 'function') {
f.setOptions(this.formatterOptions);
}
}
}
/**
* @return {?}
*/
getFormatter() {
return this.formatter;
}
/**
* @param {?} formatter
* @return {?}
*/
setFormatter(formatter) {
this.formatter = formatter;
if (this.formatter !== null && typeof this.formatter !== 'undefined') {
this.formatterName = this.formatter.getName();
}
else {
this.formatterName = null;
}
this.setFormatterOptions(this.formatterOptions);
this._formattedData = this.getFormattedData();
}
/**
* @param {?} options
* @return {?}
*/
setOptions(options) {
super.setOptions(options);
if (this.formatter !== null && typeof this.formatter !== 'undefined') {
this.setFormatter(this.formatter);
}
else if (this.formatterName !== null && typeof this.formatterName !== 'undefined') {
this.setFormatterName(this.formatterName);
}
else {
this.formatter = null;
this.formatterName = null;
}
}
/**
* @return {?}
*/
getFormattedData() {
return AbstractHasFormatterDataView.resolveFormattedData(this.formatter, this.mappedData);
}
}
tslib_1.__decorate([
Option('formatter.name'),
tslib_1.__metadata("design:type", String)
], AbstractHasFormatterDataView.prototype, "formatterName", void 0);
tslib_1.__decorate([
Option('formatter.options'),
tslib_1.__metadata("design:type", Object)
], AbstractHasFormatterDataView.prototype, "formatterOptions", void 0);
tslib_1.__decorate([
Option('formatter.instance'),
tslib_1.__metadata("design:type", Object)
], AbstractHasFormatterDataView.prototype, "formatter", void 0);
tslib_1.__decorate([
Option('formatter.usePropertyValue'),
tslib_1.__metadata("design:type", Boolean)
], AbstractHasFormatterDataView.prototype, "formatterUsePropertyValue", void 0);
function AbstractHasFormatterDataView_tsickle_Closure_declarations() {
/** @type {?} */
AbstractHasFormatterDataView.prototype.formatterName;
/** @type {?} */
AbstractHasFormatterDataView.prototype.formatterOptions;
/** @type {?} */
AbstractHasFormatterDataView.prototype.formatter;
/** @type {?} */
AbstractHasFormatterDataView.prototype.formatterUsePropertyValue;
/** @type {?} */
AbstractHasFormatterDataView.prototype.formatterFactory;
/** @type {?} */
AbstractHasFormatterDataView.prototype._formattedData;
/** @type {?} */
AbstractHasFormatterDataView.prototype._formatterInited;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RIYXNGb3JtYXR0ZXJEYXRhVmlldy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9kYXRhdmlldy9BYnN0cmFjdEhhc0Zvcm1hdHRlckRhdGFWaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBRzFELE1BQU0sbUNBQTZDLFNBQVEsZ0JBQWdCOzs7OztJQXNCekUsWUFBWSxVQUFzQixFQUFFLGdCQUFrQztRQUNwRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7S0FDL0I7Ozs7UUFiVSxhQUFhO1FBQ3RCLEVBQUUsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBLENBQUM7WUFDM0QsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hDO1FBQUEsSUFBSSxDQUFBLENBQUM7WUFDSixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1Qjs7Ozs7SUFVSSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQzs7Ozs7SUFHeEIsMkJBQTJCO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7Ozs7Ozs7SUFHakMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFNBQXFCLEVBQUUsSUFBUztRQUNq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QyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0M7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQzNCOzs7OztJQUdJLGdCQUFnQjtRQUNyQixNQUFNLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7O0NBRTdGOztJQTdHRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Ozs7SUFFeEIsTUFBTSxDQUFDLG1CQUFtQixDQUFDOzs7O0lBRTNCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzs7OztJQUU1QixNQUFNLENBQUMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RGF0YVZpZXcgfSBmcm9tICcuL0Fic3RyYWN0RGF0YVZpZXcnO1xuaW1wb3J0IHsgSUhhc0Zvcm1hdHRlciB9IGZyb20gJy4uL0lIYXNGb3JtYXR0ZXInO1xuaW1wb3J0IHsgSUZvcm1hdHRlciB9IGZyb20gJy4uLy4uL3NoYXJlL2Zvcm1hdHRlci9JRm9ybWF0dGVyJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcbmltcG9ydCB7IEZvcm1hdHRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL0Zvcm1hdHRlckZhY3Rvcnkuc2VydmljZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEhhc0Zvcm1hdHRlckRhdGFWaWV3IGV4dGVuZHMgQWJzdHJhY3REYXRhVmlldyBpbXBsZW1lbnRzIE9uSW5pdCwgSUhhc0Zvcm1hdHRlciB7XG5cbiAgQE9wdGlvbignZm9ybWF0dGVyLm5hbWUnKVxuICBwcm90ZWN0ZWQgZm9ybWF0dGVyTmFtZTogc3RyaW5nO1xuICBAT3B0aW9uKCdmb3JtYXR0ZXIub3B0aW9ucycpXG4gIHByb3RlY3RlZCBmb3JtYXR0ZXJPcHRpb25zOiBhbnk7XG4gIEBPcHRpb24oJ2Zvcm1hdHRlci5pbnN0YW5jZScpXG4gIHByb3RlY3RlZCBmb3JtYXR0ZXI6IElGb3JtYXR0ZXI7XG4gIEBPcHRpb24oJ2Zvcm1hdHRlci51c2VQcm9wZXJ0eVZhbHVlJylcbiAgcHJvdGVjdGVkIGZvcm1hdHRlclVzZVByb3BlcnR5VmFsdWU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBmb3JtYXR0ZXJGYWN0b3J5OiBGb3JtYXR0ZXJGYWN0b3J5O1xuICBwcm90ZWN0ZWQgX2Zvcm1hdHRlZERhdGE6IGFueTtcbiAgcHJpdmF0ZSBfZm9ybWF0dGVySW5pdGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXQgZm9ybWF0dGVkRGF0YSgpOiBhbnl7XG4gICAgaWYoIXRoaXMuZm9ybWF0dGVyVXNlUHJvcGVydHlWYWx1ZSAmJiB0aGlzLl9mb3JtYXR0ZXJJbml0ZWQpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0dGVkRGF0YSgpO1xuICAgIH1lbHNle1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlZERhdGE7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgZm9ybWF0dGVyRmFjdG9yeTogRm9ybWF0dGVyRmFjdG9yeSkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy5mb3JtYXR0ZXJGYWN0b3J5ID0gZm9ybWF0dGVyRmFjdG9yeTtcbiAgICB0aGlzLl9mb3JtYXR0ZXJJbml0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgdGhpcy5fZm9ybWF0dGVkRGF0YSA9IHRoaXMuZ2V0Rm9ybWF0dGVkRGF0YSgpO1xuICAgIHRoaXMuX2Zvcm1hdHRlckluaXRlZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgaXNGb3JtYXR0ZXJVc2VQcm9wZXJ0eVZhbHVlKCk6IGJvb2xlYW57XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyVXNlUHJvcGVydHlWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVzb2x2ZUZvcm1hdHRlZERhdGEoZm9ybWF0dGVyOiBJRm9ybWF0dGVyLCBkYXRhOiBhbnkpOiBhbnkge1xuICAgIGlmKGZvcm1hdHRlciAhPT0gbnVsbCAmJiB0eXBlb2YgZm9ybWF0dGVyICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChkYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdHRlck5hbWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybWF0dGVyTmFtZShmb3JtYXR0ZXJOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1hdHRlck5hbWUgPSBmb3JtYXR0ZXJOYW1lO1xuXG4gICAgbGV0IGZvcm1hdHRlcjogYW55ID0gbnVsbDtcbiAgICBpZiAodGhpcy5mb3JtYXR0ZXJGYWN0b3J5ICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmZvcm1hdHRlckZhY3RvcnkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmb3JtYXR0ZXIgPSB0aGlzLmZvcm1hdHRlckZhY3RvcnkuY3JlYXRlRm9ybWF0dGVyKGZvcm1hdHRlck5hbWUpO1xuICAgIH1cbiAgICB0aGlzLmZvcm1hdHRlciA9IGZvcm1hdHRlcjtcbiAgICB0aGlzLnNldEZvcm1hdHRlck9wdGlvbnModGhpcy5mb3JtYXR0ZXJPcHRpb25zKTtcbiAgICB0aGlzLl9mb3JtYXR0ZWREYXRhID0gdGhpcy5nZXRGb3JtYXR0ZWREYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGVyT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdHRlck9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybWF0dGVyT3B0aW9ucyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1hdHRlck9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgaWYodGhpcy5mb3JtYXR0ZXIgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZm9ybWF0dGVyICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICBsZXQgZjogYW55ID0gdGhpcy5mb3JtYXR0ZXI7XG4gICAgICBpZih0eXBlb2YgZi5zZXRPcHRpb25zID09PSAnZnVuY3Rpb24nKXtcbiAgICAgICAgZi5zZXRPcHRpb25zKHRoaXMuZm9ybWF0dGVyT3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZvcm1hdHRlcigpOiBJRm9ybWF0dGVyIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcjogSUZvcm1hdHRlcik6IHZvaWQge1xuICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyO1xuXG4gICAgaWYgKHRoaXMuZm9ybWF0dGVyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmZvcm1hdHRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGVyTmFtZSA9IHRoaXMuZm9ybWF0dGVyLmdldE5hbWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0ZXJOYW1lID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1hdHRlck9wdGlvbnModGhpcy5mb3JtYXR0ZXJPcHRpb25zKTtcbiAgICB0aGlzLl9mb3JtYXR0ZWREYXRhID0gdGhpcy5nZXRGb3JtYXR0ZWREYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0T3B0aW9ucyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgaWYodGhpcy5mb3JtYXR0ZXIgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZm9ybWF0dGVyICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICB0aGlzLnNldEZvcm1hdHRlcih0aGlzLmZvcm1hdHRlcik7XG4gICAgfSBlbHNlIGlmKHRoaXMuZm9ybWF0dGVyTmFtZSAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5mb3JtYXR0ZXJOYW1lICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICB0aGlzLnNldEZvcm1hdHRlck5hbWUodGhpcy5mb3JtYXR0ZXJOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0ZXIgPSBudWxsO1xuICAgICAgdGhpcy5mb3JtYXR0ZXJOYW1lID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGVkRGF0YSgpOiBhbnkge1xuICAgIHJldHVybiBBYnN0cmFjdEhhc0Zvcm1hdHRlckRhdGFWaWV3LnJlc29sdmVGb3JtYXR0ZWREYXRhKHRoaXMuZm9ybWF0dGVyLCB0aGlzLm1hcHBlZERhdGEpO1xuICB9XG59XG4iXX0=