blob: a7c09f2c450824d61a7a01a7f9b500e19595fe4d [file] [log] [blame]
{"version":3,"file":"flex.es5.js","sources":["../../../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"],"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 {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"],"names":["selector","inputs","tslib_1.__extends","tslib_1.__assign"],"mappings":"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"}