@foblex/flow
Version:
An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.
29 lines • 3.34 kB
JavaScript
import { FChannel } from './f-channel';
export class FResizeChannel extends FChannel {
_htmlElement;
_observer = new ResizeObserver(() => this.notify());
_isObserving = false;
constructor(_htmlElement) {
super();
this._htmlElement = _htmlElement;
}
listen(callback) {
if (!this._isObserving) {
this._observer.observe(this._htmlElement);
this._isObserving = true;
}
return super.listen(callback);
}
stop(callback) {
super.stop(callback);
if (this._listeners.size === 0) {
this._disconnect();
}
}
_disconnect() {
this._observer.unobserve(this._htmlElement);
this._observer.disconnect();
this._isObserving = false;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZXNpemUtY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvcmVhY3Rpdml0eS9mLXJlc2l6ZS1jaGFubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBTXRCO0lBSlosU0FBUyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXBELFlBQVksR0FBRyxLQUFLLENBQUM7SUFFN0IsWUFBb0IsWUFBc0M7UUFDeEQsS0FBSyxFQUFFLENBQUM7UUFEVSxpQkFBWSxHQUFaLFlBQVksQ0FBMEI7SUFFMUQsQ0FBQztJQUVlLE1BQU0sQ0FBQyxRQUEwQjtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFZSxJQUFJLENBQUMsUUFBMEI7UUFDN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkNoYW5uZWxMaXN0ZW5lciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRkNoYW5uZWwgfSBmcm9tICcuL2YtY2hhbm5lbCc7XG5cbmV4cG9ydCBjbGFzcyBGUmVzaXplQ2hhbm5lbCBleHRlbmRzIEZDaGFubmVsIHtcblxuICBwcml2YXRlIF9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLm5vdGlmeSgpKTtcblxuICBwcml2YXRlIF9pc09ic2VydmluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0bWxFbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGxpc3RlbihjYWxsYmFjazogRkNoYW5uZWxMaXN0ZW5lcik6ICgpID0+IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNPYnNlcnZpbmcpIHtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faHRtbEVsZW1lbnQpO1xuICAgICAgdGhpcy5faXNPYnNlcnZpbmcgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIubGlzdGVuKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzdG9wKGNhbGxiYWNrOiBGQ2hhbm5lbExpc3RlbmVyKTogdm9pZCB7XG4gICAgc3VwZXIuc3RvcChjYWxsYmFjayk7XG4gICAgaWYgKHRoaXMuX2xpc3RlbmVycy5zaXplID09PSAwKSB7XG4gICAgICB0aGlzLl9kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlci51bm9ic2VydmUodGhpcy5faHRtbEVsZW1lbnQpO1xuICAgIHRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9pc09ic2VydmluZyA9IGZhbHNlO1xuICB9XG59XG4iXX0=