@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,194 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Directive, Injectable } from '@angular/core';
9
+ import { BaseDirective2, StyleBuilder, } from '@angular/flex-layout/core';
10
+ import { takeUntil } from 'rxjs/operators';
11
+ import { extendObject } from '@angular/flex-layout/_private-utils';
12
+ import { LAYOUT_VALUES, isFlowHorizontal } from '@angular/flex-layout/_private-utils';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/flex-layout/core";
15
+ export class LayoutAlignStyleBuilder extends StyleBuilder {
16
+ buildStyles(align, parent) {
17
+ const css = {}, [mainAxis, crossAxis] = align.split(' ');
18
+ // Main axis
19
+ switch (mainAxis) {
20
+ case 'center':
21
+ css['justify-content'] = 'center';
22
+ break;
23
+ case 'space-around':
24
+ css['justify-content'] = 'space-around';
25
+ break;
26
+ case 'space-between':
27
+ css['justify-content'] = 'space-between';
28
+ break;
29
+ case 'space-evenly':
30
+ css['justify-content'] = 'space-evenly';
31
+ break;
32
+ case 'end':
33
+ case 'flex-end':
34
+ css['justify-content'] = 'flex-end';
35
+ break;
36
+ case 'start':
37
+ case 'flex-start':
38
+ default:
39
+ css['justify-content'] = 'flex-start'; // default main axis
40
+ break;
41
+ }
42
+ // Cross-axis
43
+ switch (crossAxis) {
44
+ case 'start':
45
+ case 'flex-start':
46
+ css['align-items'] = css['align-content'] = 'flex-start';
47
+ break;
48
+ case 'center':
49
+ css['align-items'] = css['align-content'] = 'center';
50
+ break;
51
+ case 'end':
52
+ case 'flex-end':
53
+ css['align-items'] = css['align-content'] = 'flex-end';
54
+ break;
55
+ case 'space-between':
56
+ css['align-content'] = 'space-between';
57
+ css['align-items'] = 'stretch';
58
+ break;
59
+ case 'space-around':
60
+ css['align-content'] = 'space-around';
61
+ css['align-items'] = 'stretch';
62
+ break;
63
+ case 'baseline':
64
+ css['align-content'] = 'stretch';
65
+ css['align-items'] = 'baseline';
66
+ break;
67
+ case 'stretch':
68
+ default: // 'stretch'
69
+ css['align-items'] = css['align-content'] = 'stretch'; // default cross axis
70
+ break;
71
+ }
72
+ return extendObject(css, {
73
+ 'display': parent.inline ? 'inline-flex' : 'flex',
74
+ 'flex-direction': parent.layout,
75
+ 'box-sizing': 'border-box',
76
+ 'max-width': crossAxis === 'stretch' ?
77
+ !isFlowHorizontal(parent.layout) ? '100%' : null : null,
78
+ 'max-height': crossAxis === 'stretch' ?
79
+ isFlowHorizontal(parent.layout) ? '100%' : null : null,
80
+ });
81
+ }
82
+ }
83
+ LayoutAlignStyleBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutAlignStyleBuilder, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
84
+ LayoutAlignStyleBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutAlignStyleBuilder, providedIn: 'root' });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutAlignStyleBuilder, decorators: [{
86
+ type: Injectable,
87
+ args: [{ providedIn: 'root' }]
88
+ }] });
89
+ const inputs = [
90
+ 'fxLayoutAlign', 'fxLayoutAlign.xs', 'fxLayoutAlign.sm', 'fxLayoutAlign.md',
91
+ 'fxLayoutAlign.lg', 'fxLayoutAlign.xl', 'fxLayoutAlign.lt-sm', 'fxLayoutAlign.lt-md',
92
+ 'fxLayoutAlign.lt-lg', 'fxLayoutAlign.lt-xl', 'fxLayoutAlign.gt-xs', 'fxLayoutAlign.gt-sm',
93
+ 'fxLayoutAlign.gt-md', 'fxLayoutAlign.gt-lg'
94
+ ];
95
+ const selector = `
96
+ [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],
97
+ [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],
98
+ [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],
99
+ [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]
100
+ `;
101
+ /**
102
+ * 'layout-align' flexbox styling directive
103
+ * Defines positioning of child elements along main and cross axis in a layout container
104
+ * Optional values: {main-axis} values or {main-axis cross-axis} value pairs
105
+ *
106
+ * @see https://css-tricks.com/almanac/properties/j/justify-content/
107
+ * @see https://css-tricks.com/almanac/properties/a/align-items/
108
+ * @see https://css-tricks.com/almanac/properties/a/align-content/
109
+ */
110
+ export class LayoutAlignDirective extends BaseDirective2 {
111
+ constructor(elRef, styleUtils, styleBuilder, marshal) {
112
+ super(elRef, styleBuilder, styleUtils, marshal);
113
+ this.DIRECTIVE_KEY = 'layout-align';
114
+ this.layout = 'row'; // default flex-direction
115
+ this.inline = false; // default inline value
116
+ this.init();
117
+ this.marshal.trackValue(this.nativeElement, 'layout')
118
+ .pipe(takeUntil(this.destroySubject))
119
+ .subscribe(this.onLayoutChange.bind(this));
120
+ }
121
+ // *********************************************
122
+ // Protected methods
123
+ // *********************************************
124
+ /**
125
+ *
126
+ */
127
+ updateWithValue(value) {
128
+ const layout = this.layout || 'row';
129
+ const inline = this.inline;
130
+ if (layout === 'row' && inline) {
131
+ this.styleCache = layoutAlignHorizontalInlineCache;
132
+ }
133
+ else if (layout === 'row' && !inline) {
134
+ this.styleCache = layoutAlignHorizontalCache;
135
+ }
136
+ else if (layout === 'row-reverse' && inline) {
137
+ this.styleCache = layoutAlignHorizontalRevInlineCache;
138
+ }
139
+ else if (layout === 'row-reverse' && !inline) {
140
+ this.styleCache = layoutAlignHorizontalRevCache;
141
+ }
142
+ else if (layout === 'column' && inline) {
143
+ this.styleCache = layoutAlignVerticalInlineCache;
144
+ }
145
+ else if (layout === 'column' && !inline) {
146
+ this.styleCache = layoutAlignVerticalCache;
147
+ }
148
+ else if (layout === 'column-reverse' && inline) {
149
+ this.styleCache = layoutAlignVerticalRevInlineCache;
150
+ }
151
+ else if (layout === 'column-reverse' && !inline) {
152
+ this.styleCache = layoutAlignVerticalRevCache;
153
+ }
154
+ this.addStyles(value, { layout, inline });
155
+ }
156
+ /**
157
+ * Cache the parent container 'flex-direction' and update the 'flex' styles
158
+ */
159
+ onLayoutChange(matcher) {
160
+ const layoutKeys = matcher.value.split(' ');
161
+ this.layout = layoutKeys[0];
162
+ this.inline = matcher.value.includes('inline');
163
+ if (!LAYOUT_VALUES.find(x => x === this.layout)) {
164
+ this.layout = 'row';
165
+ }
166
+ this.triggerUpdate();
167
+ }
168
+ }
169
+ LayoutAlignDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutAlignDirective, deps: [{ token: i0.ElementRef }, { token: i1.StyleUtils }, { token: LayoutAlignStyleBuilder }, { token: i1.MediaMarshaller }], target: i0.ɵɵFactoryTarget.Directive });
170
+ LayoutAlignDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: LayoutAlignDirective, usesInheritance: true, ngImport: i0 });
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutAlignDirective, decorators: [{
172
+ type: Directive
173
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.StyleUtils }, { type: LayoutAlignStyleBuilder }, { type: i1.MediaMarshaller }]; } });
174
+ export class DefaultLayoutAlignDirective extends LayoutAlignDirective {
175
+ constructor() {
176
+ super(...arguments);
177
+ this.inputs = inputs;
178
+ }
179
+ }
180
+ DefaultLayoutAlignDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DefaultLayoutAlignDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
181
+ DefaultLayoutAlignDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: DefaultLayoutAlignDirective, 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", inputs: { fxLayoutAlign: "fxLayoutAlign", "fxLayoutAlign.xs": "fxLayoutAlign.xs", "fxLayoutAlign.sm": "fxLayoutAlign.sm", "fxLayoutAlign.md": "fxLayoutAlign.md", "fxLayoutAlign.lg": "fxLayoutAlign.lg", "fxLayoutAlign.xl": "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm": "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md": "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg": "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl": "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs": "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm": "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md": "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg": "fxLayoutAlign.gt-lg" }, usesInheritance: true, ngImport: i0 });
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DefaultLayoutAlignDirective, decorators: [{
183
+ type: Directive,
184
+ args: [{ selector, inputs }]
185
+ }] });
186
+ const layoutAlignHorizontalCache = new Map();
187
+ const layoutAlignVerticalCache = new Map();
188
+ const layoutAlignHorizontalRevCache = new Map();
189
+ const layoutAlignVerticalRevCache = new Map();
190
+ const layoutAlignHorizontalInlineCache = new Map();
191
+ const layoutAlignVerticalInlineCache = new Map();
192
+ const layoutAlignHorizontalRevInlineCache = new Map();
193
+ const layoutAlignVerticalRevInlineCache = new Map();
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFsaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlicy9mbGV4LWxheW91dC9mbGV4L2xheW91dC1hbGlnbi9sYXlvdXQtYWxpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBYyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxZQUFZLEdBS2IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBUXBGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBQ3ZELFdBQVcsQ0FBQyxLQUFhLEVBQUUsTUFBeUI7UUFDbEQsTUFBTSxHQUFHLEdBQW9CLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFFLFlBQVk7UUFDWixRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLFFBQVE7Z0JBQ1gsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsUUFBUSxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxjQUFjLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLGVBQWU7Z0JBQ2xCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGVBQWUsQ0FBQztnQkFDekMsTUFBTTtZQUNSLEtBQUssY0FBYztnQkFDakIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUN4QyxNQUFNO1lBQ1IsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLFVBQVU7Z0JBQ2IsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUNwQyxNQUFNO1lBQ1IsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFlBQVksQ0FBQztZQUNsQjtnQkFDRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBRSxvQkFBb0I7Z0JBQzVELE1BQU07U0FDVDtRQUVELGFBQWE7UUFDYixRQUFRLFNBQVMsRUFBRTtZQUNqQixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssWUFBWTtnQkFDZixHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFlBQVksQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztnQkFDckQsTUFBTTtZQUNSLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxVQUFVO2dCQUNiLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUN2RCxNQUFNO1lBQ1IsS0FBSyxlQUFlO2dCQUNsQixHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsZUFBZSxDQUFDO2dCQUN2QyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUN0QyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBQ2pDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQztZQUNmLFNBQVUsWUFBWTtnQkFDcEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBRyxxQkFBcUI7Z0JBQzlFLE1BQU07U0FDVDtRQUVELE9BQU8sWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUN2QixTQUFTLEVBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ2xELGdCQUFnQixFQUFHLE1BQU0sQ0FBQyxNQUFNO1lBQ2hDLFlBQVksRUFBRyxZQUFZO1lBQzNCLFdBQVcsRUFBRSxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7Z0JBQ3BDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN6RCxZQUFZLEVBQUUsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUNyQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ3pELENBQW9CLENBQUM7SUFDeEIsQ0FBQzs7b0hBckVVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRFgsTUFBTTsyRkFDbEIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUF5RWhDLE1BQU0sTUFBTSxHQUFHO0lBQ2IsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtJQUMzRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7SUFDcEYscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0lBQzFGLHFCQUFxQixFQUFFLHFCQUFxQjtDQUM3QyxDQUFDO0FBQ0YsTUFBTSxRQUFRLEdBQUc7Ozs7O0NBS2hCLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxjQUFjO0lBS3RELFlBQVksS0FBaUIsRUFDakIsVUFBc0IsRUFDdEIsWUFBcUMsRUFDckMsT0FBd0I7UUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBUnhDLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxLQUFLLENBQUMsQ0FBRSx5QkFBeUI7UUFDMUMsV0FBTSxHQUFHLEtBQUssQ0FBQyxDQUFFLHVCQUF1QjtRQU9oRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzthQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELG9CQUFvQjtJQUNwQixnREFBZ0Q7SUFFaEQ7O09BRUc7SUFDTyxlQUFlLENBQUMsS0FBYTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQ0FBZ0MsQ0FBQztTQUNwRDthQUFNLElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLDBCQUEwQixDQUFDO1NBQzlDO2FBQU0sSUFBSSxNQUFNLEtBQUssYUFBYSxJQUFJLE1BQU0sRUFBRTtZQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLG1DQUFtQyxDQUFDO1NBQ3ZEO2FBQU0sSUFBSSxNQUFNLEtBQUssYUFBYSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsNkJBQTZCLENBQUM7U0FDakQ7YUFBTSxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsOEJBQThCLENBQUM7U0FDbEQ7YUFBTSxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztTQUM1QzthQUFNLElBQUksTUFBTSxLQUFLLGdCQUFnQixJQUFJLE1BQU0sRUFBRTtZQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLGlDQUFpQyxDQUFDO1NBQ3JEO2FBQU0sSUFBSSxNQUFNLEtBQUssZ0JBQWdCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRywyQkFBMkIsQ0FBQztTQUMvQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ08sY0FBYyxDQUFDLE9BQXVCO1FBQzlDLE1BQU0sVUFBVSxHQUFhLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2lIQXpEVSxvQkFBb0Isc0VBT0wsdUJBQXVCO3FHQVB0QyxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsU0FBUzs0R0FRa0IsdUJBQXVCO0FBc0RuRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsb0JBQW9CO0lBRHJFOztRQUVZLFdBQU0sR0FBRyxNQUFNLENBQUM7S0FDM0I7O3dIQUZZLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDOztBQUs3QixNQUFNLDBCQUEwQixHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNFLE1BQU0sd0JBQXdCLEdBQWlDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDekUsTUFBTSw2QkFBNkIsR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM5RSxNQUFNLDJCQUEyQixHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVFLE1BQU0sZ0NBQWdDLEdBQWlDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDakYsTUFBTSw4QkFBOEIsR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUMvRSxNQUFNLG1DQUFtQyxHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3BGLE1BQU0saUNBQWlDLEdBQWlDLElBQUksR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhc2VEaXJlY3RpdmUyLFxuICBTdHlsZUJ1aWxkZXIsXG4gIFN0eWxlRGVmaW5pdGlvbixcbiAgU3R5bGVVdGlscyxcbiAgTWVkaWFNYXJzaGFsbGVyLFxuICBFbGVtZW50TWF0Y2hlcixcbn0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge2V4dGVuZE9iamVjdH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQvX3ByaXZhdGUtdXRpbHMnO1xuaW1wb3J0IHtMQVlPVVRfVkFMVUVTLCBpc0Zsb3dIb3Jpem9udGFsfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dC9fcHJpdmF0ZS11dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0QWxpZ25QYXJlbnQge1xuICBsYXlvdXQ6IHN0cmluZztcbiAgaW5saW5lOiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRBbGlnblN0eWxlQnVpbGRlciBleHRlbmRzIFN0eWxlQnVpbGRlciB7XG4gIGJ1aWxkU3R5bGVzKGFsaWduOiBzdHJpbmcsIHBhcmVudDogTGF5b3V0QWxpZ25QYXJlbnQpIHtcbiAgICBjb25zdCBjc3M6IFN0eWxlRGVmaW5pdGlvbiA9IHt9LCBbbWFpbkF4aXMsIGNyb3NzQXhpc10gPSBhbGlnbi5zcGxpdCgnICcpO1xuXG4gICAgLy8gTWFpbiBheGlzXG4gICAgc3dpdGNoIChtYWluQXhpcykge1xuICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgY3NzWydqdXN0aWZ5LWNvbnRlbnQnXSA9ICdjZW50ZXInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NwYWNlLWFyb3VuZCc6XG4gICAgICAgIGNzc1snanVzdGlmeS1jb250ZW50J10gPSAnc3BhY2UtYXJvdW5kJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzcGFjZS1iZXR3ZWVuJzpcbiAgICAgICAgY3NzWydqdXN0aWZ5LWNvbnRlbnQnXSA9ICdzcGFjZS1iZXR3ZWVuJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzcGFjZS1ldmVubHknOlxuICAgICAgICBjc3NbJ2p1c3RpZnktY29udGVudCddID0gJ3NwYWNlLWV2ZW5seSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW5kJzpcbiAgICAgIGNhc2UgJ2ZsZXgtZW5kJzpcbiAgICAgICAgY3NzWydqdXN0aWZ5LWNvbnRlbnQnXSA9ICdmbGV4LWVuZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgY2FzZSAnZmxleC1zdGFydCc6XG4gICAgICBkZWZhdWx0IDpcbiAgICAgICAgY3NzWydqdXN0aWZ5LWNvbnRlbnQnXSA9ICdmbGV4LXN0YXJ0JzsgIC8vIGRlZmF1bHQgbWFpbiBheGlzXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIENyb3NzLWF4aXNcbiAgICBzd2l0Y2ggKGNyb3NzQXhpcykge1xuICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgY2FzZSAnZmxleC1zdGFydCc6XG4gICAgICAgIGNzc1snYWxpZ24taXRlbXMnXSA9IGNzc1snYWxpZ24tY29udGVudCddID0gJ2ZsZXgtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgIGNzc1snYWxpZ24taXRlbXMnXSA9IGNzc1snYWxpZ24tY29udGVudCddID0gJ2NlbnRlcic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW5kJzpcbiAgICAgIGNhc2UgJ2ZsZXgtZW5kJzpcbiAgICAgICAgY3NzWydhbGlnbi1pdGVtcyddID0gY3NzWydhbGlnbi1jb250ZW50J10gPSAnZmxleC1lbmQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NwYWNlLWJldHdlZW4nOlxuICAgICAgICBjc3NbJ2FsaWduLWNvbnRlbnQnXSA9ICdzcGFjZS1iZXR3ZWVuJztcbiAgICAgICAgY3NzWydhbGlnbi1pdGVtcyddID0gJ3N0cmV0Y2gnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NwYWNlLWFyb3VuZCc6XG4gICAgICAgIGNzc1snYWxpZ24tY29udGVudCddID0gJ3NwYWNlLWFyb3VuZCc7XG4gICAgICAgIGNzc1snYWxpZ24taXRlbXMnXSA9ICdzdHJldGNoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdiYXNlbGluZSc6XG4gICAgICAgIGNzc1snYWxpZ24tY29udGVudCddID0gJ3N0cmV0Y2gnO1xuICAgICAgICBjc3NbJ2FsaWduLWl0ZW1zJ10gPSAnYmFzZWxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0cmV0Y2gnOlxuICAgICAgZGVmYXVsdCA6IC8vICdzdHJldGNoJ1xuICAgICAgICBjc3NbJ2FsaWduLWl0ZW1zJ10gPSBjc3NbJ2FsaWduLWNvbnRlbnQnXSA9ICdzdHJldGNoJzsgICAvLyBkZWZhdWx0IGNyb3NzIGF4aXNcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4dGVuZE9iamVjdChjc3MsIHtcbiAgICAgICdkaXNwbGF5JyA6IHBhcmVudC5pbmxpbmUgPyAnaW5saW5lLWZsZXgnIDogJ2ZsZXgnLFxuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJyA6IHBhcmVudC5sYXlvdXQsXG4gICAgICAnYm94LXNpemluZycgOiAnYm9yZGVyLWJveCcsXG4gICAgICAnbWF4LXdpZHRoJzogY3Jvc3NBeGlzID09PSAnc3RyZXRjaCcgP1xuICAgICAgICAhaXNGbG93SG9yaXpvbnRhbChwYXJlbnQubGF5b3V0KSA/ICcxMDAlJyA6IG51bGwgOiBudWxsLFxuICAgICAgJ21heC1oZWlnaHQnOiBjcm9zc0F4aXMgPT09ICdzdHJldGNoJyA/XG4gICAgICAgIGlzRmxvd0hvcml6b250YWwocGFyZW50LmxheW91dCkgPyAnMTAwJScgOiBudWxsIDogbnVsbCxcbiAgICB9KSBhcyBTdHlsZURlZmluaXRpb247XG4gIH1cbn1cblxuY29uc3QgaW5wdXRzID0gW1xuICAnZnhMYXlvdXRBbGlnbicsICdmeExheW91dEFsaWduLnhzJywgJ2Z4TGF5b3V0QWxpZ24uc20nLCAnZnhMYXlvdXRBbGlnbi5tZCcsXG4gICdmeExheW91dEFsaWduLmxnJywgJ2Z4TGF5b3V0QWxpZ24ueGwnLCAnZnhMYXlvdXRBbGlnbi5sdC1zbScsICdmeExheW91dEFsaWduLmx0LW1kJyxcbiAgJ2Z4TGF5b3V0QWxpZ24ubHQtbGcnLCAnZnhMYXlvdXRBbGlnbi5sdC14bCcsICdmeExheW91dEFsaWduLmd0LXhzJywgJ2Z4TGF5b3V0QWxpZ24uZ3Qtc20nLFxuICAnZnhMYXlvdXRBbGlnbi5ndC1tZCcsICdmeExheW91dEFsaWduLmd0LWxnJ1xuXTtcbmNvbnN0IHNlbGVjdG9yID0gYFxuICBbZnhMYXlvdXRBbGlnbl0sIFtmeExheW91dEFsaWduLnhzXSwgW2Z4TGF5b3V0QWxpZ24uc21dLCBbZnhMYXlvdXRBbGlnbi5tZF0sXG4gIFtmeExheW91dEFsaWduLmxnXSwgW2Z4TGF5b3V0QWxpZ24ueGxdLCBbZnhMYXlvdXRBbGlnbi5sdC1zbV0sIFtmeExheW91dEFsaWduLmx0LW1kXSxcbiAgW2Z4TGF5b3V0QWxpZ24ubHQtbGddLCBbZnhMYXlvdXRBbGlnbi5sdC14bF0sIFtmeExheW91dEFsaWduLmd0LXhzXSwgW2Z4TGF5b3V0QWxpZ24uZ3Qtc21dLFxuICBbZnhMYXlvdXRBbGlnbi5ndC1tZF0sIFtmeExheW91dEFsaWduLmd0LWxnXVxuYDtcblxuLyoqXG4gKiAnbGF5b3V0LWFsaWduJyBmbGV4Ym94IHN0eWxpbmcgZGlyZWN0aXZlXG4gKiAgRGVmaW5lcyBwb3NpdGlvbmluZyBvZiBjaGlsZCBlbGVtZW50cyBhbG9uZyBtYWluIGFuZCBjcm9zcyBheGlzIGluIGEgbGF5b3V0IGNvbnRhaW5lclxuICogIE9wdGlvbmFsIHZhbHVlczoge21haW4tYXhpc30gdmFsdWVzIG9yIHttYWluLWF4aXMgY3Jvc3MtYXhpc30gdmFsdWUgcGFpcnNcbiAqXG4gKiAgQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvcHJvcGVydGllcy9qL2p1c3RpZnktY29udGVudC9cbiAqICBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9wcm9wZXJ0aWVzL2EvYWxpZ24taXRlbXMvXG4gKiAgQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvcHJvcGVydGllcy9hL2FsaWduLWNvbnRlbnQvXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIExheW91dEFsaWduRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZTIge1xuICBwcm90ZWN0ZWQgRElSRUNUSVZFX0tFWSA9ICdsYXlvdXQtYWxpZ24nO1xuICBwcm90ZWN0ZWQgbGF5b3V0ID0gJ3Jvdyc7ICAvLyBkZWZhdWx0IGZsZXgtZGlyZWN0aW9uXG4gIHByb3RlY3RlZCBpbmxpbmUgPSBmYWxzZTsgIC8vIGRlZmF1bHQgaW5saW5lIHZhbHVlXG5cbiAgY29uc3RydWN0b3IoZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHN0eWxlVXRpbHM6IFN0eWxlVXRpbHMsXG4gICAgICAgICAgICAgIHN0eWxlQnVpbGRlcjogTGF5b3V0QWxpZ25TdHlsZUJ1aWxkZXIsXG4gICAgICAgICAgICAgIG1hcnNoYWw6IE1lZGlhTWFyc2hhbGxlcikge1xuICAgIHN1cGVyKGVsUmVmLCBzdHlsZUJ1aWxkZXIsIHN0eWxlVXRpbHMsIG1hcnNoYWwpO1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIHRoaXMubWFyc2hhbC50cmFja1ZhbHVlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2xheW91dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95U3ViamVjdCkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMub25MYXlvdXRDaGFuZ2UuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgLy8gUHJvdGVjdGVkIG1ldGhvZHNcbiAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlV2l0aFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsYXlvdXQgPSB0aGlzLmxheW91dCB8fCAncm93JztcbiAgICBjb25zdCBpbmxpbmUgPSB0aGlzLmlubGluZTtcbiAgICBpZiAobGF5b3V0ID09PSAncm93JyAmJiBpbmxpbmUpIHtcbiAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEFsaWduSG9yaXpvbnRhbElubGluZUNhY2hlO1xuICAgIH0gZWxzZSBpZiAobGF5b3V0ID09PSAncm93JyAmJiAhaW5saW5lKSB7XG4gICAgICB0aGlzLnN0eWxlQ2FjaGUgPSBsYXlvdXRBbGlnbkhvcml6b250YWxDYWNoZTtcbiAgICB9IGVsc2UgaWYgKGxheW91dCA9PT0gJ3Jvdy1yZXZlcnNlJyAmJiBpbmxpbmUpIHtcbiAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEFsaWduSG9yaXpvbnRhbFJldklubGluZUNhY2hlO1xuICAgIH0gZWxzZSBpZiAobGF5b3V0ID09PSAncm93LXJldmVyc2UnICYmICFpbmxpbmUpIHtcbiAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEFsaWduSG9yaXpvbnRhbFJldkNhY2hlO1xuICAgIH0gZWxzZSBpZiAobGF5b3V0ID09PSAnY29sdW1uJyAmJiBpbmxpbmUpIHtcbiAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEFsaWduVmVydGljYWxJbmxpbmVDYWNoZTtcbiAgICB9IGVsc2UgaWYgKGxheW91dCA9PT0gJ2NvbHVtbicgJiYgIWlubGluZSkge1xuICAgICAgdGhpcy5zdHlsZUNhY2hlID0gbGF5b3V0QWxpZ25WZXJ0aWNhbENhY2hlO1xuICAgIH0gZWxzZSBpZiAobGF5b3V0ID09PSAnY29sdW1uLXJldmVyc2UnICYmIGlubGluZSkge1xuICAgICAgdGhpcy5zdHlsZUNhY2hlID0gbGF5b3V0QWxpZ25WZXJ0aWNhbFJldklubGluZUNhY2hlO1xuICAgIH0gZWxzZSBpZiAobGF5b3V0ID09PSAnY29sdW1uLXJldmVyc2UnICYmICFpbmxpbmUpIHtcbiAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEFsaWduVmVydGljYWxSZXZDYWNoZTtcbiAgICB9XG4gICAgdGhpcy5hZGRTdHlsZXModmFsdWUsIHtsYXlvdXQsIGlubGluZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhY2hlIHRoZSBwYXJlbnQgY29udGFpbmVyICdmbGV4LWRpcmVjdGlvbicgYW5kIHVwZGF0ZSB0aGUgJ2ZsZXgnIHN0eWxlc1xuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0Q2hhbmdlKG1hdGNoZXI6IEVsZW1lbnRNYXRjaGVyKSB7XG4gICAgY29uc3QgbGF5b3V0S2V5czogc3RyaW5nW10gPSBtYXRjaGVyLnZhbHVlLnNwbGl0KCcgJyk7XG4gICAgdGhpcy5sYXlvdXQgPSBsYXlvdXRLZXlzWzBdO1xuICAgIHRoaXMuaW5saW5lID0gbWF0Y2hlci52YWx1ZS5pbmNsdWRlcygnaW5saW5lJyk7XG4gICAgaWYgKCFMQVlPVVRfVkFMVUVTLmZpbmQoeCA9PiB4ID09PSB0aGlzLmxheW91dCkpIHtcbiAgICAgIHRoaXMubGF5b3V0ID0gJ3Jvdyc7XG4gICAgfVxuICAgIHRoaXMudHJpZ2dlclVwZGF0ZSgpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yLCBpbnB1dHN9KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRMYXlvdXRBbGlnbkRpcmVjdGl2ZSBleHRlbmRzIExheW91dEFsaWduRGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIGlucHV0cyA9IGlucHV0cztcbn1cblxuY29uc3QgbGF5b3V0QWxpZ25Ib3Jpem9udGFsQ2FjaGU6IE1hcDxzdHJpbmcsIFN0eWxlRGVmaW5pdGlvbj4gPSBuZXcgTWFwKCk7XG5jb25zdCBsYXlvdXRBbGlnblZlcnRpY2FsQ2FjaGU6IE1hcDxzdHJpbmcsIFN0eWxlRGVmaW5pdGlvbj4gPSBuZXcgTWFwKCk7XG5jb25zdCBsYXlvdXRBbGlnbkhvcml6b250YWxSZXZDYWNoZTogTWFwPHN0cmluZywgU3R5bGVEZWZpbml0aW9uPiA9IG5ldyBNYXAoKTtcbmNvbnN0IGxheW91dEFsaWduVmVydGljYWxSZXZDYWNoZTogTWFwPHN0cmluZywgU3R5bGVEZWZpbml0aW9uPiA9IG5ldyBNYXAoKTtcbmNvbnN0IGxheW91dEFsaWduSG9yaXpvbnRhbElubGluZUNhY2hlOiBNYXA8c3RyaW5nLCBTdHlsZURlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuY29uc3QgbGF5b3V0QWxpZ25WZXJ0aWNhbElubGluZUNhY2hlOiBNYXA8c3RyaW5nLCBTdHlsZURlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuY29uc3QgbGF5b3V0QWxpZ25Ib3Jpem9udGFsUmV2SW5saW5lQ2FjaGU6IE1hcDxzdHJpbmcsIFN0eWxlRGVmaW5pdGlvbj4gPSBuZXcgTWFwKCk7XG5jb25zdCBsYXlvdXRBbGlnblZlcnRpY2FsUmV2SW5saW5lQ2FjaGU6IE1hcDxzdHJpbmcsIFN0eWxlRGVmaW5pdGlvbj4gPSBuZXcgTWFwKCk7XG4iXX0=
@@ -0,0 +1,282 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Directive, Injectable, Inject, } from '@angular/core';
9
+ import { BaseDirective2, StyleBuilder, LAYOUT_CONFIG, ɵmultiply as multiply, } from '@angular/flex-layout/core';
10
+ import { LAYOUT_VALUES } from '@angular/flex-layout/_private-utils';
11
+ import { Subject } from 'rxjs';
12
+ import { takeUntil } from 'rxjs/operators';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/flex-layout/core";
15
+ import * as i2 from "@angular/cdk/bidi";
16
+ const CLEAR_MARGIN_CSS = {
17
+ 'margin-left': null,
18
+ 'margin-right': null,
19
+ 'margin-top': null,
20
+ 'margin-bottom': null
21
+ };
22
+ export class LayoutGapStyleBuilder extends StyleBuilder {
23
+ constructor(_styler, _config) {
24
+ super();
25
+ this._styler = _styler;
26
+ this._config = _config;
27
+ }
28
+ buildStyles(gapValue, parent) {
29
+ if (gapValue.endsWith(GRID_SPECIFIER)) {
30
+ gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));
31
+ gapValue = multiply(gapValue, this._config.multiplier);
32
+ // Add the margin to the host element
33
+ return buildGridMargin(gapValue, parent.directionality);
34
+ }
35
+ else {
36
+ return {};
37
+ }
38
+ }
39
+ sideEffect(gapValue, _styles, parent) {
40
+ const items = parent.items;
41
+ if (gapValue.endsWith(GRID_SPECIFIER)) {
42
+ gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));
43
+ gapValue = multiply(gapValue, this._config.multiplier);
44
+ // For each `element` children, set the padding
45
+ const paddingStyles = buildGridPadding(gapValue, parent.directionality);
46
+ this._styler.applyStyleToElements(paddingStyles, parent.items);
47
+ }
48
+ else {
49
+ gapValue = multiply(gapValue, this._config.multiplier);
50
+ gapValue = this.addFallbackUnit(gapValue);
51
+ const lastItem = items.pop();
52
+ // For each `element` children EXCEPT the last,
53
+ // set the margin right/bottom styles...
54
+ const gapCss = buildGapCSS(gapValue, parent);
55
+ this._styler.applyStyleToElements(gapCss, items);
56
+ // Clear all gaps for all visible elements
57
+ this._styler.applyStyleToElements(CLEAR_MARGIN_CSS, [lastItem]);
58
+ }
59
+ }
60
+ addFallbackUnit(value) {
61
+ return !isNaN(+value) ? `${value}${this._config.defaultUnit}` : value;
62
+ }
63
+ }
64
+ LayoutGapStyleBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutGapStyleBuilder, deps: [{ token: i1.StyleUtils }, { token: LAYOUT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
65
+ LayoutGapStyleBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutGapStyleBuilder, providedIn: 'root' });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutGapStyleBuilder, decorators: [{
67
+ type: Injectable,
68
+ args: [{ providedIn: 'root' }]
69
+ }], ctorParameters: function () { return [{ type: i1.StyleUtils }, { type: undefined, decorators: [{
70
+ type: Inject,
71
+ args: [LAYOUT_CONFIG]
72
+ }] }]; } });
73
+ const inputs = [
74
+ 'fxLayoutGap', 'fxLayoutGap.xs', 'fxLayoutGap.sm', 'fxLayoutGap.md',
75
+ 'fxLayoutGap.lg', 'fxLayoutGap.xl', 'fxLayoutGap.lt-sm', 'fxLayoutGap.lt-md',
76
+ 'fxLayoutGap.lt-lg', 'fxLayoutGap.lt-xl', 'fxLayoutGap.gt-xs', 'fxLayoutGap.gt-sm',
77
+ 'fxLayoutGap.gt-md', 'fxLayoutGap.gt-lg'
78
+ ];
79
+ const selector = `
80
+ [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],
81
+ [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],
82
+ [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],
83
+ [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]
84
+ `;
85
+ /**
86
+ * 'layout-padding' styling directive
87
+ * Defines padding of child elements in a layout container
88
+ */
89
+ export class LayoutGapDirective extends BaseDirective2 {
90
+ constructor(elRef, zone, directionality, styleUtils, styleBuilder, marshal) {
91
+ super(elRef, styleBuilder, styleUtils, marshal);
92
+ this.zone = zone;
93
+ this.directionality = directionality;
94
+ this.styleUtils = styleUtils;
95
+ this.layout = 'row'; // default flex-direction
96
+ this.DIRECTIVE_KEY = 'layout-gap';
97
+ this.observerSubject = new Subject();
98
+ const extraTriggers = [this.directionality.change, this.observerSubject.asObservable()];
99
+ this.init(extraTriggers);
100
+ this.marshal
101
+ .trackValue(this.nativeElement, 'layout')
102
+ .pipe(takeUntil(this.destroySubject))
103
+ .subscribe(this.onLayoutChange.bind(this));
104
+ }
105
+ /** Special accessor to query for all child 'element' nodes regardless of type, class, etc */
106
+ get childrenNodes() {
107
+ const obj = this.nativeElement.children;
108
+ const buffer = [];
109
+ // iterate backwards ensuring that length is an UInt32
110
+ for (let i = obj.length; i--;) {
111
+ buffer[i] = obj[i];
112
+ }
113
+ return buffer;
114
+ }
115
+ // *********************************************
116
+ // Lifecycle Methods
117
+ // *********************************************
118
+ ngAfterContentInit() {
119
+ this.buildChildObservable();
120
+ this.triggerUpdate();
121
+ }
122
+ ngOnDestroy() {
123
+ super.ngOnDestroy();
124
+ if (this.observer) {
125
+ this.observer.disconnect();
126
+ }
127
+ }
128
+ // *********************************************
129
+ // Protected methods
130
+ // *********************************************
131
+ /**
132
+ * Cache the parent container 'flex-direction' and update the 'margin' styles
133
+ */
134
+ onLayoutChange(matcher) {
135
+ const layout = matcher.value;
136
+ // Make sure to filter out 'wrap' option
137
+ const direction = layout.split(' ');
138
+ this.layout = direction[0];
139
+ if (!LAYOUT_VALUES.find(x => x === this.layout)) {
140
+ this.layout = 'row';
141
+ }
142
+ this.triggerUpdate();
143
+ }
144
+ /**
145
+ *
146
+ */
147
+ updateWithValue(value) {
148
+ // Gather all non-hidden Element nodes
149
+ const items = this.childrenNodes
150
+ .filter(el => el.nodeType === 1 && this.willDisplay(el))
151
+ .sort((a, b) => {
152
+ const orderA = +this.styler.lookupStyle(a, 'order');
153
+ const orderB = +this.styler.lookupStyle(b, 'order');
154
+ if (isNaN(orderA) || isNaN(orderB) || orderA === orderB) {
155
+ return 0;
156
+ }
157
+ else {
158
+ return orderA > orderB ? 1 : -1;
159
+ }
160
+ });
161
+ if (items.length > 0) {
162
+ const directionality = this.directionality.value;
163
+ const layout = this.layout;
164
+ if (layout === 'row' && directionality === 'rtl') {
165
+ this.styleCache = layoutGapCacheRowRtl;
166
+ }
167
+ else if (layout === 'row' && directionality !== 'rtl') {
168
+ this.styleCache = layoutGapCacheRowLtr;
169
+ }
170
+ else if (layout === 'column' && directionality === 'rtl') {
171
+ this.styleCache = layoutGapCacheColumnRtl;
172
+ }
173
+ else if (layout === 'column' && directionality !== 'rtl') {
174
+ this.styleCache = layoutGapCacheColumnLtr;
175
+ }
176
+ this.addStyles(value, { directionality, items, layout });
177
+ }
178
+ }
179
+ /** We need to override clearStyles because in most cases mru isn't populated */
180
+ clearStyles() {
181
+ const gridMode = Object.keys(this.mru).length > 0;
182
+ const childrenStyle = gridMode ? 'padding' :
183
+ getMarginType(this.directionality.value, this.layout);
184
+ // If there are styles on the parent remove them
185
+ if (gridMode) {
186
+ super.clearStyles();
187
+ }
188
+ // Then remove the children styles too
189
+ this.styleUtils.applyStyleToElements({ [childrenStyle]: '' }, this.childrenNodes);
190
+ }
191
+ /** Determine if an element will show or hide based on current activation */
192
+ willDisplay(source) {
193
+ const value = this.marshal.getValue(source, 'show-hide');
194
+ return value === true ||
195
+ (value === undefined && this.styleUtils.lookupStyle(source, 'display') !== 'none');
196
+ }
197
+ buildChildObservable() {
198
+ this.zone.runOutsideAngular(() => {
199
+ if (typeof MutationObserver !== 'undefined') {
200
+ this.observer = new MutationObserver((mutations) => {
201
+ const validatedChanges = (it) => {
202
+ return (it.addedNodes && it.addedNodes.length > 0) ||
203
+ (it.removedNodes && it.removedNodes.length > 0);
204
+ };
205
+ // update gap styles only for child 'added' or 'removed' events
206
+ if (mutations.some(validatedChanges)) {
207
+ this.observerSubject.next();
208
+ }
209
+ });
210
+ this.observer.observe(this.nativeElement, { childList: true });
211
+ }
212
+ });
213
+ }
214
+ }
215
+ LayoutGapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutGapDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.Directionality }, { token: i1.StyleUtils }, { token: LayoutGapStyleBuilder }, { token: i1.MediaMarshaller }], target: i0.ɵɵFactoryTarget.Directive });
216
+ LayoutGapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: LayoutGapDirective, usesInheritance: true, ngImport: i0 });
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LayoutGapDirective, decorators: [{
218
+ type: Directive
219
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.Directionality }, { type: i1.StyleUtils }, { type: LayoutGapStyleBuilder }, { type: i1.MediaMarshaller }]; } });
220
+ export class DefaultLayoutGapDirective extends LayoutGapDirective {
221
+ constructor() {
222
+ super(...arguments);
223
+ this.inputs = inputs;
224
+ }
225
+ }
226
+ DefaultLayoutGapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DefaultLayoutGapDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
227
+ DefaultLayoutGapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: DefaultLayoutGapDirective, 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", inputs: { fxLayoutGap: "fxLayoutGap", "fxLayoutGap.xs": "fxLayoutGap.xs", "fxLayoutGap.sm": "fxLayoutGap.sm", "fxLayoutGap.md": "fxLayoutGap.md", "fxLayoutGap.lg": "fxLayoutGap.lg", "fxLayoutGap.xl": "fxLayoutGap.xl", "fxLayoutGap.lt-sm": "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md": "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg": "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl": "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs": "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm": "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md": "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg": "fxLayoutGap.gt-lg" }, usesInheritance: true, ngImport: i0 });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DefaultLayoutGapDirective, decorators: [{
229
+ type: Directive,
230
+ args: [{ selector, inputs }]
231
+ }] });
232
+ const layoutGapCacheRowRtl = new Map();
233
+ const layoutGapCacheColumnRtl = new Map();
234
+ const layoutGapCacheRowLtr = new Map();
235
+ const layoutGapCacheColumnLtr = new Map();
236
+ const GRID_SPECIFIER = ' grid';
237
+ function buildGridPadding(value, directionality) {
238
+ const [between, below] = value.split(' ');
239
+ const bottom = below ?? between;
240
+ let paddingRight = '0px', paddingBottom = bottom, paddingLeft = '0px';
241
+ if (directionality === 'rtl') {
242
+ paddingLeft = between;
243
+ }
244
+ else {
245
+ paddingRight = between;
246
+ }
247
+ return { 'padding': `0px ${paddingRight} ${paddingBottom} ${paddingLeft}` };
248
+ }
249
+ function buildGridMargin(value, directionality) {
250
+ const [between, below] = value.split(' ');
251
+ const bottom = below ?? between;
252
+ const minus = (str) => `-${str}`;
253
+ let marginRight = '0px', marginBottom = minus(bottom), marginLeft = '0px';
254
+ if (directionality === 'rtl') {
255
+ marginLeft = minus(between);
256
+ }
257
+ else {
258
+ marginRight = minus(between);
259
+ }
260
+ return { 'margin': `0px ${marginRight} ${marginBottom} ${marginLeft}` };
261
+ }
262
+ function getMarginType(directionality, layout) {
263
+ switch (layout) {
264
+ case 'column':
265
+ return 'margin-bottom';
266
+ case 'column-reverse':
267
+ return 'margin-top';
268
+ case 'row':
269
+ return directionality === 'rtl' ? 'margin-left' : 'margin-right';
270
+ case 'row-reverse':
271
+ return directionality === 'rtl' ? 'margin-right' : 'margin-left';
272
+ default:
273
+ return directionality === 'rtl' ? 'margin-left' : 'margin-right';
274
+ }
275
+ }
276
+ function buildGapCSS(gapValue, parent) {
277
+ const key = getMarginType(parent.directionality, parent.layout);
278
+ const margins = { ...CLEAR_MARGIN_CSS };
279
+ margins[key] = gapValue;
280
+ return margins;
281
+ }
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWdhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYnMvZmxleC1sYXlvdXQvZmxleC9sYXlvdXQtZ2FwL2xheW91dC1nYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFJVCxVQUFVLEVBRVYsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUtaLGFBQWEsRUFFYixTQUFTLElBQUksUUFBUSxHQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVN6QyxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0NBQ3RCLENBQUM7QUFHRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUNyRCxZQUFvQixPQUFtQixFQUNJLE9BQTRCO1FBQ3JFLEtBQUssRUFBRSxDQUFDO1FBRlUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNJLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBRXZFLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxNQUF1QjtRQUNuRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDckMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUMvRCxRQUFRLEdBQUcsUUFBUSxD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SyxnQkFBZ0I7WUFDbkIsT0FBTyxZQUFZLENBQUM7UUFDdEIsS0FBSyxLQUFLO1lBQ1IsT0FBTyxjQUFjLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNuRSxLQUFLLGFBQWE7WUFDaEIsT0FBTyxjQUFjLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUNuRTtZQUNFLE9BQU8sY0FBYyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7S0FDcEU7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsUUFBZ0IsRUFDaEIsTUFBZ0Q7SUFDbkUsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFtQyxFQUFDLEdBQUcsZ0JBQWdCLEVBQUMsQ0FBQztJQUN0RSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3hCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBOZ1pvbmUsXG4gIEluamVjdGFibGUsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge1xuICBCYXNlRGlyZWN0aXZlMixcbiAgU3R5bGVCdWlsZGVyLFxuICBTdHlsZURlZmluaXRpb24sXG4gIFN0eWxlVXRpbHMsXG4gIE1lZGlhTWFyc2hhbGxlcixcbiAgRWxlbWVudE1hdGNoZXIsXG4gIExBWU9VVF9DT05GSUcsXG4gIExheW91dENvbmZpZ09wdGlvbnMsXG4gIMm1bXVsdGlwbHkgYXMgbXVsdGlwbHksXG59IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0L2NvcmUnO1xuaW1wb3J0IHtMQVlPVVRfVkFMVUVTfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dC9fcHJpdmF0ZS11dGlscyc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dEdhcFBhcmVudCB7XG4gIGRpcmVjdGlvbmFsaXR5OiBzdHJpbmc7XG4gIGl0ZW1zOiBIVE1MRWxlbWVudFtdO1xuICBsYXlvdXQ6IHN0cmluZztcbn1cblxuY29uc3QgQ0xFQVJfTUFSR0lOX0NTUyA9IHtcbiAgJ21hcmdpbi1sZWZ0JzogbnVsbCxcbiAgJ21hcmdpbi1yaWdodCc6IG51bGwsXG4gICdtYXJnaW4tdG9wJzogbnVsbCxcbiAgJ21hcmdpbi1ib3R0b20nOiBudWxsXG59O1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRHYXBTdHlsZUJ1aWxkZXIgZXh0ZW5kcyBTdHlsZUJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHlsZXI6IFN0eWxlVXRpbHMsXG4gICAgICAgICAgICAgIEBJbmplY3QoTEFZT1VUX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBMYXlvdXRDb25maWdPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGJ1aWxkU3R5bGVzKGdhcFZhbHVlOiBzdHJpbmcsIHBhcmVudDogTGF5b3V0R2FwUGFyZW50KSB7XG4gICAgaWYgKGdhcFZhbHVlLmVuZHNXaXRoKEdSSURfU1BFQ0lGSUVSKSkge1xuICAgICAgZ2FwVmFsdWUgPSBnYXBWYWx1ZS5zbGljZSgwLCBnYXBWYWx1ZS5pbmRleE9mKEdSSURfU1BFQ0lGSUVSKSk7XG4gICAgICBnYXBWYWx1ZSA9IG11bHRpcGx5KGdhcFZhbHVlLCB0aGlzLl9jb25maWcubXVsdGlwbGllcik7XG5cbiAgICAgIC8vIEFkZCB0aGUgbWFyZ2luIHRvIHRoZSBob3N0IGVsZW1lbnRcbiAgICAgIHJldHVybiBidWlsZEdyaWRNYXJnaW4oZ2FwVmFsdWUsIHBhcmVudC5kaXJlY3Rpb25hbGl0eSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICBzaWRlRWZmZWN0KGdhcFZhbHVlOiBzdHJpbmcsIF9zdHlsZXM6IFN0eWxlRGVmaW5pdGlvbiwgcGFyZW50OiBMYXlvdXRHYXBQYXJlbnQpIHtcbiAgICBjb25zdCBpdGVtcyA9IHBhcmVudC5pdGVtcztcbiAgICBpZiAoZ2FwVmFsdWUuZW5kc1dpdGgoR1JJRF9TUEVDSUZJRVIpKSB7XG4gICAgICBnYXBWYWx1ZSA9IGdhcFZhbHVlLnNsaWNlKDAsIGdhcFZhbHVlLmluZGV4T2YoR1JJRF9TUEVDSUZJRVIpKTtcbiAgICAgIGdhcFZhbHVlID0gbXVsdGlwbHkoZ2FwVmFsdWUsIHRoaXMuX2NvbmZpZy5tdWx0aXBsaWVyKTtcbiAgICAgIC8vIEZvciBlYWNoIGBlbGVtZW50YCBjaGlsZHJlbiwgc2V0IHRoZSBwYWRkaW5nXG4gICAgICBjb25zdCBwYWRkaW5nU3R5bGVzID0gYnVpbGRHcmlkUGFkZGluZyhnYXBWYWx1ZSwgcGFyZW50LmRpcmVjdGlvbmFsaXR5KTtcbiAgICAgIHRoaXMuX3N0eWxlci5hcHBseVN0eWxlVG9FbGVtZW50cyhwYWRkaW5nU3R5bGVzLCBwYXJlbnQuaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnYXBWYWx1ZSA9IG11bHRpcGx5KGdhcFZhbHVlLCB0aGlzLl9jb25maWcubXVsdGlwbGllcik7XG4gICAgICBnYXBWYWx1ZSA9IHRoaXMuYWRkRmFsbGJhY2tVbml0KGdhcFZhbHVlKTtcblxuICAgICAgY29uc3QgbGFzdEl0ZW0gPSBpdGVtcy5wb3AoKSE7XG5cbiAgICAgIC8vIEZvciBlYWNoIGBlbGVtZW50YCBjaGlsZHJlbiBFWENFUFQgdGhlIGxhc3QsXG4gICAgICAvLyBzZXQgdGhlIG1hcmdpbiByaWdodC9ib3R0b20gc3R5bGVzLi4uXG4gICAgICBjb25zdCBnYXBDc3MgPSBidWlsZEdhcENTUyhnYXBWYWx1ZSwgcGFyZW50KTtcbiAgICAgIHRoaXMuX3N0eWxlci5hcHBseVN0eWxlVG9FbGVtZW50cyhnYXBDc3MsIGl0ZW1zKTtcblxuICAgICAgLy8gQ2xlYXIgYWxsIGdhcHMgZm9yIGFsbCB2aXNpYmxlIGVsZW1lbnRzXG4gICAgICB0aGlzLl9zdHlsZXIuYXBwbHlTdHlsZVRvRWxlbWVudHMoQ0xFQVJfTUFSR0lOX0NTUywgW2xhc3RJdGVtXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRGYWxsYmFja1VuaXQodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiAhaXNOYU4oK3ZhbHVlKSA/IGAke3ZhbHVlfSR7dGhpcy5fY29uZmlnLmRlZmF1bHRVbml0fWAgOiB2YWx1ZTtcbiAgfVxufVxuXG5jb25zdCBpbnB1dHMgPSBbXG4gICdmeExheW91dEdhcCcsICdmeExheW91dEdhcC54cycsICdmeExheW91dEdhcC5zbScsICdmeExheW91dEdhcC5tZCcsXG4gICdmeExheW91dEdhcC5sZycsICdmeExheW91dEdhcC54bCcsICdmeExheW91dEdhcC5sdC1zbScsICdmeExheW91dEdhcC5sdC1tZCcsXG4gICdmeExheW91dEdhcC5sdC1sZycsICdmeExheW91dEdhcC5sdC14bCcsICdmeExheW91dEdhcC5ndC14cycsICdmeExheW91dEdhcC5ndC1zbScsXG4gICdmeExheW91dEdhcC5ndC1tZCcsICdmeExheW91dEdhcC5ndC1sZydcbl07XG5jb25zdCBzZWxlY3RvciA9IGBcbiAgW2Z4TGF5b3V0R2FwXSwgW2Z4TGF5b3V0R2FwLnhzXSwgW2Z4TGF5b3V0R2FwLnNtXSwgW2Z4TGF5b3V0R2FwLm1kXSxcbiAgW2Z4TGF5b3V0R2FwLmxnXSwgW2Z4TGF5b3V0R2FwLnhsXSwgW2Z4TGF5b3V0R2FwLmx0LXNtXSwgW2Z4TGF5b3V0R2FwLmx0LW1kXSxcbiAgW2Z4TGF5b3V0R2FwLmx0LWxnXSwgW2Z4TGF5b3V0R2FwLmx0LXhsXSwgW2Z4TGF5b3V0R2FwLmd0LXhzXSwgW2Z4TGF5b3V0R2FwLmd0LXNtXSxcbiAgW2Z4TGF5b3V0R2FwLmd0LW1kXSwgW2Z4TGF5b3V0R2FwLmd0LWxnXVxuYDtcblxuLyoqXG4gKiAnbGF5b3V0LXBhZGRpbmcnIHN0eWxpbmcgZGlyZWN0aXZlXG4gKiAgRGVmaW5lcyBwYWRkaW5nIG9mIGNoaWxkIGVsZW1lbnRzIGluIGEgbGF5b3V0IGNvbnRhaW5lclxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBMYXlvdXRHYXBEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlMiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBsYXlvdXQgPSAncm93JzsgIC8vIGRlZmF1bHQgZmxleC1kaXJlY3Rpb25cbiAgcHJvdGVjdGVkIERJUkVDVElWRV9LRVkgPSAnbGF5b3V0LWdhcCc7XG4gIHByb3RlY3RlZCBvYnNlcnZlclN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBTcGVjaWFsIGFjY2Vzc29yIHRvIHF1ZXJ5IGZvciBhbGwgY2hpbGQgJ2VsZW1lbnQnIG5vZGVzIHJlZ2FyZGxlc3Mgb2YgdHlwZSwgY2xhc3MsIGV0YyAqL1xuICBwcm90ZWN0ZWQgZ2V0IGNoaWxkcmVuTm9kZXMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3Qgb2JqID0gdGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuO1xuICAgIGNvbnN0IGJ1ZmZlcjogYW55W10gPSBbXTtcblxuICAgIC8vIGl0ZXJhdGUgYmFja3dhcmRzIGVuc3VyaW5nIHRoYXQgbGVuZ3RoIGlzIGFuIFVJbnQzMlxuICAgIGZvciAobGV0IGkgPSBvYmoubGVuZ3RoOyBpLS07KSB7XG4gICAgICBidWZmZXJbaV0gPSBvYmpbaV07XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHN0eWxlVXRpbHM6IFN0eWxlVXRpbHMsXG4gICAgICAgICAgICAgIHN0eWxlQnVpbGRlcjogTGF5b3V0R2FwU3R5bGVCdWlsZGVyLFxuICAgICAgICAgICAgICBtYXJzaGFsOiBNZWRpYU1hcnNoYWxsZXIpIHtcbiAgICBzdXBlcihlbFJlZiwgc3R5bGVCdWlsZGVyLCBzdHlsZVV0aWxzLCBtYXJzaGFsKTtcbiAgICBjb25zdCBleHRyYVRyaWdnZXJzID0gW3RoaXMuZGlyZWN0aW9uYWxpdHkuY2hhbmdlLCB0aGlzLm9ic2VydmVyU3ViamVjdC5hc09ic2VydmFibGUoKV07XG4gICAgdGhpcy5pbml0KGV4dHJhVHJpZ2dlcnMpO1xuICAgIHRoaXMubWFyc2hhbFxuICAgICAgLnRyYWNrVmFsdWUodGhpcy5uYXRpdmVFbGVtZW50LCAnbGF5b3V0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3lTdWJqZWN0KSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5vbkxheW91dENoYW5nZS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAvLyBMaWZlY3ljbGUgTWV0aG9kc1xuICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5idWlsZENoaWxkT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudHJpZ2dlclVwZGF0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gIC8vIFByb3RlY3RlZCBtZXRob2RzXG4gIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gIC8qKlxuICAgKiBDYWNoZSB0aGUgcGFyZW50IGNvbnRhaW5lciAnZmxleC1kaXJlY3Rpb24nIGFuZCB1cGRhdGUgdGhlICdtYXJnaW4nIHN0eWxlc1xuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0Q2hhbmdlKG1hdGNoZXI6IEVsZW1lbnRNYXRjaGVyKSB7XG4gICAgY29uc3QgbGF5b3V0OiBzdHJpbmcgPSBtYXRjaGVyLnZhbHVlO1xuICAgIC8vIE1ha2Ugc3VyZSB0byBmaWx0ZXIgb3V0ICd3cmFwJyBvcHRpb25cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBsYXlvdXQuc3BsaXQoJyAnKTtcbiAgICB0aGlzLmxheW91dCA9IGRpcmVjdGlvblswXTtcbiAgICBpZiAoIUxBWU9VVF9WQUxVRVMuZmluZCh4ID0+IHggPT09IHRoaXMubGF5b3V0KSkge1xuICAgICAgdGhpcy5sYXlvdXQgPSAncm93JztcbiAgICB9XG4gICAgdGhpcy50cmlnZ2VyVXBkYXRlKCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVXaXRoVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIC8vIEdhdGhlciBhbGwgbm9uLWhpZGRlbiBFbGVtZW50IG5vZGVzXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmNoaWxkcmVuTm9kZXNcbiAgICAgIC5maWx0ZXIoZWwgPT4gZWwubm9kZVR5cGUgPT09IDEgJiYgdGhpcy53aWxsRGlzcGxheShlbCkpXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICBjb25zdCBvcmRlckEgPSArdGhpcy5zdHlsZXIubG9va3VwU3R5bGUoYSwgJ29yZGVyJyk7XG4gICAgICAgIGNvbnN0IG9yZGVyQiA9ICt0aGlzLnN0eWxlci5sb29rdXBTdHlsZShiLCAnb3JkZXInKTtcbiAgICAgICAgaWYgKGlzTmFOKG9yZGVyQSkgfHwgaXNOYU4ob3JkZXJCKSB8fCBvcmRlckEgPT09IG9yZGVyQikge1xuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvcmRlckEgPiBvcmRlckIgPyAxIDogLTE7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbmFsaXR5ID0gdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcbiAgICAgIGNvbnN0IGxheW91dCA9IHRoaXMubGF5b3V0O1xuICAgICAgaWYgKGxheW91dCA9PT0gJ3JvdycgJiYgZGlyZWN0aW9uYWxpdHkgPT09ICdydGwnKSB7XG4gICAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEdhcENhY2hlUm93UnRsO1xuICAgICAgfSBlbHNlIGlmIChsYXlvdXQgPT09ICdyb3cnICYmIGRpcmVjdGlvbmFsaXR5ICE9PSAncnRsJykge1xuICAgICAgICB0aGlzLnN0eWxlQ2FjaGUgPSBsYXlvdXRHYXBDYWNoZVJvd0x0cjtcbiAgICAgIH0gZWxzZSBpZiAobGF5b3V0ID09PSAnY29sdW1uJyAmJiBkaXJlY3Rpb25hbGl0eSA9PT0gJ3J0bCcpIHtcbiAgICAgICAgdGhpcy5zdHlsZUNhY2hlID0gbGF5b3V0R2FwQ2FjaGVDb2x1bW5SdGw7XG4gICAgICB9IGVsc2UgaWYgKGxheW91dCA9PT0gJ2NvbHVtbicgJiYgZGlyZWN0aW9uYWxpdHkgIT09ICdydGwnKSB7XG4gICAgICAgIHRoaXMuc3R5bGVDYWNoZSA9IGxheW91dEdhcENhY2hlQ29sdW1uTHRyO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRTdHlsZXModmFsdWUsIHtkaXJlY3Rpb25hbGl0eSwgaXRlbXMsIGxheW91dH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBXZSBuZWVkIHRvIG92ZXJyaWRlIGNsZWFyU3R5bGVzIGJlY2F1c2UgaW4gbW9zdCBjYXNlcyBtcnUgaXNuJ3QgcG9wdWxhdGVkICovXG4gIHByb3RlY3RlZCBjbGVhclN0eWxlcygpIHtcbiAgICBjb25zdCBncmlkTW9kZSA9IE9iamVjdC5rZXlzKHRoaXMubXJ1KS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGNoaWxkcmVuU3R5bGUgPSBncmlkTW9kZSA/ICdwYWRkaW5nJyA6XG4gICAgICBnZXRNYXJnaW5UeXBlKHRoaXMuZGlyZWN0aW9uYWxpdHkudmFsdWUsIHRoaXMubGF5b3V0KTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBzdHlsZXMgb24gdGhlIHBhcmVudCByZW1vdmUgdGhlbVxuICAgIGlmIChncmlkTW9kZSkge1xuICAgICAgc3VwZXIuY2xlYXJTdHlsZXMoKTtcbiAgICB9XG5cbiAgICAvLyBUaGVuIHJlbW92ZSB0aGUgY2hpbGRyZW4gc3R5bGVzIHRvb1xuICAgIHRoaXMuc3R5bGVVdGlscy5hcHBseVN0eWxlVG9FbGVtZW50cyh7W2NoaWxkcmVuU3R5bGVdOiAnJ30sIHRoaXMuY2hpbGRyZW5Ob2Rlcyk7XG4gIH1cblxuICAvKiogRGV0ZXJtaW5lIGlmIGFuIGVsZW1lbnQgd2lsbCBzaG93IG9yIGhpZGUgYmFzZWQgb24gY3VycmVudCBhY3RpdmF0aW9uICovXG4gIHByb3RlY3RlZCB3aWxsRGlzcGxheShzb3VyY2U6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm1hcnNoYWwuZ2V0VmFsdWUoc291cmNlLCAnc2hvdy1oaWRlJyk7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnN0eWxlVXRpbHMubG9va3VwU3R5bGUoc291cmNlLCAnZGlzcGxheScpICE9PSAnbm9uZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQ2hpbGRPYnNlcnZhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsaWRhdGVkQ2hhbmdlcyA9IChpdDogTXV0YXRpb25SZWNvcmQpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoaXQuYWRkZWROb2RlcyAmJiBpdC5hZGRlZE5vZGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgIChpdC5yZW1vdmVkTm9kZXMgJiYgaXQucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyB1cGRhdGUgZ2FwIHN0eWxlcyBvbmx5IGZvciBjaGlsZCAnYWRkZWQnIG9yICdyZW1vdmVkJyBldmVudHNcbiAgICAgICAgICBpZiAobXV0YXRpb25zLnNvbWUodmFsaWRhdGVkQ2hhbmdlcykpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJTdWJqZWN0Lm5leHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50LCB7Y2hpbGRMaXN0OiB0cnVlfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2JzZXJ2ZXI/OiBNdXRhdGlvbk9ic2VydmVyO1xufVxuXG5ARGlyZWN0aXZlKHtzZWxlY3RvciwgaW5wdXRzfSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0TGF5b3V0R2FwRGlyZWN0aXZlIGV4dGVuZHMgTGF5b3V0R2FwRGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIGlucHV0cyA9IGlucHV0cztcbn1cblxuY29uc3QgbGF5b3V0R2FwQ2FjaGVSb3dSdGw6IE1hcDxzdHJpbmcsIFN0eWxlRGVmaW5pdGlvbj4gPSBuZXcgTWFwKCk7XG5jb25zdCBsYXlvdXRHYXBDYWNoZUNvbHVtblJ0bDogTWFwPHN0cmluZywgU3R5bGVEZWZpbml0aW9uPiA9IG5ldyBNYXAoKTtcbmNvbnN0IGxheW91dEdhcENhY2hlUm93THRyOiBNYXA8c3RyaW5nLCBTdHlsZURlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuY29uc3QgbGF5b3V0R2FwQ2FjaGVDb2x1bW5MdHI6IE1hcDxzdHJpbmcsIFN0eWxlRGVmaW5pdGlvbj4gPSBuZXcgTWFwKCk7XG5cbmNvbnN0IEdSSURfU1BFQ0lGSUVSID0gJyBncmlkJztcblxuZnVuY3Rpb24gYnVpbGRHcmlkUGFkZGluZyh2YWx1ZTogc3RyaW5nLCBkaXJlY3Rpb25hbGl0eTogc3RyaW5nKTogU3R5bGVEZWZpbml0aW9uIHtcbiAgY29uc3QgW2JldHdlZW4sIGJlbG93XSA9IHZhbHVlLnNwbGl0KCcgJyk7XG4gIGNvbnN0IGJvdHRvbSA9IGJlbG93ID8/IGJldHdlZW47XG4gIGxldCBwYWRkaW5nUmlnaHQgPSAnMHB4JywgcGFkZGluZ0JvdHRvbSA9IGJvdHRvbSwgcGFkZGluZ0xlZnQgPSAnMHB4JztcblxuICBpZiAoZGlyZWN0aW9uYWxpdHkgPT09ICdydGwnKSB7XG4gICAgcGFkZGluZ0xlZnQgPSBiZXR3ZWVuO1xuICB9IGVsc2Uge1xuICAgIHBhZGRpbmdSaWdodCA9IGJldHdlZW47XG4gIH1cblxuICByZXR1cm4geydwYWRkaW5nJzogYDBweCAke3BhZGRpbmdSaWdodH0gJHtwYWRkaW5nQm90dG9tfSAke3BhZGRpbmdMZWZ0fWB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEdyaWRNYXJnaW4odmFsdWU6IHN0cmluZywgZGlyZWN0aW9uYWxpdHk6IHN0cmluZyk6IFN0eWxlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IFtiZXR3ZWVuLCBiZWxvd10gPSB2YWx1ZS5zcGxpdCgnICcpO1xuICBjb25zdCBib3R0b20gPSBiZWxvdyA/PyBiZXR3ZWVuO1xuICBjb25zdCBtaW51cyA9IChzdHI6IHN0cmluZykgPT4gYC0ke3N0cn1gO1xuICBsZXQgbWFyZ2luUmlnaHQgPSAnMHB4JywgbWFyZ2luQm90dG9tID0gbWludXMoYm90dG9tKSwgbWFyZ2luTGVmdCA9ICcwcHgnO1xuXG4gIGlmIChkaXJlY3Rpb25hbGl0eSA9PT0gJ3J0bCcpIHtcbiAgICBtYXJnaW5MZWZ0ID0gbWludXMoYmV0d2Vlbik7XG4gIH0gZWxzZSB7XG4gICAgbWFyZ2luUmlnaHQgPSBtaW51cyhiZXR3ZWVuKTtcbiAgfVxuXG4gIHJldHVybiB7J21hcmdpbic6IGAwcHggJHttYXJnaW5SaWdodH0gJHttYXJnaW5Cb3R0b219ICR7bWFyZ2luTGVmdH1gfTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFyZ2luVHlwZShkaXJlY3Rpb25hbGl0eTogc3RyaW5nLCBsYXlvdXQ6IHN0cmluZykge1xuICBzd2l0Y2ggKGxheW91dCkge1xuICAgIGNhc2UgJ2NvbHVtbic6XG4gICAgICByZXR1cm4gJ21hcmdpbi1ib3R0b20nO1xuICAgIGNhc2UgJ2NvbHVtbi1yZXZlcnNlJzpcbiAgICAgIHJldHVybiAnbWFyZ2luLXRvcCc7XG4gICAgY2FzZSAncm93JzpcbiAgICAgIHJldHVybiBkaXJlY3Rpb25hbGl0eSA9PT0gJ3J0bCcgPyAnbWFyZ2luLWxlZnQnIDogJ21hcmdpbi1yaWdodCc7XG4gICAgY2FzZSAncm93LXJldmVyc2UnOlxuICAgICAgcmV0dXJuIGRpcmVjdGlvbmFsaXR5ID09PSAncnRsJyA/ICdtYXJnaW4tcmlnaHQnIDogJ21hcmdpbi1sZWZ0JztcbiAgICBkZWZhdWx0IDpcbiAgICAgIHJldHVybiBkaXJlY3Rpb25hbGl0eSA9PT0gJ3J0bCcgPyAnbWFyZ2luLWxlZnQnIDogJ21hcmdpbi1yaWdodCc7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRHYXBDU1MoZ2FwVmFsdWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgIHBhcmVudDoge2RpcmVjdGlvbmFsaXR5OiBzdHJpbmcsIGxheW91dDogc3RyaW5nfSk6IFN0eWxlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IGtleSA9IGdldE1hcmdpblR5cGUocGFyZW50LmRpcmVjdGlvbmFsaXR5LCBwYXJlbnQubGF5b3V0KTtcbiAgY29uc3QgbWFyZ2luczoge1trZXk6IHN0cmluZ106IHN0cmluZyB8IG51bGx9ID0gey4uLkNMRUFSX01BUkdJTl9DU1N9O1xuICBtYXJnaW5zW2tleV0gPSBnYXBWYWx1ZTtcbiAgcmV0dXJuIG1hcmdpbnM7XG59XG4iXX0=
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { NgModule } from '@angular/core';
9
+ import { BidiModule } from '@angular/cdk/bidi';
10
+ import { CoreModule } from '@angular/flex-layout/core';
11
+ import { DefaultLayoutDirective } from './layout/layout';
12
+ import { DefaultLayoutGapDirective } from './layout-gap/layout-gap';
13
+ import { DefaultFlexDirective } from './flex/flex';
14
+ import { DefaultFlexOrderDirective } from './flex-order/flex-order';
15
+ import { DefaultFlexOffsetDirective } from './flex-offset/flex-offset';
16
+ import { DefaultFlexAlignDirective } from './flex-align/flex-align';
17
+ import { FlexFillDirective } from './flex-fill/flex-fill';
18
+ import { DefaultLayoutAlignDirective } from './layout-align/layout-align';
19
+ import * as i0 from "@angular/core";
20
+ const ALL_DIRECTIVES = [
21
+ DefaultLayoutDirective,
22
+ DefaultLayoutGapDirective,
23
+ DefaultLayoutAlignDirective,
24
+ DefaultFlexOrderDirective,
25
+ DefaultFlexOffsetDirective,
26
+ FlexFillDirective,
27
+ DefaultFlexAlignDirective,
28
+ DefaultFlexDirective,
29
+ ];
30
+ /**
31
+ * *****************************************************************
32
+ * Define module for the Flex API
33
+ * *****************************************************************
34
+ */
35
+ export class FlexModule {
36
+ }
37
+ FlexModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FlexModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
38
+ FlexModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FlexModule, declarations: [DefaultLayoutDirective,
39
+ DefaultLayoutGapDirective,
40
+ DefaultLayoutAlignDirective,
41
+ DefaultFlexOrderDirective,
42
+ DefaultFlexOffsetDirective,
43
+ FlexFillDirective,
44
+ DefaultFlexAlignDirective,
45
+ DefaultFlexDirective], imports: [CoreModule, BidiModule], exports: [DefaultLayoutDirective,
46
+ DefaultLayoutGapDirective,
47
+ DefaultLayoutAlignDirective,
48
+ DefaultFlexOrderDirective,
49
+ DefaultFlexOffsetDirective,
50
+ FlexFillDirective,
51
+ DefaultFlexAlignDirective,
52
+ DefaultFlexDirective] });
53
+ FlexModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FlexModule, imports: [[CoreModule, BidiModule]] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FlexModule, decorators: [{
55
+ type: NgModule,
56
+ args: [{
57
+ imports: [CoreModule, BidiModule],
58
+ declarations: [...ALL_DIRECTIVES],
59
+ exports: [...ALL_DIRECTIVES]
60
+ }]
61
+ }] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlicy9mbGV4LWxheW91dC9mbGV4L21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOztBQUd4RSxNQUFNLGNBQWMsR0FBRztJQUNyQixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsb0JBQW9CO0NBQ3JCLENBQUM7QUFFRjs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLFVBQVU7O3VHQUFWLFVBQVU7d0dBQVYsVUFBVSxpQkFyQnJCLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixvQkFBb0IsYUFVVixVQUFVLEVBQUUsVUFBVSxhQWpCaEMsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6QiwyQkFBMkI7UUFDM0IseUJBQXlCO1FBQ3pCLDBCQUEwQjtRQUMxQixpQkFBaUI7UUFDakIseUJBQXlCO1FBQ3pCLG9CQUFvQjt3R0FjVCxVQUFVLFlBSlosQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDOzJGQUl0QixVQUFVO2tCQUx0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7b0JBQ2pDLFlBQVksRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCaWRpTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge0NvcmVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0L2NvcmUnO1xuXG5pbXBvcnQge0RlZmF1bHRMYXlvdXREaXJlY3RpdmV9IGZyb20gJy4vbGF5b3V0L2xheW91dCc7XG5pbXBvcnQge0RlZmF1bHRMYXlvdXRHYXBEaXJlY3RpdmV9IGZyb20gJy4vbGF5b3V0LWdhcC9sYXlvdXQtZ2FwJztcbmltcG9ydCB7RGVmYXVsdEZsZXhEaXJlY3RpdmV9IGZyb20gJy4vZmxleC9mbGV4JztcbmltcG9ydCB7RGVmYXVsdEZsZXhPcmRlckRpcmVjdGl2ZX0gZnJvbSAnLi9mbGV4LW9yZGVyL2ZsZXgtb3JkZXInO1xuaW1wb3J0IHtEZWZhdWx0RmxleE9mZnNldERpcmVjdGl2ZX0gZnJvbSAnLi9mbGV4LW9mZnNldC9mbGV4LW9mZnNldCc7XG5pbXBvcnQge0RlZmF1bHRGbGV4QWxpZ25EaXJlY3RpdmV9IGZyb20gJy4vZmxleC1hbGlnbi9mbGV4LWFsaWduJztcbmltcG9ydCB7RmxleEZpbGxEaXJlY3RpdmV9IGZyb20gJy4vZmxleC1maWxsL2ZsZXgtZmlsbCc7XG5pbXBvcnQge0RlZmF1bHRMYXlvdXRBbGlnbkRpcmVjdGl2ZX0gZnJvbSAnLi9sYXlvdXQtYWxpZ24vbGF5b3V0LWFsaWduJztcblxuXG5jb25zdCBBTExfRElSRUNUSVZFUyA9IFtcbiAgRGVmYXVsdExheW91dERpcmVjdGl2ZSxcbiAgRGVmYXVsdExheW91dEdhcERpcmVjdGl2ZSxcbiAgRGVmYXVsdExheW91dEFsaWduRGlyZWN0aXZlLFxuICBEZWZhdWx0RmxleE9yZGVyRGlyZWN0aXZlLFxuICBEZWZhdWx0RmxleE9mZnNldERpcmVjdGl2ZSxcbiAgRmxleEZpbGxEaXJlY3RpdmUsXG4gIERlZmF1bHRGbGV4QWxpZ25EaXJlY3RpdmUsXG4gIERlZmF1bHRGbGV4RGlyZWN0aXZlLFxuXTtcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRGVmaW5lIG1vZHVsZSBmb3IgdGhlIEZsZXggQVBJXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBCaWRpTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uQUxMX0RJUkVDVElWRVNdLFxuICBleHBvcnRzOiBbLi4uQUxMX0RJUkVDVElWRVNdXG59KVxuZXhwb3J0IGNsYXNzIEZsZXhNb2R1bGUge1xufVxuIl19