@dugararchit/flex-layout 13.0.0-dugararchit

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +7 -0
  2. package/_private-utils/angular-flex-layout-_private-utils.d.ts +5 -0
  3. package/_private-utils/auto-prefixer.d.ts +24 -0
  4. package/_private-utils/index.d.ts +10 -0
  5. package/_private-utils/layout-validator.d.ts +32 -0
  6. package/_private-utils/object-extend.d.ts +15 -0
  7. package/_private-utils/package.json +10 -0
  8. package/_private-utils/testing/angular-flex-layout-_private-utils-testing.d.ts +5 -0
  9. package/_private-utils/testing/custom-matchers.d.ts +65 -0
  10. package/_private-utils/testing/dom-tools.d.ts +47 -0
  11. package/_private-utils/testing/helpers.d.ts +24 -0
  12. package/_private-utils/testing/index.d.ts +10 -0
  13. package/_private-utils/testing/package.json +10 -0
  14. package/angular-flex-layout-13.0.0-beta.38.tgz +0 -0
  15. package/angular-flex-layout.d.ts +5 -0
  16. package/core/README.md +25 -0
  17. package/core/add-alias.d.ts +14 -0
  18. package/core/angular-flex-layout-core.d.ts +5 -0
  19. package/core/base/base2.d.ts +60 -0
  20. package/core/base/index.d.ts +8 -0
  21. package/core/basis-validator/basis-validator.d.ts +13 -0
  22. package/core/breakpoints/break-point-registry.d.ts +42 -0
  23. package/core/breakpoints/break-point.d.ts +14 -0
  24. package/core/breakpoints/break-points-token.d.ts +14 -0
  25. package/core/breakpoints/breakpoint-tools.d.ts +19 -0
  26. package/core/breakpoints/data/break-points.d.ts +12 -0
  27. package/core/breakpoints/data/orientation-break-points.d.ts +23 -0
  28. package/core/breakpoints/index.d.ts +12 -0
  29. package/core/browser-provider.d.ts +24 -0
  30. package/core/match-media/index.d.ts +9 -0
  31. package/core/match-media/match-media.d.ts +59 -0
  32. package/core/match-media/mock/mock-match-media.d.ts +92 -0
  33. package/core/media-change.d.ts +30 -0
  34. package/core/media-marshaller/media-marshaller.d.ts +123 -0
  35. package/core/media-marshaller/print-hook.d.ts +95 -0
  36. package/core/media-observer/index.d.ts +8 -0
  37. package/core/media-observer/media-observer.d.ts +115 -0
  38. package/core/media-trigger/index.d.ts +8 -0
  39. package/core/media-trigger/media-trigger.d.ts +73 -0
  40. package/core/module.d.ts +11 -0
  41. package/core/multiply/multiplier.d.ts +5 -0
  42. package/core/package.json +10 -0
  43. package/core/public-api.d.ts +25 -0
  44. package/core/sass/_layout-bp.scss +76 -0
  45. package/core/style-builder/style-builder.d.ts +21 -0
  46. package/core/style-utils/style-utils.d.ts +53 -0
  47. package/core/stylesheet-map/index.d.ts +8 -0
  48. package/core/stylesheet-map/stylesheet-map.d.ts +24 -0
  49. package/core/tokens/breakpoint-token.d.ts +10 -0
  50. package/core/tokens/index.d.ts +10 -0
  51. package/core/tokens/library-config.d.ts +26 -0
  52. package/core/tokens/server-token.d.ts +15 -0
  53. package/core/utils/array.d.ts +9 -0
  54. package/core/utils/index.d.ts +9 -0
  55. package/core/utils/sort.d.ts +15 -0
  56. package/esm2020/_private-utils/angular-flex-layout-_private-utils.mjs +5 -0
  57. package/esm2020/_private-utils/auto-prefixer.mjs +65 -0
  58. package/esm2020/_private-utils/index.mjs +11 -0
  59. package/esm2020/_private-utils/layout-validator.mjs +83 -0
  60. package/esm2020/_private-utils/object-extend.mjs +30 -0
  61. package/esm2020/_private-utils/testing/angular-flex-layout-_private-utils-testing.mjs +5 -0
  62. package/esm2020/_private-utils/testing/custom-matchers.mjs +201 -0
  63. package/esm2020/_private-utils/testing/dom-tools.mjs +101 -0
  64. package/esm2020/_private-utils/testing/helpers.mjs +43 -0
  65. package/esm2020/_private-utils/testing/index.mjs +11 -0
  66. package/esm2020/angular-flex-layout.mjs +5 -0
  67. package/esm2020/core/add-alias.mjs +23 -0
  68. package/esm2020/core/angular-flex-layout-core.mjs +5 -0
  69. package/esm2020/core/base/base2.mjs +131 -0
  70. package/esm2020/core/base/index.mjs +9 -0
  71. package/esm2020/core/basis-validator/basis-validator.mjs +48 -0
  72. package/esm2020/core/breakpoints/break-point-registry.mjs +76 -0
  73. package/esm2020/core/breakpoints/break-point.mjs +2 -0
  74. package/esm2020/core/breakpoints/break-points-token.mjs +30 -0
  75. package/esm2020/core/breakpoints/breakpoint-tools.mjs +53 -0
  76. package/esm2020/core/breakpoints/data/break-points.mjs +78 -0
  77. package/esm2020/core/breakpoints/data/orientation-break-points.mjs +40 -0
  78. package/esm2020/core/breakpoints/index.mjs +13 -0
  79. package/esm2020/core/browser-provider.mjs +41 -0
  80. package/esm2020/core/match-media/index.mjs +10 -0
  81. package/esm2020/core/match-media/match-media.mjs +186 -0
  82. package/esm2020/core/match-media/mock/mock-match-media.mjs +224 -0
  83. package/esm2020/core/media-change.mjs +25 -0
  84. package/esm2020/core/media-marshaller/media-marshaller.mjs +317 -0
  85. package/esm2020/core/media-marshaller/print-hook.mjs +265 -0
  86. package/esm2020/core/media-observer/index.mjs +9 -0
  87. package/esm2020/core/media-observer/media-observer.mjs +195 -0
  88. package/esm2020/core/media-trigger/index.mjs +9 -0
  89. package/esm2020/core/media-trigger/media-trigger.mjs +188 -0
  90. package/esm2020/core/module.mjs +27 -0
  91. package/esm2020/core/multiply/multiplier.mjs +16 -0
  92. package/esm2020/core/public-api.mjs +26 -0
  93. package/esm2020/core/style-builder/style-builder.mjs +15 -0
  94. package/esm2020/core/style-utils/style-utils.mjs +174 -0
  95. package/esm2020/core/stylesheet-map/index.mjs +9 -0
  96. package/esm2020/core/stylesheet-map/stylesheet-map.mjs +59 -0
  97. package/esm2020/core/tokens/breakpoint-token.mjs +13 -0
  98. package/esm2020/core/tokens/index.mjs +11 -0
  99. package/esm2020/core/tokens/library-config.mjs +30 -0
  100. package/esm2020/core/tokens/server-token.mjs +19 -0
  101. package/esm2020/core/utils/array.mjs +12 -0
  102. package/esm2020/core/utils/index.mjs +10 -0
  103. package/esm2020/core/utils/sort.mjs +20 -0
  104. package/esm2020/extended/angular-flex-layout-extended.mjs +5 -0
  105. package/esm2020/extended/class/class.mjs +88 -0
  106. package/esm2020/extended/img-src/img-src.mjs +106 -0
  107. package/esm2020/extended/module.mjs +45 -0
  108. package/esm2020/extended/public-api.mjs +13 -0
  109. package/esm2020/extended/show-hide/show-hide.mjs +176 -0
  110. package/esm2020/extended/style/style-transforms.mjs +76 -0
  111. package/esm2020/extended/style/style.mjs +130 -0
  112. package/esm2020/flex/angular-flex-layout-flex.mjs +5 -0
  113. package/esm2020/flex/flex/flex.mjs +291 -0
  114. package/esm2020/flex/flex-align/flex-align.mjs +80 -0
  115. package/esm2020/flex/flex-fill/flex-fill.mjs +50 -0
  116. package/esm2020/flex/flex-offset/flex-offset.mjs +121 -0
  117. package/esm2020/flex/flex-order/flex-order.mjs +66 -0
  118. package/esm2020/flex/layout/layout.mjs +86 -0
  119. package/esm2020/flex/layout-align/layout-align.mjs +194 -0
  120. package/esm2020/flex/layout-gap/layout-gap.mjs +282 -0
  121. package/esm2020/flex/module.mjs +62 -0
  122. package/esm2020/flex/public-api.mjs +17 -0
  123. package/esm2020/grid/align-columns/align-columns.mjs +137 -0
  124. package/esm2020/grid/align-rows/align-rows.mjs +119 -0
  125. package/esm2020/grid/angular-flex-layout-grid.mjs +5 -0
  126. package/esm2020/grid/area/area.mjs +67 -0
  127. package/esm2020/grid/areas/areas.mjs +86 -0
  128. package/esm2020/grid/auto/auto.mjs +89 -0
  129. package/esm2020/grid/column/column.mjs +67 -0
  130. package/esm2020/grid/columns/columns.mjs +96 -0
  131. package/esm2020/grid/gap/gap.mjs +85 -0
  132. package/esm2020/grid/grid-align/grid-align.mjs +111 -0
  133. package/esm2020/grid/module.mjs +73 -0
  134. package/esm2020/grid/public-api.mjs +20 -0
  135. package/esm2020/grid/row/row.mjs +67 -0
  136. package/esm2020/grid/rows/rows.mjs +96 -0
  137. package/esm2020/module.mjs +64 -0
  138. package/esm2020/public-api.mjs +20 -0
  139. package/esm2020/server/angular-flex-layout-server.mjs +5 -0
  140. package/esm2020/server/module.mjs +22 -0
  141. package/esm2020/server/public-api.mjs +10 -0
  142. package/esm2020/server/server-match-media.mjs +151 -0
  143. package/esm2020/server/server-provider.mjs +140 -0
  144. package/esm2020/version.mjs +11 -0
  145. package/extended/README.md +18 -0
  146. package/extended/angular-flex-layout-extended.d.ts +5 -0
  147. package/extended/class/class.d.ts +38 -0
  148. package/extended/img-src/img-src.d.ts +51 -0
  149. package/extended/module.d.ts +16 -0
  150. package/extended/package.json +10 -0
  151. package/extended/public-api.d.ts +12 -0
  152. package/extended/show-hide/show-hide.d.ts +61 -0
  153. package/extended/style/style-transforms.d.ts +36 -0
  154. package/extended/style/style.d.ts +45 -0
  155. package/fesm2015/angular-flex-layout-_private-utils-testing.mjs +357 -0
  156. package/fesm2015/angular-flex-layout-_private-utils-testing.mjs.map +1 -0
  157. package/fesm2015/angular-flex-layout-_private-utils.mjs +193 -0
  158. package/fesm2015/angular-flex-layout-_private-utils.mjs.map +1 -0
  159. package/fesm2015/angular-flex-layout-core.mjs +2331 -0
  160. package/fesm2015/angular-flex-layout-core.mjs.map +1 -0
  161. package/fesm2015/angular-flex-layout-extended.mjs +621 -0
  162. package/fesm2015/angular-flex-layout-extended.mjs.map +1 -0
  163. package/fesm2015/angular-flex-layout-flex.mjs +1206 -0
  164. package/fesm2015/angular-flex-layout-flex.mjs.map +1 -0
  165. package/fesm2015/angular-flex-layout-grid.mjs +1047 -0
  166. package/fesm2015/angular-flex-layout-grid.mjs.map +1 -0
  167. package/fesm2015/angular-flex-layout-server.mjs +324 -0
  168. package/fesm2015/angular-flex-layout-server.mjs.map +1 -0
  169. package/fesm2015/angular-flex-layout.mjs +94 -0
  170. package/fesm2015/angular-flex-layout.mjs.map +1 -0
  171. package/fesm2020/angular-flex-layout-_private-utils-testing.mjs +357 -0
  172. package/fesm2020/angular-flex-layout-_private-utils-testing.mjs.map +1 -0
  173. package/fesm2020/angular-flex-layout-_private-utils.mjs +192 -0
  174. package/fesm2020/angular-flex-layout-_private-utils.mjs.map +1 -0
  175. package/fesm2020/angular-flex-layout-core.mjs +2304 -0
  176. package/fesm2020/angular-flex-layout-core.mjs.map +1 -0
  177. package/fesm2020/angular-flex-layout-extended.mjs +612 -0
  178. package/fesm2020/angular-flex-layout-extended.mjs.map +1 -0
  179. package/fesm2020/angular-flex-layout-flex.mjs +1198 -0
  180. package/fesm2020/angular-flex-layout-flex.mjs.map +1 -0
  181. package/fesm2020/angular-flex-layout-grid.mjs +1047 -0
  182. package/fesm2020/angular-flex-layout-grid.mjs.map +1 -0
  183. package/fesm2020/angular-flex-layout-server.mjs +322 -0
  184. package/fesm2020/angular-flex-layout-server.mjs.map +1 -0
  185. package/fesm2020/angular-flex-layout.mjs +92 -0
  186. package/fesm2020/angular-flex-layout.mjs.map +1 -0
  187. package/flex/README.md +19 -0
  188. package/flex/angular-flex-layout-flex.d.ts +5 -0
  189. package/flex/flex/flex.d.ts +59 -0
  190. package/flex/flex-align/flex-align.d.ts +32 -0
  191. package/flex/flex-fill/flex-fill.d.ts +33 -0
  192. package/flex/flex-offset/flex-offset.d.ts +44 -0
  193. package/flex/flex-order/flex-order.d.ts +34 -0
  194. package/flex/layout/layout.d.ts +43 -0
  195. package/flex/layout-align/layout-align.d.ts +49 -0
  196. package/flex/layout-gap/layout-gap.d.ts +65 -0
  197. package/flex/module.d.ts +21 -0
  198. package/flex/package.json +10 -0
  199. package/flex/public-api.d.ts +16 -0
  200. package/grid/README.md +19 -0
  201. package/grid/align-columns/align-columns.d.ts +39 -0
  202. package/grid/align-rows/align-rows.d.ts +39 -0
  203. package/grid/angular-flex-layout-grid.d.ts +5 -0
  204. package/grid/area/area.d.ts +34 -0
  205. package/grid/areas/areas.d.ts +41 -0
  206. package/grid/auto/auto.d.ts +41 -0
  207. package/grid/column/column.d.ts +34 -0
  208. package/grid/columns/columns.d.ts +43 -0
  209. package/grid/gap/gap.d.ts +42 -0
  210. package/grid/grid-align/grid-align.d.ts +37 -0
  211. package/grid/module.d.ts +23 -0
  212. package/grid/package.json +10 -0
  213. package/grid/public-api.d.ts +19 -0
  214. package/grid/row/row.d.ts +34 -0
  215. package/grid/rows/rows.d.ts +43 -0
  216. package/module.d.ts +30 -0
  217. package/package.json +100 -0
  218. package/public-api.d.ts +18 -0
  219. package/server/README.md +23 -0
  220. package/server/angular-flex-layout-server.d.ts +5 -0
  221. package/server/module.d.ts +6 -0
  222. package/server/package.json +10 -0
  223. package/server/public-api.d.ts +9 -0
  224. package/server/server-match-media.d.ts +61 -0
  225. package/server/server-provider.d.ts +44 -0
  226. package/version.d.ts +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-flex-layout-flex.mjs","sources":["../../../../projects/libs/flex-layout/flex/layout/layout.ts","../../../../projects/libs/flex-layout/flex/layout-gap/layout-gap.ts","../../../../projects/libs/flex-layout/flex/flex/flex.ts","../../../../projects/libs/flex-layout/flex/flex-order/flex-order.ts","../../../../projects/libs/flex-layout/flex/flex-offset/flex-offset.ts","../../../../projects/libs/flex-layout/flex/flex-align/flex-align.ts","../../../../projects/libs/flex-layout/flex/flex-fill/flex-fill.ts","../../../../projects/libs/flex-layout/flex/layout-align/layout-align.ts","../../../../projects/libs/flex-layout/flex/module.ts","../../../../projects/libs/flex-layout/flex/public-api.ts","../../../../projects/libs/flex-layout/flex/angular-flex-layout-flex.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 {Directive, ElementRef, OnChanges, Injectable, Inject} from '@angular/core';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n LAYOUT_CONFIG,\n LayoutConfigOptions,\n} from '@angular/flex-layout/core';\n\nimport {buildLayoutCSS} from '@angular/flex-layout/_private-utils';\n\nexport interface LayoutStyleDisplay {\n readonly display: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LayoutStyleBuilder extends StyleBuilder {\n buildStyles(input: string, {display}: LayoutStyleDisplay) {\n const css = buildLayoutCSS(input);\n return {\n ...css,\n display: display === 'none' ? display : css.display,\n };\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 */\n@Directive()\nexport class LayoutDirective extends BaseDirective2 implements OnChanges {\n\n protected DIRECTIVE_KEY = 'layout';\n\n constructor(elRef: ElementRef,\n styleUtils: StyleUtils,\n styleBuilder: LayoutStyleBuilder,\n marshal: MediaMarshaller,\n @Inject(LAYOUT_CONFIG) private _config: LayoutConfigOptions) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n protected updateWithValue(input: string) {\n const detectLayoutDisplay = this._config.detectLayoutDisplay;\n const display = detectLayoutDisplay ? this.styler.lookupStyle(this.nativeElement, 'display') : '';\n this.styleCache = cacheMap.get(display) ?? new Map();\n cacheMap.set(display, this.styleCache);\n\n if (this.currentValue !== input) {\n this.addStyles(input, {display});\n this.currentValue = input;\n }\n }\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutDirective extends LayoutDirective {\n protected inputs = inputs;\n}\n\ntype CacheMap = Map<string, StyleDefinition>;\nconst cacheMap = new Map<string, CacheMap>();\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 OnDestroy,\n NgZone,\n Injectable,\n AfterContentInit,\n Inject,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n MediaMarshaller,\n ElementMatcher,\n LAYOUT_CONFIG,\n LayoutConfigOptions,\n ɵmultiply as multiply,\n} from '@angular/flex-layout/core';\nimport {LAYOUT_VALUES} from '@angular/flex-layout/_private-utils';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\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 @Inject(LAYOUT_CONFIG) private _config: LayoutConfigOptions) {\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 gapValue = multiply(gapValue, this._config.multiplier);\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 gapValue = multiply(gapValue, this._config.multiplier);\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 gapValue = multiply(gapValue, this._config.multiplier);\n gapValue = this.addFallbackUnit(gapValue);\n\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 private addFallbackUnit(value: string) {\n return !isNaN(+value) ? `${value}${this._config.defaultUnit}` : value;\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 */\n@Directive()\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(elRef: ElementRef,\n protected zone: NgZone,\n protected directionality: Directionality,\n protected styleUtils: StyleUtils,\n styleBuilder: LayoutGapStyleBuilder,\n 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 const [between, below] = value.split(' ');\n const bottom = below ?? between;\n let paddingRight = '0px', paddingBottom = bottom, paddingLeft = '0px';\n\n if (directionality === 'rtl') {\n paddingLeft = between;\n } else {\n paddingRight = between;\n }\n\n return {'padding': `0px ${paddingRight} ${paddingBottom} ${paddingLeft}`};\n}\n\nfunction buildGridMargin(value: string, directionality: string): StyleDefinition {\n const [between, below] = value.split(' ');\n const bottom = below ?? between;\n const minus = (str: string) => `-${str}`;\n let marginRight = '0px', marginBottom = minus(bottom), marginLeft = '0px';\n\n if (directionality === 'rtl') {\n marginLeft = minus(between);\n } else {\n marginRight = minus(between);\n }\n\n return {'margin': `0px ${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, Inject, Injectable, Input, OnInit} 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 '@angular/flex-layout/_private-utils';\nimport {isFlowHorizontal} from '@angular/flex-layout/_private-utils';\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 */\n@Directive()\nexport class FlexDirective extends BaseDirective2 implements OnInit {\n\n protected DIRECTIVE_KEY = 'flex';\n protected direction?: string = undefined;\n protected wrap?: boolean = undefined;\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(elRef: ElementRef,\n styleUtils: StyleUtils,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n styleBuilder: FlexStyleBuilder,\n protected marshal: MediaMarshaller) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.init();\n }\n\n ngOnInit() {\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 === undefined) {\n this.direction = this.getFlexFlowDirection(this.parentElement!, addFlexToParent);\n }\n if (this.wrap === undefined) {\n this.wrap = this.hasWrap(this.parentElement!);\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 */\nimport {Directive, ElementRef, OnChanges, Injectable} 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 */\n@Directive()\nexport class FlexOrderDirective extends BaseDirective2 implements OnChanges {\n\n protected DIRECTIVE_KEY = 'flex-order';\n\n constructor(elRef: ElementRef,\n styleUtils: StyleUtils,\n styleBuilder: FlexOrderStyleBuilder,\n 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, OnChanges, Injectable, Inject} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n MediaMarshaller,\n BaseDirective2,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n ɵmultiply as multiply,\n LAYOUT_CONFIG,\n LayoutConfigOptions,\n} from '@angular/flex-layout/core';\nimport {isFlowHorizontal} from '@angular/flex-layout/_private-utils';\nimport {takeUntil} from 'rxjs/operators';\n\n\nexport interface FlexOffsetParent {\n layout: string;\n isRtl: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class FlexOffsetStyleBuilder extends StyleBuilder {\n constructor(@Inject(LAYOUT_CONFIG) private _config: LayoutConfigOptions) {\n super();\n }\n\n buildStyles(offset: string, parent: FlexOffsetParent) {\n offset ||= '0';\n offset = multiply(offset, this._config.multiplier);\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 */\n@Directive()\nexport class FlexOffsetDirective extends BaseDirective2 implements OnChanges {\n protected DIRECTIVE_KEY = 'flex-offset';\n\n constructor(elRef: ElementRef,\n protected directionality: Directionality,\n styleBuilder: FlexOffsetStyleBuilder,\n marshal: MediaMarshaller,\n 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, Injectable} 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 */\n@Directive()\nexport class FlexAlignDirective extends BaseDirective2 {\n\n protected DIRECTIVE_KEY = 'flex-align';\n\n constructor(elRef: ElementRef,\n styleUtils: StyleUtils,\n styleBuilder: FlexAlignStyleBuilder,\n 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 {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(elRef: ElementRef,\n styleUtils: StyleUtils,\n styleBuilder: FlexFillStyleBuilder,\n 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} 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 '@angular/flex-layout/_private-utils';\nimport {LAYOUT_VALUES, isFlowHorizontal} from '@angular/flex-layout/_private-utils';\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 */\n@Directive()\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(elRef: ElementRef,\n styleUtils: StyleUtils,\n styleBuilder: LayoutAlignStyleBuilder,\n 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 {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 */\n\nexport * from './module';\n\nexport * from './flex/flex';\nexport * from './flex-align/flex-align';\nexport * from './flex-fill/flex-fill';\nexport * from './flex-offset/flex-offset';\nexport * from './flex-order/flex-order';\nexport * from './layout/layout';\nexport * from './layout-align/layout-align';\nexport * from './layout-gap/layout-gap';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["inputs","selector","multiply"],"mappings":"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"}