blob: 0032955629c043179a5a331f63c3254bfe930296 [file] [log] [blame]
{"version":3,"file":"flex-layout.umd.js","sources":["../../src/lib/module.ts","../../src/lib/version.ts","../../src/lib/grid/module.ts","../../src/lib/grid/rows/rows.ts","../../src/lib/grid/row/row.ts","../../src/lib/grid/gap/gap.ts","../../src/lib/grid/columns/columns.ts","../../src/lib/grid/column/column.ts","../../src/lib/grid/auto/auto.ts","../../src/lib/grid/areas/areas.ts","../../src/lib/grid/area/area.ts","../../src/lib/grid/align-rows/align-rows.ts","../../src/lib/grid/align-columns/align-columns.ts","../../src/lib/grid/grid-align/grid-align.ts","../../src/lib/flex/module.ts","../../src/lib/flex/layout-align/layout-align.ts","../../src/lib/flex/flex-fill/flex-fill.ts","../../src/lib/flex/flex-align/flex-align.ts","../../src/lib/flex/flex-offset/flex-offset.ts","../../src/lib/flex/flex-order/flex-order.ts","../../src/lib/flex/flex/flex.ts","../../src/lib/utils/object-extend.ts","../../src/lib/flex/layout-gap/layout-gap.ts","../../src/lib/flex/layout/layout.ts","../../src/lib/utils/layout-validator.ts","../../src/lib/extended/module.ts","../../src/lib/extended/style/style.ts","../../src/lib/extended/style/style-transforms.ts","../../src/lib/extended/show-hide/show-hide.ts","../../src/lib/extended/class/class.ts","../../src/lib/extended/img-src/img-src.ts","../../src/lib/core/media-marshaller/media-marshaller.ts","../../src/lib/core/basis-validator/basis-validator.ts","../../src/lib/core/style-builder/style-builder.ts","../../src/lib/core/style-utils/style-utils.ts","../../src/lib/utils/auto-prefixer.ts","../../src/lib/core/media-trigger/media-trigger.ts","../../src/lib/core/media-observer/media-observer.ts","../../src/lib/core/utils/array.ts","../../src/lib/core/media-marshaller/print-hook.ts","../../src/lib/core/match-media/mock/mock-match-media.ts","../../src/lib/core/match-media/match-media.ts","../../src/lib/core/breakpoints/break-point-registry.ts","../../src/lib/core/utils/sort.ts","../../src/lib/core/breakpoints/break-points-token.ts","../../src/lib/core/breakpoints/breakpoint-tools.ts","../../src/lib/core/breakpoints/data/orientation-break-points.ts","../../src/lib/core/breakpoints/data/break-points.ts","../../src/lib/core/base/base2.ts","../../src/lib/core/add-alias.ts","../../src/lib/core/tokens/breakpoint-token.ts","../../src/lib/core/tokens/server-token.ts","../../src/lib/core/tokens/library-config.ts","../../src/lib/core/stylesheet-map/stylesheet-map.ts","../../src/lib/core/media-change.ts","../../src/lib/core/module.ts","../../src/lib/core/browser-provider.ts","../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n Inject,\n ModuleWithProviders,\n NgModule,\n Optional,\n PLATFORM_ID,\n} from '@angular/core';\nimport {isPlatformServer} from '@angular/common';\n\nimport {\n SERVER_TOKEN,\n LayoutConfigOptions,\n LAYOUT_CONFIG,\n DEFAULT_CONFIG,\n BreakPoint,\n BREAKPOINT,\n} from '@angular/flex-layout/core';\nimport {ExtendedModule} from '@angular/flex-layout/extended';\nimport {FlexModule} from '@angular/flex-layout/flex';\nimport {GridModule} from '@angular/flex-layout/grid';\n\n/**\n * FlexLayoutModule -- the main import for all utilities in the Angular Layout library\n * * Will automatically provide Flex, Grid, and Extended modules for use in the application\n * * Can be configured using the static withConfig method, options viewable on the Wiki's\n * Configuration page\n */\n@NgModule({\n imports: [FlexModule, ExtendedModule, GridModule],\n exports: [FlexModule, ExtendedModule, GridModule]\n})\nexport class FlexLayoutModule {\n\n /**\n * Initialize the FlexLayoutModule with a set of config options,\n * which sets the corresponding tokens accordingly\n */\n static withConfig(configOptions: LayoutConfigOptions,\n breakpoints: BreakPoint|BreakPoint[] = []): ModuleWithProviders {\n return {\n ngModule: FlexLayoutModule,\n providers: configOptions.serverLoaded ?\n [\n {provide: LAYOUT_CONFIG, useValue: {...DEFAULT_CONFIG, ...configOptions}},\n {provide: BREAKPOINT, useValue: breakpoints, multi: true},\n {provide: SERVER_TOKEN, useValue: true},\n ] : [\n {provide: LAYOUT_CONFIG, useValue: {...DEFAULT_CONFIG, ...configOptions}},\n {provide: BREAKPOINT, useValue: breakpoints, multi: true},\n ]\n };\n }\n\n constructor(@Optional() @Inject(SERVER_TOKEN) serverModuleLoaded: boolean,\n @Inject(PLATFORM_ID) platformId: Object) {\n if (isPlatformServer(platformId) && !serverModuleLoaded) {\n console.warn('Warning: Flex Layout loaded on the server without FlexLayoutServerModule');\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of Angular Flex-Layout. */\nexport const VERSION = new Version('8.0.0-beta.26');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {NgModule} from '@angular/core';\nimport {CoreModule} from '@angular/flex-layout/core';\n\nimport {DefaultGridAlignDirective} from './grid-align/grid-align';\nimport {DefaultGridAlignColumnsDirective} from './align-columns/align-columns';\nimport {DefaultGridAlignRowsDirective} from './align-rows/align-rows';\nimport {DefaultGridAreaDirective} from './area/area';\nimport {DefaultGridAreasDirective} from './areas/areas';\nimport {DefaultGridAutoDirective} from './auto/auto';\nimport {DefaultGridColumnDirective} from './column/column';\nimport {DefaultGridColumnsDirective} from './columns/columns';\nimport {DefaultGridGapDirective} from './gap/gap';\nimport {DefaultGridRowDirective} from './row/row';\nimport {DefaultGridRowsDirective} from './rows/rows';\n\n\nconst ALL_DIRECTIVES = [\n DefaultGridAlignDirective,\n DefaultGridAlignColumnsDirective,\n DefaultGridAlignRowsDirective,\n DefaultGridAreaDirective,\n DefaultGridAreasDirective,\n DefaultGridAutoDirective,\n DefaultGridColumnDirective,\n DefaultGridColumnsDirective,\n DefaultGridGapDirective,\n DefaultGridRowDirective,\n DefaultGridRowsDirective,\n];\n\n/**\n * *****************************************************************\n * Define module for the CSS Grid API\n * *****************************************************************\n */\n\n@NgModule({\n imports: [CoreModule],\n declarations: [...ALL_DIRECTIVES],\n exports: [...ALL_DIRECTIVES]\n})\nexport class GridModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Input, Injectable, Optional} from '@angular/core';\nimport {\n MediaMarshaller,\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_VALUE = 'none';\nconst AUTO_SPECIFIER = '!';\n\nexport interface GridRowsParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridRowsStyleBuilder extends StyleBuilder {\n buildStyles(input: string, parent: GridRowsParent) {\n input = input || DEFAULT_VALUE;\n let auto = false;\n if (input.endsWith(AUTO_SPECIFIER)) {\n input = input.substring(0, input.indexOf(AUTO_SPECIFIER));\n auto = true;\n }\n\n const css = {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-rows': '',\n 'grid-template-rows': '',\n };\n const key = (auto ? 'grid-auto-rows' : 'grid-template-rows');\n css[key] = input;\n\n return css;\n }\n}\n\nexport class GridRowsDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'grid-rows';\n\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridRowsStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? rowsInlineCache : rowsCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst rowsCache: Map<string, StyleDefinition> = new Map();\nconst rowsInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdRows',\n 'gdRows.xs', 'gdRows.sm', 'gdRows.md', 'gdRows.lg', 'gdRows.xl',\n 'gdRows.lt-sm', 'gdRows.lt-md', 'gdRows.lt-lg', 'gdRows.lt-xl',\n 'gdRows.gt-xs', 'gdRows.gt-sm', 'gdRows.gt-md', 'gdRows.gt-lg'\n];\n\nconst selector = `\n [gdRows],\n [gdRows.xs], [gdRows.sm], [gdRows.md], [gdRows.lg], [gdRows.xl],\n [gdRows.lt-sm], [gdRows.lt-md], [gdRows.lt-lg], [gdRows.lt-xl],\n [gdRows.gt-xs], [gdRows.gt-sm], [gdRows.gt-md], [gdRows.gt-lg]\n`;\n\n/**\n * 'grid-template-rows' CSS Grid styling directive\n * Configures the sizing for the rows in the grid\n * Syntax: <column value> [auto]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-13\n */\n@Directive({selector, inputs})\nexport class DefaultGridRowsDirective extends GridRowsDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Optional, Injectable} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n MediaMarshaller,\n StyleBuilder,\n StyleDefinition,\n} from '@angular/flex-layout/core';\n\nconst DEFAULT_VALUE = 'auto';\n\n@Injectable({providedIn: 'root'})\nexport class GridRowStyleBuilder extends StyleBuilder {\n buildStyles(input: string) {\n return {'grid-row': input || DEFAULT_VALUE};\n }\n}\n\nexport class GridRowDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'grid-row';\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridRowStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n protected styleCache = rowCache;\n}\n\nconst rowCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdRow',\n 'gdRow.xs', 'gdRow.sm', 'gdRow.md', 'gdRow.lg', 'gdRow.xl',\n 'gdRow.lt-sm', 'gdRow.lt-md', 'gdRow.lt-lg', 'gdRow.lt-xl',\n 'gdRow.gt-xs', 'gdRow.gt-sm', 'gdRow.gt-md', 'gdRow.gt-lg'\n];\n\nconst selector = `\n [gdRow],\n [gdRow.xs], [gdRow.sm], [gdRow.md], [gdRow.lg], [gdRow.xl],\n [gdRow.lt-sm], [gdRow.lt-md], [gdRow.lt-lg], [gdRow.lt-xl],\n [gdRow.gt-xs], [gdRow.gt-sm], [gdRow.gt-md], [gdRow.gt-lg]\n`;\n\n/**\n * 'grid-row' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-26\n */\n@Directive({selector, inputs})\nexport class DefaultGridRowDirective extends GridRowDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Input, Optional, Injectable} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n MediaMarshaller,\n StyleBuilder,\n StyleDefinition,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_VALUE = '0';\n\nexport interface GridGapParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridGapStyleBuilder extends StyleBuilder {\n buildStyles(input: string, parent: GridGapParent) {\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-gap': input || DEFAULT_VALUE\n };\n }\n}\n\nexport class GridGapDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'grid-gap';\n\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridGapStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? gapInlineCache : gapCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst gapCache: Map<string, StyleDefinition> = new Map();\nconst gapInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdGap',\n 'gdGap.xs', 'gdGap.sm', 'gdGap.md', 'gdGap.lg', 'gdGap.xl',\n 'gdGap.lt-sm', 'gdGap.lt-md', 'gdGap.lt-lg', 'gdGap.lt-xl',\n 'gdGap.gt-xs', 'gdGap.gt-sm', 'gdGap.gt-md', 'gdGap.gt-lg'\n];\n\nconst selector = `\n [gdGap],\n [gdGap.xs], [gdGap.sm], [gdGap.md], [gdGap.lg], [gdGap.xl],\n [gdGap.lt-sm], [gdGap.lt-md], [gdGap.lt-lg], [gdGap.lt-xl],\n [gdGap.gt-xs], [gdGap.gt-sm], [gdGap.gt-md], [gdGap.gt-lg]\n`;\n\n/**\n * 'grid-gap' CSS Grid styling directive\n * Configures the gap between items in the grid\n * Syntax: <row gap> [<column-gap>]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-17\n */\n@Directive({selector, inputs})\nexport class DefaultGridGapDirective extends GridGapDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Input, Injectable, Optional} from '@angular/core';\nimport {\n MediaMarshaller,\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_VALUE = 'none';\nconst AUTO_SPECIFIER = '!';\n\nexport interface GridColumnsParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridColumnsStyleBuilder extends StyleBuilder {\n buildStyles(input: string, parent: GridColumnsParent) {\n input = input || DEFAULT_VALUE;\n let auto = false;\n if (input.endsWith(AUTO_SPECIFIER)) {\n input = input.substring(0, input.indexOf(AUTO_SPECIFIER));\n auto = true;\n }\n\n const css = {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-columns': '',\n 'grid-template-columns': '',\n };\n const key = (auto ? 'grid-auto-columns' : 'grid-template-columns');\n css[key] = input;\n\n return css;\n }\n}\n\nexport class GridColumnsDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'grid-columns';\n\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridColumnsStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? columnsInlineCache : columnsCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst columnsCache: Map<string, StyleDefinition> = new Map();\nconst columnsInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdColumns',\n 'gdColumns.xs', 'gdColumns.sm', 'gdColumns.md', 'gdColumns.lg', 'gdColumns.xl',\n 'gdColumns.lt-sm', 'gdColumns.lt-md', 'gdColumns.lt-lg', 'gdColumns.lt-xl',\n 'gdColumns.gt-xs', 'gdColumns.gt-sm', 'gdColumns.gt-md', 'gdColumns.gt-lg'\n];\n\nconst selector = `\n [gdColumns],\n [gdColumns.xs], [gdColumns.sm], [gdColumns.md], [gdColumns.lg], [gdColumns.xl],\n [gdColumns.lt-sm], [gdColumns.lt-md], [gdColumns.lt-lg], [gdColumns.lt-xl],\n [gdColumns.gt-xs], [gdColumns.gt-sm], [gdColumns.gt-md], [gdColumns.gt-lg]\n`;\n\n/**\n * 'grid-template-columns' CSS Grid styling directive\n * Configures the sizing for the columns in the grid\n * Syntax: <column value> [auto]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-13\n */\n@Directive({selector, inputs})\nexport class DefaultGridColumnsDirective extends GridColumnsDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Optional, Injectable} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n MediaMarshaller,\n StyleBuilder,\n StyleDefinition,\n} from '@angular/flex-layout/core';\n\nconst DEFAULT_VALUE = 'auto';\n\n@Injectable({providedIn: 'root'})\nexport class GridColumnStyleBuilder extends StyleBuilder {\n buildStyles(input: string) {\n return {'grid-column': input || DEFAULT_VALUE};\n }\n}\n\nexport class GridColumnDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'grid-column';\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridColumnStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n protected styleCache = columnCache;\n}\n\nconst columnCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdColumn',\n 'gdColumn.xs', 'gdColumn.sm', 'gdColumn.md', 'gdColumn.lg', 'gdColumn.xl',\n 'gdColumn.lt-sm', 'gdColumn.lt-md', 'gdColumn.lt-lg', 'gdColumn.lt-xl',\n 'gdColumn.gt-xs', 'gdColumn.gt-sm', 'gdColumn.gt-md', 'gdColumn.gt-lg'\n];\n\nconst selector = `\n [gdColumn],\n [gdColumn.xs], [gdColumn.sm], [gdColumn.md], [gdColumn.lg], [gdColumn.xl],\n [gdColumn.lt-sm], [gdColumn.lt-md], [gdColumn.lt-lg], [gdColumn.lt-xl],\n [gdColumn.gt-xs], [gdColumn.gt-sm], [gdColumn.gt-md], [gdColumn.gt-lg]\n`;\n\n/**\n * 'grid-column' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-26\n */\n@Directive({selector, inputs})\nexport class DefaultGridColumnDirective extends GridColumnDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Input, Optional, Injectable} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n StyleBuilder,\n MediaMarshaller,\n StyleDefinition,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_VALUE = 'initial';\n\nexport interface GridAutoParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridAutoStyleBuilder extends StyleBuilder {\n buildStyles(input: string, parent: GridAutoParent) {\n let [direction, dense] = (input || DEFAULT_VALUE).split(' ');\n if (direction !== 'column' && direction !== 'row' && direction !== 'dense') {\n direction = 'row';\n }\n\n dense = (dense === 'dense' && direction !== 'dense') ? ' dense' : '';\n\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-flow': direction + dense\n };\n }\n}\n\nexport class GridAutoDirective extends BaseDirective2 {\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n protected DIRECTIVE_KEY = 'grid-auto';\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridAutoStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? autoInlineCache : autoCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst autoCache: Map<string, StyleDefinition> = new Map();\nconst autoInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdAuto',\n 'gdAuto.xs', 'gdAuto.sm', 'gdAuto.md', 'gdAuto.lg', 'gdAuto.xl',\n 'gdAuto.lt-sm', 'gdAuto.lt-md', 'gdAuto.lt-lg', 'gdAuto.lt-xl',\n 'gdAuto.gt-xs', 'gdAuto.gt-sm', 'gdAuto.gt-md', 'gdAuto.gt-lg'\n];\nconst selector = `\n [gdAuto],\n [gdAuto.xs], [gdAuto.sm], [gdAuto.md], [gdAuto.lg], [gdAuto.xl],\n [gdAuto.lt-sm], [gdAuto.lt-md], [gdAuto.lt-lg], [gdAuto.lt-xl],\n [gdAuto.gt-xs], [gdAuto.gt-sm], [gdAuto.gt-md], [gdAuto.gt-lg]\n`;\n\n/**\n * 'grid-auto-flow' CSS Grid styling directive\n * Configures the auto placement algorithm for the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-23\n */\n@Directive({selector, inputs})\nexport class DefaultGridAutoDirective extends GridAutoDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable, Input, Optional} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n StyleBuilder,\n MediaMarshaller,\n StyleDefinition,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_VALUE = 'none';\nconst DELIMETER = '|';\n\nexport interface GridAreasParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridAreasStyleBuiler extends StyleBuilder {\n buildStyles(input: string, parent: GridAreasParent) {\n const areas = (input || DEFAULT_VALUE).split(DELIMETER).map(v => `\"${v.trim()}\"`);\n\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-template-areas': areas.join(' ')\n };\n }\n}\n\nexport class GridAreasDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'grid-areas';\n\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridAreasStyleBuiler,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? areasInlineCache : areasCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst areasCache: Map<string, StyleDefinition> = new Map();\nconst areasInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdAreas',\n 'gdAreas.xs', 'gdAreas.sm', 'gdAreas.md', 'gdAreas.lg', 'gdAreas.xl',\n 'gdAreas.lt-sm', 'gdAreas.lt-md', 'gdAreas.lt-lg', 'gdAreas.lt-xl',\n 'gdAreas.gt-xs', 'gdAreas.gt-sm', 'gdAreas.gt-md', 'gdAreas.gt-lg'\n];\n\nconst selector = `\n [gdAreas],\n [gdAreas.xs], [gdAreas.sm], [gdAreas.md], [gdAreas.lg], [gdAreas.xl],\n [gdAreas.lt-sm], [gdAreas.lt-md], [gdAreas.lt-lg], [gdAreas.lt-xl],\n [gdAreas.gt-xs], [gdAreas.gt-sm], [gdAreas.gt-md], [gdAreas.gt-lg]\n`;\n\n/**\n * 'grid-template-areas' CSS Grid styling directive\n * Configures the names of elements within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-14\n */\n@Directive({selector, inputs})\nexport class DefaultGridAreasDirective extends GridAreasDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable, Optional} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n MediaMarshaller,\n StyleBuilder,\n StyleDefinition,\n} from '@angular/flex-layout/core';\n\nconst DEFAULT_VALUE = 'auto';\n\n@Injectable({providedIn: 'root'})\nexport class GridAreaStyleBuilder extends StyleBuilder {\n buildStyles(input: string) {\n return {'grid-area': input || DEFAULT_VALUE};\n }\n}\n\nexport class GridAreaDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'grid-area';\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridAreaStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n protected styleCache = gridAreaCache;\n}\n\nconst gridAreaCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdArea',\n 'gdArea.xs', 'gdArea.sm', 'gdArea.md', 'gdArea.lg', 'gdArea.xl',\n 'gdArea.lt-sm', 'gdArea.lt-md', 'gdArea.lt-lg', 'gdArea.lt-xl',\n 'gdArea.gt-xs', 'gdArea.gt-sm', 'gdArea.gt-md', 'gdArea.gt-lg'\n];\nconst selector = `\n [gdArea],\n [gdArea.xs], [gdArea.sm], [gdArea.md], [gdArea.lg], [gdArea.xl],\n [gdArea.lt-sm], [gdArea.lt-md], [gdArea.lt-lg], [gdArea.lt-xl],\n [gdArea.gt-xs], [gdArea.gt-sm], [gdArea.gt-md], [gdArea.gt-lg]\n`;\n\n/**\n * 'grid-area' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-27\n */\n@Directive({selector, inputs})\nexport class DefaultGridAreaDirective extends GridAreaDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable, Input, Optional} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n StyleBuilder,\n StyleDefinition,\n MediaMarshaller,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_MAIN = 'start';\nconst DEFAULT_CROSS = 'stretch';\n\nexport interface GridAlignRowsParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridAlignRowsStyleBuilder extends StyleBuilder {\n buildStyles(input: string, parent: GridAlignRowsParent) {\n return buildCss(input || `${DEFAULT_MAIN} ${DEFAULT_CROSS}`, parent.inline);\n }\n}\n\nexport class GridAlignRowsDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'grid-align-rows';\n\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridAlignRowsStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? alignRowsInlineCache : alignRowsCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst alignRowsCache: Map<string, StyleDefinition> = new Map();\nconst alignRowsInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdAlignRows',\n 'gdAlignRows.xs', 'gdAlignRows.sm', 'gdAlignRows.md',\n 'gdAlignRows.lg', 'gdAlignRows.xl', 'gdAlignRows.lt-sm',\n 'gdAlignRows.lt-md', 'gdAlignRows.lt-lg', 'gdAlignRows.lt-xl',\n 'gdAlignRows.gt-xs', 'gdAlignRows.gt-sm', 'gdAlignRows.gt-md',\n 'gdAlignRows.gt-lg'\n];\nconst selector = `\n [gdAlignRows],\n [gdAlignRows.xs], [gdAlignRows.sm], [gdAlignRows.md],\n [gdAlignRows.lg], [gdAlignRows.xl], [gdAlignRows.lt-sm],\n [gdAlignRows.lt-md], [gdAlignRows.lt-lg], [gdAlignRows.lt-xl],\n [gdAlignRows.gt-xs], [gdAlignRows.gt-sm], [gdAlignRows.gt-md],\n [gdAlignRows.gt-lg]\n`;\n\n/**\n * 'row alignment' CSS Grid styling directive\n * Configures the alignment in the row direction\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-18\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-20\n */\n@Directive({selector, inputs})\nexport class DefaultGridAlignRowsDirective extends GridAlignRowsDirective {\n protected inputs = inputs;\n}\n\nfunction buildCss(align: string, inline: boolean): StyleDefinition {\n const css: {[key: string]: string} = {}, [mainAxis, crossAxis] = align.split(' ');\n\n // Main axis\n switch (mainAxis) {\n case 'center':\n case 'space-around':\n case 'space-between':\n case 'space-evenly':\n case 'end':\n case 'start':\n case 'stretch':\n css['justify-content'] = mainAxis;\n break;\n default:\n css['justify-content'] = DEFAULT_MAIN; // default main axis\n break;\n }\n\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n case 'center':\n case 'end':\n case 'stretch':\n css['justify-items'] = crossAxis;\n break;\n default : // 'stretch'\n css['justify-items'] = DEFAULT_CROSS; // default cross axis\n break;\n }\n\n css['display'] = inline ? 'inline-grid' : 'grid';\n\n return css;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable, Input, Optional} from '@angular/core';\nimport {\n BaseDirective2,\n StyleUtils,\n StyleBuilder,\n StyleDefinition,\n MediaMarshaller,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nconst DEFAULT_MAIN = 'start';\nconst DEFAULT_CROSS = 'stretch';\n\nexport interface GridAlignColumnsParent {\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class GridAlignColumnsStyleBuilder extends StyleBuilder {\n buildStyles(input: string, parent: GridAlignColumnsParent) {\n return buildCss(input || `${DEFAULT_MAIN} ${DEFAULT_CROSS}`, parent.inline);\n }\n}\n\nexport class GridAlignColumnsDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'grid-align-columns';\n\n @Input('gdInline')\n get inline(): boolean { return this._inline; }\n set inline(val: boolean) { this._inline = coerceBooleanProperty(val); }\n protected _inline = false;\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridAlignColumnsStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n protected updateWithValue(value: string) {\n this.styleCache = this.inline ? alignColumnsInlineCache : alignColumnsCache;\n this.addStyles(value, {inline: this.inline});\n }\n}\n\nconst alignColumnsCache: Map<string, StyleDefinition> = new Map();\nconst alignColumnsInlineCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdAlignColumns',\n 'gdAlignColumns.xs', 'gdAlignColumns.sm', 'gdAlignColumns.md',\n 'gdAlignColumns.lg', 'gdAlignColumns.xl', 'gdAlignColumns.lt-sm',\n 'gdAlignColumns.lt-md', 'gdAlignColumns.lt-lg', 'gdAlignColumns.lt-xl',\n 'gdAlignColumns.gt-xs', 'gdAlignColumns.gt-sm', 'gdAlignColumns.gt-md',\n 'gdAlignColumns.gt-lg'\n];\nconst selector = `\n [gdAlignColumns],\n [gdAlignColumns.xs], [gdAlignColumns.sm], [gdAlignColumns.md],\n [gdAlignColumns.lg], [gdAlignColumns.xl], [gdAlignColumns.lt-sm],\n [gdAlignColumns.lt-md], [gdAlignColumns.lt-lg], [gdAlignColumns.lt-xl],\n [gdAlignColumns.gt-xs], [gdAlignColumns.gt-sm], [gdAlignColumns.gt-md],\n [gdAlignColumns.gt-lg]\n`;\n\n/**\n * 'column alignment' CSS Grid styling directive\n * Configures the alignment in the column direction\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-19\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-21\n */\n@Directive({selector, inputs})\nexport class DefaultGridAlignColumnsDirective extends GridAlignColumnsDirective {\n protected inputs = inputs;\n}\n\nfunction buildCss(align: string, inline: boolean): StyleDefinition {\n const css: {[key: string]: string} = {}, [mainAxis, crossAxis] = align.split(' ');\n\n // Main axis\n switch (mainAxis) {\n case 'center':\n css['align-content'] = 'center';\n break;\n case 'space-around':\n css['align-content'] = 'space-around';\n break;\n case 'space-between':\n css['align-content'] = 'space-between';\n break;\n case 'space-evenly':\n css['align-content'] = 'space-evenly';\n break;\n case 'end':\n css['align-content'] = 'end';\n break;\n case 'start':\n css['align-content'] = 'start';\n break;\n case 'stretch':\n css['align-content'] = 'stretch';\n break;\n default:\n css['align-content'] = DEFAULT_MAIN; // default main axis\n break;\n }\n\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n css['align-items'] = 'start';\n break;\n case 'center':\n css['align-items'] = 'center';\n break;\n case 'end':\n css['align-items'] = 'end';\n break;\n case 'stretch':\n css['align-items'] = 'stretch';\n break;\n default : // 'stretch'\n css['align-items'] = DEFAULT_CROSS; // default cross axis\n break;\n }\n\n css['display'] = inline ? 'inline-grid' : 'grid';\n\n return css;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable, Optional} from '@angular/core';\nimport {\n MediaMarshaller,\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\n\nconst ROW_DEFAULT = 'stretch';\nconst COL_DEFAULT = 'stretch';\n\n@Injectable({providedIn: 'root'})\nexport class GridAlignStyleBuilder extends StyleBuilder {\n buildStyles(input: string) {\n return buildCss(input || ROW_DEFAULT);\n }\n}\n\nexport class GridAlignDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'grid-align';\n\n constructor(protected elementRef: ElementRef,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: GridAlignStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n }\n\n protected styleCache = alignCache;\n}\n\nconst alignCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'gdGridAlign',\n 'gdGridAlign.xs', 'gdGridAlign.sm', 'gdGridAlign.md', 'gdGridAlign.lg', 'gdGridAlign.xl',\n 'gdGridAlign.lt-sm', 'gdGridAlign.lt-md', 'gdGridAlign.lt-lg', 'gdGridAlign.lt-xl',\n 'gdGridAlign.gt-xs', 'gdGridAlign.gt-sm', 'gdGridAlign.gt-md', 'gdGridAlign.gt-lg'\n];\n\nconst selector = `\n [gdGridAlign],\n [gdGridAlign.xs], [gdGridAlign.sm], [gdGridAlign.md], [gdGridAlign.lg],[gdGridAlign.xl],\n [gdGridAlign.lt-sm], [gdGridAlign.lt-md], [gdGridAlign.lt-lg], [gdGridAlign.lt-xl],\n [gdGridAlign.gt-xs], [gdGridAlign.gt-sm], [gdGridAlign.gt-md], [gdGridAlign.gt-lg]\n`;\n\n/**\n * 'align' CSS Grid styling directive for grid children\n * Defines positioning of child elements along row and column axis in a grid container\n * Optional values: {row-axis} values or {row-axis column-axis} value pairs\n *\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#prop-justify-self\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#prop-align-self\n */\n@Directive({selector, inputs})\nexport class DefaultGridAlignDirective extends GridAlignDirective {\n protected inputs = inputs;\n}\n\nfunction buildCss(align: string = '') {\n const css: {[key: string]: string} = {}, [rowAxis, columnAxis] = align.split(' ');\n\n // Row axis\n switch (rowAxis) {\n case 'end':\n css['justify-self'] = 'end';\n break;\n case 'center':\n css['justify-self'] = 'center';\n break;\n case 'stretch':\n css['justify-self'] = 'stretch';\n break;\n case 'start':\n css['justify-self'] = 'start';\n break;\n default:\n css['justify-self'] = ROW_DEFAULT; // default row axis\n break;\n }\n\n // Column axis\n switch (columnAxis) {\n case 'end':\n css['align-self'] = 'end';\n break;\n case 'center':\n css['align-self'] = 'center';\n break;\n case 'stretch':\n css['align-self'] = 'stretch';\n break;\n case 'start':\n css['align-self'] = 'start';\n break;\n default:\n css['align-self'] = COL_DEFAULT; // default column axis\n break;\n }\n\n return css;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CoreModule} from '@angular/flex-layout/core';\n\nimport {DefaultLayoutDirective} from './layout/layout';\nimport {DefaultLayoutGapDirective} from './layout-gap/layout-gap';\nimport {DefaultFlexDirective} from './flex/flex';\nimport {DefaultFlexOrderDirective} from './flex-order/flex-order';\nimport {DefaultFlexOffsetDirective} from './flex-offset/flex-offset';\nimport {DefaultFlexAlignDirective} from './flex-align/flex-align';\nimport {FlexFillDirective} from './flex-fill/flex-fill';\nimport {DefaultLayoutAlignDirective} from './layout-align/layout-align';\n\n\nconst ALL_DIRECTIVES = [\n DefaultLayoutDirective,\n DefaultLayoutGapDirective,\n DefaultLayoutAlignDirective,\n DefaultFlexOrderDirective,\n DefaultFlexOffsetDirective,\n FlexFillDirective,\n DefaultFlexAlignDirective,\n DefaultFlexDirective,\n];\n\n/**\n * *****************************************************************\n * Define module for the Flex API\n * *****************************************************************\n */\n\n@NgModule({\n imports: [CoreModule, BidiModule],\n declarations: [...ALL_DIRECTIVES],\n exports: [...ALL_DIRECTIVES]\n})\nexport class FlexModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Optional, Injectable} from '@angular/core';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n ElementMatcher,\n} from '@angular/flex-layout/core';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {extendObject} from '../../utils/object-extend';\nimport {LAYOUT_VALUES, isFlowHorizontal} from '../../utils/layout-validator';\n\nexport interface LayoutAlignParent {\n layout: string;\n inline: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LayoutAlignStyleBuilder extends StyleBuilder {\n buildStyles(align: string, parent: LayoutAlignParent) {\n const css: StyleDefinition = {}, [mainAxis, crossAxis] = align.split(' ');\n\n // Main axis\n switch (mainAxis) {\n case 'center':\n css['justify-content'] = 'center';\n break;\n case 'space-around':\n css['justify-content'] = 'space-around';\n break;\n case 'space-between':\n css['justify-content'] = 'space-between';\n break;\n case 'space-evenly':\n css['justify-content'] = 'space-evenly';\n break;\n case 'end':\n case 'flex-end':\n css['justify-content'] = 'flex-end';\n break;\n case 'start':\n case 'flex-start':\n default :\n css['justify-content'] = 'flex-start'; // default main axis\n break;\n }\n\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n case 'flex-start':\n css['align-items'] = css['align-content'] = 'flex-start';\n break;\n case 'center':\n css['align-items'] = css['align-content'] = 'center';\n break;\n case 'end':\n case 'flex-end':\n css['align-items'] = css['align-content'] = 'flex-end';\n break;\n case 'space-between':\n css['align-content'] = 'space-between';\n css['align-items'] = 'stretch';\n break;\n case 'space-around':\n css['align-content'] = 'space-around';\n css['align-items'] = 'stretch';\n break;\n case 'baseline':\n css['align-content'] = 'stretch';\n css['align-items'] = 'baseline';\n break;\n case 'stretch':\n default : // 'stretch'\n css['align-items'] = css['align-content'] = 'stretch'; // default cross axis\n break;\n }\n\n return extendObject(css, {\n 'display' : parent.inline ? 'inline-flex' : 'flex',\n 'flex-direction' : parent.layout,\n 'box-sizing' : 'border-box',\n 'max-width': crossAxis === 'stretch' ?\n !isFlowHorizontal(parent.layout) ? '100%' : null : null,\n 'max-height': crossAxis === 'stretch' ?\n isFlowHorizontal(parent.layout) ? '100%' : null : null,\n }) as StyleDefinition;\n }\n}\n\nconst inputs = [\n 'fxLayoutAlign', 'fxLayoutAlign.xs', 'fxLayoutAlign.sm', 'fxLayoutAlign.md',\n 'fxLayoutAlign.lg', 'fxLayoutAlign.xl', 'fxLayoutAlign.lt-sm', 'fxLayoutAlign.lt-md',\n 'fxLayoutAlign.lt-lg', 'fxLayoutAlign.lt-xl', 'fxLayoutAlign.gt-xs', 'fxLayoutAlign.gt-sm',\n 'fxLayoutAlign.gt-md', 'fxLayoutAlign.gt-lg'\n];\nconst selector = `\n [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],\n [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],\n [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],\n [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]\n`;\n\n/**\n * 'layout-align' flexbox styling directive\n * Defines positioning of child elements along main and cross axis in a layout container\n * Optional values: {main-axis} values or {main-axis cross-axis} value pairs\n *\n * @see https://css-tricks.com/almanac/properties/j/justify-content/\n * @see https://css-tricks.com/almanac/properties/a/align-items/\n * @see https://css-tricks.com/almanac/properties/a/align-content/\n */\nexport class LayoutAlignDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'layout-align';\n protected layout = 'row'; // default flex-direction\n protected inline = false; // default inline value\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: LayoutAlignStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n this.marshal.trackValue(this.nativeElement, 'layout')\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.onLayoutChange.bind(this));\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n /**\n *\n */\n protected updateWithValue(value: string) {\n const layout = this.layout || 'row';\n const inline = this.inline;\n if (layout === 'row' && inline) {\n this.styleCache = layoutAlignHorizontalInlineCache;\n } else if (layout === 'row' && !inline) {\n this.styleCache = layoutAlignHorizontalCache;\n } else if (layout === 'row-reverse' && inline) {\n this.styleCache = layoutAlignHorizontalRevInlineCache;\n } else if (layout === 'row-reverse' && !inline) {\n this.styleCache = layoutAlignHorizontalRevCache;\n } else if (layout === 'column' && inline) {\n this.styleCache = layoutAlignVerticalInlineCache;\n } else if (layout === 'column' && !inline) {\n this.styleCache = layoutAlignVerticalCache;\n } else if (layout === 'column-reverse' && inline) {\n this.styleCache = layoutAlignVerticalRevInlineCache;\n } else if (layout === 'column-reverse' && !inline) {\n this.styleCache = layoutAlignVerticalRevCache;\n }\n this.addStyles(value, {layout, inline});\n }\n\n /**\n * Cache the parent container 'flex-direction' and update the 'flex' styles\n */\n protected onLayoutChange(matcher: ElementMatcher) {\n const layoutKeys: string[] = matcher.value.split(' ');\n this.layout = layoutKeys[0];\n this.inline = matcher.value.includes('inline');\n if (!LAYOUT_VALUES.find(x => x === this.layout)) {\n this.layout = 'row';\n }\n this.triggerUpdate();\n }\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutAlignDirective extends LayoutAlignDirective {\n protected inputs = inputs;\n}\n\nconst layoutAlignHorizontalCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignHorizontalRevCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalRevCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignHorizontalInlineCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalInlineCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignHorizontalRevInlineCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalRevInlineCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable} from '@angular/core';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n} from '@angular/flex-layout/core';\n\nconst FLEX_FILL_CSS = {\n 'margin': 0,\n 'width': '100%',\n 'height': '100%',\n 'min-width': '100%',\n 'min-height': '100%'\n};\n\n@Injectable({providedIn: 'root'})\nexport class FlexFillStyleBuilder extends StyleBuilder {\n buildStyles(_input: string) {\n return FLEX_FILL_CSS;\n }\n}\n\n/**\n * 'fxFill' flexbox styling directive\n * Maximizes width and height of element in a layout container\n *\n * NOTE: fxFill is NOT responsive API!!\n */\n@Directive({selector: `[fxFill], [fxFlexFill]`})\nexport class FlexFillDirective extends BaseDirective2 {\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n protected styleBuilder: FlexFillStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.addStyles('');\n }\n\n protected styleCache = flexFillCache;\n}\n\nconst flexFillCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable, Optional} from '@angular/core';\nimport {\n MediaMarshaller,\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\n\n@Injectable({providedIn: 'root'})\nexport class FlexAlignStyleBuilder extends StyleBuilder {\n buildStyles(input: string) {\n input = input || 'stretch';\n const styles: StyleDefinition = {};\n\n // Cross-axis\n switch (input) {\n case 'start':\n styles['align-self'] = 'flex-start';\n break;\n case 'end':\n styles['align-self'] = 'flex-end';\n break;\n default:\n styles['align-self'] = input;\n break;\n }\n\n return styles;\n }\n}\n\nconst inputs = [\n 'fxFlexAlign', 'fxFlexAlign.xs', 'fxFlexAlign.sm', 'fxFlexAlign.md',\n 'fxFlexAlign.lg', 'fxFlexAlign.xl', 'fxFlexAlign.lt-sm', 'fxFlexAlign.lt-md',\n 'fxFlexAlign.lt-lg', 'fxFlexAlign.lt-xl', 'fxFlexAlign.gt-xs', 'fxFlexAlign.gt-sm',\n 'fxFlexAlign.gt-md', 'fxFlexAlign.gt-lg'\n];\nconst selector = `\n [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md],\n [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md],\n [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm],\n [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]\n`;\n\n/**\n * 'flex-align' flexbox styling directive\n * Allows element-specific overrides for cross-axis alignments in a layout container\n * @see https://css-tricks.com/almanac/properties/a/align-self/\n */\nexport class FlexAlignDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'flex-align';\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: FlexAlignStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n protected styleCache = flexAlignCache;\n}\n\nconst flexAlignCache: Map<string, StyleDefinition> = new Map();\n\n@Directive({selector, inputs})\nexport class DefaultFlexAlignDirective extends FlexAlignDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n Directive,\n ElementRef,\n OnChanges,\n Optional,\n Injectable,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n MediaMarshaller,\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {isFlowHorizontal} from '../../utils/layout-validator';\n\nexport interface FlexOffsetParent {\n layout: string;\n isRtl: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class FlexOffsetStyleBuilder extends StyleBuilder {\n buildStyles(offset: string, parent: FlexOffsetParent) {\n if (offset === '') {\n offset = '0';\n }\n const isPercent = String(offset).indexOf('%') > -1;\n const isPx = String(offset).indexOf('px') > -1;\n if (!isPx && !isPercent && !isNaN(+offset)) {\n offset = offset + '%';\n }\n const horizontalLayoutKey = parent.isRtl ? 'margin-right' : 'margin-left';\n const styles: StyleDefinition = isFlowHorizontal(parent.layout) ?\n {[horizontalLayoutKey]: `${offset}`} : {'margin-top': `${offset}`};\n\n return styles;\n }\n}\n\nconst inputs = [\n 'fxFlexOffset', 'fxFlexOffset.xs', 'fxFlexOffset.sm', 'fxFlexOffset.md',\n 'fxFlexOffset.lg', 'fxFlexOffset.xl', 'fxFlexOffset.lt-sm', 'fxFlexOffset.lt-md',\n 'fxFlexOffset.lt-lg', 'fxFlexOffset.lt-xl', 'fxFlexOffset.gt-xs', 'fxFlexOffset.gt-sm',\n 'fxFlexOffset.gt-md', 'fxFlexOffset.gt-lg'\n];\nconst selector = `\n [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md],\n [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md],\n [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm],\n [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]\n`;\n\n/**\n * 'flex-offset' flexbox styling directive\n * Configures the 'margin-left' of the element in a layout container\n */\nexport class FlexOffsetDirective extends BaseDirective2 implements OnChanges {\n protected DIRECTIVE_KEY = 'flex-offset';\n\n constructor(protected elRef: ElementRef,\n protected directionality: Directionality,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: FlexOffsetStyleBuilder,\n protected marshal: MediaMarshaller,\n protected styler: StyleUtils) {\n super(elRef, styleBuilder, styler, marshal);\n this.init([this.directionality.change]);\n // Parent DOM `layout-gap` with affect the nested child with `flex-offset`\n if (this.parentElement) {\n this.marshal\n .trackValue(this.parentElement, 'layout-gap')\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.triggerUpdate.bind(this));\n }\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n /**\n * Using the current fxFlexOffset value, update the inline CSS\n * NOTE: this will assign `margin-left` if the parent flex-direction == 'row',\n * otherwise `margin-top` is used for the offset.\n */\n protected updateWithValue(value: string|number = ''): void {\n // The flex-direction of this element's flex container. Defaults to 'row'.\n const layout = this.getFlexFlowDirection(this.parentElement!, true);\n const isRtl = this.directionality.value === 'rtl';\n if (layout === 'row' && isRtl) {\n this.styleCache = flexOffsetCacheRowRtl;\n } else if (layout === 'row' && !isRtl) {\n this.styleCache = flexOffsetCacheRowLtr;\n } else if (layout === 'column' && isRtl) {\n this.styleCache = flexOffsetCacheColumnRtl;\n } else if (layout === 'column' && !isRtl) {\n this.styleCache = flexOffsetCacheColumnLtr;\n }\n this.addStyles(value + '', {layout, isRtl});\n }\n}\n\n@Directive({selector, inputs})\nexport class DefaultFlexOffsetDirective extends FlexOffsetDirective {\n protected inputs = inputs;\n}\n\nconst flexOffsetCacheRowRtl: Map<string, StyleDefinition> = new Map();\nconst flexOffsetCacheColumnRtl: Map<string, StyleDefinition> = new Map();\nconst flexOffsetCacheRowLtr: Map<string, StyleDefinition> = new Map();\nconst flexOffsetCacheColumnLtr: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, OnChanges, Injectable, Optional} from '@angular/core';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n} from '@angular/flex-layout/core';\n\n@Injectable({providedIn: 'root'})\nexport class FlexOrderStyleBuilder extends StyleBuilder {\n buildStyles(value: string) {\n return {order: (value && parseInt(value, 10)) || ''};\n }\n}\n\nconst inputs = [\n 'fxFlexOrder', 'fxFlexOrder.xs', 'fxFlexOrder.sm', 'fxFlexOrder.md',\n 'fxFlexOrder.lg', 'fxFlexOrder.xl', 'fxFlexOrder.lt-sm', 'fxFlexOrder.lt-md',\n 'fxFlexOrder.lt-lg', 'fxFlexOrder.lt-xl', 'fxFlexOrder.gt-xs', 'fxFlexOrder.gt-sm',\n 'fxFlexOrder.gt-md', 'fxFlexOrder.gt-lg'\n];\nconst selector = `\n [fxFlexOrder], [fxFlexOrder.xs], [fxFlexOrder.sm], [fxFlexOrder.md],\n [fxFlexOrder.lg], [fxFlexOrder.xl], [fxFlexOrder.lt-sm], [fxFlexOrder.lt-md],\n [fxFlexOrder.lt-lg], [fxFlexOrder.lt-xl], [fxFlexOrder.gt-xs], [fxFlexOrder.gt-sm],\n [fxFlexOrder.gt-md], [fxFlexOrder.gt-lg]\n`;\n\n/**\n * 'flex-order' flexbox styling directive\n * Configures the positional ordering of the element in a sorted layout container\n * @see https://css-tricks.com/almanac/properties/o/order/\n */\nexport class FlexOrderDirective extends BaseDirective2 implements OnChanges {\n\n protected DIRECTIVE_KEY = 'flex-order';\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: FlexOrderStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n protected styleCache = flexOrderCache;\n}\n\nconst flexOrderCache: Map<string, StyleDefinition> = new Map();\n\n@Directive({selector, inputs})\nexport class DefaultFlexOrderDirective extends FlexOrderDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Inject, Injectable, Input} from '@angular/core';\nimport {\n BaseDirective2,\n LayoutConfigOptions,\n LAYOUT_CONFIG,\n StyleUtils,\n validateBasis,\n StyleBuilder,\n StyleDefinition,\n MediaMarshaller,\n ElementMatcher,\n} from '@angular/flex-layout/core';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {extendObject} from '../../utils/object-extend';\nimport {isFlowHorizontal} from '../../utils/layout-validator';\n\ninterface FlexBuilderParent {\n direction: string;\n hasWrap: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class FlexStyleBuilder extends StyleBuilder {\n constructor(@Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions) {\n super();\n }\n buildStyles(input: string, parent: FlexBuilderParent) {\n let [grow, shrink, ...basisParts]: (string|number)[] = input.split(' ');\n let basis = basisParts.join(' ');\n\n // The flex-direction of this element's flex container. Defaults to 'row'.\n const direction = (parent.direction.indexOf('column') > -1) ? 'column' : 'row';\n\n const max = isFlowHorizontal(direction) ? 'max-width' : 'max-height';\n const min = isFlowHorizontal(direction) ? 'min-width' : 'min-height';\n\n const hasCalc = String(basis).indexOf('calc') > -1;\n const usingCalc = hasCalc || (basis === 'auto');\n const isPercent = String(basis).indexOf('%') > -1 && !hasCalc;\n const hasUnits = String(basis).indexOf('px') > -1 || String(basis).indexOf('rem') > -1 ||\n String(basis).indexOf('em') > -1 || String(basis).indexOf('vw') > -1 ||\n String(basis).indexOf('vh') > -1;\n\n let isValue = (hasCalc || hasUnits);\n\n grow = (grow == '0') ? 0 : grow;\n shrink = (shrink == '0') ? 0 : shrink;\n\n // make box inflexible when shrink and grow are both zero\n // should not set a min when the grow is zero\n // should not set a max when the shrink is zero\n const isFixed = !grow && !shrink;\n\n let css: {[key: string]: string | number | null} = {};\n\n // flex-basis allows you to specify the initial/starting main-axis size of the element,\n // before anything else is computed. It can either be a percentage or an absolute value.\n // It is, however, not the breaking point for flex-grow/shrink properties\n //\n // flex-grow can be seen as this:\n // 0: Do not stretch. Either size to element's content width, or obey 'flex-basis'.\n // 1: (Default value). Stretch; will be the same size to all other flex items on\n // the same row since they have a default value of 1.\n // ≥2 (integer n): Stretch. Will be n times the size of other elements\n // with 'flex-grow: 1' on the same row.\n\n // Use `null` to clear existing styles.\n const clearStyles = {\n 'max-width': null,\n 'max-height': null,\n 'min-width': null,\n 'min-height': null\n };\n switch (basis || '') {\n case '':\n const useColumnBasisZero = this.layoutConfig.useColumnBasisZero !== false;\n basis = direction === 'row' ? '0%' : (useColumnBasisZero ? '0.000000001px' : 'auto');\n break;\n case 'initial': // default\n case 'nogrow':\n grow = 0;\n basis = 'auto';\n break;\n case 'grow':\n basis = '100%';\n break;\n case 'noshrink':\n shrink = 0;\n basis = 'auto';\n break;\n case 'auto':\n break;\n case 'none':\n grow = 0;\n shrink = 0;\n basis = 'auto';\n break;\n default:\n // Defaults to percentage sizing unless `px` is explicitly set\n if (!isValue && !isPercent && !isNaN(basis as any)) {\n basis = basis + '%';\n }\n\n // Fix for issue 280\n if (basis === '0%') {\n isValue = true;\n }\n\n if (basis === '0px') {\n basis = '0%';\n }\n\n // fix issue #5345\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': isValue ? basis : '100%'\n });\n } else {\n css = extendObject(clearStyles, {\n 'flex': `${grow} ${shrink} ${isValue ? basis : '100%'}`\n });\n }\n\n break;\n }\n\n if (!(css['flex'] || css['flex-grow'])) {\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': basis\n });\n } else {\n css = extendObject(clearStyles, {\n 'flex': `${grow} ${shrink} ${basis}`\n });\n }\n }\n\n // Fix for issues 277, 534, and 728\n if (basis !== '0%' && basis !== '0px' && basis !== '0.000000001px' && basis !== 'auto') {\n css[min] = isFixed || (isValue && grow) ? basis : null;\n css[max] = isFixed || (!usingCalc && shrink) ? basis : null;\n }\n\n // Fix for issue 528\n if (!css[min] && !css[max]) {\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': basis\n });\n } else {\n css = extendObject(clearStyles, {\n 'flex': `${grow} ${shrink} ${basis}`\n });\n }\n } else {\n // Fix for issue 660\n if (parent.hasWrap) {\n css[hasCalc ? 'flex-basis' : 'flex'] = css[max] ?\n (hasCalc ? css[max] : `${grow} ${shrink} ${css[max]}`) :\n (hasCalc ? css[min] : `${grow} ${shrink} ${css[min]}`);\n }\n }\n\n return extendObject(css, {'box-sizing': 'border-box'}) as StyleDefinition;\n }\n}\n\nconst inputs = [\n 'fxFlex', 'fxFlex.xs', 'fxFlex.sm', 'fxFlex.md',\n 'fxFlex.lg', 'fxFlex.xl', 'fxFlex.lt-sm', 'fxFlex.lt-md',\n 'fxFlex.lt-lg', 'fxFlex.lt-xl', 'fxFlex.gt-xs', 'fxFlex.gt-sm',\n 'fxFlex.gt-md', 'fxFlex.gt-lg'\n];\nconst selector = `\n [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md],\n [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md],\n [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm],\n [fxFlex.gt-md], [fxFlex.gt-lg]\n`;\n\n/**\n * Directive to control the size of a flex item using flex-basis, flex-grow, and flex-shrink.\n * Corresponds to the css `flex` shorthand property.\n *\n * @see https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n */\nexport class FlexDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'flex';\n protected direction = '';\n protected wrap = false;\n\n\n @Input('fxShrink')\n get shrink(): string { return this.flexShrink; }\n set shrink(value: string) {\n this.flexShrink = value || '1';\n this.triggerReflow();\n }\n\n @Input('fxGrow')\n get grow(): string { return this.flexGrow; }\n set grow(value: string) {\n this.flexGrow = value || '1';\n this.triggerReflow();\n }\n\n protected flexGrow = '1';\n protected flexShrink = '1';\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n protected styleBuilder: FlexStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n if (this.parentElement) {\n this.marshal.trackValue(this.parentElement, 'layout')\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.onLayoutChange.bind(this));\n this.marshal.trackValue(this.nativeElement, 'layout-align')\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.triggerReflow.bind(this));\n }\n }\n\n /**\n * Caches the parent container's 'flex-direction' and updates the element's style.\n * Used as a handler for layout change events from the parent flex container.\n */\n protected onLayoutChange(matcher: ElementMatcher) {\n const layout: string = matcher.value;\n const layoutParts = layout.split(' ');\n this.direction = layoutParts[0];\n this.wrap = layoutParts[1] !== undefined && layoutParts[1] === 'wrap';\n this.triggerUpdate();\n }\n\n /** Input to this is exclusively the basis input value */\n protected updateWithValue(value: string) {\n const addFlexToParent = this.layoutConfig.addFlexToParent !== false;\n if (!this.direction) {\n this.direction = this.getFlexFlowDirection(this.parentElement!, addFlexToParent);\n }\n const direction = this.direction;\n const isHorizontal = direction.startsWith('row');\n const hasWrap = this.wrap;\n if (isHorizontal && hasWrap) {\n this.styleCache = flexRowWrapCache;\n } else if (isHorizontal && !hasWrap) {\n this.styleCache = flexRowCache;\n } else if (!isHorizontal && hasWrap) {\n this.styleCache = flexColumnWrapCache;\n } else if (!isHorizontal && !hasWrap) {\n this.styleCache = flexColumnCache;\n }\n const basis = String(value).replace(';', '');\n const parts = validateBasis(basis, this.flexGrow, this.flexShrink);\n this.addStyles(parts.join(' '), {direction, hasWrap});\n }\n\n /** Trigger a style reflow, usually based on a shrink/grow input event */\n protected triggerReflow() {\n const activatedValue = this.activatedValue;\n if (activatedValue !== undefined) {\n const parts = validateBasis(activatedValue, this.flexGrow, this.flexShrink);\n this.marshal.updateElement(this.nativeElement, this.DIRECTIVE_KEY, parts.join(' '));\n }\n }\n}\n\n@Directive({inputs, selector})\nexport class DefaultFlexDirective extends FlexDirective {\n protected inputs = inputs;\n}\n\nconst flexRowCache: Map<string, StyleDefinition> = new Map();\nconst flexColumnCache: Map<string, StyleDefinition> = new Map();\nconst flexRowWrapCache: Map<string, StyleDefinition> = new Map();\nconst flexColumnWrapCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n *\n * @param dest The object which will have properties copied to it.\n * @param sources The source objects from which properties will be copied.\n */\nexport function extendObject(dest: any, ...sources: any[]): any {\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n\n for (let source of sources) {\n if (source != null) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n\n return dest;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n Directive,\n ElementRef,\n Optional,\n OnDestroy,\n NgZone,\n Injectable,\n AfterContentInit,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n ElementMatcher,\n} from '@angular/flex-layout/core';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {LAYOUT_VALUES} from '../../utils/layout-validator';\n\nexport interface LayoutGapParent {\n directionality: string;\n items: HTMLElement[];\n layout: string;\n}\n\nconst CLEAR_MARGIN_CSS = {\n 'margin-left': null,\n 'margin-right': null,\n 'margin-top': null,\n 'margin-bottom': null\n};\n\n@Injectable({providedIn: 'root'})\nexport class LayoutGapStyleBuilder extends StyleBuilder {\n constructor(private _styler: StyleUtils) {\n super();\n }\n\n buildStyles(gapValue: string, parent: LayoutGapParent) {\n if (gapValue.endsWith(GRID_SPECIFIER)) {\n gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n\n // Add the margin to the host element\n return buildGridMargin(gapValue, parent.directionality);\n } else {\n return {};\n }\n }\n\n sideEffect(gapValue: string, _styles: StyleDefinition, parent: LayoutGapParent) {\n const items = parent.items;\n if (gapValue.endsWith(GRID_SPECIFIER)) {\n gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n // For each `element` children, set the padding\n const paddingStyles = buildGridPadding(gapValue, parent.directionality);\n this._styler.applyStyleToElements(paddingStyles, parent.items);\n } else {\n const lastItem = items.pop()!;\n\n // For each `element` children EXCEPT the last,\n // set the margin right/bottom styles...\n const gapCss = buildGapCSS(gapValue, parent);\n this._styler.applyStyleToElements(gapCss, items);\n\n // Clear all gaps for all visible elements\n this._styler.applyStyleToElements(CLEAR_MARGIN_CSS, [lastItem]);\n }\n }\n}\n\nconst inputs = [\n 'fxLayoutGap', 'fxLayoutGap.xs', 'fxLayoutGap.sm', 'fxLayoutGap.md',\n 'fxLayoutGap.lg', 'fxLayoutGap.xl', 'fxLayoutGap.lt-sm', 'fxLayoutGap.lt-md',\n 'fxLayoutGap.lt-lg', 'fxLayoutGap.lt-xl', 'fxLayoutGap.gt-xs', 'fxLayoutGap.gt-sm',\n 'fxLayoutGap.gt-md', 'fxLayoutGap.gt-lg'\n];\nconst selector = `\n [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],\n [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],\n [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],\n [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]\n`;\n\n/**\n * 'layout-padding' styling directive\n * Defines padding of child elements in a layout container\n */\nexport class LayoutGapDirective extends BaseDirective2 implements AfterContentInit, OnDestroy {\n protected layout = 'row'; // default flex-direction\n protected DIRECTIVE_KEY = 'layout-gap';\n protected observerSubject = new Subject<void>();\n\n /** Special accessor to query for all child 'element' nodes regardless of type, class, etc */\n protected get childrenNodes(): HTMLElement[] {\n const obj = this.nativeElement.children;\n const buffer: any[] = [];\n\n // iterate backwards ensuring that length is an UInt32\n for (let i = obj.length; i--;) {\n buffer[i] = obj[i];\n }\n return buffer;\n }\n\n constructor(protected elRef: ElementRef,\n protected zone: NgZone,\n protected directionality: Directionality,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: LayoutGapStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n const extraTriggers = [this.directionality.change, this.observerSubject.asObservable()];\n this.init(extraTriggers);\n this.marshal\n .trackValue(this.nativeElement, 'layout')\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.onLayoutChange.bind(this));\n }\n\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n\n ngAfterContentInit() {\n this.buildChildObservable();\n this.triggerUpdate();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n /**\n * Cache the parent container 'flex-direction' and update the 'margin' styles\n */\n protected onLayoutChange(matcher: ElementMatcher) {\n const layout: string = matcher.value;\n // Make sure to filter out 'wrap' option\n const direction = layout.split(' ');\n this.layout = direction[0];\n if (!LAYOUT_VALUES.find(x => x === this.layout)) {\n this.layout = 'row';\n }\n this.triggerUpdate();\n }\n\n /**\n *\n */\n protected updateWithValue(value: string) {\n // Gather all non-hidden Element nodes\n const items = this.childrenNodes\n .filter(el => el.nodeType === 1 && this.willDisplay(el))\n .sort((a, b) => {\n const orderA = +this.styler.lookupStyle(a, 'order');\n const orderB = +this.styler.lookupStyle(b, 'order');\n if (isNaN(orderA) || isNaN(orderB) || orderA === orderB) {\n return 0;\n } else {\n return orderA > orderB ? 1 : -1;\n }\n });\n\n if (items.length > 0) {\n const directionality = this.directionality.value;\n const layout = this.layout;\n if (layout === 'row' && directionality === 'rtl') {\n this.styleCache = layoutGapCacheRowRtl;\n } else if (layout === 'row' && directionality !== 'rtl') {\n this.styleCache = layoutGapCacheRowLtr;\n } else if (layout === 'column' && directionality === 'rtl') {\n this.styleCache = layoutGapCacheColumnRtl;\n } else if (layout === 'column' && directionality !== 'rtl') {\n this.styleCache = layoutGapCacheColumnLtr;\n }\n this.addStyles(value, {directionality, items, layout});\n }\n }\n\n /** We need to override clearStyles because in most cases mru isn't populated */\n protected clearStyles() {\n const gridMode = Object.keys(this.mru).length > 0;\n const childrenStyle = gridMode ? 'padding' :\n getMarginType(this.directionality.value, this.layout);\n\n // If there are styles on the parent remove them\n if (gridMode) {\n super.clearStyles();\n }\n\n // Then remove the children styles too\n this.styleUtils.applyStyleToElements({[childrenStyle]: ''}, this.childrenNodes);\n }\n\n /** Determine if an element will show or hide based on current activation */\n protected willDisplay(source: HTMLElement): boolean {\n const value = this.marshal.getValue(source, 'show-hide');\n return value === true ||\n (value === undefined && this.styleUtils.lookupStyle(source, 'display') !== 'none');\n }\n\n protected buildChildObservable(): void {\n this.zone.runOutsideAngular(() => {\n if (typeof MutationObserver !== 'undefined') {\n this.observer = new MutationObserver((mutations: MutationRecord[]) => {\n const validatedChanges = (it: MutationRecord): boolean => {\n return (it.addedNodes && it.addedNodes.length > 0) ||\n (it.removedNodes && it.removedNodes.length > 0);\n };\n\n // update gap styles only for child 'added' or 'removed' events\n if (mutations.some(validatedChanges)) {\n this.observerSubject.next();\n }\n });\n this.observer.observe(this.nativeElement, {childList: true});\n }\n });\n }\n\n protected observer?: MutationObserver;\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutGapDirective extends LayoutGapDirective {\n protected inputs = inputs;\n}\n\nconst layoutGapCacheRowRtl: Map<string, StyleDefinition> = new Map();\nconst layoutGapCacheColumnRtl: Map<string, StyleDefinition> = new Map();\nconst layoutGapCacheRowLtr: Map<string, StyleDefinition> = new Map();\nconst layoutGapCacheColumnLtr: Map<string, StyleDefinition> = new Map();\n\nconst GRID_SPECIFIER = ' grid';\n\nfunction buildGridPadding(value: string, directionality: string): StyleDefinition {\n let paddingTop = '0px', paddingRight = '0px', paddingBottom = value, paddingLeft = '0px';\n\n if (directionality === 'rtl') {\n paddingLeft = value;\n } else {\n paddingRight = value;\n }\n\n return {'padding': `${paddingTop} ${paddingRight} ${paddingBottom} ${paddingLeft}`};\n}\n\nfunction buildGridMargin(value: string, directionality: string): StyleDefinition {\n let marginTop = '0px', marginRight = '0px', marginBottom = '-' + value, marginLeft = '0px';\n\n if (directionality === 'rtl') {\n marginLeft = '-' + value;\n } else {\n marginRight = '-' + value;\n }\n\n return {'margin': `${marginTop} ${marginRight} ${marginBottom} ${marginLeft}`};\n}\n\nfunction getMarginType(directionality: string, layout: string) {\n switch (layout) {\n case 'column':\n return 'margin-bottom';\n case 'column-reverse':\n return 'margin-top';\n case 'row':\n return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n case 'row-reverse':\n return directionality === 'rtl' ? 'margin-right' : 'margin-left';\n default :\n return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n }\n}\n\nfunction buildGapCSS(gapValue: string,\n parent: {directionality: string, layout: string}): StyleDefinition {\n const key = getMarginType(parent.directionality, parent.layout);\n const margins: {[key: string]: string | null} = {...CLEAR_MARGIN_CSS};\n margins[key] = gapValue;\n return margins;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, OnChanges, Injectable, Optional} from '@angular/core';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n} from '@angular/flex-layout/core';\n\nimport {buildLayoutCSS} from '../../utils/layout-validator';\n\n@Injectable({providedIn: 'root'})\nexport class LayoutStyleBuilder extends StyleBuilder {\n buildStyles(input: string) {\n return buildLayoutCSS(input);\n }\n}\n\nconst inputs = [\n 'fxLayout', 'fxLayout.xs', 'fxLayout.sm', 'fxLayout.md',\n 'fxLayout.lg', 'fxLayout.xl', 'fxLayout.lt-sm', 'fxLayout.lt-md',\n 'fxLayout.lt-lg', 'fxLayout.lt-xl', 'fxLayout.gt-xs', 'fxLayout.gt-sm',\n 'fxLayout.gt-md', 'fxLayout.gt-lg'\n];\nconst selector = `\n [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],\n [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],\n [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],\n [fxLayout.gt-md], [fxLayout.gt-lg]\n`;\n\n/**\n * 'layout' flexbox styling directive\n * Defines the positioning flow direction for the child elements: row or column\n * Optional values: column or row (default)\n * @see https://css-tricks.com/almanac/properties/f/flex-direction/\n *\n */\nexport class LayoutDirective extends BaseDirective2 implements OnChanges {\n\n protected DIRECTIVE_KEY = 'layout';\n\n constructor(protected elRef: ElementRef,\n protected styleUtils: StyleUtils,\n // NOTE: not actually optional, but we need to force DI without a\n // constructor call\n @Optional() protected styleBuilder: LayoutStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n protected styleCache = layoutCache;\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutDirective extends LayoutDirective {\n protected inputs = inputs;\n}\n\nconst layoutCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport const INLINE = 'inline';\nexport const LAYOUT_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'];\n\n/**\n * Validate the direction|'direction wrap' value and then update the host's inline flexbox styles\n */\nexport function buildLayoutCSS(value: string) {\n let [direction, wrap, isInline] = validateValue(value);\n return buildCSS(direction, wrap, isInline);\n }\n\n/**\n * Validate the value to be one of the acceptable value options\n * Use default fallback of 'row'\n */\nexport function validateValue(value: string): [string, string, boolean] {\n value = value ? value.toLowerCase() : '';\n let [direction, wrap, inline] = value.split(' ');\n\n // First value must be the `flex-direction`\n if (!LAYOUT_VALUES.find(x => x === direction)) {\n direction = LAYOUT_VALUES[0];\n }\n\n if (wrap === INLINE) {\n wrap = (inline !== INLINE) ? inline : '';\n inline = INLINE;\n }\n\n return [direction, validateWrapValue(wrap), !!inline];\n}\n\n/**\n * Determine if the validated, flex-direction value specifies\n * a horizontal/row flow.\n */\nexport function isFlowHorizontal(value: string): boolean {\n let [flow, ] = validateValue(value);\n return flow.indexOf('row') > -1;\n}\n\n/**\n * Convert layout-wrap='<value>' to expected flex-wrap style\n */\nexport function validateWrapValue(value: string) {\n if (!!value) {\n switch (value.toLowerCase()) {\n case 'reverse':\n case 'wrap-reverse':\n case 'reverse-wrap':\n value = 'wrap-reverse';\n break;\n\n case 'no':\n case 'none':\n case 'nowrap':\n value = 'nowrap';\n break;\n\n // All other values fallback to 'wrap'\n default:\n value = 'wrap';\n break;\n }\n }\n return value;\n}\n\n/**\n * Build the CSS that should be assigned to the element instance\n * BUG:\n * 1) min-height on a column flex container won’t apply to its flex item children in IE 10-11.\n * Use height instead if possible; height : <xxx>vh;\n *\n * This way any padding or border specified on the child elements are\n * laid out and drawn inside that element's specified width and height.\n */\nfunction buildCSS(direction: string, wrap: string | null = null, inline = false) {\n return {\n 'display': inline ? 'inline-flex' : 'flex',\n 'box-sizing': 'border-box',\n 'flex-direction': direction,\n 'flex-wrap': !!wrap ? wrap : null\n };\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {NgModule} from '@angular/core';\nimport {CoreModule} from '@angular/flex-layout/core';\n\nimport {DefaultImgSrcDirective} from './img-src/img-src';\nimport {DefaultClassDirective} from './class/class';\nimport {DefaultShowHideDirective} from './show-hide/show-hide';\nimport {DefaultStyleDirective} from './style/style';\n\n\nconst ALL_DIRECTIVES = [\n DefaultShowHideDirective,\n DefaultClassDirective,\n DefaultStyleDirective,\n DefaultImgSrcDirective\n];\n\n/**\n * *****************************************************************\n * Define module for the Extended API\n * *****************************************************************\n */\n\n@NgModule({\n imports: [CoreModule],\n declarations: [...ALL_DIRECTIVES],\n exports: [...ALL_DIRECTIVES]\n})\nexport class ExtendedModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Inject,\n Optional,\n PLATFORM_ID,\n SecurityContext,\n Self,\n} from '@angular/core';\nimport {isPlatformServer, NgStyle, ɵNgStyleImpl, ɵNgStyleR2Impl} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {\n BaseDirective2,\n StyleUtils,\n MediaMarshaller,\n SERVER_TOKEN,\n} from '@angular/flex-layout/core';\n\nimport {\n NgStyleRawList,\n NgStyleType,\n NgStyleSanitizer,\n buildRawList,\n getType,\n buildMapFromSet,\n NgStyleMap,\n NgStyleKeyValue,\n stringToKeyValue,\n keyValuesToMap,\n} from './style-transforms';\n\nexport class StyleDirective extends BaseDirective2 implements DoCheck {\n\n protected DIRECTIVE_KEY = 'ngStyle';\n protected fallbackStyles: NgStyleMap;\n protected isServer: boolean;\n\n constructor(protected elementRef: ElementRef,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n protected delegate: ɵNgStyleImpl,\n protected sanitizer: DomSanitizer,\n @Optional() @Self() private readonly ngStyleInstance: NgStyle,\n @Optional() @Inject(SERVER_TOKEN) serverLoaded: boolean,\n @Inject(PLATFORM_ID) platformId: Object) {\n super(elementRef, null!, styler, marshal);\n if (!this.ngStyleInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been\n // defined on the same host element; since the responsive variations may be defined...\n this.ngStyleInstance = new NgStyle(this.delegate);\n }\n this.init();\n const styles = this.nativeElement.getAttribute('style') || '';\n this.fallbackStyles = this.buildStyleMap(styles);\n this.isServer = serverLoaded && isPlatformServer(platformId);\n }\n\n /** Add generated styles */\n protected updateWithValue(value: any) {\n const styles = this.buildStyleMap(value);\n this.ngStyleInstance.ngStyle = {...this.fallbackStyles, ...styles};\n if (this.isServer) {\n this.applyStyleToElement(styles);\n }\n this.ngStyleInstance.ngDoCheck();\n }\n\n /** Remove generated styles */\n protected clearStyles() {\n this.ngStyleInstance.ngStyle = this.fallbackStyles;\n this.ngStyleInstance.ngDoCheck();\n }\n\n /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n */\n protected buildStyleMap(styles: NgStyleType): NgStyleMap {\n // Always safe-guard (aka sanitize) style property values\n const sanitizer: NgStyleSanitizer = (val: any) =>\n this.sanitizer.sanitize(SecurityContext.STYLE, val) || '';\n if (styles) {\n switch (getType(styles)) {\n case 'string': return buildMapFromList(buildRawList(styles),\n sanitizer);\n case 'array' : return buildMapFromList(styles as NgStyleRawList, sanitizer);\n case 'set' : return buildMapFromSet(styles, sanitizer);\n default : return buildMapFromSet(styles, sanitizer);\n }\n }\n\n return {};\n }\n\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n\n /** For ChangeDetectionStrategy.onPush and ngOnChanges() updates */\n ngDoCheck() {\n this.ngStyleInstance.ngDoCheck();\n }\n}\n\nconst inputs = [\n 'ngStyle',\n 'ngStyle.xs', 'ngStyle.sm', 'ngStyle.md', 'ngStyle.lg', 'ngStyle.xl',\n 'ngStyle.lt-sm', 'ngStyle.lt-md', 'ngStyle.lt-lg', 'ngStyle.lt-xl',\n 'ngStyle.gt-xs', 'ngStyle.gt-sm', 'ngStyle.gt-md', 'ngStyle.gt-lg'\n];\n\nconst selector = `\n [ngStyle],\n [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl],\n [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl],\n [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]\n`;\n\n// tslint:disable-next-line:variable-name\nexport const LayoutNgStyleImplProvider = {\n provide: ɵNgStyleImpl,\n useClass: ɵNgStyleR2Impl\n};\n\n/**\n * Directive to add responsive support for ngStyle.\n *\n */\n@Directive({selector, inputs, providers: [LayoutNgStyleImplProvider]})\nexport class DefaultStyleDirective extends StyleDirective implements DoCheck {\n protected inputs = inputs;\n}\n\n/** Build a styles map from a list of styles, while sanitizing bad values first */\nfunction buildMapFromList(styles: NgStyleRawList, sanitize?: NgStyleSanitizer): NgStyleMap {\n const sanitizeValue = (it: NgStyleKeyValue) => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n\n return styles\n .map(stringToKeyValue)\n .filter(entry => !!entry)\n .map(sanitizeValue)\n .reduce(keyValuesToMap, {} as NgStyleMap);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport type NgStyleRawList = string[];\nexport type NgStyleMap = {[klass: string]: string};\n// NgStyle selectors accept NgStyleType values\nexport type NgStyleType = string | Set<string> | NgStyleRawList | NgStyleMap;\n\n/**\n * Callback function for SecurityContext.STYLE sanitization\n */\nexport type NgStyleSanitizer = (val: any) => string;\n\n/** NgStyle allowed inputs */\nexport class NgStyleKeyValue {\n constructor(public key: string, public value: string, noQuotes = true) {\n this.key = noQuotes ? key.replace(/['\"]/g, '').trim() : key.trim();\n\n this.value = noQuotes ? value.replace(/['\"]/g, '').trim() : value.trim();\n this.value = this.value.replace(/;/, '');\n }\n}\n\nexport function getType(target: any): string {\n let what = typeof target;\n if (what === 'object') {\n return (target.constructor === Array) ? 'array' :\n (target.constructor === Set) ? 'set' : 'object';\n }\n return what;\n}\n\n/**\n * Split string of key:value pairs into Array of k-v pairs\n * e.g. 'key:value; key:value; key:value;' -> ['key:value',...]\n */\nexport function buildRawList(source: any, delimiter = ';'): NgStyleRawList {\n return String(source)\n .trim()\n .split(delimiter)\n .map((val: string) => val.trim())\n .filter(val => val !== '');\n}\n\n/** Convert array of key:value strings to a iterable map object */\nexport function buildMapFromList(styles: NgStyleRawList, sanitize?: NgStyleSanitizer): NgStyleMap {\n const sanitizeValue = (it: NgStyleKeyValue) => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n\n return styles\n .map(stringToKeyValue)\n .filter(entry => !!entry)\n .map(sanitizeValue)\n .reduce(keyValuesToMap, {} as NgStyleMap);\n}\n\n/** Convert Set<string> or raw Object to an iterable NgStyleMap */\nexport function buildMapFromSet(source: NgStyleType, sanitize?: NgStyleSanitizer): NgStyleMap {\n let list: string[] = [];\n if (getType(source) === 'set') {\n (source as Set<string>).forEach(entry => list.push(entry));\n } else {\n Object.keys(source).forEach((key: string) => {\n list.push(`${key}:${(source as NgStyleMap)[key]}`);\n });\n }\n return buildMapFromList(list, sanitize);\n}\n\n\n/** Convert 'key:value' -> [key, value] */\nexport function stringToKeyValue(it: string): NgStyleKeyValue {\n const [key, ...vals] = it.split(':');\n return new NgStyleKeyValue(key, vals.join(':'));\n}\n\n/** Convert [ [key,value] ] -> { key : value } */\nexport function keyValuesToMap(map: NgStyleMap, entry: NgStyleKeyValue): NgStyleMap {\n if (!!entry.key) {\n map[entry.key] = entry.value;\n }\n return map;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n Directive,\n ElementRef,\n OnChanges,\n SimpleChanges,\n Optional,\n Inject,\n PLATFORM_ID,\n Injectable,\n AfterViewInit,\n} from '@angular/core';\nimport {isPlatformServer} from '@angular/common';\nimport {\n BaseDirective2,\n LAYOUT_CONFIG,\n LayoutConfigOptions,\n MediaMarshaller,\n SERVER_TOKEN,\n StyleUtils,\n StyleBuilder,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {takeUntil} from 'rxjs/operators';\n\nexport interface ShowHideParent {\n display: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class ShowHideStyleBuilder extends StyleBuilder {\n buildStyles(show: string, parent: ShowHideParent) {\n const shouldShow = show === 'true';\n return {'display': shouldShow ? parent.display : 'none'};\n }\n}\n\nexport class ShowHideDirective extends BaseDirective2 implements AfterViewInit, OnChanges {\n protected DIRECTIVE_KEY = 'show-hide';\n\n /** Original dom Elements CSS display style */\n protected display: string = '';\n protected hasLayout = false;\n protected hasFlexChild = false;\n\n constructor(protected elementRef: ElementRef,\n protected styleBuilder: ShowHideStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n @Inject(PLATFORM_ID) protected platformId: Object,\n @Optional() @Inject(SERVER_TOKEN) protected serverModuleLoaded: boolean) {\n super(elementRef, styleBuilder, styler, marshal);\n }\n\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n\n ngAfterViewInit() {\n this.trackExtraTriggers();\n\n const children = Array.from(this.nativeElement.children);\n for (let i = 0; i < children.length; i++) {\n if (this.marshal.hasValue(children[i] as HTMLElement, 'flex')) {\n this.hasFlexChild = true;\n break;\n }\n }\n\n if (DISPLAY_MAP.has(this.nativeElement)) {\n this.display = DISPLAY_MAP.get(this.nativeElement)!;\n } else {\n this.display = this.getDisplayStyle();\n DISPLAY_MAP.set(this.nativeElement, this.display);\n }\n\n this.init();\n // set the default to show unless explicitly overridden\n const defaultValue = this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY, '');\n if (defaultValue === undefined || defaultValue === '') {\n this.setValue(true, '');\n } else {\n this.triggerUpdate();\n }\n }\n\n /**\n * On changes to any @Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n */\n ngOnChanges(changes: SimpleChanges) {\n Object.keys(changes).forEach(key => {\n if (this.inputs.indexOf(key) !== -1) {\n const inputKey = key.split('.');\n const bp = inputKey.slice(1).join('.');\n const inputValue = changes[key].currentValue;\n let shouldShow = inputValue !== '' ?\n inputValue !== 0 ? coerceBooleanProperty(inputValue) : false\n : true;\n if (inputKey[0] === 'fxHide') {\n shouldShow = !shouldShow;\n }\n this.setValue(shouldShow, bp);\n }\n });\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n */\n protected trackExtraTriggers() {\n this.hasLayout = this.marshal.hasValue(this.nativeElement, 'layout');\n\n ['layout', 'layout-align'].forEach(key => {\n this.marshal\n .trackValue(this.nativeElement, key)\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.triggerUpdate.bind(this));\n });\n }\n\n /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n */\n protected getDisplayStyle(): string {\n return (this.hasLayout || (this.hasFlexChild && this.layoutConfig.addFlexToParent)) ?\n 'flex' : this.styler.lookupStyle(this.nativeElement, 'display', true);\n }\n\n /** Validate the visibility value and then update the host's inline display style */\n protected updateWithValue(value: boolean | string = true) {\n if (value === '') {\n return;\n }\n this.addStyles(value ? 'true' : 'false', {display: this.display});\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.style.setProperty('display', '');\n }\n this.marshal.triggerUpdate(this.parentElement!, 'layout-gap');\n }\n}\n\nconst DISPLAY_MAP: WeakMap<HTMLElement, string> = new WeakMap();\n\nconst inputs = [\n 'fxShow', 'fxShow.print',\n 'fxShow.xs', 'fxShow.sm', 'fxShow.md', 'fxShow.lg', 'fxShow.xl',\n 'fxShow.lt-sm', 'fxShow.lt-md', 'fxShow.lt-lg', 'fxShow.lt-xl',\n 'fxShow.gt-xs', 'fxShow.gt-sm', 'fxShow.gt-md', 'fxShow.gt-lg',\n 'fxHide', 'fxHide.print',\n 'fxHide.xs', 'fxHide.sm', 'fxHide.md', 'fxHide.lg', 'fxHide.xl',\n 'fxHide.lt-sm', 'fxHide.lt-md', 'fxHide.lt-lg', 'fxHide.lt-xl',\n 'fxHide.gt-xs', 'fxHide.gt-sm', 'fxHide.gt-md', 'fxHide.gt-lg'\n];\n\nconst selector = `\n [fxShow], [fxShow.print],\n [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl],\n [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl],\n [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg],\n [fxHide], [fxHide.print],\n [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl],\n [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl],\n [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]\n`;\n\n/**\n * 'show' Layout API directive\n */\n@Directive({selector, inputs})\nexport class DefaultShowHideDirective extends ShowHideDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, DoCheck, ElementRef, Input, Optional, Self} from '@angular/core';\nimport {NgClass, ɵNgClassImpl, ɵNgClassR2Impl} from '@angular/common';\nimport {BaseDirective2, StyleUtils, MediaMarshaller} from '@angular/flex-layout/core';\n\nexport class ClassDirective extends BaseDirective2 implements DoCheck {\n\n protected DIRECTIVE_KEY = 'ngClass';\n\n /**\n * Capture class assignments so we cache the default classes\n * which are merged with activated styles and used as fallbacks.\n */\n @Input('class')\n set klass(val: string) {\n this.ngClassInstance.klass = val;\n this.setValue(val, '');\n }\n\n constructor(protected elementRef: ElementRef,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n protected delegate: ɵNgClassImpl,\n @Optional() @Self() protected readonly ngClassInstance: NgClass) {\n super(elementRef, null!, styler, marshal);\n if (!this.ngClassInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been defined on\n // the same host element; since the responsive variations may be defined...\n this.ngClassInstance = new NgClass(this.delegate);\n }\n this.init();\n this.setValue('', '');\n }\n\n protected updateWithValue(value: any) {\n this.ngClassInstance.ngClass = value;\n this.ngClassInstance.ngDoCheck();\n }\n\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n */\n ngDoCheck() {\n this.ngClassInstance.ngDoCheck();\n }\n}\n\nconst inputs = [\n 'ngClass', 'ngClass.xs', 'ngClass.sm', 'ngClass.md', 'ngClass.lg', 'ngClass.xl',\n 'ngClass.lt-sm', 'ngClass.lt-md', 'ngClass.lt-lg', 'ngClass.lt-xl',\n 'ngClass.gt-xs', 'ngClass.gt-sm', 'ngClass.gt-md', 'ngClass.gt-lg'\n];\n\nconst selector = `\n [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl],\n [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl],\n [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]\n`;\n\n// tslint:disable-next-line:variable-name\nexport const LayoutNgClassImplProvider = {\n provide: ɵNgClassImpl,\n useClass: ɵNgClassR2Impl\n};\n\n/**\n * Directive to add responsive support for ngClass.\n * This maintains the core functionality of 'ngClass' and adds responsive API\n * Note: this class is a no-op when rendered on the server\n */\n@Directive({selector, inputs, providers: [LayoutNgClassImplProvider]})\nexport class DefaultClassDirective extends ClassDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Inject, PLATFORM_ID, Injectable, Input} from '@angular/core';\nimport {isPlatformServer} from '@angular/common';\nimport {\n MediaMarshaller,\n BaseDirective2,\n SERVER_TOKEN,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\n\n@Injectable({providedIn: 'root'})\nexport class ImgSrcStyleBuilder extends StyleBuilder {\n buildStyles(url: string) {\n return {'content': url ? `url(${url})` : ''};\n }\n}\n\nexport class ImgSrcDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'img-src';\n protected defaultSrc = '';\n\n @Input('src')\n set src(val: string) {\n this.defaultSrc = val;\n this.setValue(this.defaultSrc, '');\n }\n\n constructor(protected elementRef: ElementRef,\n protected styleBuilder: ImgSrcStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n @Inject(PLATFORM_ID) protected platformId: Object,\n @Inject(SERVER_TOKEN) protected serverModuleLoaded: boolean) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n this.setValue(this.nativeElement.getAttribute('src') || '', '');\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.setAttribute('src', '');\n }\n }\n\n /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `<img src=\"\">` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n */\n protected updateWithValue(value?: string) {\n const url = value || this.defaultSrc;\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.addStyles(url);\n } else {\n this.nativeElement.setAttribute('src', url);\n }\n }\n\n protected styleCache = imgSrcCache;\n}\n\nconst imgSrcCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'src.xs', 'src.sm', 'src.md', 'src.lg', 'src.xl',\n 'src.lt-sm', 'src.lt-md', 'src.lt-lg', 'src.lt-xl',\n 'src.gt-xs', 'src.gt-sm', 'src.gt-md', 'src.gt-lg'\n];\n\nconst selector = `\n img[src.xs], img[src.sm], img[src.md], img[src.lg], img[src.xl],\n img[src.lt-sm], img[src.lt-md], img[src.lt-lg], img[src.lt-xl],\n img[src.gt-xs], img[src.gt-sm], img[src.gt-md], img[src.gt-lg]\n`;\n\n/**\n * This directive provides a responsive API for the HTML <img> 'src' attribute\n * and will update the img.src property upon each responsive activation.\n *\n * e.g.\n * <img src=\"defaultScene.jpg\" src.xs=\"mobileScene.jpg\"></img>\n *\n * @see https://css-tricks.com/responsive-images-youre-just-changing-resolutions-use-src/\n */\n@Directive({selector, inputs})\nexport class DefaultImgSrcDirective extends ImgSrcDirective {\n protected inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Injectable} from '@angular/core';\n\nimport {merge, Observable, Subject, Subscription} from 'rxjs';\nimport {filter, tap} from 'rxjs/operators';\n\nimport {BreakPoint} from '../breakpoints/break-point';\nimport {sortDescendingPriority} from '../utils/sort';\nimport {BreakPointRegistry} from '../breakpoints/break-point-registry';\nimport {MatchMedia} from '../match-media/match-media';\nimport {MediaChange} from '../media-change';\n\nimport {PrintHook, HookTarget} from './print-hook';\nimport {mergeAlias} from '../add-alias';\n\ntype ClearCallback = () => void;\ntype UpdateCallback = (val: any) => void;\ntype Builder = UpdateCallback | ClearCallback;\n\ntype ValueMap = Map<string, string>;\ntype BreakpointMap = Map<string, ValueMap>;\ntype ElementMap = Map<HTMLElement, BreakpointMap>;\ntype ElementKeyMap = WeakMap<HTMLElement, Set<string>>;\ntype SubscriptionMap = Map<string, Subscription>;\ntype WatcherMap = WeakMap<HTMLElement, SubscriptionMap>;\ntype BuilderMap = WeakMap<HTMLElement, Map<string, Builder>>;\n\nexport interface ElementMatcher {\n element: HTMLElement;\n key: string;\n value: any;\n}\n\n/**\n * MediaMarshaller - register responsive values from directives and\n * trigger them based on media query events\n */\n@Injectable({providedIn: 'root'})\nexport class MediaMarshaller {\n private activatedBreakpoints: BreakPoint[] = [];\n private elementMap: ElementMap = new Map();\n private elementKeyMap: ElementKeyMap = new WeakMap();\n private watcherMap: WatcherMap = new WeakMap(); // special triggers to update elements\n private updateMap: BuilderMap = new WeakMap(); // callback functions to update styles\n private clearMap: BuilderMap = new WeakMap(); // callback functions to clear styles\n\n private subject: Subject<ElementMatcher> = new Subject();\n\n get activatedAlias(): string {\n return this.activatedBreakpoints[0] ? this.activatedBreakpoints[0].alias : '';\n }\n\n constructor(protected matchMedia: MatchMedia,\n protected breakpoints: BreakPointRegistry,\n protected hook: PrintHook) {\n this.observeActivations();\n }\n\n /**\n * Update styles on breakpoint activates or deactivates\n * @param mc\n */\n onMediaChange(mc: MediaChange) {\n const bp: BreakPoint | null = this.findByQuery(mc.mediaQuery);\n if (bp) {\n mc = mergeAlias(mc, bp);\n\n if (mc.matches && this.activatedBreakpoints.indexOf(bp) === -1) {\n this.activatedBreakpoints.push(bp);\n this.activatedBreakpoints.sort(sortDescendingPriority);\n\n this.updateStyles();\n\n } else if (!mc.matches && this.activatedBreakpoints.indexOf(bp) !== -1) {\n // Remove the breakpoint when it's deactivated\n this.activatedBreakpoints.splice(this.activatedBreakpoints.indexOf(bp), 1);\n this.activatedBreakpoints.sort(sortDescendingPriority);\n\n this.updateStyles();\n }\n }\n }\n\n /**\n * initialize the marshaller with necessary elements for delegation on an element\n * @param element\n * @param key\n * @param updateFn optional callback so that custom bp directives don't have to re-provide this\n * @param clearFn optional callback so that custom bp directives don't have to re-provide this\n * @param extraTriggers other triggers to force style updates (e.g. layout, directionality, etc)\n */\n init(element: HTMLElement,\n key: string,\n updateFn?: UpdateCallback,\n clearFn?: ClearCallback,\n extraTriggers: Observable<any>[] = []): void {\n\n initBuilderMap(this.updateMap, element, key, updateFn);\n initBuilderMap(this.clearMap, element, key, clearFn);\n\n this.buildElementKeyMap(element, key);\n this.watchExtraTriggers(element, key, extraTriggers);\n }\n\n /**\n * get the value for an element and key and optionally a given breakpoint\n * @param element\n * @param key\n * @param bp\n */\n getValue(element: HTMLElement, key: string, bp?: string): any {\n const bpMap = this.elementMap.get(element);\n if (bpMap) {\n const values = bp !== undefined ? bpMap.get(bp) : this.getActivatedValues(bpMap, key);\n if (values) {\n return values.get(key);\n }\n }\n return undefined;\n }\n\n /**\n * whether the element has values for a given key\n * @param element\n * @param key\n */\n hasValue(element: HTMLElement, key: string): boolean {\n const bpMap = this.elementMap.get(element);\n if (bpMap) {\n const values = this.getActivatedValues(bpMap, key);\n if (values) {\n return values.get(key) !== undefined || false;\n }\n }\n return false;\n }\n\n /**\n * Set the value for an input on a directive\n * @param element the element in question\n * @param key the type of the directive (e.g. flex, layout-gap, etc)\n * @param bp the breakpoint suffix (empty string = default)\n * @param val the value for the breakpoint\n */\n setValue(element: HTMLElement, key: string, val: any, bp: string): void {\n let bpMap: BreakpointMap | undefined = this.elementMap.get(element);\n if (!bpMap) {\n bpMap = new Map().set(bp, new Map().set(key, val));\n this.elementMap.set(element, bpMap);\n } else {\n const values = (bpMap.get(bp) || new Map()).set(key, val);\n bpMap.set(bp, values);\n this.elementMap.set(element, bpMap);\n }\n const value = this.getValue(element, key);\n if (value !== undefined) {\n this.updateElement(element, key, value);\n }\n }\n\n /** Track element value changes for a specific key */\n trackValue(element: HTMLElement, key: string): Observable<ElementMatcher> {\n return this.subject\n .asObservable()\n .pipe(filter(v => v.element === element && v.key === key));\n }\n\n /** update all styles for all elements on the current breakpoint */\n updateStyles(): void {\n this.elementMap.forEach((bpMap, el) => {\n const keyMap = new Set(this.elementKeyMap.get(el)!);\n let valueMap = this.getActivatedValues(bpMap);\n\n if (valueMap) {\n valueMap.forEach((v, k) => {\n this.updateElement(el, k, v);\n keyMap.delete(k);\n });\n }\n\n keyMap.forEach(k => {\n valueMap = this.getActivatedValues(bpMap, k);\n if (valueMap) {\n const value = valueMap.get(k);\n this.updateElement(el, k, value);\n } else {\n this.clearElement(el, k);\n }\n });\n\n });\n }\n\n /**\n * clear the styles for a given element\n * @param element\n * @param key\n */\n clearElement(element: HTMLElement, key: string): void {\n const builders = this.clearMap.get(element);\n if (builders) {\n const clearFn: ClearCallback = builders.get(key) as ClearCallback;\n if (!!clearFn) {\n clearFn();\n this.subject.next({element, key, value: ''});\n }\n }\n }\n\n /**\n * update a given element with the activated values for a given key\n * @param element\n * @param key\n * @param value\n */\n updateElement(element: HTMLElement, key: string, value: any): void {\n const builders = this.updateMap.get(element);\n if (builders) {\n const updateFn: UpdateCallback = builders.get(key) as UpdateCallback;\n if (!!updateFn) {\n updateFn(value);\n this.subject.next({element, key, value});\n }\n }\n }\n\n /**\n * release all references to a given element\n * @param element\n */\n releaseElement(element: HTMLElement): void {\n const watcherMap = this.watcherMap.get(element);\n if (watcherMap) {\n watcherMap.forEach(s => s.unsubscribe());\n this.watcherMap.delete(element);\n }\n const elementMap = this.elementMap.get(element);\n if (elementMap) {\n elementMap.forEach((_, s) => elementMap.delete(s));\n this.elementMap.delete(element);\n }\n }\n\n /**\n * trigger an update for a given element and key (e.g. layout)\n * @param element\n * @param key\n */\n triggerUpdate(element: HTMLElement, key?: string): void {\n const bpMap = this.elementMap.get(element);\n if (bpMap) {\n const valueMap = this.getActivatedValues(bpMap, key);\n if (valueMap) {\n if (key) {\n this.updateElement(element, key, valueMap.get(key));\n } else {\n valueMap.forEach((v, k) => this.updateElement(element, k, v));\n }\n }\n }\n }\n\n /** Cross-reference for HTMLElement with directive key */\n private buildElementKeyMap(element: HTMLElement, key: string) {\n let keyMap = this.elementKeyMap.get(element);\n if (!keyMap) {\n keyMap = new Set();\n this.elementKeyMap.set(element, keyMap);\n }\n keyMap.add(key);\n }\n\n /**\n * Other triggers that should force style updates:\n * - directionality\n * - layout changes\n * - mutationobserver updates\n */\n private watchExtraTriggers(element: HTMLElement,\n key: string,\n triggers: Observable<any>[]) {\n if (triggers && triggers.length) {\n let watchers = this.watcherMap.get(element);\n if (!watchers) {\n watchers = new Map();\n this.watcherMap.set(element, watchers);\n }\n const subscription = watchers.get(key);\n if (!subscription) {\n const newSubscription = merge(...triggers).subscribe(() => {\n const currentValue = this.getValue(element, key);\n this.updateElement(element, key, currentValue);\n });\n watchers.set(key, newSubscription);\n }\n }\n }\n\n /** Breakpoint locator by mediaQuery */\n private findByQuery(query: string) {\n return this.breakpoints.findByQuery(query);\n }\n\n /**\n * get the fallback breakpoint for a given element, starting with the current breakpoint\n * @param bpMap\n * @param key\n */\n private getActivatedValues(bpMap: BreakpointMap, key?: string): ValueMap | undefined {\n for (let i = 0; i < this.activatedBreakpoints.length; i++) {\n const activatedBp = this.activatedBreakpoints[i];\n const valueMap = bpMap.get(activatedBp.alias);\n if (valueMap) {\n if (key === undefined || valueMap.has(key)) {\n return valueMap;\n }\n }\n }\n const lastHope = bpMap.get('');\n return (key === undefined || lastHope && lastHope.has(key)) ? lastHope : undefined;\n }\n\n /**\n * Watch for mediaQuery breakpoint activations\n */\n private observeActivations() {\n const target = this as unknown as HookTarget;\n const queries = this.breakpoints.items.map(bp => bp.mediaQuery);\n\n this.matchMedia\n .observe(this.hook.withPrintQuery(queries))\n .pipe(\n tap(this.hook.interceptEvents(target)),\n filter(this.hook.blockPropagation())\n )\n .subscribe(this.onMediaChange.bind(this));\n }\n\n}\n\nfunction initBuilderMap(map: BuilderMap,\n element: HTMLElement,\n key: string,\n input?: UpdateCallback | ClearCallback): void {\n if (input !== undefined) {\n let oldMap = map.get(element);\n if (!oldMap) {\n oldMap = new Map();\n map.set(element, oldMap);\n }\n oldMap.set(key, input);\n }\n}\n\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * The flex API permits 3 or 1 parts of the value:\n * - `flex-grow flex-shrink flex-basis`, or\n * - `flex-basis`\n */\nexport function validateBasis(basis: string, grow = '1', shrink = '1'): string[] {\n let parts = [grow, shrink, basis];\n\n let j = basis.indexOf('calc');\n if (j > 0) {\n parts[2] = _validateCalcValue(basis.substring(j).trim());\n let matches = basis.substr(0, j).trim().split(' ');\n if (matches.length == 2) {\n parts[0] = matches[0];\n parts[1] = matches[1];\n }\n } else if (j == 0) {\n parts[2] = _validateCalcValue(basis.trim());\n } else {\n let matches = basis.split(' ');\n parts = (matches.length === 3) ? matches : [\n grow, shrink, basis\n ];\n }\n\n return parts;\n}\n\n\n/**\n * Calc expressions require whitespace before & after any expression operators\n * This is a simple, crude whitespace padding solution.\n * - '3 3 calc(15em + 20px)'\n * - calc(100% / 7 * 2)\n * - 'calc(15em + 20px)'\n * - 'calc(15em+20px)'\n * - '37px'\n * = '43%'\n */\nfunction _validateCalcValue(calc: string): string {\n return calc.replace(/[\\s]/g, '').replace(/[\\/\\*\\+\\-]/g, ' $& ');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {StyleDefinition} from '../style-utils/style-utils';\n\n/** A class that encapsulates CSS style generation for common directives */\nexport abstract class StyleBuilder {\n\n /** Whether to cache the generated output styles */\n shouldCache = true;\n\n /** Build the styles given an input string and configuration object from a host */\n abstract buildStyles(input: string, parent?: Object): StyleDefinition;\n\n /**\n * Run a side effect computation given the input string and the computed styles\n * from the build task and the host configuration object\n * NOTE: This should be a no-op unless an algorithm is provided in a subclass\n */\n sideEffect(_input: string, _styles: StyleDefinition, _parent?: Object) {\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Inject, Injectable, Optional, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser, isPlatformServer} from '@angular/common';\n\nimport {applyCssPrefixes} from '../../utils/auto-prefixer';\nimport {StylesheetMap} from '../stylesheet-map/stylesheet-map';\nimport {SERVER_TOKEN} from '../tokens/server-token';\nimport {LAYOUT_CONFIG, LayoutConfigOptions} from '../tokens/library-config';\n\n@Injectable({providedIn: 'root'})\nexport class StyleUtils {\n\n constructor(@Optional() private _serverStylesheet: StylesheetMap,\n @Optional() @Inject(SERVER_TOKEN) private _serverModuleLoaded: boolean,\n @Inject(PLATFORM_ID) private _platformId: Object,\n @Inject(LAYOUT_CONFIG) private layoutConfig: LayoutConfigOptions) {}\n\n /**\n * Applies styles given via string pair or object map to the directive element\n */\n applyStyleToElement(element: HTMLElement,\n style: StyleDefinition | string,\n value: string | number | null = null) {\n let styles: StyleDefinition = {};\n if (typeof style === 'string') {\n styles[style] = value;\n style = styles;\n }\n styles = this.layoutConfig.disableVendorPrefixes ? style : applyCssPrefixes(style);\n this._applyMultiValueStyleToElement(styles, element);\n }\n\n /**\n * Applies styles given via string pair or object map to the directive's element\n */\n applyStyleToElements(style: StyleDefinition, elements: HTMLElement[] = []) {\n const styles = this.layoutConfig.disableVendorPrefixes ? style : applyCssPrefixes(style);\n elements.forEach(el => {\n this._applyMultiValueStyleToElement(styles, el);\n });\n }\n\n /**\n * Determine the DOM element's Flexbox flow (flex-direction)\n *\n * Check inline style first then check computed (stylesheet) style\n */\n getFlowDirection(target: HTMLElement): [string, string] {\n const query = 'flex-direction';\n let value = this.lookupStyle(target, query);\n const hasInlineValue = this.lookupInlineStyle(target, query) ||\n (isPlatformServer(this._platformId) && this._serverModuleLoaded) ? value : '';\n\n return [value || 'row', hasInlineValue];\n }\n\n /**\n * Find the DOM element's raw attribute value (if any)\n */\n lookupAttributeValue(element: HTMLElement, attribute: string): string {\n return element.getAttribute(attribute) || '';\n }\n\n /**\n * Find the DOM element's inline style value (if any)\n */\n lookupInlineStyle(element: HTMLElement, styleName: string): string {\n return isPlatformBrowser(this._platformId) ?\n element.style.getPropertyValue(styleName) : this._getServerStyle(element, styleName);\n }\n\n /**\n * Determine the inline or inherited CSS style\n * NOTE: platform-server has no implementation for getComputedStyle\n */\n lookupStyle(element: HTMLElement, styleName: string, inlineOnly = false): string {\n let value = '';\n if (element) {\n let immediateValue = value = this.lookupInlineStyle(element, styleName);\n if (!immediateValue) {\n if (isPlatformBrowser(this._platformId)) {\n if (!inlineOnly) {\n value = getComputedStyle(element).getPropertyValue(styleName);\n }\n } else {\n if (this._serverModuleLoaded) {\n value = this._serverStylesheet.getStyleForElement(element, styleName);\n }\n }\n }\n }\n\n // Note: 'inline' is the default of all elements, unless UA stylesheet overrides;\n // in which case getComputedStyle() should determine a valid value.\n return value ? value.trim() : '';\n }\n\n /**\n * Applies the styles to the element. The styles object map may contain an array of values\n * Each value will be added as element style\n * Keys are sorted to add prefixed styles (like -webkit-x) first, before the standard ones\n */\n private _applyMultiValueStyleToElement(styles: StyleDefinition,\n element: HTMLElement) {\n Object.keys(styles).sort().forEach(key => {\n const el = styles[key];\n const values: (string | number | null)[] = Array.isArray(el) ? el : [el];\n values.sort();\n for (let value of values) {\n value = value ? value + '' : '';\n if (isPlatformBrowser(this._platformId) || !this._serverModuleLoaded) {\n isPlatformBrowser(this._platformId) ?\n element.style.setProperty(key, value) : this._setServerStyle(element, key, value);\n } else {\n this._serverStylesheet.addStyleToElement(element, key, value);\n }\n }\n });\n }\n\n private _setServerStyle(element: any, styleName: string, styleValue?: string|null) {\n styleName = styleName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n const styleMap = this._readStyleAttribute(element);\n styleMap[styleName] = styleValue || '';\n this._writeStyleAttribute(element, styleMap);\n }\n\n private _getServerStyle(element: any, styleName: string): string {\n const styleMap = this._readStyleAttribute(element);\n return styleMap[styleName] || '';\n }\n\n private _readStyleAttribute(element: any): {[name: string]: string} {\n const styleMap: {[name: string]: string} = {};\n const styleAttribute = element.getAttribute('style');\n if (styleAttribute) {\n const styleList = styleAttribute.split(/;+/g);\n for (let i = 0; i < styleList.length; i++) {\n const style = styleList[i].trim();\n if (style.length > 0) {\n const colonIndex = style.indexOf(':');\n if (colonIndex === -1) {\n throw new Error(`Invalid CSS style: ${style}`);\n }\n const name = style.substr(0, colonIndex).trim();\n styleMap[name] = style.substr(colonIndex + 1).trim();\n }\n }\n }\n return styleMap;\n }\n\n private _writeStyleAttribute(element: any, styleMap: {[name: string]: string}) {\n let styleAttrValue = '';\n for (const key in styleMap) {\n const newValue = styleMap[key];\n if (newValue) {\n styleAttrValue += key + ':' + styleMap[key] + ';';\n }\n }\n element.setAttribute('style', styleAttrValue);\n }\n}\n\n/**\n * Definition of a css style. Either a property name (e.g. \"flex-basis\") or an object\n * map of property name and value (e.g. {display: 'none', flex-order: 5})\n */\nexport type StyleDefinition = { [property: string]: string | number | null };\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Applies CSS prefixes to appropriate style keys.\n *\n * Note: `-ms-`, `-moz` and `-webkit-box` are no longer supported. e.g.\n * {\n * display: -webkit-flex; NEW - Safari 6.1+. iOS 7.1+, BB10\n * display: flex; NEW, Spec - Firefox, Chrome, Opera\n * // display: -webkit-box; OLD - iOS 6-, Safari 3.1-6, BB7\n * // display: -ms-flexbox; TWEENER - IE 10\n * // display: -moz-flexbox; OLD - Firefox\n * }\n */\nexport function applyCssPrefixes(target: {[key: string]: any | null}) {\n for (let key in target) {\n let value = target[key] || '';\n\n switch (key) {\n case 'display':\n if (value === 'flex') {\n target['display'] = [\n '-webkit-flex',\n 'flex'\n ];\n } else if (value === 'inline-flex') {\n target['display'] = [\n '-webkit-inline-flex',\n 'inline-flex'\n ];\n } else {\n target['display'] = value;\n }\n break;\n\n case 'align-items':\n case 'align-self':\n case 'align-content':\n case 'flex':\n case 'flex-basis':\n case 'flex-flow':\n case 'flex-grow':\n case 'flex-shrink':\n case 'flex-wrap':\n case 'justify-content':\n target['-webkit-' + key] = value;\n break;\n\n case 'flex-direction':\n value = value || 'row';\n target['-webkit-flex-direction'] = value;\n target['flex-direction'] = value;\n break;\n\n case 'order':\n target['order'] = target['-webkit-' + key] = isNaN(+value) ? '0' : value;\n break;\n }\n }\n return target;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {DOCUMENT, isPlatformBrowser} from '@angular/common';\n\nimport {fromEvent, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\nimport {mergeAlias} from '../add-alias';\nimport {MediaChange} from '../media-change';\nimport {MatchMedia} from '../match-media/match-media';\nimport {BreakPointRegistry, OptionalBreakPoint} from '../breakpoints/break-point-registry';\nimport {sortDescendingPriority} from '../utils/sort';\nimport {LAYOUT_CONFIG, LayoutConfigOptions} from '../tokens/library-config';\n\n/**\n * Class\n */\n@Injectable({providedIn: 'root'})\nexport class MediaTrigger {\n\n constructor(\n protected breakpoints: BreakPointRegistry,\n protected matchMedia: MatchMedia,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n @Inject(PLATFORM_ID) protected _platformId: Object,\n @Inject(DOCUMENT) protected _document: any) {\n }\n\n /**\n * Manually activate range of breakpoints\n * @param list array of mediaQuery or alias strings\n */\n activate(list: string[]) {\n list = list.map(it => it.trim()); // trim queries\n\n this.saveActivations();\n this.deactivateAll();\n this.setActivations(list);\n\n this.prepareAutoRestore();\n }\n\n /**\n * Restore original, 'real' breakpoints and emit events\n * to trigger stream notification\n */\n restore() {\n if (this.hasCachedRegistryMatches) {\n const extractQuery = (change: MediaChange) => change.mediaQuery;\n const list = this.originalActivations.map(extractQuery);\n try {\n\n this.deactivateAll();\n this.restoreRegistryMatches();\n this.setActivations(list);\n\n } finally {\n this.originalActivations = [];\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n }\n }\n\n // ************************************************\n // Internal Methods\n // ************************************************\n\n /**\n * Whenever window resizes, immediately auto-restore original\n * activations (if we are simulating activations)\n */\n private prepareAutoRestore() {\n const isBrowser = isPlatformBrowser(this._platformId) && this._document;\n const enableAutoRestore = isBrowser && this.layoutConfig.mediaTriggerAutoRestore;\n\n if (enableAutoRestore) {\n const resize$ = fromEvent(window, 'resize').pipe(take(1));\n this.resizeSubscription = resize$.subscribe(this.restore.bind(this));\n }\n }\n\n /**\n * Notify all matchMedia subscribers of de-activations\n *\n * Note: we must force 'matches' updates for\n * future matchMedia::activation lookups\n */\n private deactivateAll() {\n const list = this.currentActivations;\n\n this.forceRegistryMatches(list, false);\n this.simulateMediaChanges(list, false);\n }\n\n /**\n * Cache current activations as sorted, prioritized list of MediaChanges\n */\n private saveActivations() {\n if (!this.hasCachedRegistryMatches) {\n const toMediaChange = (query: string) => new MediaChange(true, query);\n const mergeMQAlias = (change: MediaChange) => {\n const bp: OptionalBreakPoint = this.breakpoints.findByQuery(change.mediaQuery);\n return mergeAlias(change, bp);\n };\n\n this.originalActivations = this.currentActivations\n .map(toMediaChange)\n .map(mergeMQAlias)\n .sort(sortDescendingPriority);\n\n this.cacheRegistryMatches();\n }\n }\n\n /**\n * Force set manual activations for specified mediaQuery list\n */\n private setActivations(list: string[]) {\n if (!!this.originalRegistry) {\n this.forceRegistryMatches(list, true);\n }\n this.simulateMediaChanges(list);\n }\n\n /**\n * For specified mediaQuery list manually simulate activations or deactivations\n */\n private simulateMediaChanges(queries: string[], matches = true) {\n const toMediaQuery = (query: string) => {\n const locator = this.breakpoints;\n const bp = locator.findByAlias(query) || locator.findByQuery(query);\n return bp ? bp.mediaQuery : query;\n };\n const emitChangeEvent = (query: string) => this.emitChangeEvent(matches, query);\n\n queries.map(toMediaQuery).forEach(emitChangeEvent);\n }\n\n /**\n * Replace current registry with simulated registry...\n * Note: this is required since MediaQueryList::matches is 'readOnly'\n */\n private forceRegistryMatches(queries: string[], matches: boolean) {\n const registry = new Map<string, MediaQueryList>();\n queries.forEach(query => {\n registry.set(query, {matches: matches} as MediaQueryList);\n });\n\n this.matchMedia.registry = registry;\n }\n\n /**\n * Save current MatchMedia::registry items.\n */\n private cacheRegistryMatches() {\n const target = this.originalRegistry;\n\n target.clear();\n this.matchMedia.registry.forEach((value: MediaQueryList, key: string) => {\n target.set(key, value);\n });\n this.hasCachedRegistryMatches = true;\n }\n\n /**\n * Restore original, 'true' registry\n */\n private restoreRegistryMatches() {\n const target = this.matchMedia.registry;\n\n target.clear();\n this.originalRegistry.forEach((value: MediaQueryList, key: string) => {\n target.set(key, value);\n });\n\n this.originalRegistry.clear();\n this.hasCachedRegistryMatches = false;\n }\n\n /**\n * Manually emit a MediaChange event via the MatchMedia to MediaMarshaller and MediaObserver\n */\n private emitChangeEvent(matches: boolean, query: string) {\n this.matchMedia.source.next(new MediaChange(matches, query));\n }\n\n private get currentActivations() {\n return this.matchMedia.activations;\n }\n\n private hasCachedRegistryMatches = false;\n private originalActivations: MediaChange[] = [];\n private originalRegistry: Map<string, MediaQueryList> = new Map<string, MediaQueryList>();\n\n private resizeSubscription!: Subscription;\n}\n\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {Subject, asapScheduler, Observable, of} from 'rxjs';\nimport {debounceTime, filter, map, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {mergeAlias} from '../add-alias';\nimport {MediaChange} from '../media-change';\nimport {MatchMedia} from '../match-media/match-media';\nimport {PrintHook} from '../media-marshaller/print-hook';\nimport {BreakPointRegistry, OptionalBreakPoint} from '../breakpoints/break-point-registry';\n\nimport {sortDescendingPriority} from '../utils/sort';\nimport {coerceArray} from '../utils/array';\n\n\n/**\n * MediaObserver enables applications to listen for 1..n mediaQuery activations and to determine\n * if a mediaQuery is currently activated.\n *\n * Since a breakpoint change will first deactivate 1...n mediaQueries and then possibly activate\n * 1..n mediaQueries, the MediaObserver will debounce notifications and report ALL *activations*\n * in 1 event notification. The reported activations will be sorted in descending priority order.\n *\n * This class uses the BreakPoint Registry to inject alias information into the raw MediaChange\n * notification. For custom mediaQuery notifications, alias information will not be injected and\n * those fields will be ''.\n *\n * Note: Developers should note that only mediaChange activations (not de-activations)\n * are announced by the MediaObserver.\n *\n * @usage\n *\n * // RxJS\n * import { filter } from 'rxjs/operators';\n * import { MediaObserver } from '@angular/flex-layout';\n *\n * @Component({ ... })\n * export class AppComponent {\n * status: string = '';\n *\n * constructor(mediaObserver: MediaObserver) {\n * const media$ = mediaObserver.asObservable().pipe(\n * filter((changes: MediaChange[]) => true) // silly noop filter\n * );\n *\n * media$.subscribe((changes: MediaChange[]) => {\n * let status = '';\n * changes.forEach( change => {\n * status += `'${change.mqAlias}' = (${change.mediaQuery}) <br/>` ;\n * });\n * this.status = status;\n * });\n *\n * }\n * }\n */\n@Injectable({providedIn: 'root'})\nexport class MediaObserver implements OnDestroy {\n\n /**\n * @deprecated Use `asObservable()` instead.\n * @breaking-change 8.0.0-beta.25\n * @deletion-target v8.0.0-beta.26\n */\n readonly media$: Observable<MediaChange>;\n\n /** Filter MediaChange notifications for overlapping breakpoints */\n filterOverlaps = false;\n\n constructor(protected breakpoints: BreakPointRegistry,\n protected matchMedia: MatchMedia,\n protected hook: PrintHook) {\n this._media$ = this.watchActivations();\n this.media$ = this._media$.pipe(\n filter((changes: MediaChange[]) => changes.length > 0),\n map((changes: MediaChange[]) => changes[0])\n );\n }\n\n /**\n * Completes the active subject, signalling to all complete for all\n * MediaObserver subscribers\n */\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n // ************************************************\n // Public Methods\n // ************************************************\n\n /**\n * Observe changes to current activation 'list'\n */\n asObservable(): Observable<MediaChange[]> {\n return this._media$;\n }\n\n /**\n * Allow programmatic query to determine if one or more media query/alias match\n * the current viewport size.\n * @param value One or more media queries (or aliases) to check.\n * @returns Whether any of the media queries match.\n */\n isActive(value: string | string[]): boolean {\n const aliases = splitQueries(coerceArray(value));\n return aliases.some(alias => {\n const query = toMediaQuery(alias, this.breakpoints);\n return this.matchMedia.isActive(query);\n });\n }\n\n // ************************************************\n // Internal Methods\n // ************************************************\n\n /**\n * Register all the mediaQueries registered in the BreakPointRegistry\n * This is needed so subscribers can be auto-notified of all standard, registered\n * mediaQuery activations\n */\n private watchActivations() {\n const queries = this.breakpoints.items.map(bp => bp.mediaQuery);\n return this.buildObservable(queries);\n }\n\n /**\n * Only pass/announce activations (not de-activations)\n *\n * Since multiple-mediaQueries can be activation in a cycle,\n * gather all current activations into a single list of changes to observers\n *\n * Inject associated (if any) alias information into the MediaChange event\n * - Exclude mediaQuery activations for overlapping mQs. List bounded mQ ranges only\n * - Exclude print activations that do not have an associated mediaQuery\n *\n * NOTE: the raw MediaChange events [from MatchMedia] do not\n * contain important alias information; as such this info\n * must be injected into the MediaChange\n */\n private buildObservable(mqList: string[]): Observable<MediaChange[]> {\n const hasChanges = (changes: MediaChange[]) => {\n const isValidQuery = (change: MediaChange) => (change.mediaQuery.length > 0);\n return (changes.filter(isValidQuery).length > 0);\n };\n const excludeOverlaps = (changes: MediaChange[]) => {\n return !this.filterOverlaps ? changes : changes.filter(change => {\n const bp = this.breakpoints.findByQuery(change.mediaQuery);\n return !bp ? true : !bp.overlapping;\n });\n };\n\n /**\n */\n return this.matchMedia\n .observe(this.hook.withPrintQuery(mqList))\n .pipe(\n filter((change: MediaChange) => change.matches),\n debounceTime(0, asapScheduler),\n switchMap(_ => of(this.findAllActivations())),\n map(excludeOverlaps),\n filter(hasChanges),\n takeUntil(this.destroyed$)\n );\n }\n\n /**\n * Find all current activations and prepare single list of activations\n * sorted by descending priority.\n */\n private findAllActivations(): MediaChange[] {\n const mergeMQAlias = (change: MediaChange) => {\n let bp: OptionalBreakPoint = this.breakpoints.findByQuery(change.mediaQuery);\n return mergeAlias(change, bp);\n };\n const replaceWithPrintAlias = (change: MediaChange) => {\n return this.hook.isPrintEvent(change) ? this.hook.updateEvent(change) : change;\n };\n\n return this.matchMedia\n .activations\n .map(query => new MediaChange(true, query))\n .map(replaceWithPrintAlias)\n .map(mergeMQAlias)\n .sort(sortDescendingPriority);\n }\n\n private readonly _media$: Observable<MediaChange[]>;\n private readonly destroyed$ = new Subject<void>();\n}\n\n/**\n * Find associated breakpoint (if any)\n */\nfunction toMediaQuery(query: string, locator: BreakPointRegistry) {\n const bp = locator.findByAlias(query) || locator.findByQuery(query);\n return bp ? bp.mediaQuery : query;\n}\n\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries: string[]): string[] {\n return queries.map((query: string) => query.split(','))\n .reduce((a1: string[], a2: string[]) => a1.concat(a2))\n .map(query => query.trim());\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** Wraps the provided value in an array, unless the provided value is an array. */\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Inject, Injectable} from '@angular/core';\n\nimport {mergeAlias} from '../add-alias';\nimport {MediaChange} from '../media-change';\nimport {BreakPoint} from '../breakpoints/break-point';\nimport {LAYOUT_CONFIG, LayoutConfigOptions} from '../tokens/library-config';\nimport {BreakPointRegistry, OptionalBreakPoint} from '../breakpoints/break-point-registry';\nimport {sortDescendingPriority} from '../utils/sort';\n\n/**\n * Interface to apply PrintHook to call anonymous `target.updateStyles()`\n */\nexport interface HookTarget {\n activatedBreakpoints: BreakPoint[];\n updateStyles(): void;\n}\n\nconst PRINT = 'print';\nexport const BREAKPOINT_PRINT = {\n alias: PRINT,\n mediaQuery: PRINT,\n priority: 1000\n};\n\n/**\n * PrintHook - Use to intercept print MediaQuery activations and force\n * layouts to render with the specified print alias/breakpoint\n *\n * Used in MediaMarshaller and MediaObserver\n */\n@Injectable({providedIn: 'root'})\nexport class PrintHook {\n constructor(\n protected breakpoints: BreakPointRegistry,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions) {\n }\n\n /** Add 'print' mediaQuery: to listen for matchMedia activations */\n withPrintQuery(queries: string[]): string[] {\n return [...queries, PRINT];\n }\n\n /** Is the MediaChange event for any 'print' @media */\n isPrintEvent(e: MediaChange): Boolean {\n return e.mediaQuery.startsWith(PRINT);\n }\n\n /** What is the desired mqAlias to use while printing? */\n get printAlias(): string[] {\n return this.layoutConfig.printWithBreakpoints || [];\n }\n\n /** Lookup breakpoints associated with print aliases. */\n get printBreakPoints(): BreakPoint[] {\n return this.printAlias\n .map(alias => this.breakpoints.findByAlias(alias))\n .filter(bp => bp !== null) as BreakPoint[];\n }\n\n /** Lookup breakpoint associated with mediaQuery */\n getEventBreakpoints({mediaQuery}: MediaChange): BreakPoint[] {\n const bp = this.breakpoints.findByQuery(mediaQuery);\n const list = bp ? [...this.printBreakPoints, bp] : this.printBreakPoints;\n\n return list.sort(sortDescendingPriority);\n }\n\n /** Update event with printAlias mediaQuery information */\n updateEvent(event: MediaChange): MediaChange {\n let bp: OptionalBreakPoint = this.breakpoints.findByQuery(event.mediaQuery);\n if (this.isPrintEvent(event)) {\n // Reset from 'print' to first (highest priority) print breakpoint\n bp = this.getEventBreakpoints(event)[0];\n event.mediaQuery = bp ? bp.mediaQuery : '';\n }\n return mergeAlias(event, bp);\n }\n\n /**\n * Prepare RxJs filter operator with partial application\n * @return pipeable filter predicate\n */\n interceptEvents(target: HookTarget) {\n return (event: MediaChange) => {\n if (this.isPrintEvent(event)) {\n if (event.matches && !this.isPrinting) {\n this.startPrinting(target, this.getEventBreakpoints(event));\n target.updateStyles();\n\n } else if (!event.matches && this.isPrinting) {\n this.stopPrinting(target);\n target.updateStyles();\n }\n } else {\n this.collectActivations(event);\n }\n };\n }\n\n /** Stop mediaChange event propagation in event streams */\n blockPropagation() {\n return (event: MediaChange): boolean => {\n return !(this.isPrinting || this.isPrintEvent(event));\n };\n }\n\n /**\n * Save current activateBreakpoints (for later restore)\n * and substitute only the printAlias breakpoint\n */\n protected startPrinting(target: HookTarget, bpList: OptionalBreakPoint[]) {\n this.isPrinting = true;\n target.activatedBreakpoints = this.queue.addPrintBreakpoints(bpList);\n }\n\n /** For any print de-activations, reset the entire print queue */\n protected stopPrinting(target: HookTarget) {\n target.activatedBreakpoints = this.deactivations;\n this.deactivations = [];\n this.queue.clear();\n this.isPrinting = false;\n }\n\n /**\n * To restore pre-Print Activations, we must capture the proper\n * list of breakpoint activations BEFORE print starts. OnBeforePrint()\n * is not supported; so 'print' mediaQuery activations must be used.\n *\n * > But activated breakpoints are deactivated BEFORE 'print' activation.\n *\n * Let's capture all de-activations using the following logic:\n *\n * When not printing:\n * - clear cache when activating non-print breakpoint\n * - update cache (and sort) when deactivating\n *\n * When printing:\n * - sort and save when starting print\n * - restore as activatedTargets and clear when stop printing\n */\n collectActivations(event: MediaChange) {\n if (!this.isPrinting) {\n if (!event.matches) {\n const bp = this.breakpoints.findByQuery(event.mediaQuery);\n if (bp) { // Deactivating a breakpoint\n this.deactivations.push(bp);\n this.deactivations.sort(sortDescendingPriority);\n }\n } else {\n this.deactivations = [];\n }\n }\n }\n\n /** Is this service currently in Print-mode ? */\n private isPrinting = false;\n private queue: PrintQueue = new PrintQueue();\n private deactivations: BreakPoint[] = [];\n\n}\n\n// ************************************************************************\n// Internal Utility class 'PrintQueue'\n// ************************************************************************\n\n/**\n * Utility class to manage print breakpoints + activatedBreakpoints\n * with correct sorting WHILE printing\n */\nclass PrintQueue {\n /** Sorted queue with prioritized print breakpoints */\n printBreakpoints: BreakPoint[] = [];\n\n addPrintBreakpoints(bpList: OptionalBreakPoint[]): BreakPoint[] {\n bpList.push(BREAKPOINT_PRINT);\n bpList.sort(sortDescendingPriority);\n bpList.forEach(bp => this.addBreakpoint(bp));\n\n return this.printBreakpoints;\n }\n\n /** Add Print breakpoint to queue */\n addBreakpoint(bp: OptionalBreakPoint) {\n if (!!bp) {\n const bpInList = this.printBreakpoints.find(it => it.mediaQuery === bp.mediaQuery);\n if (bpInList === undefined) {\n // If this is a `printAlias` breakpoint, then append. If a true 'print' breakpoint,\n // register as highest priority in the queue\n this.printBreakpoints = isPrintBreakPoint(bp) ? [bp, ...this.printBreakpoints]\n : [...this.printBreakpoints, bp];\n }\n }\n }\n\n /** Restore original activated breakpoints and clear internal caches */\n clear() {\n this.printBreakpoints = [];\n }\n}\n\n// ************************************************************************\n// Internal Utility methods\n// ************************************************************************\n\n/** Only support intercept queueing if the Breakpoint is a print @media query */\nfunction isPrintBreakPoint(bp: OptionalBreakPoint) {\n return bp ? bp.mediaQuery.startsWith(PRINT) : false;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Inject, Injectable, NgZone, PLATFORM_ID} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\nimport {MatchMedia} from '../match-media';\nimport {BreakPointRegistry} from '../../breakpoints/break-point-registry';\n\n/**\n * MockMatchMedia mocks calls to the Window API matchMedia with a build of a simulated\n * MockMediaQueryListener. Methods are available to simulate an activation of a mediaQuery\n * range and to clearAll mediaQuery listeners.\n */\n@Injectable()\nexport class MockMatchMedia extends MatchMedia {\n\n\n autoRegisterQueries = true; // Used for testing BreakPoint registrations\n useOverlaps = false; // Allow fallback to overlapping mediaQueries\n\n constructor(_zone: NgZone,\n @Inject(PLATFORM_ID) _platformId: Object,\n @Inject(DOCUMENT) _document: any,\n private _breakpoints: BreakPointRegistry) {\n super(_zone, _platformId, _document);\n }\n\n /** Easy method to clear all listeners for all mediaQueries */\n clearAll() {\n this.registry.forEach((mql: MediaQueryList) => {\n (mql as MockMediaQueryList).destroy();\n });\n this.registry.clear();\n this.useOverlaps = false;\n }\n\n /** Feature to support manual, simulated activation of a mediaQuery. */\n activate(mediaQuery: string, useOverlaps = false): boolean {\n useOverlaps = useOverlaps || this.useOverlaps;\n mediaQuery = this._validateQuery(mediaQuery);\n\n if (useOverlaps || !this.isActive(mediaQuery)) {\n this._deactivateAll();\n\n this._registerMediaQuery(mediaQuery);\n this._activateWithOverlaps(mediaQuery, useOverlaps);\n }\n\n return this.hasActivated;\n }\n\n /** Converts an optional mediaQuery alias to a specific, valid mediaQuery */\n _validateQuery(queryOrAlias: string) {\n const bp = this._breakpoints.findByAlias(queryOrAlias);\n return (bp && bp.mediaQuery) || queryOrAlias;\n }\n\n /**\n * Manually onMediaChange any overlapping mediaQueries to simulate\n * similar functionality in the window.matchMedia()\n */\n private _activateWithOverlaps(mediaQuery: string, useOverlaps: boolean): boolean {\n if (useOverlaps) {\n const bp = this._breakpoints.findByQuery(mediaQuery);\n const alias = bp ? bp.alias : 'unknown';\n\n // Simulate activation of overlapping lt-<XXX> ranges\n switch (alias) {\n case 'lg' :\n this._activateByAlias('lt-xl');\n break;\n case 'md' :\n this._activateByAlias('lt-xl, lt-lg');\n break;\n case 'sm' :\n this._activateByAlias('lt-xl, lt-lg, lt-md');\n break;\n case 'xs' :\n this._activateByAlias('lt-xl, lt-lg, lt-md, lt-sm');\n break;\n }\n\n // Simulate activation of overlapping gt-<xxxx> mediaQuery ranges\n switch (alias) {\n case 'xl' :\n this._activateByAlias('gt-lg, gt-md, gt-sm, gt-xs');\n break;\n case 'lg' :\n this._activateByAlias('gt-md, gt-sm, gt-xs');\n break;\n case 'md' :\n this._activateByAlias('gt-sm, gt-xs');\n break;\n case 'sm' :\n this._activateByAlias('gt-xs');\n break;\n }\n }\n // Activate last since the responsiveActivation is watching *this* mediaQuery\n return this._activateByQuery(mediaQuery);\n }\n\n /**\n *\n */\n private _activateByAlias(aliases: string) {\n const activate = (alias: string) => {\n const bp = this._breakpoints.findByAlias(alias);\n this._activateByQuery(bp ? bp.mediaQuery : alias);\n };\n aliases.split(',').forEach(alias => activate(alias.trim()));\n }\n\n /**\n *\n */\n private _activateByQuery(mediaQuery: string) {\n const mql: MockMediaQueryList = this.registry.get(mediaQuery) as MockMediaQueryList;\n\n if (mql && !this.isActive(mediaQuery)) {\n this.registry.set(mediaQuery, mql.activate());\n }\n return this.hasActivated;\n }\n\n /** Deactivate all current MQLs and reset the buffer */\n private _deactivateAll() {\n this.registry.forEach((it: MediaQueryList) => {\n (it as MockMediaQueryList).deactivate();\n });\n return this;\n }\n\n /** Insure the mediaQuery is registered with MatchMedia */\n private _registerMediaQuery(mediaQuery: string) {\n if (!this.registry.has(mediaQuery) && this.autoRegisterQueries) {\n this.registerQuery(mediaQuery);\n }\n }\n\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n protected buildMQL(query: string): MediaQueryList {\n return new MockMediaQueryList(query);\n }\n\n protected get hasActivated() {\n return this.activations.length > 0;\n }\n\n}\n\n/**\n * Special internal class to simulate a MediaQueryList and\n * - supports manual activation to simulate mediaQuery matching\n * - manages listeners\n */\nexport class MockMediaQueryList implements MediaQueryList {\n private _isActive = false;\n private _listeners: MediaQueryListListener[] = [];\n\n get matches(): boolean {\n return this._isActive;\n }\n\n get media(): string {\n return this._mediaQuery;\n }\n\n constructor(private _mediaQuery: string) {\n }\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\n /** Notify all listeners that 'matches === TRUE' */\n activate(): MockMediaQueryList {\n if (!this._isActive) {\n this._isActive = true;\n this._listeners.forEach((callback) => {\n const cb: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) = callback!;\n cb.call(null, this);\n });\n }\n return this;\n }\n\n /** Notify all listeners that 'matches === false' */\n deactivate(): MockMediaQueryList {\n if (this._isActive) {\n this._isActive = false;\n this._listeners.forEach((callback) => {\n const cb: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) = callback!;\n cb.call(null, this);\n });\n }\n return this;\n }\n\n /** Add a listener to our internal list to activate later */\n addListener(listener: MediaQueryListListener) {\n if (this._listeners.indexOf(listener) === -1) {\n this._listeners.push(listener);\n }\n if (this._isActive) {\n const cb: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) = listener!;\n cb.call(null, this);\n }\n }\n\n /** Don't need to remove listeners in the testing environment */\n removeListener(_: MediaQueryListListener | null) {\n }\n\n addEventListener<K extends keyof MediaQueryListEventMap>(\n _: K,\n __: (this: MediaQueryList,\n ev: MediaQueryListEventMap[K]) => any,\n ___?: boolean | AddEventListenerOptions): void;\n\n addEventListener(\n _: string,\n __: EventListenerOrEventListenerObject,\n ___?: boolean | AddEventListenerOptions) {\n }\n\n removeEventListener<K extends keyof MediaQueryListEventMap>(\n _: K,\n __: (this: MediaQueryList,\n ev: MediaQueryListEventMap[K]) => any,\n ___?: boolean | EventListenerOptions): void;\n\n removeEventListener(\n _: string,\n __: EventListenerOrEventListenerObject,\n ___?: boolean | EventListenerOptions) {\n }\n\n dispatchEvent(_: Event): boolean {\n return false;\n }\n\n onchange: MediaQueryListListener = null;\n}\n\n/**\n * Pre-configured provider for MockMatchMedia\n */\nexport const MockMatchMediaProvider = { // tslint:disable-line:variable-name\n provide: MatchMedia,\n useClass: MockMatchMedia\n};\n\ntype MediaQueryListListener = ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Inject, Injectable, NgZone, PLATFORM_ID} from '@angular/core';\nimport {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {BehaviorSubject, Observable, merge, Observer} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\nimport {MediaChange} from '../media-change';\n\n/**\n * MediaMonitor configures listeners to mediaQuery changes and publishes an Observable facade to\n * convert mediaQuery change callbacks to subscriber notifications. These notifications will be\n * performed within the ng Zone to trigger change detections and component updates.\n *\n * NOTE: both mediaQuery activations and de-activations are announced in notifications\n */\n@Injectable({providedIn: 'root'})\nexport class MatchMedia {\n /** Initialize source with 'all' so all non-responsive APIs trigger style updates */\n readonly source = new BehaviorSubject<MediaChange>(new MediaChange(true));\n registry = new Map<string, MediaQueryList>();\n\n constructor(protected _zone: NgZone,\n @Inject(PLATFORM_ID) protected _platformId: Object,\n @Inject(DOCUMENT) protected _document: any) {\n }\n\n /**\n * Publish list of all current activations\n */\n get activations(): string[] {\n const results: string[] = [];\n this.registry.forEach((mql: MediaQueryList, key: string) => {\n if (mql.matches) {\n results.push(key);\n }\n });\n return results;\n }\n\n /**\n * For the specified mediaQuery?\n */\n isActive(mediaQuery: string): boolean {\n const mql = this.registry.get(mediaQuery);\n return !!mql ? mql.matches : false;\n }\n\n /**\n * External observers can watch for all (or a specific) mql changes.\n *\n * If a mediaQuery is not specified, then ALL mediaQuery activations will\n * be announced.\n */\n observe(): Observable<MediaChange>;\n observe(mediaQueries: string[]): Observable<MediaChange>;\n observe(mediaQueries: string[], filterOthers: boolean): Observable<MediaChange>;\n\n /**\n * External observers can watch for all (or a specific) mql changes.\n * Typically used by the MediaQueryAdaptor; optionally available to components\n * who wish to use the MediaMonitor as mediaMonitor$ observable service.\n *\n * Use deferred registration process to register breakpoints only on subscription\n * This logic also enforces logic to register all mediaQueries BEFORE notify\n * subscribers of notifications.\n */\n observe(mqList?: string[], filterOthers = false): Observable<MediaChange> {\n if (mqList && mqList.length) {\n const matchMedia$: Observable<MediaChange> = this._observable$.pipe(\n filter((change: MediaChange) => {\n return !filterOthers ? true : (mqList.indexOf(change.mediaQuery) > -1);\n })\n );\n const registration$: Observable<MediaChange> = new Observable((observer: Observer<MediaChange>) => { // tslint:disable-line:max-line-length\n const matches: Array<MediaChange> = this.registerQuery(mqList);\n if (matches.length) {\n const lastChange = matches.pop()!;\n matches.forEach((e: MediaChange) => {\n observer.next(e);\n });\n this.source.next(lastChange); // last match is cached\n }\n observer.complete();\n });\n return merge(registration$, matchMedia$);\n }\n\n return this._observable$;\n }\n\n /**\n * Based on the BreakPointRegistry provider, register internal listeners for each unique\n * mediaQuery. Each listener emits specific MediaChange data to observers\n */\n registerQuery(mediaQuery: string | string[]) {\n const list = Array.isArray(mediaQuery) ? mediaQuery : [mediaQuery];\n const matches: MediaChange[] = [];\n\n buildQueryCss(list, this._document);\n\n list.forEach((query: string) => {\n const onMQLEvent = (e: MediaQueryListEvent) => {\n this._zone.run(() => this.source.next(new MediaChange(e.matches, query)));\n };\n\n let mql = this.registry.get(query);\n if (!mql) {\n mql = this.buildMQL(query);\n mql.addListener(onMQLEvent);\n this.registry.set(query, mql);\n }\n\n if (mql.matches) {\n matches.push(new MediaChange(true, query));\n }\n });\n\n return matches;\n }\n\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n protected buildMQL(query: string): MediaQueryList {\n return constructMql(query, isPlatformBrowser(this._platformId));\n }\n\n protected _observable$ = this.source.asObservable();\n}\n\n/**\n * Private global registry for all dynamically-created, injected style tags\n * @see prepare(query)\n */\nconst ALL_STYLES: { [key: string]: any } = {};\n\n/**\n * For Webkit engines that only trigger the MediaQueryList Listener\n * when there is at least one CSS selector for the respective media query.\n *\n * @param mediaQueries\n * @param _document\n */\nfunction buildQueryCss(mediaQueries: string[], _document: Document) {\n const list = mediaQueries.filter(it => !ALL_STYLES[it]);\n if (list.length > 0) {\n const query = list.join(', ');\n\n try {\n const styleEl = _document.createElement('style');\n\n styleEl.setAttribute('type', 'text/css');\n if (!(styleEl as any).styleSheet) {\n const cssText = `\n/*\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\n see http://bit.ly/2sd4HMP\n*/\n@media ${query} {.fx-query-test{ }}\n`;\n styleEl.appendChild(_document.createTextNode(cssText));\n }\n\n _document.head!.appendChild(styleEl);\n\n // Store in private global registry\n list.forEach(mq => ALL_STYLES[mq] = styleEl);\n\n } catch (e) {\n console.error(e);\n }\n }\n}\n\nfunction constructMql(query: string, isBrowser: boolean): MediaQueryList {\n const canListen = isBrowser && !!(<Window>window).matchMedia('all').addListener;\n\n return canListen ? (<Window>window).matchMedia(query) : {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => {\n },\n removeListener: () => {\n }\n } as unknown as MediaQueryList;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Injectable, Inject} from '@angular/core';\n\nimport {BreakPoint} from './break-point';\nimport {BREAKPOINTS} from './break-points-token';\nimport {sortAscendingPriority} from '../utils/sort';\n\nexport type OptionalBreakPoint = BreakPoint | null;\n\n/**\n * Registry of 1..n MediaQuery breakpoint ranges\n * This is published as a provider and may be overridden from custom, application-specific ranges\n *\n */\n@Injectable({providedIn: 'root'})\nexport class BreakPointRegistry {\n readonly items: BreakPoint[];\n\n constructor(@Inject(BREAKPOINTS) list: BreakPoint[]) {\n this.items = [...list].sort(sortAscendingPriority);\n }\n\n /**\n * Search breakpoints by alias (e.g. gt-xs)\n */\n findByAlias(alias: string): OptionalBreakPoint {\n return !alias ? null : this.findWithPredicate(alias, (bp) => bp.alias == alias);\n }\n\n findByQuery(query: string): OptionalBreakPoint {\n return this.findWithPredicate(query, (bp) => bp.mediaQuery == query);\n }\n\n /**\n * Get all the breakpoints whose ranges could overlapping `normal` ranges;\n * e.g. gt-sm overlaps md, lg, and xl\n */\n get overlappings(): BreakPoint[] {\n return this.items.filter(it => it.overlapping == true);\n }\n\n /**\n * Get list of all registered (non-empty) breakpoint aliases\n */\n get aliases(): string[] {\n return this.items.map(it => it.alias);\n }\n\n /**\n * Aliases are mapped to properties using suffixes\n * e.g. 'gt-sm' for property 'layout' uses suffix 'GtSm'\n * for property layoutGtSM.\n */\n get suffixes(): string[] {\n return this.items.map(it => !!it.suffix ? it.suffix : '');\n }\n\n /**\n * Memoized lookup using custom predicate function\n */\n private findWithPredicate(key: string,\n searchFn: (bp: BreakPoint) => boolean): OptionalBreakPoint {\n let response = this.findByMap.get(key);\n if (!response) {\n response = this.items.find(searchFn) || null;\n this.findByMap.set(key, response);\n }\n return response || null;\n\n }\n\n /**\n * Memoized BreakPoint Lookups\n */\n private readonly findByMap = new Map<String, OptionalBreakPoint>();\n}\n\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\ninterface WithPriority {\n priority?: number;\n}\n\n/** HOF to sort the breakpoints by descending priority */\nexport function sortDescendingPriority<T extends WithPriority>(a: T | null, b: T | null): number {\n const priorityA = a ? a.priority || 0 : 0;\n const priorityB = b ? b.priority || 0 : 0;\n return priorityB - priorityA;\n}\n\n/** HOF to sort the breakpoints by ascending priority */\nexport function sortAscendingPriority<T extends WithPriority>(a: T, b: T): number {\n const pA = a.priority || 0;\n const pB = b.priority || 0;\n return pA - pB;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {inject, InjectionToken} from '@angular/core';\nimport {BreakPoint} from './break-point';\nimport {BREAKPOINT} from '../tokens/breakpoint-token';\nimport {DEFAULT_BREAKPOINTS} from '../breakpoints/data/break-points';\nimport {ORIENTATION_BREAKPOINTS} from '../breakpoints/data/orientation-break-points';\nimport {mergeByAlias} from '../breakpoints/breakpoint-tools';\nimport {LAYOUT_CONFIG} from '../tokens/library-config';\n\n/**\n * Injection token unique to the flex-layout library.\n * Use this token when build a custom provider (see below).\n */\nexport const BREAKPOINTS =\n new InjectionToken<BreakPoint[]>('Token (@angular/flex-layout) Breakpoints', {\n providedIn: 'root',\n factory: () => {\n const breakpoints: any = inject(BREAKPOINT);\n const layoutConfig = inject(LAYOUT_CONFIG);\n const bpFlattenArray: BreakPoint[] = [].concat.apply([], (breakpoints || [])\n .map((v: BreakPoint | BreakPoint[]) => Array.isArray(v) ? v : [v]));\n const builtIns = (layoutConfig.disableDefaultBps ? [] : DEFAULT_BREAKPOINTS)\n .concat(layoutConfig.addOrientationBps ? ORIENTATION_BREAKPOINTS : []);\n\n return mergeByAlias(builtIns, bpFlattenArray);\n }\n });\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {BreakPoint} from './break-point';\nimport {extendObject} from '../../utils/object-extend';\n\nconst ALIAS_DELIMITERS = /(\\.|-|_)/g;\nfunction firstUpperCase(part: string) {\n let first = part.length > 0 ? part.charAt(0) : '';\n let remainder = (part.length > 1) ? part.slice(1) : '';\n return first.toUpperCase() + remainder;\n}\n\n/**\n * Converts snake-case to SnakeCase.\n * @param name Text to UpperCamelCase\n */\nfunction camelCase(name: string): string {\n return name\n .replace(ALIAS_DELIMITERS, '|')\n .split('|')\n .map(firstUpperCase)\n .join('');\n}\n\n/**\n * For each breakpoint, ensure that a Suffix is defined;\n * fallback to UpperCamelCase the unique Alias value\n */\nexport function validateSuffixes(list: BreakPoint[]): BreakPoint[] {\n list.forEach((bp: BreakPoint) => {\n if (!bp.suffix) {\n bp.suffix = camelCase(bp.alias); // create Suffix value based on alias\n bp.overlapping = !!bp.overlapping; // ensure default value\n }\n });\n return list;\n}\n\n/**\n * Merge a custom breakpoint list with the default list based on unique alias values\n * - Items are added if the alias is not in the default list\n * - Items are merged with the custom override if the alias exists in the default list\n */\nexport function mergeByAlias(defaults: BreakPoint[], custom: BreakPoint[] = []): BreakPoint[] {\n const dict: {[key: string]: BreakPoint} = {};\n defaults.forEach(bp => {\n dict[bp.alias] = bp;\n });\n // Merge custom breakpoints\n custom.forEach((bp: BreakPoint) => {\n if (dict[bp.alias]) {\n extendObject(dict[bp.alias], bp);\n } else {\n dict[bp.alias] = bp;\n }\n });\n\n return validateSuffixes(Object.keys(dict).map(k => dict[k]));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BreakPoint} from '../break-point';\n\n/* tslint:disable */\nconst HANDSET_PORTRAIT = '(orientation: portrait) and (max-width: 599.99px)';\nconst HANDSET_LANDSCAPE = '(orientation: landscape) and (max-width: 959.99px)';\n\nconst TABLET_PORTRAIT = '(orientation: portrait) and (min-width: 600px) and (max-width: 839.99px)';\nconst TABLET_LANDSCAPE = '(orientation: landscape) and (min-width: 960px) and (max-width: 1279.99px)';\n\nconst WEB_PORTRAIT = '(orientation: portrait) and (min-width: 840px)';\nconst WEB_LANDSCAPE = '(orientation: landscape) and (min-width: 1280px)';\n\nexport const ScreenTypes = {\n 'HANDSET' : `${HANDSET_PORTRAIT}, ${HANDSET_LANDSCAPE}`,\n 'TABLET' : `${TABLET_PORTRAIT} , ${TABLET_LANDSCAPE}`,\n 'WEB' : `${WEB_PORTRAIT}, ${WEB_LANDSCAPE} `,\n\n 'HANDSET_PORTRAIT' : `${HANDSET_PORTRAIT}`,\n 'TABLET_PORTRAIT' : `${TABLET_PORTRAIT} `,\n 'WEB_PORTRAIT' : `${WEB_PORTRAIT}`,\n\n 'HANDSET_LANDSCAPE' : `${HANDSET_LANDSCAPE}]`,\n 'TABLET_LANDSCAPE' : `${TABLET_LANDSCAPE}`,\n 'WEB_LANDSCAPE' : `${WEB_LANDSCAPE}`\n};\n\n/**\n * Extended Breakpoints for handset/tablets with landscape or portrait orientations\n */\nexport const ORIENTATION_BREAKPOINTS : BreakPoint[] = [\n {'alias': 'handset', priority: 2000, 'mediaQuery': ScreenTypes.HANDSET},\n {'alias': 'handset.landscape', priority: 2000, 'mediaQuery': ScreenTypes.HANDSET_LANDSCAPE},\n {'alias': 'handset.portrait', priority: 2000, 'mediaQuery': ScreenTypes.HANDSET_PORTRAIT},\n\n {'alias': 'tablet', priority: 2100, 'mediaQuery': ScreenTypes.TABLET},\n {'alias': 'tablet.landscape', priority: 2100, 'mediaQuery': ScreenTypes.TABLET},\n {'alias': 'tablet.portrait', priority: 2100, 'mediaQuery': ScreenTypes.TABLET_PORTRAIT},\n\n {'alias': 'web', priority: 2200, 'mediaQuery': ScreenTypes.WEB, overlapping : true },\n {'alias': 'web.landscape', priority: 2200, 'mediaQuery': ScreenTypes.WEB_LANDSCAPE, overlapping : true },\n {'alias': 'web.portrait', priority: 2200, 'mediaQuery': ScreenTypes.WEB_PORTRAIT, overlapping : true }\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {BreakPoint} from '../break-point';\n\n/**\n * NOTE: Smaller ranges have HIGHER priority since the match is more specific\n */\nexport const DEFAULT_BREAKPOINTS: BreakPoint[] = [\n {\n alias: 'xs',\n mediaQuery: 'screen and (min-width: 0px) and (max-width: 599.99px)',\n priority: 1000,\n },\n {\n alias: 'sm',\n mediaQuery: 'screen and (min-width: 600px) and (max-width: 959.99px)',\n priority: 900,\n },\n {\n alias: 'md',\n mediaQuery: 'screen and (min-width: 960px) and (max-width: 1279.99px)',\n priority: 800,\n },\n {\n alias: 'lg',\n mediaQuery: 'screen and (min-width: 1280px) and (max-width: 1919.99px)',\n priority: 700,\n },\n {\n alias: 'xl',\n mediaQuery: 'screen and (min-width: 1920px) and (max-width: 4999.99px)',\n priority: 600,\n },\n {\n alias: 'lt-sm',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 599.99px)',\n priority: 950,\n },\n {\n alias: 'lt-md',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 959.99px)',\n priority: 850,\n },\n {\n alias: 'lt-lg',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 1279.99px)',\n priority: 750,\n },\n {\n alias: 'lt-xl',\n overlapping: true,\n priority: 650,\n mediaQuery: 'screen and (max-width: 1919.99px)',\n },\n {\n alias: 'gt-xs',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 600px)',\n priority: -950,\n },\n {\n alias: 'gt-sm',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 960px)',\n priority: -850,\n }, {\n alias: 'gt-md',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 1280px)',\n priority: -750,\n },\n {\n alias: 'gt-lg',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 1920px)',\n priority: -650,\n }\n];\n\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {ElementRef, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\n\nimport {StyleDefinition, StyleUtils} from '../style-utils/style-utils';\nimport {StyleBuilder} from '../style-builder/style-builder';\nimport {MediaMarshaller} from '../media-marshaller/media-marshaller';\nimport {buildLayoutCSS} from '../../utils/layout-validator';\n\nexport abstract class BaseDirective2 implements OnChanges, OnDestroy {\n\n protected DIRECTIVE_KEY = '';\n protected inputs: string[] = [];\n /** The most recently used styles for the builder */\n protected mru: StyleDefinition = {};\n protected destroySubject: Subject<void> = new Subject();\n\n /** Access to host element's parent DOM node */\n protected get parentElement(): HTMLElement | null {\n return this.elementRef.nativeElement.parentElement;\n }\n\n /** Access to the HTMLElement for the directive */\n protected get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /** Access to the activated value for the directive */\n get activatedValue(): string {\n return this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY);\n }\n set activatedValue(value: string) {\n this.marshal.setValue(this.nativeElement, this.DIRECTIVE_KEY, value,\n this.marshal.activatedAlias);\n }\n\n /** Cache map for style computation */\n protected styleCache: Map<string, StyleDefinition> = new Map();\n\n protected constructor(protected elementRef: ElementRef,\n protected styleBuilder: StyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller) {\n }\n\n /** For @Input changes */\n ngOnChanges(changes: SimpleChanges) {\n Object.keys(changes).forEach(key => {\n if (this.inputs.indexOf(key) !== -1) {\n const bp = key.split('.').slice(1).join('.');\n const val = changes[key].currentValue;\n this.setValue(val, bp);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroySubject.next();\n this.destroySubject.complete();\n this.marshal.releaseElement(this.nativeElement);\n }\n\n /** Register with central marshaller service */\n protected init(extraTriggers: Observable<any>[] = []): void {\n this.marshal.init(\n this.elementRef.nativeElement,\n this.DIRECTIVE_KEY,\n this.updateWithValue.bind(this),\n this.clearStyles.bind(this),\n extraTriggers\n );\n }\n\n /** Add styles to the element using predefined style builder */\n protected addStyles(input: string, parent?: Object) {\n const builder = this.styleBuilder;\n const useCache = builder.shouldCache;\n\n let genStyles: StyleDefinition | undefined = this.styleCache.get(input);\n\n if (!genStyles || !useCache) {\n genStyles = builder.buildStyles(input, parent);\n if (useCache) {\n this.styleCache.set(input, genStyles);\n }\n }\n\n this.mru = {...genStyles};\n this.applyStyleToElement(genStyles);\n builder.sideEffect(input, genStyles, parent);\n }\n\n /** Remove generated styles from an element using predefined style builder */\n protected clearStyles() {\n Object.keys(this.mru).forEach(k => {\n this.mru[k] = '';\n });\n this.applyStyleToElement(this.mru);\n this.mru = {};\n }\n\n /** Force trigger style updates on DOM element */\n protected triggerUpdate() {\n this.marshal.triggerUpdate(this.nativeElement, this.DIRECTIVE_KEY);\n }\n\n /**\n * Determine the DOM element's Flexbox flow (flex-direction).\n *\n * Check inline style first then check computed (stylesheet) style.\n * And optionally add the flow value to element's inline style.\n */\n protected getFlexFlowDirection(target: HTMLElement, addIfMissing = false): string {\n if (target) {\n const [value, hasInlineValue] = this.styler.getFlowDirection(target);\n\n if (!hasInlineValue && addIfMissing) {\n const style = buildLayoutCSS(value);\n const elements = [target];\n this.styler.applyStyleToElements(style, elements);\n }\n\n return value.trim();\n }\n\n return 'row';\n }\n\n /** Applies styles given via string pair or object map to the directive element */\n protected applyStyleToElement(style: StyleDefinition,\n value?: string | number,\n element: HTMLElement = this.nativeElement) {\n this.styler.applyStyleToElement(element, style, value);\n }\n\n protected setValue(val: any, bp: string): void {\n this.marshal.setValue(this.nativeElement, this.DIRECTIVE_KEY, val, bp);\n }\n\n protected updateWithValue(input: string) {\n this.addStyles(input);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {MediaChange} from './media-change';\nimport {BreakPoint} from './breakpoints/break-point';\n\n/**\n * For the specified MediaChange, make sure it contains the breakpoint alias\n * and suffix (if available).\n */\nexport function mergeAlias(dest: MediaChange, source: BreakPoint | null): MediaChange {\n dest = dest ? dest.clone() : new MediaChange();\n if (source) {\n dest.mqAlias = source.alias;\n dest.mediaQuery = source.mediaQuery;\n dest.suffix = source.suffix as string;\n dest.priority = source.priority as number;\n }\n return dest;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {InjectionToken} from '@angular/core';\nimport {BreakPoint} from '../breakpoints/break-point';\n\nexport const BREAKPOINT = new InjectionToken<BreakPoint|BreakPoint[]|null>(\n 'Flex Layout token, collect all breakpoints into one provider', {\n providedIn: 'root',\n factory: () => null\n });\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {InjectionToken} from '@angular/core';\n\n/**\n * Token that is provided to tell whether the FlexLayoutServerModule\n * has been included in the bundle\n *\n * NOTE: This can be manually provided to disable styles when using SSR\n */\nexport const SERVER_TOKEN = new InjectionToken<boolean>(\n 'FlexLayoutServerLoaded', {\n providedIn: 'root',\n factory: () => false\n });\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {InjectionToken} from '@angular/core';\n\n/** a set of configuration options for FlexLayoutModule */\nexport interface LayoutConfigOptions {\n addFlexToParent?: boolean;\n addOrientationBps?: boolean;\n disableDefaultBps?: boolean;\n disableVendorPrefixes?: boolean;\n serverLoaded?: boolean;\n useColumnBasisZero?: boolean;\n printWithBreakpoints?: string[];\n mediaTriggerAutoRestore?: boolean;\n ssrObserveBreakpoints?: string[];\n}\n\nexport const DEFAULT_CONFIG: LayoutConfigOptions = {\n addFlexToParent: true,\n addOrientationBps: false,\n disableDefaultBps: false,\n disableVendorPrefixes: false,\n serverLoaded: false,\n useColumnBasisZero: true,\n printWithBreakpoints: [],\n mediaTriggerAutoRestore: true,\n ssrObserveBreakpoints: [],\n};\n\nexport const LAYOUT_CONFIG = new InjectionToken<LayoutConfigOptions>(\n 'Flex Layout token, config options for the library', {\n providedIn: 'root',\n factory: () => DEFAULT_CONFIG\n });\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Injectable} from '@angular/core';\n\n/**\n * Utility to emulate a CSS stylesheet\n *\n * This utility class stores all of the styles for a given HTML element\n * as a readonly `stylesheet` map.\n */\n@Injectable({providedIn: 'root'})\nexport class StylesheetMap {\n\n readonly stylesheet = new Map<HTMLElement, Map<string, string|number>>();\n\n /**\n * Add an individual style to an HTML element\n */\n addStyleToElement(element: HTMLElement, style: string, value: string|number) {\n const stylesheet = this.stylesheet.get(element);\n if (stylesheet) {\n stylesheet.set(style, value);\n } else {\n this.stylesheet.set(element, new Map([[style, value]]));\n }\n }\n\n /**\n * Clear the virtual stylesheet\n */\n clearStyles() {\n this.stylesheet.clear();\n }\n\n /**\n * Retrieve a given style for an HTML element\n */\n getStyleForElement(el: HTMLElement, styleName: string): string {\n const styles = this.stylesheet.get(el);\n let value = '';\n if (styles) {\n const style = styles.get(styleName);\n if (typeof style === 'number' || typeof style === 'string') {\n value = style + '';\n }\n }\n return value;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport type MediaQuerySubscriber = (changes: MediaChange) => void;\n\n/**\n * Class instances emitted [to observers] for each mql notification\n */\nexport class MediaChange {\n property: string = '';\n value: any;\n\n /**\n * @param matches whether the mediaQuery is currently activated\n * @param mediaQuery e.g. (min-width: 600px) and (max-width: 959px)\n * @param mqAlias e.g. gt-sm, md, gt-lg\n * @param suffix e.g. GtSM, Md, GtLg\n * @param priority the priority of activation for the given breakpoint\n */\n constructor(public matches = false,\n public mediaQuery = 'all',\n public mqAlias = '',\n public suffix = '',\n public priority = 0) {\n }\n\n /** Create an exact copy of the MediaChange */\n clone(): MediaChange {\n return new MediaChange(this.matches, this.mediaQuery, this.mqAlias, this.suffix);\n }\n}\n\n\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {NgModule} from '@angular/core';\n\nimport {BROWSER_PROVIDER} from './browser-provider';\n\n/**\n * *****************************************************************\n * Define module for the MediaQuery API\n * *****************************************************************\n */\n\n@NgModule({\n providers: [BROWSER_PROVIDER]\n})\nexport class CoreModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {APP_BOOTSTRAP_LISTENER, PLATFORM_ID, InjectionToken} from '@angular/core';\nimport {DOCUMENT, isPlatformBrowser} from '@angular/common';\n\n/**\n * Find all of the server-generated stylings, if any, and remove them\n * This will be in the form of inline classes and the style block in the\n * head of the DOM\n */\nexport function removeStyles(_document: Document, platformId: Object) {\n return () => {\n if (isPlatformBrowser(platformId)) {\n const elements = Array.from(_document.querySelectorAll(`[class*=${CLASS_NAME}]`));\n\n // RegExp constructor should only be used if passing a variable to the constructor.\n // When using static regular expression it is more performant to use reg exp literal.\n // This is also needed to provide Safari 9 compatibility, please see\n // https://stackoverflow.com/questions/37919802 for more discussion.\n const classRegex = /\\bflex-layout-.+?\\b/g;\n elements.forEach(el => {\n el.classList.contains(`${CLASS_NAME}ssr`) && el.parentNode ?\n el.parentNode.removeChild(el) : el.className.replace(classRegex, '');\n });\n }\n };\n}\n\n/**\n * Provider to remove SSR styles on the browser\n */\nexport const BROWSER_PROVIDER = {\n provide: <InjectionToken<(() => void)[]>>APP_BOOTSTRAP_LISTENER,\n useFactory: removeStyles,\n deps: [DOCUMENT, PLATFORM_ID],\n multi: true\n};\n\nexport const CLASS_NAME = 'flex-layout-';\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n"],"names":["Inject","PLATFORM_ID","Optional","NgModule","tslib_1.__assign","isPlatformServer","Version","ALL_DIRECTIVES","Directive","selector","inputs","tslib_1.__extends","Input","ElementRef","coerceBooleanProperty","Injectable","AUTO_SPECIFIER","DEFAULT_VALUE","DEFAULT_CROSS","DEFAULT_MAIN","buildCss","BidiModule","LAYOUT_VALUES","takeUntil","extendObject","Directionality","NgZone","Subject","buildLayoutCSS","buildCSS","validateWrapValue","validateValue","INLINE","buildMapFromList","ɵNgStyleR2Impl","ɵNgStyleImpl","NgStyle","Self","DomSanitizer","SecurityContext","ɵNgClassR2Impl","ɵNgClassImpl","NgClass","map","tap","filter","merge","isPlatformBrowser","DOCUMENT","fromEvent","take","of","debounceTime","asapScheduler","switchMap","Observable","BehaviorSubject","inject","InjectionToken","APP_BOOTSTRAP_LISTENER"],"mappings":"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"}