ngx-contextual-action-bar
Version:
ngx-contextual-action-bar is an Angular2+ implementation of the [Material Design Contextual Action Bar](https://material.io/components/app-bars-top#contextual-action-bar). The implementation makes it possible to change the action bar properties (i.e. titl
83 lines • 12.9 kB
JavaScript
import { filter, map, mapTo } from 'rxjs/operators';
export class ActionBarLayerRegistration {
constructor(service, _layer) {
this.service = service;
this._layer = _layer;
this.service._addLayer(_layer);
// this.service._customElementLoaded.subscribe((s) => {})
// this.onCustomElementReady.subscribe(s => console.log(s))
}
get onCustomElementReady() {
return this.service._customElement.pipe(filter((v) => v !== undefined), filter((ev) => ev[0] === this._layer.id), map(v => v[1]));
}
// public onCustomElementReady: Observable<ComponentType<T>> = this.service._customElementLoaded.pipe(
// // filter(([id]) => id === this._layer.id),
// // take(1),
// tap(e => console.log('meme')),
// map(([,comp]) => {
// this.instance = comp;
// return comp;
// })
// )
get onButtonClick() {
return this.service.buttonEmitter.pipe(filter(id => id === this._layer.id), mapTo(undefined));
}
get onActionClick() {
return this.service.actionEmitter.pipe(filter(([id, action]) => id === this._layer.id), map(([id, action]) => action));
}
get layer() {
return this._layer;
}
/**
*
* @param layer Object containing properties to update
*/
setLayer(layer) {
const value = this.service._layers.value;
const idx = value.findIndex(e => e.id === this.layer.id);
if (idx > -1) {
value[idx] = Object.assign(value[idx], layer);
this.service._layers.next(value);
this._layer = value[idx];
}
}
unregister() {
const id = this._layer.id;
this.service._removeLayer(id);
}
}
export class ActionBarLayerToggleRegistration {
constructor(service, _layer, _toggleLayer) {
this.service = service;
this._layer = _layer;
this._toggleLayer = _toggleLayer;
this.toggled = false;
this.service._addLayer(_layer);
}
get onButtonClick() {
return this.service.buttonEmitter.pipe(filter(id => {
return id === this._layer.id || id === this._toggleLayer.id;
}), map(id => {
return id === this._layer.id ? 0 : 1;
}));
}
get onActionClick() {
return this.service.actionEmitter.pipe(filter(([id, action]) => {
return id === this._layer.id || id === this._toggleLayer.id;
}), map(([id, action]) => {
return [id === this._layer.id ? 0 : 1, action];
}));
}
toggleLayer() {
if (!this.toggled)
this.service._addLayer(this._toggleLayer);
else
this.service._removeLayer(this._toggleLayer.id);
this.toggled = !this.toggled;
}
unregister() {
this.service._removeLayer(this._layer.id);
this.service._removeLayer(this._toggleLayer.id);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL25neC1jb250ZXh0dWFsLWFjdGlvbi1iYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2xheWVyLXJlZ2lzdHJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUkvRCxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFlBQ1ksT0FBbUMsRUFDbkMsTUFBMkI7UUFEM0IsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFFbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IseURBQXlEO1FBQ3pELDJEQUEyRDtJQUMvRCxDQUFDO0lBSUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxFQUM5QixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEIsQ0FBQTtJQUNMLENBQUM7SUFDRCxzR0FBc0c7SUFDbEcsOENBQThDO0lBQzlDLGNBQWM7SUFDZCxpQ0FBaUM7SUFDakMscUJBQXFCO0lBQ3JCLDRCQUE0QjtJQUM1QixtQkFBbUI7SUFDbkIsS0FBSztJQUNULElBQUk7SUFFSixJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENB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Q0FBQyxFQUFFLENBQUE7UUFDL0QsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNqQixPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNsRCxDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7O1lBRTFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dHVhbEFjdGlvbkJhclNlcnZpY2UgfSBmcm9tICcuL25neC1jb250ZXh0dWFsLWFjdGlvbi1iYXIuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtYXBUbywgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBY3Rpb25CYXJMYXllck1vZGVsLCBBY3Rpb25CYXJMYXllciB9IGZyb20gJy4vbW9kZWwvYWN0aW9uLWJhci1sYXllci5tb2RlbCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25CYXJMYXllclJlZ2lzdHJhdGlvbjxUID0gYW55PiB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IENvbnRleHR1YWxBY3Rpb25CYXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2xheWVyOiBBY3Rpb25CYXJMYXllck1vZGVsLFxyXG4gICAgKXtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuX2FkZExheWVyKF9sYXllcik7XHJcbiAgICAgICAgLy8gdGhpcy5zZXJ2aWNlLl9jdXN0b21FbGVtZW50TG9hZGVkLnN1YnNjcmliZSgocykgPT4ge30pXHJcbiAgICAgICAgLy8gdGhpcy5vbkN1c3RvbUVsZW1lbnRSZWFkeS5zdWJzY3JpYmUocyA9PiBjb25zb2xlLmxvZyhzKSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5zdGFuY2U6IFQgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgZ2V0IG9uQ3VzdG9tRWxlbWVudFJlYWR5KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5fY3VzdG9tRWxlbWVudC5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoKHYpID0+IHYgIT09IHVuZGVmaW5lZCksXHJcbiAgICAgICAgICAgIGZpbHRlcigoZXYpID0+IGV2IVswXSA9PT0gdGhpcy5fbGF5ZXIuaWQpLFxyXG4gICAgICAgICAgICBtYXAodiA9PiB2IVsxXSlcclxuICAgICAgICApXHJcbiAgICB9XHJcbiAgICAvLyBwdWJsaWMgb25DdXN0b21FbGVtZW50UmVhZHk6IE9ic2VydmFibGU8Q29tcG9uZW50VHlwZTxUPj4gPSB0aGlzLnNlcnZpY2UuX2N1c3RvbUVsZW1lbnRMb2FkZWQucGlwZShcclxuICAgICAgICAvLyAvLyBmaWx0ZXIoKFtpZF0pID0+IGlkID09PSB0aGlzLl9sYXllci5pZCksXHJcbiAgICAgICAgLy8gLy8gdGFrZSgxKSxcclxuICAgICAgICAvLyB0YXAoZSA9PiBjb25zb2xlLmxvZygnbWVtZScpKSxcclxuICAgICAgICAvLyBtYXAoKFssY29tcF0pID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5pbnN0YW5jZSA9IGNvbXA7XHJcbiAgICAgICAgLy8gICAgIHJldHVybiBjb21wO1xyXG4gICAgICAgIC8vIH0pXHJcbiAgICAvLyApXHJcblxyXG4gICAgcHVibGljIGdldCBvbkJ1dHRvbkNsaWNrKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYnV0dG9uRW1pdHRlci5waXBlKGZpbHRlcihpZCA9PiBpZCA9PT0gdGhpcy5fbGF5ZXIuaWQpLCBtYXBUbyh1bmRlZmluZWQpKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgb25BY3Rpb25DbGljaygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYWN0aW9uRW1pdHRlci5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoKFtpZCwgYWN0aW9uXSkgPT4gaWQgPT09IHRoaXMuX2xheWVyLmlkKSxcclxuICAgICAgICAgICAgbWFwKChbaWQsIGFjdGlvbl0pID0+IGFjdGlvbilcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBsYXllcigpOiBBY3Rpb25CYXJMYXllck1vZGVsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBsYXllciBPYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIHRvIHVwZGF0ZVxyXG4gICAgICovXHJcbiAgICBzZXRMYXllcihsYXllcjogUGFydGlhbDxBY3Rpb25CYXJMYXllcj4pe1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZXJ2aWNlLl9sYXllcnMudmFsdWU7XHJcbiAgICAgICAgY29uc3QgaWR4ID0gdmFsdWUuZmluZEluZGV4KGUgPT4gZS5pZCA9PT0gdGhpcy5sYXllci5pZCk7XHJcbiAgICAgICAgaWYgKGlkeCA+IC0xKXtcclxuICAgICAgICAgICAgdmFsdWVbaWR4XSA9IE9iamVjdC5hc3NpZ24odmFsdWVbaWR4XSwgbGF5ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuX2xheWVycy5uZXh0KHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZVtpZHhdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bnJlZ2lzdGVyKCl7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9sYXllci5pZDtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuX3JlbW92ZUxheWVyKGlkKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbkJhckxheWVyVG9nZ2xlUmVnaXN0cmF0aW9uIHtcclxuICAgIHByaXZhdGUgdG9nZ2xlZCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogQ29udGV4dHVhbEFjdGlvbkJhclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbGF5ZXI6IEFjdGlvbkJhckxheWVyTW9kZWwsXHJcbiAgICAgICAgcHJpdmF0ZSBfdG9nZ2xlTGF5ZXI6IEFjdGlvbkJhckxheWVyTW9kZWxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5fYWRkTGF5ZXIoX2xheWVyKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgb25CdXR0b25DbGljaygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYnV0dG9uRW1pdHRlci5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoaWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkID09PSB0aGlzLl9sYXllci5pZCB8fCBpZCA9PT0gdGhpcy5fdG9nZ2xlTGF5ZXIuaWRcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG1hcChpZCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaWQgPT09IHRoaXMuX2xheWVyLmlkID8gMCA6IDFcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBvbkFjdGlvbkNsaWNrKCk6IE9ic2VydmFibGU8W251bWJlciwgc3RyaW5nXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYWN0aW9uRW1pdHRlci5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoKFtpZCwgYWN0aW9uXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkID09PSB0aGlzLl9sYXllci5pZCB8fCBpZCA9PT0gdGhpcy5fdG9nZ2xlTGF5ZXIuaWRcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG1hcCgoW2lkLCBhY3Rpb25dKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW2lkID09PSB0aGlzLl9sYXllci5pZCA/IDAgOiAxLCBhY3Rpb25dXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b2dnbGVMYXllcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudG9nZ2xlZClcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLl9hZGRMYXllcih0aGlzLl90b2dnbGVMYXllcik7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuX3JlbW92ZUxheWVyKHRoaXMuX3RvZ2dsZUxheWVyLmlkKVxyXG4gICAgICAgIHRoaXMudG9nZ2xlZCA9ICF0aGlzLnRvZ2dsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVucmVnaXN0ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLl9yZW1vdmVMYXllcih0aGlzLl9sYXllci5pZCk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLl9yZW1vdmVMYXllcih0aGlzLl90b2dnbGVMYXllci5pZCk7XHJcbiAgICB9XHJcbn1cclxuIl19