@ngbracket/ngx-layout
Version:
ngbracket/ngx-layout =======
1 lines • 46.6 kB
Source Map (JSON)
{"version":3,"file":"ngbracket-ngx-layout-server.mjs","sources":["../tmp-esm2022/server/server-match-media.js","../tmp-esm2022/server/server-provider.js","../tmp-esm2022/server/module.js","../tmp-esm2022/server/ngbracket-ngx-layout-server.js"],"sourcesContent":["import { Inject, Injectable, NgZone, PLATFORM_ID, DOCUMENT } from '@angular/core';\nimport { BREAKPOINTS, LAYOUT_CONFIG, ɵMatchMedia as MatchMedia, } from '@ngbracket/ngx-layout/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Special server-only class to simulate a MediaQueryList and\n * - supports manual activation to simulate mediaQuery matching\n * - manages listeners\n */\nexport class ServerMediaQueryList extends EventTarget {\n get matches() {\n return this._isActive;\n }\n get media() {\n return this._mediaQuery;\n }\n constructor(_mediaQuery, _isActive = false) {\n super();\n this._mediaQuery = _mediaQuery;\n this._isActive = _isActive;\n this._listeners = [];\n this.onchange = null;\n }\n /**\n * Destroy the current list by deactivating the\n * listeners and clearing the internal list\n */\n destroy() {\n this.deactivate();\n this._listeners = [];\n }\n /** Notify all listeners that 'matches === TRUE' */\n activate() {\n if (!this._isActive) {\n this._isActive = true;\n this._listeners.forEach((callback) => {\n const cb = callback;\n cb.call(this, {\n matches: this.matches,\n media: this.media,\n });\n });\n }\n return this;\n }\n /** Notify all listeners that 'matches === false' */\n deactivate() {\n if (this._isActive) {\n this._isActive = false;\n this._listeners.forEach((callback) => {\n const cb = callback;\n cb.call(this, {\n matches: this.matches,\n media: this.media,\n });\n });\n }\n return this;\n }\n /** Add a listener to our internal list to activate later */\n addListener(listener) {\n if (this._listeners.indexOf(listener) === -1) {\n this._listeners.push(listener);\n }\n if (this._isActive) {\n const cb = listener;\n cb.call(this, {\n matches: this.matches,\n media: this.media,\n });\n }\n }\n /** Don't need to remove listeners in the server environment */\n removeListener() { }\n addEventListener() { }\n removeEventListener() { }\n dispatchEvent(_) {\n return false;\n }\n}\n/**\n * Special server-only implementation of MatchMedia that uses the above\n * ServerMediaQueryList as its internal representation\n *\n * Also contains methods to activate and deactivate breakpoints\n */\nexport class ServerMatchMedia extends MatchMedia {\n constructor(_zone, _platformId, _document, breakpoints, layoutConfig) {\n super(_zone, _platformId, _document);\n this._zone = _zone;\n this._platformId = _platformId;\n this._document = _document;\n this.breakpoints = breakpoints;\n this.layoutConfig = layoutConfig;\n this._activeBreakpoints = [];\n const serverBps = layoutConfig.ssrObserveBreakpoints;\n if (serverBps) {\n this._activeBreakpoints = serverBps.reduce((acc, serverBp) => {\n const foundBp = breakpoints.find((bp) => serverBp === bp.alias);\n if (!foundBp) {\n console.warn(`FlexLayoutServerModule: unknown breakpoint alias \"${serverBp}\"`);\n }\n else {\n acc.push(foundBp);\n }\n return acc;\n }, []);\n }\n }\n /** Activate the specified breakpoint if we're on the server, no-op otherwise */\n activateBreakpoint(bp) {\n const lookupBreakpoint = this.registry.get(bp.mediaQuery);\n if (lookupBreakpoint) {\n lookupBreakpoint.activate();\n }\n }\n /** Deactivate the specified breakpoint if we're on the server, no-op otherwise */\n deactivateBreakpoint(bp) {\n const lookupBreakpoint = this.registry.get(bp.mediaQuery);\n if (lookupBreakpoint) {\n lookupBreakpoint.deactivate();\n }\n }\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n buildMQL(query) {\n const isActive = this._activeBreakpoints.some((ab) => ab.mediaQuery === query);\n return new ServerMediaQueryList(query, isActive);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: ServerMatchMedia, deps: [{ token: i0.NgZone }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: BREAKPOINTS }, { token: LAYOUT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: ServerMatchMedia }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: ServerMatchMedia, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.NgZone }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [BREAKPOINTS]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [LAYOUT_CONFIG]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLW1hdGNoLW1lZGlhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlicy9mbGV4LWxheW91dC9zZXJ2ZXIvc2VydmVyLW1hdGNoLW1lZGlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFFTCxXQUFXLEVBQ1gsYUFBYSxFQUViLFdBQVcsSUFBSSxVQUFVLEdBQzFCLE1BQU0sNEJBQTRCLENBQUM7O0FBRXBDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sb0JBQ1gsU0FBUSxXQUFXO0lBS25CLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUNVLFdBQW1CLEVBQ25CLFlBQVksS0FBSztRQUV6QixLQUFLLEVBQUUsQ0FBQztRQUhBLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFabkIsZUFBVSxHQUE2QixFQUFFLENBQUM7UUFvRmxELGFBQVEsR0FBMkIsSUFBSSxDQUFDO0lBckV4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsbURBQW1EO0lBQ25ELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFF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bXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSwgUExBVEZPUk1fSUQsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCcmVha1BvaW50LFxuICBCUkVBS1BPSU5UUyxcbiAgTEFZT1VUX0NPTkZJRyxcbiAgTGF5b3V0Q29uZmlnT3B0aW9ucyxcbiAgybVNYXRjaE1lZGlhIGFzIE1hdGNoTWVkaWEsXG59IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWFsIHNlcnZlci1vbmx5IGNsYXNzIHRvIHNpbXVsYXRlIGEgTWVkaWFRdWVyeUxpc3QgYW5kXG4gKiAtIHN1cHBvcnRzIG1hbnVhbCBhY3RpdmF0aW9uIHRvIHNpbXVsYXRlIG1lZGlhUXVlcnkgbWF0Y2hpbmdcbiAqIC0gbWFuYWdlcyBsaXN0ZW5lcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlck1lZGlhUXVlcnlMaXN0XG4gIGV4dGVuZHMgRXZlbnRUYXJnZXRcbiAgaW1wbGVtZW50cyBNZWRpYVF1ZXJ5TGlzdFxue1xuICBwcml2YXRlIF9saXN0ZW5lcnM6IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJbXSA9IFtdO1xuXG4gIGdldCBtYXRjaGVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0FjdGl2ZTtcbiAgfVxuXG4gIGdldCBtZWRpYSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYVF1ZXJ5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWVkaWFRdWVyeTogc3RyaW5nLFxuICAgIHByaXZhdGUgX2lzQWN0aXZlID0gZmFsc2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveSB0aGUgY3VycmVudCBsaXN0IGJ5IGRlYWN0aXZhdGluZyB0aGVcbiAgICogbGlzdGVuZXJzIGFuZCBjbGVhcmluZyB0aGUgaW50ZXJuYWwgbGlzdFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB0aGlzLl9saXN0ZW5lcnMgPSBbXTtcbiAgfVxuXG4gIC8qKiBOb3RpZnkgYWxsIGxpc3RlbmVycyB0aGF0ICdtYXRjaGVzID09PSBUUlVFJyAqL1xuICBhY3RpdmF0ZSgpOiBTZXJ2ZXJNZWRpYVF1ZXJ5TGlzdCB7XG4gICAgaWYgKCF0aGlzLl9pc0FjdGl2ZSkge1xuICAgICAgdGhpcy5faXNBY3RpdmUgPSB0cnVlO1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IGNiOiAodGhpczogTWVkaWFRdWVyeUxpc3QsIGV2OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBhbnkgPVxuICAgICAgICAgIGNhbGxiYWNrITtcbiAgICAgICAgY2IuY2FsbCh0aGlzLCB7XG4gICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgIG1lZGlhOiB0aGlzLm1lZGlhLFxuICAgICAgICB9IGFzIE1lZGlhUXVlcnlMaXN0RXZlbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIE5vdGlmeSBhbGwgbGlzdGVuZXJzIHRoYXQgJ21hdGNoZXMgPT09IGZhbHNlJyAqL1xuICBkZWFjdGl2YXRlKCk6IFNlcnZlck1lZGlhUXVlcnlMaXN0IHtcbiAgICBpZiAodGhpcy5faXNBY3RpdmUpIHtcbiAgICAgIHRoaXMuX2lzQWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLl9saXN0ZW5lcnMuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcbiAgICAgICAgY29uc3QgY2I6ICh0aGlzOiBNZWRpYVF1ZXJ5TGlzdCwgZXY6IE1lZGlhUXVlcnlMaXN0RXZlbnQpID0+IGFueSA9XG4gICAgICAgICAgY2FsbGJhY2shO1xuICAgICAgICBjYi5jYWxsKHRoaXMsIHtcbiAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgbWVkaWE6IHRoaXMubWVkaWEsXG4gICAgICAgIH0gYXMgTWVkaWFRdWVyeUxpc3RFdmVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQWRkIGEgbGlzdGVuZXIgdG8gb3VyIGludGVybmFsIGxpc3QgdG8gYWN0aXZhdGUgbGF0ZXIgKi9cbiAgYWRkTGlzdGVuZXIobGlzdGVuZXI6IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpIHtcbiAgICBpZiAodGhpcy5fbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpID09PSAtMSkge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5faXNBY3RpdmUpIHtcbiAgICAgIGNvbnN0IGNiOiAodGhpczogTWVkaWFRdWVyeUxpc3QsIGV2OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBhbnkgPVxuICAgICAgICBsaXN0ZW5lciE7XG4gICAgICBjYi5jYWxsKHRoaXMsIHtcbiAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICBtZWRpYTogdGhpcy5tZWRpYSxcbiAgICAgIH0gYXMgTWVkaWFRdWVyeUxpc3RFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIERvbid0IG5lZWQgdG8gcmVtb3ZlIGxpc3RlbmVycyBpbiB0aGUgc2VydmVyIGVudmlyb25tZW50ICovXG4gIHJlbW92ZUxpc3RlbmVyKCkge31cblxuICBvdmVycmlkZSBhZGRFdmVudExpc3RlbmVyKCkge31cblxuICBvdmVycmlkZSByZW1vdmVFdmVudExpc3RlbmVyKCkge31cblxuICBvdmVycmlkZSBkaXNwYXRjaEV2ZW50KF86IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25jaGFuZ2U6IE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgPSBudWxsO1xufVxuXG4vKipcbiAqIFNwZWNpYWwgc2VydmVyLW9ubHkgaW1wbGVtZW50YXRpb24gb2YgTWF0Y2hNZWRpYSB0aGF0IHVzZXMgdGhlIGFib3ZlXG4gKiBTZXJ2ZXJNZWRpYVF1ZXJ5TGlzdCBhcyBpdHMgaW50ZXJuYWwgcmVwcmVzZW50YXRpb25cbiAqXG4gKiBBbHNvIGNvbnRhaW5zIG1ldGhvZHMgdG8gYWN0aXZhdGUgYW5kIGRlYWN0aXZhdGUgYnJlYWtwb2ludHNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlcnZlck1hdGNoTWVkaWEgZXh0ZW5kcyBNYXRjaE1lZGlhIHtcbiAgcHJpdmF0ZSBfYWN0aXZlQnJlYWtwb2ludHM6IEJyZWFrUG9pbnRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfem9uZTogTmdab25lLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByb3RlY3RlZCBvdmVycmlkZSBfcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByb3RlY3RlZCBvdmVycmlkZSBfZG9jdW1lbnQ6IGFueSxcbiAgICBASW5qZWN0KEJSRUFLUE9JTlRTKSBwcm90ZWN0ZWQgYnJlYWtwb2ludHM6IEJyZWFrUG9pbnRbXSxcbiAgICBASW5qZWN0KExBWU9VVF9DT05GSUcpIHByb3RlY3RlZCBsYXlvdXRDb25maWc6IExheW91dENvbmZpZ09wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKF96b25lLCBfcGxhdGZvcm1JZCwgX2RvY3VtZW50KTtcblxuICAgIGNvbnN0IHNlcnZlckJwcyA9IGxheW91dENvbmZpZy5zc3JPYnNlcnZlQnJlYWtwb2ludHM7XG4gICAgaWYgKHNlcnZlckJwcykge1xuICAgICAgdGhpcy5fYWN0aXZlQnJlYWtwb2ludHMgPSBzZXJ2ZXJCcHMucmVkdWNlKFxuICAgICAgICAoYWNjOiBCcmVha1BvaW50W10sIHNlcnZlckJwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3VuZEJwID0gYnJlYWtwb2ludHMuZmluZCgoYnApID0+IHNlcnZlckJwID09PSBicC5hbGlhcyk7XG4gICAgICAgICAgaWYgKCFmb3VuZEJwKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBGbGV4TGF5b3V0U2VydmVyTW9kdWxlOiB1bmtub3duIGJyZWFrcG9pbnQgYWxpYXMgXCIke3NlcnZlckJwfVwiYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGZvdW5kQnApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICBbXSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFjdGl2YXRlIHRoZSBzcGVjaWZpZWQgYnJlYWtwb2ludCBpZiB3ZSdyZSBvbiB0aGUgc2VydmVyLCBuby1vcCBvdGhlcndpc2UgKi9cbiAgYWN0aXZhdGVCcmVha3BvaW50KGJwOiBCcmVha1BvaW50KSB7XG4gICAgY29uc3QgbG9va3VwQnJlYWtwb2ludCA9IHRoaXMucmVnaXN0cnkuZ2V0KFxuICAgICAgYnAubWVkaWFRdWVyeSxcbiAgICApIGFzIFNlcnZlck1lZGlhUXVlcnlMaXN0O1xuICAgIGlmIChsb29rdXBCcmVha3BvaW50KSB7XG4gICAgICBsb29rdXBCcmVha3BvaW50LmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIERlYWN0aXZhdGUgdGhlIHNwZWNpZmllZCBicmVha3BvaW50IGlmIHdlJ3JlIG9uIHRoZSBzZXJ2ZXIsIG5vLW9wIG90aGVyd2lzZSAqL1xuICBkZWFjdGl2YXRlQnJlYWtwb2ludChicDogQnJlYWtQb2ludCkge1xuICAgIGNvbnN0IGxvb2t1cEJyZWFrcG9pbnQgPSB0aGlzLnJlZ2lzdHJ5LmdldChcbiAgICAgIGJwLm1lZGlhUXVlcnksXG4gICAgKSBhcyBTZXJ2ZXJNZWRpYVF1ZXJ5TGlzdDtcbiAgICBpZiAobG9va3VwQnJlYWtwb2ludCkge1xuICAgICAgbG9va3VwQnJlYWtwb2ludC5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgd2luZG93Lm1hdGNoTWVkaWEoKSB0byBidWlsZCBhIE1lZGlhUXVlcnlMaXN0OyB3aGljaFxuICAgKiBzdXBwb3J0cyAwLi5uIGxpc3RlbmVycyBmb3IgYWN0aXZhdGlvbi9kZWFjdGl2YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBidWlsZE1RTChxdWVyeTogc3RyaW5nKTogU2VydmVyTWVkaWFRdWVyeUxpc3Qge1xuICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5fYWN0aXZlQnJlYWtwb2ludHMuc29tZShcbiAgICAgIChhYikgPT4gYWIubWVkaWFRdWVyeSA9PT0gcXVlcnksXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgU2VydmVyTWVkaWFRdWVyeUxpc3QocXVlcnksIGlzQWN0aXZlKTtcbiAgfVxufVxuXG50eXBlIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgPVxuICB8ICgodGhpczogTWVkaWFRdWVyeUxpc3QsIGV2OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBhbnkpXG4gIHwgbnVsbDtcbiJdfQ==","import { BEFORE_APP_SERIALIZED } from '@angular/platform-server';\nimport { BREAKPOINTS, CLASS_NAME, ɵMatchMedia as MatchMedia, MediaMarshaller, SERVER_TOKEN, sortAscendingPriority, StylesheetMap, } from '@ngbracket/ngx-layout/core';\nimport { CSP_NONCE, Inject, Optional, DOCUMENT } from '@angular/core';\nimport { ServerMatchMedia } from './server-match-media';\n/**\n * Activate all the registered breakpoints in sequence, and then\n * retrieve the associated stylings from the virtual stylesheet\n * @param serverSheet the virtual stylesheet that stores styles for each\n * element\n * @param mediaController the MatchMedia service to activate/deactivate breakpoints\n * @param breakpoints the registered breakpoints to activate/deactivate\n * @param mediaMarshaller the MediaMarshaller service to disable fallback styles dynamically\n */\nexport function generateStaticFlexLayoutStyles(serverSheet, mediaController, breakpoints, mediaMarshaller) {\n // Store the custom classes in the following map, that way only\n // one class gets allocated per HTMLElement, and each class can\n // be referenced in the static media queries\n const classMap = new Map();\n // Get the initial stylings for all the directives,\n // and initialize the fallback block of stylings.\n const defaultStyles = new Map(serverSheet.stylesheet);\n // Reset the class counter, otherwise class numbers will\n // increase with each server render.\n nextId = 0;\n let styleText = generateCss(defaultStyles, 'all', classMap);\n mediaMarshaller.useFallbacks = false;\n [...breakpoints].sort(sortAscendingPriority).forEach((bp) => {\n serverSheet.clearStyles();\n mediaController.activateBreakpoint(bp);\n const stylesheet = new Map(serverSheet.stylesheet);\n if (stylesheet.size > 0) {\n styleText += generateCss(stylesheet, bp.mediaQuery, classMap);\n }\n mediaController.deactivateBreakpoint(bp);\n });\n return styleText;\n}\n/**\n * Create a style tag populated with the dynamic stylings from Flex\n * components and attach it to the head of the DOM\n */\nexport function FLEX_SSR_SERIALIZER_FACTORY(serverSheet, mediaController, _document, breakpoints, mediaMarshaller, _nonce) {\n return () => {\n // This is the style tag that gets inserted into the head of the DOM,\n // populated with the manual media queries\n const styleTag = _document.createElement('style');\n if (_nonce) {\n styleTag.setAttribute('nonce', _nonce);\n }\n const styleText = generateStaticFlexLayoutStyles(serverSheet, mediaController, breakpoints, mediaMarshaller);\n styleTag.classList.add(`${CLASS_NAME}ssr`);\n styleTag.textContent = styleText;\n _document.head.appendChild(styleTag);\n };\n}\n/**\n * Provider to set static styles on the server\n */\nexport const SERVER_PROVIDERS = [\n {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: FLEX_SSR_SERIALIZER_FACTORY,\n deps: [\n StylesheetMap,\n MatchMedia,\n DOCUMENT,\n BREAKPOINTS,\n MediaMarshaller,\n [new Optional(), new Inject(CSP_NONCE)],\n ],\n multi: true,\n },\n {\n provide: SERVER_TOKEN,\n useValue: true,\n },\n {\n provide: MatchMedia,\n useClass: ServerMatchMedia,\n },\n];\nlet nextId = 0;\nconst IS_DEBUG_MODE = false;\n/**\n * create @media queries based on a virtual stylesheet\n * * Adds a unique class to each element and stores it\n * in a shared classMap for later reuse\n * @param stylesheet the virtual stylesheet that stores styles for each\n * element\n * @param mediaQuery the given @media CSS selector for the current breakpoint\n * @param classMap the map of HTML elements to class names to avoid duplications\n */\nfunction generateCss(stylesheet, mediaQuery, classMap) {\n let css = '';\n stylesheet.forEach((styles, el) => {\n let keyVals = '';\n let className = getClassName(el, classMap);\n styles.forEach((v, k) => {\n keyVals += v ? format(`${k}:${v};`) : '';\n });\n if (keyVals) {\n // Build list of CSS styles; each with a className\n css += format(`.${className} {`, keyVals, '}');\n }\n });\n // Group 1 or more styles (each with className) in a specific mediaQuery\n return format(`@media ${mediaQuery} {`, css, '}');\n}\n/**\n * For debugging purposes, prefix css segment with linefeed(s) for easy\n * debugging purposes.\n */\nfunction format(...list) {\n let result = '';\n list.forEach((css, i) => {\n result += IS_DEBUG_MODE ? formatSegment(css, i !== 0) : css;\n });\n return result;\n}\nfunction formatSegment(css, asPrefix = true) {\n return asPrefix ? `\\n${css}` : `${css}\\n`;\n}\n/**\n * Get className associated with CSS styling\n * If not found, generate global className and set\n * association.\n */\nfunction getClassName(element, classMap) {\n let className = classMap.get(element);\n if (!className) {\n className = `${CLASS_NAME}${nextId++}`;\n classMap.set(element, className);\n }\n element.classList.add(className);\n return className;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlicy9mbGV4LWxheW91dC9zZXJ2ZXIvc2VydmVyLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFFTCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFdBQVcsSUFBSSxVQUFVLEVBQ3pCLGVBQWUsRUFDZixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGFBQWEsR0FDZCxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsOEJBQThCLENBQzVDLFdBQTBCLEVBQzFCLGVBQWlDLEVBQ2pDLFdBQXlCLEVBQ3pCLGVBQWdDO0lBRWhDLCtEQUErRDtJQUMvRCwrREFBK0Q7SUFDL0QsNENBQTRDO0lBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO0lBRWhELG1EQUFtRDtJQUNuRCxpREFBaUQ7SUFDakQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELHdEQUF3RDtJQUN4RCxvQ0FBb0M7SUFDcEMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELGVBQWUsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRXJDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUMxRCxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsU0FBUyxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsV0FBMEIsRUFDMUIsZUFBaUMsRUFDakMsU0FBbUIsRUFDbkIsV0FBeUIsRUFDekIsZUFBZ0MsRUFDaEMsTUFBZTtJQUVmLE9BQU8sR0FBRyxFQUFFO1FBQ1YscUVBQXFFO1FBQ3JFLDBDQUEwQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsOEJBQThCLENBQzlDLFdBQVcsRUFDWCxlQUFlLEVBQ2YsV0FBVyxFQUNYLGVBQWUsQ0FDaEIsQ0FBQztRQUNGLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxLQUFLLENBQUMsQ0FBQztRQUMzQyxRQUFRLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QjtRQUNFLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsVUFBVSxFQUFFLDJCQUEyQjtRQUN2QyxJQUFJLEVBQUU7WUFDSixhQUFhO1lBQ2IsVUFBVTtZQUNWLFFBQVE7WUFDUixXQUFXO1lBQ1gsZUFBZTtZQUNmLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4QztRQUNELEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO0tBQ2Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFFBQVEsRUFBRSxnQkFBZ0I7S0FDM0I7Q0FDRixDQUFDO0FBRUYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDO0FBSzVCOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxXQUFXLENBQ2xCLFVBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLFFBQWtCO0lBRWxCLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNiLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDaEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLGtEQUFrRDtZQUNsRCxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksU0FBUyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILHdFQUF3RTtJQUN4RSxPQUFPLE1BQU0sQ0FBQyxVQUFVLFVBQVUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxNQUFNLENBQUMsR0FBRyxJQUFjO0lBQy9CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsR0FBVyxFQUFFLFdBQW9CLElBQUk7SUFDMUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFlBQVksQ0FDbkIsT0FBb0IsRUFDcEIsUUFBa0M7SUFFbEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixTQUFTLEdBQUcsR0FBRyxVQUFVLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUN2QyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFakMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQkVGT1JFX0FQUF9TRVJJQUxJWkVEIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tc2VydmVyJztcbmltcG9ydCB7XG4gIEJyZWFrUG9pbnQsXG4gIEJSRUFLUE9JTlRTLFxuICBDTEFTU19OQU1FLFxuICDJtU1hdGNoTWVkaWEgYXMgTWF0Y2hNZWRpYSxcbiAgTWVkaWFNYXJzaGFsbGVyLFxuICBTRVJWRVJfVE9LRU4sXG4gIHNvcnRBc2NlbmRpbmdQcmlvcml0eSxcbiAgU3R5bGVzaGVldE1hcCxcbn0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0L2NvcmUnO1xuXG5pbXBvcnQgeyBDU1BfTk9OQ0UsIEluamVjdCwgT3B0aW9uYWwsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXJ2ZXJNYXRjaE1lZGlhIH0gZnJvbSAnLi9zZXJ2ZXItbWF0Y2gtbWVkaWEnO1xuXG4vKipcbiAqIEFjdGl2YXRlIGFsbCB0aGUgcmVnaXN0ZXJlZCBicmVha3BvaW50cyBpbiBzZXF1ZW5jZSwgYW5kIHRoZW5cbiAqIHJldHJpZXZlIHRoZSBhc3NvY2lhdGVkIHN0eWxpbmdzIGZyb20gdGhlIHZpcnR1YWwgc3R5bGVzaGVldFxuICogQHBhcmFtIHNlcnZlclNoZWV0IHRoZSB2aXJ0dWFsIHN0eWxlc2hlZXQgdGhhdCBzdG9yZXMgc3R5bGVzIGZvciBlYWNoXG4gKiAgICAgICAgZWxlbWVudFxuICogQHBhcmFtIG1lZGlhQ29udHJvbGxlciB0aGUgTWF0Y2hNZWRpYSBzZXJ2aWNlIHRvIGFjdGl2YXRlL2RlYWN0aXZhdGUgYnJlYWtwb2ludHNcbiAqIEBwYXJhbSBicmVha3BvaW50cyB0aGUgcmVnaXN0ZXJlZCBicmVha3BvaW50cyB0byBhY3RpdmF0ZS9kZWFjdGl2YXRlXG4gKiBAcGFyYW0gbWVkaWFNYXJzaGFsbGVyIHRoZSBNZWRpYU1hcnNoYWxsZXIgc2VydmljZSB0byBkaXNhYmxlIGZhbGxiYWNrIHN0eWxlcyBkeW5hbWljYWxseVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVTdGF0aWNGbGV4TGF5b3V0U3R5bGVzKFxuICBzZXJ2ZXJTaGVldDogU3R5bGVzaGVldE1hcCxcbiAgbWVkaWFDb250cm9sbGVyOiBTZXJ2ZXJNYXRjaE1lZGlhLFxuICBicmVha3BvaW50czogQnJlYWtQb2ludFtdLFxuICBtZWRpYU1hcnNoYWxsZXI6IE1lZGlhTWFyc2hhbGxlcixcbikge1xuICAvLyBTdG9yZSB0aGUgY3VzdG9tIGNsYXNzZXMgaW4gdGhlIGZvbGxvd2luZyBtYXAsIHRoYXQgd2F5IG9ubHlcbiAgLy8gb25lIGNsYXNzIGdldHMgYWxsb2NhdGVkIHBlciBIVE1MRWxlbWVudCwgYW5kIGVhY2ggY2xhc3MgY2FuXG4gIC8vIGJlIHJlZmVyZW5jZWQgaW4gdGhlIHN0YXRpYyBtZWRpYSBxdWVyaWVzXG4gIGNvbnN0IGNsYXNzTWFwID0gbmV3IE1hcDxIVE1MRWxlbWVudCwgc3RyaW5nPigpO1xuXG4gIC8vIEdldCB0aGUgaW5pdGlhbCBzdHlsaW5ncyBmb3IgYWxsIHRoZSBkaXJlY3RpdmVzLFxuICAvLyBhbmQgaW5pdGlhbGl6ZSB0aGUgZmFsbGJhY2sgYmxvY2sgb2Ygc3R5bGluZ3MuXG4gIGNvbnN0IGRlZmF1bHRTdHlsZXMgPSBuZXcgTWFwKHNlcnZlclNoZWV0LnN0eWxlc2hlZXQpO1xuICAvLyBSZXNldCB0aGUgY2xhc3MgY291bnRlciwgb3RoZXJ3aXNlIGNsYXNzIG51bWJlcnMgd2lsbFxuICAvLyBpbmNyZWFzZSB3aXRoIGVhY2ggc2VydmVyIHJlbmRlci5cbiAgbmV4dElkID0gMDtcbiAgbGV0IHN0eWxlVGV4dCA9IGdlbmVyYXRlQ3NzKGRlZmF1bHRTdHlsZXMsICdhbGwnLCBjbGFzc01hcCk7XG4gIG1lZGlhTWFyc2hhbGxlci51c2VGYWxsYmFja3MgPSBmYWxzZTtcblxuICBbLi4uYnJlYWtwb2ludHNdLnNvcnQoc29ydEFzY2VuZGluZ1ByaW9yaXR5KS5mb3JFYWNoKChicCkgPT4ge1xuICAgIHNlcnZlclNoZWV0LmNsZWFyU3R5bGVzKCk7XG4gICAgbWVkaWFDb250cm9sbGVyLmFjdGl2YXRlQnJlYWtwb2ludChicCk7XG4gICAgY29uc3Qgc3R5bGVzaGVldCA9IG5ldyBNYXAoc2VydmVyU2hlZXQuc3R5bGVzaGVldCk7XG4gICAgaWYgKHN0eWxlc2hlZXQuc2l6ZSA+IDApIHtcbiAgICAgIHN0eWxlVGV4dCArPSBnZW5lcmF0ZUNzcyhzdHlsZXNoZWV0LCBicC5tZWRpYVF1ZXJ5LCBjbGFzc01hcCk7XG4gICAgfVxuICAgIG1lZGlhQ29udHJvbGxlci5kZWFjdGl2YXRlQnJlYWtwb2ludChicCk7XG4gIH0pO1xuXG4gIHJldHVybiBzdHlsZVRleHQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc3R5bGUgdGFnIHBvcHVsYXRlZCB3aXRoIHRoZSBkeW5hbWljIHN0eWxpbmdzIGZyb20gRmxleFxuICogY29tcG9uZW50cyBhbmQgYXR0YWNoIGl0IHRvIHRoZSBoZWFkIG9mIHRoZSBET01cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEZMRVhfU1NSX1NFUklBTElaRVJfRkFDVE9SWShcbiAgc2VydmVyU2hlZXQ6IFN0eWxlc2hlZXRNYXAsXG4gIG1lZGlhQ29udHJvbGxlcjogU2VydmVyTWF0Y2hNZWRpYSxcbiAgX2RvY3VtZW50OiBEb2N1bWVudCxcbiAgYnJlYWtwb2ludHM6IEJyZWFrUG9pbnRbXSxcbiAgbWVkaWFNYXJzaGFsbGVyOiBNZWRpYU1hcnNoYWxsZXIsXG4gIF9ub25jZT86IHN0cmluZyxcbikge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIC8vIFRoaXMgaXMgdGhlIHN0eWxlIHRhZyB0aGF0IGdldHMgaW5zZXJ0ZWQgaW50byB0aGUgaGVhZCBvZiB0aGUgRE9NLFxuICAgIC8vIHBvcHVsYXRlZCB3aXRoIHRoZSBtYW51YWwgbWVkaWEgcXVlcmllc1xuICAgIGNvbnN0IHN0eWxlVGFnID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgaWYgKF9ub25jZSkge1xuICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdub25jZScsIF9ub25jZSk7XG4gICAgfVxuICAgIGNvbnN0IHN0eWxlVGV4dCA9IGdlbmVyYXRlU3RhdGljRmxleExheW91dFN0eWxlcyhcbiAgICAgIHNlcnZlclNoZWV0LFxuICAgICAgbWVkaWFDb250cm9sbGVyLFxuICAgICAgYnJlYWtwb2ludHMsXG4gICAgICBtZWRpYU1hcnNoYWxsZXIsXG4gICAgKTtcbiAgICBzdHlsZVRhZy5jbGFzc0xpc3QuYWRkKGAke0NMQVNTX05BTUV9c3NyYCk7XG4gICAgc3R5bGVUYWcudGV4dENvbnRlbnQgPSBzdHlsZVRleHQ7XG4gICAgX2RvY3VtZW50LmhlYWQhLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcbiAgfTtcbn1cblxuLyoqXG4gKiAgUHJvdmlkZXIgdG8gc2V0IHN0YXRpYyBzdHlsZXMgb24gdGhlIHNlcnZlclxuICovXG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1ZJREVSUyA9IFtcbiAge1xuICAgIHByb3ZpZGU6IEJFRk9SRV9BUFBfU0VSSUFMSVpFRCxcbiAgICB1c2VGYWN0b3J5OiBGTEVYX1NTUl9TRVJJQUxJWkVSX0ZBQ1RPUlksXG4gICAgZGVwczogW1xuICAgICAgU3R5bGVzaGVldE1hcCxcbiAgICAgIE1hdGNoTWVkaWEsXG4gICAgICBET0NVTUVOVCxcbiAgICAgIEJSRUFLUE9JTlRTLFxuICAgICAgTWVkaWFNYXJzaGFsbGVyLFxuICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgSW5qZWN0KENTUF9OT05DRSldLFxuICAgIF0sXG4gICAgbXVsdGk6IHRydWUsXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBTRVJWRVJfVE9LRU4sXG4gICAgdXNlVmFsdWU6IHRydWUsXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBNYXRjaE1lZGlhLFxuICAgIHVzZUNsYXNzOiBTZXJ2ZXJNYXRjaE1lZGlhLFxuICB9LFxuXTtcblxubGV0IG5leHRJZCA9IDA7XG5jb25zdCBJU19ERUJVR19NT0RFID0gZmFsc2U7XG5cbmV4cG9ydCB0eXBlIFN0eWxlU2hlZXQgPSBNYXA8SFRNTEVsZW1lbnQsIE1hcDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4+O1xuZXhwb3J0IHR5cGUgQ2xhc3NNYXAgPSBNYXA8SFRNTEVsZW1lbnQsIHN0cmluZz47XG5cbi8qKlxuICogY3JlYXRlIEBtZWRpYSBxdWVyaWVzIGJhc2VkIG9uIGEgdmlydHVhbCBzdHlsZXNoZWV0XG4gKiAqIEFkZHMgYSB1bmlxdWUgY2xhc3MgdG8gZWFjaCBlbGVtZW50IGFuZCBzdG9yZXMgaXRcbiAqICAgaW4gYSBzaGFyZWQgY2xhc3NNYXAgZm9yIGxhdGVyIHJldXNlXG4gKiBAcGFyYW0gc3R5bGVzaGVldCB0aGUgdmlydHVhbCBzdHlsZXNoZWV0IHRoYXQgc3RvcmVzIHN0eWxlcyBmb3IgZWFjaFxuICogICAgICAgIGVsZW1lbnRcbiAqIEBwYXJhbSBtZWRpYVF1ZXJ5IHRoZSBnaXZlbiBAbWVkaWEgQ1NTIHNlbGVjdG9yIGZvciB0aGUgY3VycmVudCBicmVha3BvaW50XG4gKiBAcGFyYW0gY2xhc3NNYXAgdGhlIG1hcCBvZiBIVE1MIGVsZW1lbnRzIHRvIGNsYXNzIG5hbWVzIHRvIGF2b2lkIGR1cGxpY2F0aW9uc1xuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUNzcyhcbiAgc3R5bGVzaGVldDogU3R5bGVTaGVldCxcbiAgbWVkaWFRdWVyeTogc3RyaW5nLFxuICBjbGFzc01hcDogQ2xhc3NNYXAsXG4pIHtcbiAgbGV0IGNzcyA9ICcnO1xuICBzdHlsZXNoZWV0LmZvckVhY2goKHN0eWxlcywgZWwpID0+IHtcbiAgICBsZXQga2V5VmFscyA9ICcnO1xuICAgIGxldCBjbGFzc05hbWUgPSBnZXRDbGFzc05hbWUoZWwsIGNsYXNzTWFwKTtcblxuICAgIHN0eWxlcy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICBrZXlWYWxzICs9IHYgPyBmb3JtYXQoYCR7a306JHt2fTtgKSA6ICcnO1xuICAgIH0pO1xuXG4gICAgaWYgKGtleVZhbHMpIHtcbiAgICAgIC8vIEJ1aWxkIGxpc3Qgb2YgQ1NTIHN0eWxlczsgZWFjaCB3aXRoIGEgY2xhc3NOYW1lXG4gICAgICBjc3MgKz0gZm9ybWF0KGAuJHtjbGFzc05hbWV9IHtgLCBrZXlWYWxzLCAnfScpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gR3JvdXAgMSBvciBtb3JlIHN0eWxlcyAoZWFjaCB3aXRoIGNsYXNzTmFtZSkgaW4gYSBzcGVjaWZpYyBtZWRpYVF1ZXJ5XG4gIHJldHVybiBmb3JtYXQoYEBtZWRpYSAke21lZGlhUXVlcnl9IHtgLCBjc3MsICd9Jyk7XG59XG5cbi8qKlxuICogRm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgcHJlZml4IGNzcyBzZWdtZW50IHdpdGggbGluZWZlZWQocykgZm9yIGVhc3lcbiAqIGRlYnVnZ2luZyBwdXJwb3Nlcy5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0KC4uLmxpc3Q6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdCA9ICcnO1xuICBsaXN0LmZvckVhY2goKGNzcywgaSkgPT4ge1xuICAgIHJlc3VsdCArPSBJU19ERUJVR19NT0RFID8gZm9ybWF0U2VnbWVudChjc3MsIGkgIT09IDApIDogY3NzO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZm9ybWF0U2VnbWVudChjc3M6IHN0cmluZywgYXNQcmVmaXg6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFzUHJlZml4ID8gYFxcbiR7Y3NzfWAgOiBgJHtjc3N9XFxuYDtcbn1cblxuLyoqXG4gKiBHZXQgY2xhc3NOYW1lIGFzc29jaWF0ZWQgd2l0aCBDU1Mgc3R5bGluZ1xuICogSWYgbm90IGZvdW5kLCBnZW5lcmF0ZSBnbG9iYWwgY2xhc3NOYW1lIGFuZCBzZXRcbiAqIGFzc29jaWF0aW9uLlxuICovXG5mdW5jdGlvbiBnZXRDbGFzc05hbWUoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjbGFzc01hcDogTWFwPEhUTUxFbGVtZW50LCBzdHJpbmc+LFxuKSB7XG4gIGxldCBjbGFzc05hbWUgPSBjbGFzc01hcC5nZXQoZWxlbWVudCk7XG4gIGlmICghY2xhc3NOYW1lKSB7XG4gICAgY2xhc3NOYW1lID0gYCR7Q0xBU1NfTkFNRX0ke25leHRJZCsrfWA7XG4gICAgY2xhc3NNYXAuc2V0KGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gIH1cbiAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIGNsYXNzTmFtZTtcbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SERVER_PROVIDERS } from './server-provider';\nimport * as i0 from \"@angular/core\";\nexport class FlexLayoutServerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: FlexLayoutServerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.2\", ngImport: i0, type: FlexLayoutServerModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: FlexLayoutServerModule, providers: [SERVER_PROVIDERS] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: FlexLayoutServerModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [SERVER_PROVIDERS],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlicy9mbGV4LWxheW91dC9zZXJ2ZXIvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBS3JELE1BQU0sT0FBTyxzQkFBc0I7OEdBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsYUFGdEIsQ0FBQyxnQkFBZ0IsQ0FBQzs7MkZBRWxCLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTRVJWRVJfUFJPVklERVJTIH0gZnJvbSAnLi9zZXJ2ZXItcHJvdmlkZXInO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtTRVJWRVJfUFJPVklERVJTXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxleExheW91dFNlcnZlck1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdicmFja2V0LW5neC1sYXlvdXQtc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlicy9mbGV4LWxheW91dC9zZXJ2ZXIvbmdicmFja2V0LW5neC1sYXlvdXQtc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0="],"names":["MatchMedia"],"mappings":"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"}