sb-element
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.1. It is a component library constructed around the SCSS library [Sb-Theming](https://github.com/SeverinBuchser/SbTheming) and supports [Angular Schematics]
41 lines • 4.46 kB
JavaScript
import { EventEmitter } from "@angular/core";
export function mixinFocus(core) {
return class extends core {
constructor(...args) {
super(...args);
this._focused = false;
this.focus = new EventEmitter();
this.blur = new EventEmitter();
}
get focused() {
return this._focused;
}
set focused(isFocused) {
if (isFocused !== this._focused) {
if (isFocused) {
this.emitFocus();
}
else {
this.emitBlur();
}
}
this._focused = isFocused;
}
setFocusedState(isFocused) {
this.focused = isFocused;
}
emitFocus() {
this.onFocus();
this.focus.emit();
}
emitBlur() {
this.onBlur();
this.blur.emit();
}
onFocus() { }
;
onBlur() { }
;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zYi1lbGVtZW50L3NyYy9saWIvY29yZS9jb21tb24tYmVoYXZpb3JzL2ZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFjN0MsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsSUFBTztJQUVQLE9BQU8sS0FBTSxTQUFRLElBQUk7UUFxQ3ZCLFlBQVksR0FBRyxJQUFnQjtZQUM3QixLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQXJDVCxhQUFRLEdBQVksS0FBSyxDQUFDO1lBRTNCLFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztZQUNyRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFtQzNELENBQUM7UUFqQ0QsSUFBSSxPQUFPO1lBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFrQjtZQUM1QixJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUMvQixJQUFJLFNBQVMsRUFBRTtvQkFDYixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQ2xCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDakI7YUFDRjtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzVCLENBQUM7UUFFTSxlQUFlLENBQUMsU0FBa0I7WUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDM0IsQ0FBQztRQUVPLFNBQVM7WUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFFTyxRQUFRO1lBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBRVMsT0FBTyxLQUFVLENBQUM7UUFBQSxDQUFDO1FBQ25CLE1BQU0sS0FBVSxDQUFDO1FBQUEsQ0FBQztLQUs3QixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29uc3RydWN0b3IsIENvbnN0cnVjdG9yIH0gZnJvbSBcIi4vY29uc3RydWN0b3JcIjtcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuRm9jdXMge1xuICBmb2N1c2VkOiBib29sZWFuO1xuICBzZXRGb2N1c2VkU3RhdGUoaXNGb2N1c2VkOiBib29sZWFuKTogdm9pZDtcbiAgZm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbiAgYmx1cjogRXZlbnRFbWl0dGVyPHZvaWQ+O1xufVxuXG50eXBlIENhbkZvY3VzQ3RvciA9IENvbnN0cnVjdG9yPENhbkZvY3VzPiAmIEFic3RyYWN0Q29uc3RydWN0b3I8Q2FuRm9jdXM+O1xuXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5Gb2N1czxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3Rvcjx7fT4+KFxuICBjb3JlOiBUXG4pOiBDYW5Gb2N1c0N0b3IgJiBUO1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRm9jdXM8VCBleHRlbmRzIENvbnN0cnVjdG9yPHt9Pj4oXG4gIGNvcmU6IFRcbik6IENhbkZvY3VzQ3RvciAmIFQge1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBjb3JlIHtcbiAgICBwcml2YXRlIF9mb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBwdWJsaWMgYmx1cjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZDtcbiAgICB9XG4gICAgc2V0IGZvY3VzZWQoaXNGb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICBpZiAoaXNGb2N1c2VkICE9PSB0aGlzLl9mb2N1c2VkKSB7XG4gICAgICAgIGlmIChpc0ZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLmVtaXRGb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZW1pdEJsdXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5fZm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Rm9jdXNlZFN0YXRlKGlzRm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgdGhpcy5mb2N1c2VkID0gaXNGb2N1c2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdEZvY3VzKCk6IHZvaWQge1xuICAgICAgdGhpcy5vbkZvY3VzKCk7XG4gICAgICB0aGlzLmZvY3VzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRCbHVyKCk6IHZvaWQge1xuICAgICAgdGhpcy5vbkJsdXIoKTtcbiAgICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXMoKTogdm9pZCB7fTtcbiAgICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge307XG5cbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiBBcnJheTxhbnk+KSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==