in projects/libs/flex-layout/core/match-media/match-media.ts [101:126]
registerQuery(mediaQuery: string | string[]) {
const list = Array.isArray(mediaQuery) ? mediaQuery : [mediaQuery];
const matches: MediaChange[] = [];
buildQueryCss(list, this._document);
list.forEach((query: string) => {
const onMQLEvent = (e: MediaQueryListEvent) => {
this._zone.run(() => this.source.next(new MediaChange(e.matches, query)));
};
let mql = this.registry.get(query);
if (!mql) {
mql = this.buildMQL(query);
mql.addListener(onMQLEvent);
this.pendingRemoveListenerFns.push(() => mql!.removeListener(onMQLEvent));
this.registry.set(query, mql);
}
if (mql.matches) {
matches.push(new MediaChange(true, query));
}
});
return matches;
}