UNPKG

ontimize-web-ngx

Version:
136 lines 14.5 kB
import { BooleanConverter } from '../decorators/input-converter'; import { OTranslateService } from '../services/translate/o-translate.service'; import { PermissionsUtils } from '../util/permissions'; import { Util } from '../util/util'; export class OBaseComponent { constructor(injector) { this.injector = injector; this._enabled = true; this._orequired = false; this._tooltipPosition = 'below'; this._tooltipShowDelay = 500; this._tooltipHideDelay = 0; if (this.injector) { this.translateService = this.injector.get(OTranslateService); } } initialize() { if (!Util.isDefined(this._olabel)) { this._olabel = this.oattr; } if (Util.isDefined(this.oplaceholder) && this.oplaceholder.length > 0) { this.oplaceholder = this.translateService.get(this.oplaceholder); } } getAttribute() { if (this.oattr) { return this.oattr; } return undefined; } setEnabled(value) { if (!PermissionsUtils.checkEnabledPermission(this.permissions)) { return; } const parsedValue = BooleanConverter(value); this._enabled = parsedValue; } get placeHolder() { return this.oplaceholder; } set placeHolder(value) { this.oplaceholder = value; } get tooltipClass() { return this.getTooltipClass(); } getTooltipClass() { return `o-tooltip ${this.tooltipPosition}`; } getTooltipText() { if (Util.isDefined(this._tooltip) && this.translateService) { return this.translateService.get(this._tooltip); } return this._tooltip; } get tooltip() { return this.getTooltipText(); } set tooltip(value) { this._tooltip = value; } get tooltipPosition() { return this._tooltipPosition; } set tooltipPosition(value) { this._tooltipPosition = value; } get tooltipShowDelay() { return this._tooltipShowDelay; } set tooltipShowDelay(value) { this._tooltipShowDelay = value; } get tooltipHideDelay() { return this._tooltipHideDelay; } set tooltipHideDelay(value) { this._tooltipHideDelay = value; } get isReadOnly() { return this._isReadOnly; } set isReadOnly(value) { this.setIsReadOnly(value); } setIsReadOnly(value) { if (Util.isDefined(this.readOnly)) { return; } if (!this.enabled) { this._isReadOnly = false; return; } if (!PermissionsUtils.checkEnabledPermission(this.permissions)) { return; } this._isReadOnly = value; } get readOnly() { return this._readOnly; } set readOnly(value) { if (!PermissionsUtils.checkEnabledPermission(this.permissions)) { return; } const parsedValue = BooleanConverter(value); this._readOnly = parsedValue; this._isReadOnly = parsedValue; } set orequired(val) { this._orequired = BooleanConverter(val); } get orequired() { return this._orequired; } get isRequired() { return this.orequired; } set required(value) { this.orequired = value; } get enabled() { return this._enabled; } set enabled(value) { const parsedValue = BooleanConverter(value); this.setEnabled(parsedValue); } get olabel() { return this._olabel; } set olabel(value) { this._olabel = value; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jb21wb25lbnQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9vLWNvbXBvbmVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxjQUFjO0lBb0J6QixZQUFzQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBZDlCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQU81QixxQkFBZ0IsR0FBVyxPQUFPLENBQUM7UUFDbkMsc0JBQWlCLEdBQVcsR0FBRyxDQUFDO1FBQ2hDLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUl0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFvQixpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckUsSUFB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QUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQm9vbGVhbkNvbnZlcnRlciB9IGZyb20gJy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcbmltcG9ydCB7IElDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT1RyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmFuc2xhdGUvby10cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBPUGVybWlzc2lvbnMgfSBmcm9tICcuLi90eXBlcy9vLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnNVdGlscyB9IGZyb20gJy4uL3V0aWwvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBPQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIElDb21wb25lbnQge1xuXG4gIC8qIElucHV0cyAqL1xuICBwcm90ZWN0ZWQgb2F0dHI6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9vbGFiZWw6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9wbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBwcm90ZWN0ZWQgX3JlYWRPbmx5OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX29yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qIEludGVybmFsIHZhcmlhYmxlcyAqL1xuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogT1RyYW5zbGF0ZVNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIF9pc1JlYWRPbmx5OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX3Rvb2x0aXA6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90b29sdGlwUG9zaXRpb246IHN0cmluZyA9ICdiZWxvdyc7XG4gIHByb3RlY3RlZCBfdG9vbHRpcFNob3dEZWxheTogbnVtYmVyID0gNTAwO1xuICBwcm90ZWN0ZWQgX3Rvb2x0aXBIaWRlRGVsYXk6IG51bWJlciA9IDA7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uczogT1Blcm1pc3Npb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBpZiAodGhpcy5pbmplY3Rvcikge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T1RyYW5zbGF0ZVNlcnZpY2U+KE9UcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMuX29sYWJlbCkpIHtcbiAgICAgIHRoaXMuX29sYWJlbCA9IHRoaXMub2F0dHI7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLm9wbGFjZWhvbGRlcikgJiYgdGhpcy5vcGxhY2Vob2xkZXIubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vcGxhY2Vob2xkZXIgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRoaXMub3BsYWNlaG9sZGVyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0QXR0cmlidXRlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMub2F0dHIpIHtcbiAgICAgIHJldHVybiB0aGlzLm9hdHRyO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIVBlcm1pc3Npb25zVXRpbHMuY2hlY2tFbmFibGVkUGVybWlzc2lvbih0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IEJvb2xlYW5Db252ZXJ0ZXIodmFsdWUpO1xuICAgIHRoaXMuX2VuYWJsZWQgPSBwYXJzZWRWYWx1ZTtcbiAgfVxuXG4gIGdldCBwbGFjZUhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIHNldCBwbGFjZUhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vcGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB0b29sdGlwQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUb29sdGlwQ2xhc3MoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUb29sdGlwQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG8tdG9vbHRpcCAke3RoaXMudG9vbHRpcFBvc2l0aW9ufWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VG9vbHRpcFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5fdG9vbHRpcCkgJiYgdGhpcy50cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLl90b29sdGlwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7XG4gIH1cblxuICBnZXQgdG9vbHRpcCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFRvb2x0aXBUZXh0KCk7XG4gIH1cblxuICBzZXQgdG9vbHRpcCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdG9vbHRpcCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBQb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwUG9zaXRpb247XG4gIH1cblxuICBzZXQgdG9vbHRpcFBvc2l0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90b29sdGlwUG9zaXRpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB0b29sdGlwU2hvd0RlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBTaG93RGVsYXk7XG4gIH1cblxuICBzZXQgdG9vbHRpcFNob3dEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fdG9vbHRpcFNob3dEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBIaWRlRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbHRpcEhpZGVEZWxheTtcbiAgfVxuXG4gIHNldCB0b29sdGlwSGlkZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl90b29sdGlwSGlkZURlbGF5ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNSZWFkT25seTtcbiAgfVxuXG4gIHNldCBpc1JlYWRPbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRJc1JlYWRPbmx5KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRJc1JlYWRPbmx5KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gb25seSBtb2RpZml5bmcgcmVhZCBvbmx5IHN0YXRlIGlmIHRoZSBjb21wb25lbnQgaGFzIG5vdCBpdHMgb3duIHJlYWQtb25seSBpbnB1dFxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnJlYWRPbmx5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5faXNSZWFkT25seSA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIVBlcm1pc3Npb25zVXRpbHMuY2hlY2tFbmFibGVkUGVybWlzc2lvbih0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pc1JlYWRPbmx5ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgcmVhZE9ubHkoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZE9ubHk7XG4gIH1cblxuICBzZXQgcmVhZE9ubHkodmFsdWU6IGFueSkge1xuICAgIGlmICghUGVybWlzc2lvbnNVdGlscy5jaGVja0VuYWJsZWRQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gQm9vbGVhbkNvbnZlcnRlcih2YWx1ZSk7XG4gICAgdGhpcy5fcmVhZE9ubHkgPSBwYXJzZWRWYWx1ZTtcbiAgICB0aGlzLl9pc1JlYWRPbmx5ID0gcGFyc2VkVmFsdWU7XG4gIH1cblxuICBzZXQgb3JlcXVpcmVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX29yZXF1aXJlZCA9IEJvb2xlYW5Db252ZXJ0ZXIodmFsKTtcbiAgfVxuXG4gIGdldCBvcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX29yZXF1aXJlZDtcbiAgfVxuXG4gIGdldCBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9yZXF1aXJlZDtcbiAgfVxuXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3JlcXVpcmVkID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZW5hYmxlZCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgc2V0IGVuYWJsZWQodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gQm9vbGVhbkNvbnZlcnRlcih2YWx1ZSk7XG4gICAgdGhpcy5zZXRFbmFibGVkKHBhcnNlZFZhbHVlKTtcbiAgfVxuXG4gIGdldCBvbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fb2xhYmVsO1xuICB9XG5cbiAgc2V0IG9sYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fb2xhYmVsID0gdmFsdWU7XG4gIH1cblxufVxuIl19