carbon-components-angular
Version:
Next generation components
33 lines • 4.14 kB
JavaScript
import { Injectable } from "@angular/core";
import { from } from "rxjs";
import { map } from "rxjs/operators";
import { getScrollableParents, isVisibleInContainer } from "./scroll";
import * as i0 from "@angular/core";
import * as i1 from "./animation-frame.service";
export class ElementService {
constructor(singleton) {
this.singleton = singleton;
this.tick = from(this.singleton.tick);
}
visibility(target, parentElement = target) {
const scrollableParents = getScrollableParents(parentElement);
return this.tick.pipe(map(() => {
for (const parent of scrollableParents) {
if (!isVisibleInContainer(target, parent)) {
return {
visible: false
};
}
}
return {
visible: true
};
}));
}
}
ElementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ElementService, deps: [{ token: i1.AnimationFrameServiceSingleton }], target: i0.ɵɵFactoryTarget.Injectable });
ElementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ElementService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ElementService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.AnimationFrameServiceSingleton }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2VsZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBS3RFLE1BQU0sT0FBTyxjQUFjO0lBRzFCLFlBQXNCLFNBQXlDO1FBQXpDLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFtQixFQUFFLGdCQUE2QixNQUFNO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQzlCLEtBQUssTUFBTSxNQUFNLElBQUksaUJBQWlCLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQzFDLE9BQU87d0JBQ04sT0FBTyxFQUFFLEtBQUs7cUJBQ2QsQ0FBQztpQkFDRjthQUNEO1lBQ0QsT0FBTztnQkFDTixPQUFPLEVBQUUsSUFBSTthQUNiLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBckJXLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgZ2V0U2Nyb2xsYWJsZVBhcmVudHMsIGlzVmlzaWJsZUluQ29udGFpbmVyIH0gZnJvbSBcIi4vc2Nyb2xsXCI7XG5pbXBvcnQgeyBBbmltYXRpb25GcmFtZVNlcnZpY2VTaW5nbGV0b24gfSBmcm9tIFwiLi9hbmltYXRpb24tZnJhbWUuc2VydmljZVwiO1xuaW1wb3J0IHsgRWxlbWVudFZpc2liaWxpdHlFdmVudCB9IGZyb20gXCIuL2VsZW1lbnQudHlwZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRTZXJ2aWNlIHtcblx0cHJvdGVjdGVkIHRpY2s6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2luZ2xldG9uOiBBbmltYXRpb25GcmFtZVNlcnZpY2VTaW5nbGV0b24pIHtcblx0XHR0aGlzLnRpY2sgPSBmcm9tKHRoaXMuc2luZ2xldG9uLnRpY2spO1xuXHR9XG5cblx0dmlzaWJpbGl0eSh0YXJnZXQ6IEhUTUxFbGVtZW50LCBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRhcmdldCk6IE9ic2VydmFibGU8RWxlbWVudFZpc2liaWxpdHlFdmVudD4ge1xuXHRcdGNvbnN0IHNjcm9sbGFibGVQYXJlbnRzID0gZ2V0U2Nyb2xsYWJsZVBhcmVudHMocGFyZW50RWxlbWVudCk7XG5cdFx0cmV0dXJuIHRoaXMudGljay5waXBlKG1hcCgoKSA9PiB7XG5cdFx0XHRmb3IgKGNvbnN0IHBhcmVudCBvZiBzY3JvbGxhYmxlUGFyZW50cykge1xuXHRcdFx0XHRpZiAoIWlzVmlzaWJsZUluQ29udGFpbmVyKHRhcmdldCwgcGFyZW50KSkge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR2aXNpYmxlOiBmYWxzZVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHZpc2libGU6IHRydWVcblx0XHRcdH07XG5cdFx0fSkpO1xuXHR9XG59XG4iXX0=