@porscheinformatik/material-addons 0.0.35 → 0.0.99

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 (227) hide show
  1. package/README.md +29 -29
  2. package/esm2022/lib/button/button.mjs +7 -0
  3. package/esm2022/lib/button/button.module.mjs +26 -0
  4. package/esm2022/lib/button/danger-button/danger-button.component.mjs +28 -0
  5. package/esm2022/lib/button/flat-button/link-button.component.mjs +28 -0
  6. package/esm2022/lib/button/icon-button/icon-button.component.mjs +28 -0
  7. package/esm2022/lib/button/mad-basic-button.mjs +39 -0
  8. package/esm2022/lib/button/outline-button/outline-button.component.mjs +28 -0
  9. package/esm2022/lib/button/primary-button/primary-button.component.mjs +28 -0
  10. package/esm2022/lib/card/card.component.mjs +129 -0
  11. package/esm2022/lib/card/card.mjs +2 -0
  12. package/esm2022/lib/card/card.module.mjs +23 -0
  13. package/esm2022/lib/content-panel/content-header/content-header.component.mjs +11 -0
  14. package/esm2022/lib/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
  15. package/esm2022/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
  16. package/esm2022/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
  17. package/esm2022/lib/content-panel/content-panel.module.mjs +42 -0
  18. package/esm2022/lib/content-panel/main-container/main-container.component.mjs +11 -0
  19. package/esm2022/lib/data-table/data-table-action-type.mjs +6 -0
  20. package/esm2022/lib/data-table/data-table-action.mjs +2 -0
  21. package/esm2022/lib/data-table/data-table-column-definition.mjs +2 -0
  22. package/esm2022/lib/data-table/data-table-column.mjs +2 -0
  23. package/esm2022/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +103 -0
  24. package/esm2022/lib/data-table/data-table-row.mjs +2 -0
  25. package/esm2022/lib/data-table/data-table.component.mjs +529 -0
  26. package/esm2022/lib/data-table/data-table.mjs +3 -0
  27. package/esm2022/lib/data-table/data-table.module.mjs +81 -0
  28. package/esm2022/lib/file-upload/drag-and-drop-directive.directive.mjs +61 -0
  29. package/esm2022/lib/file-upload/file-upload.component.mjs +78 -0
  30. package/esm2022/lib/flowbar/flowbar.component.mjs +190 -0
  31. package/esm2022/lib/flowbar/flowbar.module.mjs +19 -0
  32. package/esm2022/lib/material-action-button/material-action-button.component.mjs +34 -0
  33. package/esm2022/lib/material-action-button/material-action-button.module.mjs +22 -0
  34. package/esm2022/lib/material-addons.module.mjs +45 -0
  35. package/esm2022/lib/numeric-field/number-format.service.mjs +139 -0
  36. package/esm2022/lib/numeric-field/numeric-field.directive.mjs +295 -0
  37. package/esm2022/lib/numeric-field/numeric-field.mjs +2 -0
  38. package/esm2022/lib/numeric-field/numeric-field.module.mjs +24 -0
  39. package/esm2022/lib/quick-list/base-quick-list.component.mjs +124 -0
  40. package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +22 -0
  41. package/esm2022/lib/quick-list/quick-list.component.mjs +23 -0
  42. package/esm2022/lib/quick-list/quick-list.mjs +6 -0
  43. package/esm2022/lib/quick-list/quick-list.module.mjs +46 -0
  44. package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +22 -0
  45. package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +22 -0
  46. package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +181 -0
  47. package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +206 -0
  48. package/esm2022/lib/readonly/readonly-form-field.module.mjs +25 -0
  49. package/esm2022/lib/stepper/mad-stepper-animation.mjs +13 -0
  50. package/esm2022/lib/stepper/step-header/step-header.component.mjs +77 -0
  51. package/esm2022/lib/stepper/stepper.component.mjs +159 -0
  52. package/esm2022/lib/stepper/stepper.module.mjs +23 -0
  53. package/esm2022/lib/table/column-header.mjs +2 -0
  54. package/esm2022/lib/table/table-action.mjs +2 -0
  55. package/esm2022/lib/table/table.component.mjs +130 -0
  56. package/esm2022/lib/table/table.mjs +2 -0
  57. package/esm2022/lib/table/table.module.mjs +56 -0
  58. package/esm2022/lib/throttle-click/throttle-click.directive.mjs +38 -0
  59. package/esm2022/lib/throttle-click/throttle-click.module.mjs +18 -0
  60. package/esm2022/lib/toolbar/toolbar-action.interface.mjs +2 -0
  61. package/esm2022/lib/toolbar/toolbar.component.mjs +78 -0
  62. package/esm2022/lib/toolbar/toolbar.module.mjs +56 -0
  63. package/esm2022/lib/toolbar/toolbar.service.mjs +124 -0
  64. package/esm2022/porscheinformatik-material-addons.mjs +5 -0
  65. package/esm2022/public_api.mjs +42 -0
  66. package/fesm2022/porscheinformatik-material-addons.mjs +3229 -0
  67. package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -0
  68. package/index.d.ts +6 -0
  69. package/lib/button/button.d.ts +7 -0
  70. package/lib/button/button.d.ts.map +1 -0
  71. package/lib/button/button.module.d.ts +17 -0
  72. package/lib/button/button.module.d.ts.map +1 -0
  73. package/lib/button/danger-button/danger-button.component.d.ts +13 -0
  74. package/lib/button/danger-button/danger-button.component.d.ts.map +1 -0
  75. package/lib/button/flat-button/link-button.component.d.ts +13 -0
  76. package/lib/button/flat-button/link-button.component.d.ts.map +1 -0
  77. package/lib/button/icon-button/icon-button.component.d.ts +13 -0
  78. package/lib/button/icon-button/icon-button.component.d.ts.map +1 -0
  79. package/lib/button/mad-basic-button.d.ts +14 -0
  80. package/lib/button/mad-basic-button.d.ts.map +1 -0
  81. package/lib/button/outline-button/outline-button.component.d.ts +13 -0
  82. package/lib/button/outline-button/outline-button.component.d.ts.map +1 -0
  83. package/lib/button/primary-button/primary-button.component.d.ts +13 -0
  84. package/lib/button/primary-button/primary-button.component.d.ts.map +1 -0
  85. package/lib/card/card.component.d.ts +28 -0
  86. package/lib/card/card.component.d.ts.map +1 -0
  87. package/lib/card/card.d.ts +2 -0
  88. package/lib/card/card.d.ts.map +1 -0
  89. package/lib/card/card.module.d.ts +14 -0
  90. package/lib/card/card.module.d.ts.map +1 -0
  91. package/lib/content-panel/content-header/content-header.component.d.ts +6 -0
  92. package/lib/content-panel/content-header/content-header.component.d.ts.map +1 -0
  93. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts +6 -0
  94. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts.map +1 -0
  95. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts +6 -0
  96. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +1 -0
  97. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts +6 -0
  98. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +1 -0
  99. package/lib/content-panel/content-panel.module.d.ts +13 -0
  100. package/lib/content-panel/content-panel.module.d.ts.map +1 -0
  101. package/lib/content-panel/main-container/main-container.component.d.ts +6 -0
  102. package/lib/content-panel/main-container/main-container.component.d.ts.map +1 -0
  103. package/lib/data-table/data-table-action-type.d.ts +6 -0
  104. package/lib/data-table/data-table-action-type.d.ts.map +1 -0
  105. package/lib/data-table/data-table-action.d.ts +8 -0
  106. package/lib/data-table/data-table-action.d.ts.map +1 -0
  107. package/lib/data-table/data-table-column-definition.d.ts +28 -0
  108. package/lib/data-table/data-table-column-definition.d.ts.map +1 -0
  109. package/lib/data-table/data-table-column.d.ts +11 -0
  110. package/lib/data-table/data-table-column.d.ts.map +1 -0
  111. package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts +27 -0
  112. package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts.map +1 -0
  113. package/lib/data-table/data-table-row.d.ts +7 -0
  114. package/lib/data-table/data-table-row.d.ts.map +1 -0
  115. package/lib/data-table/data-table.component.d.ts +123 -0
  116. package/lib/data-table/data-table.component.d.ts.map +1 -0
  117. package/lib/data-table/data-table.d.ts +6 -0
  118. package/lib/data-table/data-table.d.ts.map +1 -0
  119. package/lib/data-table/data-table.module.d.ts +25 -0
  120. package/lib/data-table/data-table.module.d.ts.map +1 -0
  121. package/lib/file-upload/drag-and-drop-directive.directive.d.ts +13 -0
  122. package/lib/file-upload/drag-and-drop-directive.directive.d.ts.map +1 -0
  123. package/lib/file-upload/file-upload.component.d.ts +22 -0
  124. package/lib/file-upload/file-upload.component.d.ts.map +1 -0
  125. package/lib/flowbar/flowbar.component.d.ts +47 -0
  126. package/lib/flowbar/flowbar.component.d.ts.map +1 -0
  127. package/lib/flowbar/flowbar.module.d.ts +10 -0
  128. package/lib/flowbar/flowbar.module.d.ts.map +1 -0
  129. package/lib/material-action-button/material-action-button.component.d.ts +12 -8
  130. package/lib/material-action-button/material-action-button.component.d.ts.map +1 -0
  131. package/lib/material-action-button/material-action-button.module.d.ts +13 -2
  132. package/lib/material-action-button/material-action-button.module.d.ts.map +1 -0
  133. package/lib/material-addons.module.d.ts +15 -2
  134. package/lib/material-addons.module.d.ts.map +1 -0
  135. package/lib/numeric-field/number-format.service.d.ts +31 -0
  136. package/lib/numeric-field/number-format.service.d.ts.map +1 -0
  137. package/lib/numeric-field/numeric-field.d.ts +2 -0
  138. package/lib/numeric-field/numeric-field.d.ts.map +1 -0
  139. package/lib/numeric-field/numeric-field.directive.d.ts +45 -0
  140. package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -0
  141. package/lib/numeric-field/numeric-field.module.d.ts +10 -0
  142. package/lib/numeric-field/numeric-field.module.d.ts.map +1 -0
  143. package/lib/quick-list/base-quick-list.component.d.ts +41 -0
  144. package/lib/quick-list/base-quick-list.component.d.ts.map +1 -0
  145. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +12 -0
  146. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -0
  147. package/lib/quick-list/quick-list.component.d.ts +12 -0
  148. package/lib/quick-list/quick-list.component.d.ts.map +1 -0
  149. package/lib/quick-list/quick-list.d.ts +6 -0
  150. package/lib/quick-list/quick-list.d.ts.map +1 -0
  151. package/lib/quick-list/quick-list.module.d.ts +17 -0
  152. package/lib/quick-list/quick-list.module.d.ts.map +1 -0
  153. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts +12 -0
  154. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts.map +1 -0
  155. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts +12 -0
  156. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts.map +1 -0
  157. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts +56 -14
  158. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -0
  159. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts +89 -31
  160. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts.map +1 -0
  161. package/lib/readonly/readonly-form-field.module.d.ts +16 -2
  162. package/lib/readonly/readonly-form-field.module.d.ts.map +1 -0
  163. package/lib/stepper/mad-stepper-animation.d.ts +8 -0
  164. package/lib/stepper/mad-stepper-animation.d.ts.map +1 -0
  165. package/lib/stepper/step-header/step-header.component.d.ts +27 -0
  166. package/lib/stepper/step-header/step-header.component.d.ts.map +1 -0
  167. package/lib/stepper/stepper.component.d.ts +53 -0
  168. package/lib/stepper/stepper.component.d.ts.map +1 -0
  169. package/lib/stepper/stepper.module.d.ts +14 -0
  170. package/lib/stepper/stepper.module.d.ts.map +1 -0
  171. package/lib/table/column-header.d.ts +8 -0
  172. package/lib/table/column-header.d.ts.map +1 -0
  173. package/lib/table/table-action.d.ts +6 -0
  174. package/lib/table/table-action.d.ts.map +1 -0
  175. package/lib/table/table.component.d.ts +43 -0
  176. package/lib/table/table.component.d.ts.map +1 -0
  177. package/lib/table/table.d.ts +4 -0
  178. package/lib/table/table.d.ts.map +1 -0
  179. package/lib/table/table.module.d.ts +18 -0
  180. package/lib/table/table.module.d.ts.map +1 -0
  181. package/lib/throttle-click/throttle-click.directive.d.ts +14 -0
  182. package/lib/throttle-click/throttle-click.directive.d.ts.map +1 -0
  183. package/lib/throttle-click/throttle-click.module.d.ts +9 -0
  184. package/lib/throttle-click/throttle-click.module.d.ts.map +1 -0
  185. package/lib/toolbar/toolbar-action.interface.d.ts +28 -18
  186. package/lib/toolbar/toolbar-action.interface.d.ts.map +1 -0
  187. package/lib/toolbar/toolbar.component.d.ts +28 -19
  188. package/lib/toolbar/toolbar.component.d.ts.map +1 -0
  189. package/lib/toolbar/toolbar.module.d.ts +18 -2
  190. package/lib/toolbar/toolbar.module.d.ts.map +1 -0
  191. package/lib/toolbar/toolbar.service.d.ts +44 -33
  192. package/lib/toolbar/toolbar.service.d.ts.map +1 -0
  193. package/package.json +29 -24
  194. package/porscheinformatik-material-addons.d.ts.map +1 -0
  195. package/public_api.d.ts +39 -0
  196. package/public_api.d.ts.map +1 -0
  197. package/themes/common/styles.scss +359 -303
  198. package/themes/pbv.scss +64 -56
  199. package/themes/poa.scss +64 -40
  200. package/bundles/porscheinformatik-material-addons.umd.js +0 -755
  201. package/esm2015/lib/material-action-button/material-action-button.component.js +0 -43
  202. package/esm2015/lib/material-action-button/material-action-button.module.js +0 -19
  203. package/esm2015/lib/material-addons.module.js +0 -16
  204. package/esm2015/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -61
  205. package/esm2015/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -124
  206. package/esm2015/lib/readonly/readonly-form-field.module.js +0 -20
  207. package/esm2015/lib/toolbar/toolbar-action.interface.js +0 -47
  208. package/esm2015/lib/toolbar/toolbar.component.js +0 -112
  209. package/esm2015/lib/toolbar/toolbar.module.js +0 -29
  210. package/esm2015/lib/toolbar/toolbar.service.js +0 -197
  211. package/esm2015/porscheinformatik-material-addons.js +0 -9
  212. package/esm2015/public-api.js +0 -18
  213. package/esm5/lib/material-action-button/material-action-button.component.js +0 -45
  214. package/esm5/lib/material-action-button/material-action-button.module.js +0 -23
  215. package/esm5/lib/material-addons.module.js +0 -20
  216. package/esm5/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -67
  217. package/esm5/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -145
  218. package/esm5/lib/readonly/readonly-form-field.module.js +0 -24
  219. package/esm5/lib/toolbar/toolbar-action.interface.js +0 -47
  220. package/esm5/lib/toolbar/toolbar.component.js +0 -131
  221. package/esm5/lib/toolbar/toolbar.module.js +0 -33
  222. package/esm5/lib/toolbar/toolbar.service.js +0 -245
  223. package/esm5/porscheinformatik-material-addons.js +0 -9
  224. package/esm5/public-api.js +0 -18
  225. package/porscheinformatik-material-addons.d.ts +0 -4
  226. package/porscheinformatik-material-addons.metadata.json +0 -1
  227. package/public-api.d.ts +0 -10
@@ -0,0 +1,206 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/tooltip";
5
+ import * as i3 from "../readonly-form-field/readonly-form-field.component";
6
+ /**
7
+ * Wraps a mat-form-field to replace it by a readOnly representation if necessary
8
+ *
9
+ * @author Stefan Laesser
10
+ */
11
+ export class ReadOnlyFormFieldWrapperComponent {
12
+ constructor(changeDetector, elementRef) {
13
+ this.changeDetector = changeDetector;
14
+ this.elementRef = elementRef;
15
+ /**
16
+ * If set to "false", the contained mat-form-field is rendered in all it's glory.
17
+ * If set to "true", a readonly representation of the value is shown using the mat-form-fields label.
18
+ */
19
+ this.readonly = true;
20
+ this.textAlign = 'left';
21
+ this.formatNumber = false;
22
+ this.decimalPlaces = 2;
23
+ this.roundValue = false;
24
+ this.autofillDecimals = false;
25
+ this.unit = null;
26
+ this.unitPosition = 'left';
27
+ this.errorMessage = null;
28
+ /**
29
+ * If set to "false", a readonly input will be rendered.
30
+ * If set to "true", a readonly textarea will be rendered instead.
31
+ */
32
+ this.multiline = false;
33
+ /**
34
+ * If shrinkIfEmpty is set to "false", nothing changes
35
+ * If set to "true" and multiline is also "true", the textarea will
36
+ * shrink to one row, if value is empty/null/undefined.
37
+ * Otherwise, the defined rows-value will be used
38
+ */
39
+ this.shrinkIfEmpty = false;
40
+ this.hideIconInReadOnlyMode = false;
41
+ /**
42
+ * if cdkTextareaAutosize is active for textareas
43
+ */
44
+ this.multilineAutoSize = false;
45
+ this.suffixClickedEmitter = new EventEmitter();
46
+ this.prefixClickedEmitter = new EventEmitter();
47
+ this.toolTipForInputEnabled = false;
48
+ }
49
+ ngOnInit() {
50
+ this.doRendering();
51
+ }
52
+ ngAfterViewInit() {
53
+ this.setReadonlyFieldStyle();
54
+ this.doRendering();
55
+ }
56
+ ngAfterViewChecked() {
57
+ this.setReadonlyFieldStyle();
58
+ this.setTooltipForOverflownField();
59
+ }
60
+ ngOnChanges(_) {
61
+ this.doRendering();
62
+ }
63
+ getLabel() {
64
+ if (!this.label) {
65
+ this.extractLabel();
66
+ }
67
+ return this.label;
68
+ }
69
+ suffixClicked() {
70
+ this.suffixClickedEmitter.emit(null);
71
+ }
72
+ prefixClicked() {
73
+ this.prefixClickedEmitter.emit(null);
74
+ }
75
+ doRendering() {
76
+ if (!this.originalContent) {
77
+ return;
78
+ }
79
+ if (!this.readonly) {
80
+ this.correctWidth();
81
+ return;
82
+ }
83
+ this.changeDetector.detectChanges();
84
+ }
85
+ extractLabel() {
86
+ if (!this.originalContent || !this.originalContent.nativeElement) {
87
+ return null;
88
+ }
89
+ const labelElement = this.originalContent.nativeElement.querySelector('mat-label');
90
+ this.label = labelElement ? labelElement.innerHTML : 'mat-label is missing!';
91
+ }
92
+ correctWidth() {
93
+ const formField = this.originalContent.nativeElement.querySelector('mat-form-field');
94
+ if (formField) {
95
+ formField.setAttribute('style', 'width:100%');
96
+ }
97
+ }
98
+ setReadonlyFieldStyle() {
99
+ const input = this.readOnlyContentWrapper?.nativeElement?.querySelector('input');
100
+ if (input) {
101
+ const textOverFlowStyleValue = this.getTextOverFlowStyleValue();
102
+ if (textOverFlowStyleValue) {
103
+ input.setAttribute('style', 'text-overflow: ' + textOverFlowStyleValue);
104
+ }
105
+ }
106
+ }
107
+ // Ellipsis is enabled by default as text-overflow behaviour
108
+ getTextOverFlowStyleValue() {
109
+ // it works only if the style is added to the component directly. Should find a way for get it from the calculated
110
+ // style. Than it would be possible to define the text-overflow in css for the whole application
111
+ const textOverflow = this.elementRef?.nativeElement?.style.textOverflow;
112
+ if (!textOverflow) {
113
+ return 'ellipsis';
114
+ }
115
+ return textOverflow;
116
+ }
117
+ setTooltipForOverflownField() {
118
+ if (this.isEllipsisForTextOverflowEnabled()) {
119
+ const input = this.readOnlyContentWrapper?.nativeElement?.querySelector('input');
120
+ if (input) {
121
+ this.toolTipForInputEnabled = this.isTextOverflown(input);
122
+ if (this.toolTipForInputEnabled) {
123
+ this.toolTipText = this.calculateToolTipText();
124
+ }
125
+ this.changeDetector.detectChanges();
126
+ }
127
+ }
128
+ }
129
+ isEllipsisForTextOverflowEnabled() {
130
+ return this.getTextOverFlowStyleValue() === 'ellipsis';
131
+ }
132
+ isTextOverflown(input) {
133
+ if (input) {
134
+ return input.offsetWidth < input.scrollWidth;
135
+ }
136
+ return false;
137
+ }
138
+ calculateToolTipText() {
139
+ if (!this.unit) {
140
+ return this.value;
141
+ }
142
+ return this.unitPosition === 'left' ? this.unit + ' ' + this.value : this.value + ' ' + this.unit;
143
+ }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ReadOnlyFormFieldWrapperComponent, selector: "mad-readonly-form-field-wrapper", inputs: { readonly: "readonly", value: "value", textAlign: "textAlign", formatNumber: "formatNumber", decimalPlaces: "decimalPlaces", roundValue: ["roundDisplayValue", "roundValue"], autofillDecimals: "autofillDecimals", unit: "unit", unitPosition: "unitPosition", errorMessage: "errorMessage", id: "id", multiline: "multiline", rows: "rows", shrinkIfEmpty: "shrinkIfEmpty", hideIconInReadOnlyMode: "hideIconInReadOnlyMode", suffix: "suffix", prefix: "prefix", multilineAutoSize: "multilineAutoSize" }, outputs: { suffixClickedEmitter: "suffixClickedEmitter", prefixClickedEmitter: "prefixClickedEmitter" }, viewQueries: [{ propertyName: "originalContent", first: true, predicate: ["contentWrapper"], descendants: true }, { propertyName: "readOnlyContentWrapper", first: true, predicate: ["readOnlyContentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #contentWrapper [hidden]=\"readonly\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [multilineAutoSize]=\"multilineAutoSize\"\n (suffixClickedEmitter)=\"suffixClicked()\"\n (prefixClickedEmitter)=\"prefixClicked()\"\n matTooltip=\"{{ toolTipText }}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{ !toolTipForInputEnabled }}\"\n >\n </mad-readonly-form-field>\n </ng-container>\n</div>\n", styles: ["mat-form-field{width:inherit}div{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;word-break:break-all!important;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.ReadOnlyFormFieldComponent, selector: "mad-readonly-form-field", inputs: ["value", "label", "textAlign", "formatNumber", "decimalPlaces", "roundDisplayValue", "autofillDecimals", "unit", "unitPosition", "errorMessage", "multiline", "rows", "id", "shrinkIfEmpty", "suffix", "prefix", "multilineAutoSize"], outputs: ["suffixClickedEmitter", "prefixClickedEmitter"] }] }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldWrapperComponent, decorators: [{
148
+ type: Component,
149
+ args: [{ selector: 'mad-readonly-form-field-wrapper', template: "<div #contentWrapper [hidden]=\"readonly\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [multilineAutoSize]=\"multilineAutoSize\"\n (suffixClickedEmitter)=\"suffixClicked()\"\n (prefixClickedEmitter)=\"prefixClicked()\"\n matTooltip=\"{{ toolTipText }}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{ !toolTipForInputEnabled }}\"\n >\n </mad-readonly-form-field>\n </ng-container>\n</div>\n", styles: ["mat-form-field{width:inherit}div{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;word-break:break-all!important;white-space:normal!important}\n"] }]
150
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { originalContent: [{
151
+ type: ViewChild,
152
+ args: ['contentWrapper', { static: false }]
153
+ }], readOnlyContentWrapper: [{
154
+ type: ViewChild,
155
+ args: ['readOnlyContentWrapper', { static: false }]
156
+ }], readonly: [{
157
+ type: Input
158
+ }], value: [{
159
+ type: Input,
160
+ args: ['value']
161
+ }], textAlign: [{
162
+ type: Input,
163
+ args: ['textAlign']
164
+ }], formatNumber: [{
165
+ type: Input,
166
+ args: ['formatNumber']
167
+ }], decimalPlaces: [{
168
+ type: Input,
169
+ args: ['decimalPlaces']
170
+ }], roundValue: [{
171
+ type: Input,
172
+ args: ['roundDisplayValue']
173
+ }], autofillDecimals: [{
174
+ type: Input,
175
+ args: ['autofillDecimals']
176
+ }], unit: [{
177
+ type: Input,
178
+ args: ['unit']
179
+ }], unitPosition: [{
180
+ type: Input,
181
+ args: ['unitPosition']
182
+ }], errorMessage: [{
183
+ type: Input,
184
+ args: ['errorMessage']
185
+ }], id: [{
186
+ type: Input
187
+ }], multiline: [{
188
+ type: Input
189
+ }], rows: [{
190
+ type: Input
191
+ }], shrinkIfEmpty: [{
192
+ type: Input
193
+ }], hideIconInReadOnlyMode: [{
194
+ type: Input
195
+ }], suffix: [{
196
+ type: Input
197
+ }], prefix: [{
198
+ type: Input
199
+ }], multilineAutoSize: [{
200
+ type: Input
201
+ }], suffixClickedEmitter: [{
202
+ type: Output
203
+ }], prefixClickedEmitter: [{
204
+ type: Output
205
+ }] } });
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFdkI7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxpQ0FBaUM7SUFxRTVDLFlBQ1UsY0FBaUMsRUFDakMsVUFBc0I7UUFEdEIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqRWhDOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFRTCxjQUFTLEdBQXFCLE1BQU0sQ0FBQztRQUNsQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQXFCLE1BQU0sQ0FBQztRQUN4QyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFFMUQ7OztXQUdHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBQztRQU8zQjs7Ozs7V0FLRztRQUNNLGtCQUFh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Qzs4R0E1TFUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsazZCQ3pCOUMsbWxDQWtDQTs7MkZEVGEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGlDQUFpQzsrR0FNM0MsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHOUMsc0JBQXNCO3NCQURyQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPN0MsUUFBUTtzQkFBaEIsS0FBSztnQkFNVSxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBRU0sU0FBUztzQkFBNUIsS0FBSzt1QkFBQyxXQUFXO2dCQUNLLFlBQVk7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFDRyxhQUFhO3NCQUFwQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ00sVUFBVTtzQkFBckMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ0MsZ0JBQWdCO3NCQUExQyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDVixJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ1UsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNFLFlBQVk7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFDWixFQUFFO3NCQUFWLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogV3JhcHMgYSBtYXQtZm9ybS1maWVsZCB0byByZXBsYWNlIGl0IGJ5IGEgcmVhZE9ubHkgcmVwcmVzZW50YXRpb24gaWYgbmVjZXNzYXJ5XG4gKlxuICogQGF1dGhvciBTdGVmYW4gTGFlc3NlclxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRPbmx5Rm9ybUZpZWxkV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdDaGVja2VkIHtcbiAgQFZpZXdDaGlsZCgnY29udGVudFdyYXBwZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgb3JpZ2luYWxDb250ZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZWFkT25seUNvbnRlbnRXcmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHJlYWRPbmx5Q29udGVudFdyYXBwZXI6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byBcImZhbHNlXCIsIHRoZSBjb250YWluZWQgbWF0LWZvcm0tZmllbGQgaXMgcmVuZGVyZWQgaW4gYWxsIGl0J3MgZ2xvcnkuXG4gICAqIElmIHNldCB0byBcInRydWVcIiwgYSByZWFkb25seSByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUgaXMgc2hvd24gdXNpbmcgdGhlIG1hdC1mb3JtLWZpZWxkcyBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhpcyBpbnB1dCAqTVVTVCBNQVRDSCogdGhlIG1hdC1mb3JtLWZpZWxkIHZhbHVlIHRvIGVuc3VyZSBjb3JyZWN0IGRhdGFcbiAgICogYmluZGluZyBhbmQgZm9ybWF0dGluZyBvZiByZWFkT25seSByZXByZXNlbnRhdGlvbiFcbiAgICovXG4gIEBJbnB1dCgndmFsdWUnKSB2YWx1ZTogYW55O1xuXG4gIEBJbnB1dCgndGV4dEFsaWduJykgdGV4dEFsaWduOiAncmlnaHQnIHwgJ2xlZnQnID0gJ2xlZnQnO1xuICBASW5wdXQoJ2Zvcm1hdE51bWJlcicpIGZvcm1hdE51bWJlciA9IGZhbHNlO1xuICBASW5wdXQoJ2RlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdyb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdhdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ3VuaXQnKSB1bml0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCd1bml0UG9zaXRpb24nKSB1bml0UG9zaXRpb246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZXJyb3JNZXNzYWdlJykgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCB0byBcImZhbHNlXCIsIGEgcmVhZG9ubHkgaW5wdXQgd2lsbCBiZSByZW5kZXJlZC5cbiAgICogSWYgc2V0IHRvIFwidHJ1ZVwiLCBhIHJlYWRvbmx5IHRleHRhcmVhIHdpbGwgYmUgcmVuZGVyZWQgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIG11bHRpbGluZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByb3dzIGZvciB0aGUgcmVhZG9ubHkgdGV4dGFyZWEuXG4gICAqL1xuICBASW5wdXQoKSByb3dzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIHNocmlua0lmRW1wdHkgaXMgc2V0IHRvIFwiZmFsc2VcIiwgbm90aGluZyBjaGFuZ2VzXG4gICAqIElmIHNldCB0byBcInRydWVcIiBhbmQgbXVsdGlsaW5lIGlzIGFsc28gXCJ0cnVlXCIsIHRoZSB0ZXh0YXJlYSB3aWxsXG4gICAqIHNocmluayB0byBvbmUgcm93LCBpZiB2YWx1ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZC5cbiAgICogT3RoZXJ3aXNlLCB0aGUgZGVmaW5lZCByb3dzLXZhbHVlIHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgc2hyaW5rSWZFbXB0eSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlSWNvbkluUmVhZE9ubHlNb2RlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBzdWZmaXggaW9jb25cbiAgICovXG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nO1xuICAvKipcbiAgICogcHJlZml4IGlvY29uXG4gICAqL1xuICBASW5wdXQoKSBwcmVmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIGlmIGNka1RleHRhcmVhQXV0b3NpemUgaXMgYWN0aXZlIGZvciB0ZXh0YXJlYXNcbiAgICovXG4gIEBJbnB1dCgpIG11bHRpbGluZUF1dG9TaXplID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzdWZmaXhDbGlja2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeENsaWNrZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHRha2VuIGZyb20gdGhlIGNvbnRhaW5lZCA8bWF0LWxhYmVsPlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICB0b29sVGlwRm9ySW5wdXRFbmFibGVkID0gZmFsc2U7XG4gIHRvb2xUaXBUZXh0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kb1JlbmRlcmluZygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UmVhZG9ubHlGaWVsZFN0eWxlKCk7XG4gICAgdGhpcy5kb1JlbmRlcmluZygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UmVhZG9ubHlGaWVsZFN0eWxlKCk7XG4gICAgdGhpcy5zZXRUb29sdGlwRm9yT3ZlcmZsb3duRmllbGQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmRvUmVuZGVyaW5nKCk7XG4gIH1cblxuICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgdGhpcy5leHRyYWN0TGFiZWwoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBzdWZmaXhDbGlja2VkKCkge1xuICAgIHRoaXMuc3VmZml4Q2xpY2tlZEVtaXR0ZXIuZW1pdChudWxsKTtcbiAgfVxuXG4gIHByZWZpeENsaWNrZWQoKSB7XG4gICAgdGhpcy5wcmVmaXhDbGlja2VkRW1pdHRlci5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBkb1JlbmRlcmluZygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5jb3JyZWN0V2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdExhYmVsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcmlnaW5hbENvbnRlbnQgfHwgIXRoaXMub3JpZ2luYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSB0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ21hdC1sYWJlbCcpO1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbEVsZW1lbnQgPyBsYWJlbEVsZW1lbnQuaW5uZXJIVE1MIDogJ21hdC1sYWJlbCBpcyBtaXNzaW5nISc7XG4gIH1cblxuICBwcml2YXRlIGNvcnJlY3RXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGQgPSB0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ21hdC1mb3JtLWZpZWxkJyk7XG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgZm9ybUZpZWxkLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnd2lkdGg6MTAwJScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVhZG9ubHlGaWVsZFN0eWxlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5yZWFkT25seUNvbnRlbnRXcmFwcGVyPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBjb25zdCB0ZXh0T3ZlckZsb3dTdHlsZVZhbHVlID0gdGhpcy5nZXRUZXh0T3ZlckZsb3dTdHlsZVZhbHVlKCk7XG4gICAgICBpZiAodGV4dE92ZXJGbG93U3R5bGVWYWx1ZSkge1xuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3RleHQtb3ZlcmZsb3c6ICcgKyB0ZXh0T3ZlckZsb3dTdHlsZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBFbGxpcHNpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYXMgdGV4dC1vdmVyZmxvdyBiZWhhdmlvdXJcbiAgcHJpdmF0ZSBnZXRUZXh0T3ZlckZsb3dTdHlsZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgLy8gaXQgd29ya3Mgb25seSBpZiB0aGUgc3R5bGUgaXMgYWRkZWQgdG8gdGhlIGNvbXBvbmVudCBkaXJlY3RseS4gU2hvdWxkIGZpbmQgYSB3YXkgZm9yIGdldCBpdCBmcm9tIHRoZSBjYWxjdWxhdGVkXG4gICAgLy8gc3R5bGUuIFRoYW4gaXQgd291bGQgYmUgcG9zc2libGUgdG8gZGVmaW5lIHRoZSB0ZXh0LW92ZXJmbG93IGluIGNzcyBmb3IgdGhlIHdob2xlIGFwcGxpY2F0aW9uXG4gICAgY29uc3QgdGV4dE92ZXJmbG93ID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5zdHlsZS50ZXh0T3ZlcmZsb3c7XG4gICAgaWYgKCF0ZXh0T3ZlcmZsb3cpIHtcbiAgICAgIHJldHVybiAnZWxsaXBzaXMnO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXh0T3ZlcmZsb3c7XG4gIH1cblxuICBwcml2YXRlIHNldFRvb2x0aXBGb3JPdmVyZmxvd25GaWVsZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VsbGlwc2lzRm9yVGV4dE92ZXJmbG93RW5hYmxlZCgpKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMucmVhZE9ubHlDb250ZW50V3JhcHBlcj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcblxuICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgIHRoaXMudG9vbFRpcEZvcklucHV0RW5hYmxlZCA9IHRoaXMuaXNUZXh0T3ZlcmZsb3duKGlucHV0KTtcbiAgICAgICAgaWYgKHRoaXMudG9vbFRpcEZvcklucHV0RW5hYmxlZCkge1xuICAgICAgICAgIHRoaXMudG9vbFRpcFRleHQgPSB0aGlzLmNhbGN1bGF0ZVRvb2xUaXBUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0VsbGlwc2lzRm9yVGV4dE92ZXJmbG93RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXh0T3ZlckZsb3dTdHlsZVZhbHVlKCkgPT09ICdlbGxpcHNpcyc7XG4gIH1cblxuICBwcml2YXRlIGlzVGV4dE92ZXJmbG93bihpbnB1dDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICByZXR1cm4gaW5wdXQub2Zmc2V0V2lkdGggPCBpbnB1dC5zY3JvbGxXaWR0aDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb29sVGlwVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy51bml0KSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0JyA/IHRoaXMudW5pdCArICcgJyArIHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlICsgJyAnICsgdGhpcy51bml0O1xuICB9XG59XG4iLCI8ZGl2ICNjb250ZW50V3JhcHBlciBbaGlkZGVuXT1cInJlYWRvbmx5XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48ZGl2ICNyZWFkT25seUNvbnRlbnRXcmFwcGVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFyZWFkb25seVwiPlxuICAgIDxtYWQtcmVhZG9ubHktZm9ybS1maWVsZFxuICAgICAgW2xhYmVsXT1cImdldExhYmVsKClcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFt0ZXh0QWxpZ25dPVwidGV4dEFsaWduXCJcbiAgICAgIFtmb3JtYXROdW1iZXJdPVwiZm9ybWF0TnVtYmVyXCJcbiAgICAgIFtkZWNpbWFsUGxhY2VzXT1cImRlY2ltYWxQbGFjZXNcIlxuICAgICAgW3JvdW5kRGlzcGxheVZhbHVlXT1cInJvdW5kVmFsdWVcIlxuICAgICAgW2F1dG9maWxsRGVjaW1hbHNdPVwiYXV0b2ZpbGxEZWNpbWFsc1wiXG4gICAgICBbdW5pdF09XCJ1bml0XCJcbiAgICAgIFt1bml0UG9zaXRpb25dPVwidW5pdFBvc2l0aW9uXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCJcbiAgICAgIFttdWx0aWxpbmVdPVwibXVsdGlsaW5lXCJcbiAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgW3Nocmlua0lmRW1wdHldPVwic2hyaW5rSWZFbXB0eVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3N1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxuICAgICAgW211bHRpbGluZUF1dG9TaXplXT1cIm11bHRpbGluZUF1dG9TaXplXCJcbiAgICAgIChzdWZmaXhDbGlja2VkRW1pdHRlcik9XCJzdWZmaXhDbGlja2VkKClcIlxuICAgICAgKHByZWZpeENsaWNrZWRFbWl0dGVyKT1cInByZWZpeENsaWNrZWQoKVwiXG4gICAgICBtYXRUb29sdGlwPVwie3sgdG9vbFRpcFRleHQgfX1cIlxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIlxuICAgICAgbWF0VG9vbHRpcERpc2FibGVkPVwie3sgIXRvb2xUaXBGb3JJbnB1dEVuYWJsZWQgfX1cIlxuICAgID5cbiAgICA8L21hZC1yZWFkb25seS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { ReadOnlyFormFieldWrapperComponent } from './readonly-form-field-wrapper/readonly-form-field-wrapper.component';
5
+ import { ReadOnlyFormFieldComponent } from './readonly-form-field/readonly-form-field.component';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { FormsModule } from '@angular/forms';
9
+ import { MatTooltipModule } from '@angular/material/tooltip';
10
+ import { MatIconModule } from '@angular/material/icon';
11
+ import * as i0 from "@angular/core";
12
+ export class ReadOnlyFormFieldModule {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent], imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule, MatIconModule], exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule, MatIconModule] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ReadOnlyFormFieldModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
21
+ imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule, MatIconModule],
22
+ exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBT3ZELE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLGlCQUpuQiwwQkFBMEIsRUFBRSxpQ0FBaUMsYUFDbEUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsYUFDNUcsMEJBQTBCLEVBQUUsaUNBQWlDOytHQUU1RCx1QkFBdUIsWUFIeEIsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWE7OzJGQUczRyx1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7b0JBQ3ZILE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLGlDQUFpQyxDQUFDO2lCQUN6RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJlYWRPbmx5Rm9ybUZpZWxkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3JlYWRvbmx5LWZvcm0tZmllbGQvcmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCwgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZE9ubHlGb3JtRmllbGRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ /**
3
+ * Animations used by the MAD stepper.
4
+ */
5
+ export const madStepperAnimations = {
6
+ verticalStepTransition: trigger('stepTransition', [
7
+ state('previous', style({ height: '0px', visibility: 'hidden' })),
8
+ state('next', style({ height: '0px', visibility: 'hidden' })),
9
+ state('current', style({ height: '*', visibility: 'visible' })),
10
+ transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
11
+ ]),
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFkLXN0ZXBwZXItYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9tYWQtc3RlcHBlci1hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0scUJBQXFCLENBQUM7QUFFM0c7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FFN0I7SUFDRixzQkFBc0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDaEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RCxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUM3RSxDQUFDO0NBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbi8qKlxuICogQW5pbWF0aW9ucyB1c2VkIGJ5IHRoZSBNQUQgc3RlcHBlci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hZFN0ZXBwZXJBbmltYXRpb25zOiB7XG4gIHJlYWRvbmx5IHZlcnRpY2FsU3RlcFRyYW5zaXRpb246IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gIHZlcnRpY2FsU3RlcFRyYW5zaXRpb246IHRyaWdnZXIoJ3N0ZXBUcmFuc2l0aW9uJywgW1xuICAgIHN0YXRlKCdwcmV2aW91cycsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxuICAgIHN0YXRlKCduZXh0Jywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgc3RhdGUoJ2N1cnJlbnQnLCBzdHlsZSh7IGhlaWdodDogJyonLCB2aXNpYmlsaXR5OiAndmlzaWJsZScgfSkpLFxuICAgIHRyYW5zaXRpb24oJyogPD0+IGN1cnJlbnQnLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknKSksXG4gIF0pLFxufTtcbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { CdkStepHeader, STEP_STATE } from '@angular/cdk/stepper';
2
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/a11y";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/icon";
7
+ export class StepHeaderComponent extends CdkStepHeader {
8
+ constructor(_focusMonitor, _elementRef) {
9
+ super(_elementRef);
10
+ this._focusMonitor = _focusMonitor;
11
+ }
12
+ ngAfterViewInit() {
13
+ this._focusMonitor.monitor(this._elementRef, true);
14
+ }
15
+ ngOnDestroy() {
16
+ this._focusMonitor.stopMonitoring(this._elementRef);
17
+ }
18
+ /** Focuses the step header. */
19
+ focus(origin, options) {
20
+ if (origin) {
21
+ this._focusMonitor.focusVia(this._elementRef, origin, options);
22
+ }
23
+ else {
24
+ this._elementRef.nativeElement.focus(options);
25
+ }
26
+ }
27
+ getCssForState() {
28
+ if (this.state === STEP_STATE.NUMBER && !this.completed && !this.hasError) {
29
+ return 'step-state-neutral'; //initiale state is 'number'
30
+ }
31
+ else if (this.completed) {
32
+ return 'step-state-complete';
33
+ }
34
+ else if (this.hasError) {
35
+ return 'step-state-error';
36
+ }
37
+ }
38
+ getIcon() {
39
+ if (this.completed) {
40
+ return 'check_circle_outline';
41
+ }
42
+ else if (this.hasError) {
43
+ return 'error_outline';
44
+ }
45
+ return '';
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepHeaderComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepHeaderComponent, selector: "mad-step-header", inputs: { color: "color", index: "index", label: "label", state: "state", errorMessage: "errorMessage", selected: "selected", active: "active", optional: "optional", hasError: "hasError", completed: "completed", closed: "closed" }, host: { attributes: { "role": "tab" }, classAttribute: "mad-step-header" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"header\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px;display:flex;flex-direction:row;gap:1em}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepHeaderComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'mad-step-header', inputs: ['color'], host: {
53
+ class: 'mad-step-header',
54
+ role: 'tab',
55
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"header\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px;display:flex;flex-direction:row;gap:1em}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"] }]
56
+ }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { index: [{
57
+ type: Input
58
+ }], label: [{
59
+ type: Input
60
+ }], state: [{
61
+ type: Input
62
+ }], errorMessage: [{
63
+ type: Input
64
+ }], selected: [{
65
+ type: Input
66
+ }], active: [{
67
+ type: Input
68
+ }], optional: [{
69
+ type: Input
70
+ }], hasError: [{
71
+ type: Input
72
+ }], completed: [{
73
+ type: Input
74
+ }], closed: [{
75
+ type: Input
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWVuSSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXVCcEQsWUFDVSxhQUEyQixFQUNuQyxXQUFvQztRQUVwQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUlyQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixLQUFLLENBQUMsTUFBb0IsRUFBRSxPQUFzQjtRQUNoRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekUsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLDRCQUE0QjtTQUMxRDthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QixPQUFPLHFCQUFxQixDQUFDO1NBQzlCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sZUFBZSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQWhFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrWUNoQmhDLCt4QkFtQkE7OzJGREhhLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxpQkFBaUIsVUFHbkIsQ0FBQyxPQUFPLENBQUMsUUFDWDt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixJQUFJLEVBQUUsS0FBSztxQkFDWixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzBHQUkvQyxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1N0ZXBIZWFkZXIsIFNURVBfU1RBVEUsIFN0ZXBTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGVwLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnY29sb3InXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbWFkLXN0ZXAtaGVhZGVyJyxcbiAgICByb2xlOiAndGFiJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwSGVhZGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHN0YXRlOiBTdGVwU3RhdGU7XG5cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGhhc0Vycm9yOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNvbXBsZXRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjbG9zZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgc3RlcCBoZWFkZXIuICovXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBnZXRDc3NGb3JTdGF0ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSBTVEVQX1NUQVRFLk5VTUJFUiAmJiAhdGhpcy5jb21wbGV0ZWQgJiYgIXRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1uZXV0cmFsJzsgLy9pbml0aWFsZSBzdGF0ZSBpcyAnbnVtYmVyJ1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtZXJyb3InO1xuICAgIH1cbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlX291dGxpbmUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdlcnJvcl9vdXRsaW5lJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaGVhZGVyXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwidGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAnI2Q4ZTJlOScgOiAnI2ZmZmZmZidcIlxuICBbbmdDbGFzc109XCJ0aGlzLmhhc0Vycm9yID8gJ2Vycm9yLWJvcmRlcicgOiAnY2hlY2stYm9yZGVyJ1wiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwidGhpcy5nZXRDc3NGb3JTdGF0ZSgpXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAge3sgdGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5jbG9zZWQgPyAna2V5Ym9hcmRfYXJyb3dfZG93bicgOiAna2V5Ym9hcmRfYXJyb3dfcmlnaHQnIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ0aGlzLmNvbXBsZXRlZCB8fCB0aGlzLmhhc0Vycm9yXCIgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj5cbiAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwidGhpcy5jb21wbGV0ZWQgPyAnZ3JlZW4tY2hlY2snIDogJ3JlZC1lcnJvcidcIj5cbiAgICAgIHt7IGdldEljb24oKSB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8c3BhbiAqbmdJZj1cIiF0aGlzLmhhc0Vycm9yICYmICF0aGlzLmNvbXBsZXRlZFwiIGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+e3sgdGhpcy5pbmRleCArIDEgKyAnLicgfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbGFiZWxcIj57eyB0aGlzLmxhYmVsIH19PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,159 @@
1
+ import { CdkStep, CdkStepper, STEP_STATE } from '@angular/cdk/stepper';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Inject, Input, Optional, Output, QueryList, ViewChildren, ViewEncapsulation, } from '@angular/core';
3
+ import { Subject, Subscription } from 'rxjs';
4
+ import { distinctUntilChanged, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';
5
+ import { StepHeaderComponent } from './step-header/step-header.component';
6
+ import { madStepperAnimations } from './mad-stepper-animation';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "../button/primary-button/primary-button.component";
10
+ import * as i3 from "@angular/cdk/bidi";
11
+ import * as i4 from "./step-header/step-header.component";
12
+ export class StepComponent extends CdkStep {
13
+ constructor(stepper, _viewContainerRef) {
14
+ super(stepper);
15
+ this.stepper = stepper;
16
+ this._viewContainerRef = _viewContainerRef;
17
+ /** Action event for the next button. If not set the StepComponent will handle the step navigation */
18
+ this.onNext = new EventEmitter();
19
+ /** Action event for the done button. If not set the StepComponent will handle the step navigation */
20
+ this.onDone = new EventEmitter();
21
+ /*** Action event when the header is clicked. If not set the StepComponent will handle the step navigation*/
22
+ this.onHeaderClick = new EventEmitter();
23
+ this.stepClosed = false;
24
+ this._isSelected = Subscription.EMPTY;
25
+ }
26
+ ngAfterContentInit() {
27
+ this._isSelected = this._stepper.steps.changes
28
+ .pipe(switchMap(() => this._stepper.selectionChange.pipe(map((event) => event.selectedStep === this), tap(() => (this.stepClosed = false)), startWith(this._stepper.selected === this))))
29
+ .subscribe();
30
+ }
31
+ ngOnDestroy() {
32
+ this._isSelected.unsubscribe();
33
+ }
34
+ next(markFormAsTouched = true) {
35
+ this.stepValidation(markFormAsTouched);
36
+ if (this.onNext.observers.length <= 0) {
37
+ this.stepper.next();
38
+ }
39
+ this.onNext.emit();
40
+ }
41
+ selectAndMarkAsTouched(index) {
42
+ //Mark current selected step as touched before selecting to display errors in the from
43
+ this._stepper.selected?.stepControl?.markAllAsTouched();
44
+ this.stepClosed = false;
45
+ if (this.onHeaderClick.observers.length <= 0) {
46
+ this.select();
47
+ }
48
+ this.onHeaderClick.emit(index);
49
+ }
50
+ completeLast() {
51
+ this.stepValidation(true);
52
+ this.stepClosed = true;
53
+ if (this.onDone.observers.length <= 0) {
54
+ this.stepper.next();
55
+ }
56
+ this.onDone.emit();
57
+ }
58
+ resetValidations() {
59
+ this.hasError = false;
60
+ this.completed = true;
61
+ this.state = STEP_STATE.DONE;
62
+ }
63
+ stepValidation(markFormAsTouched) {
64
+ if (markFormAsTouched) {
65
+ this.stepControl?.markAllAsTouched();
66
+ }
67
+ if (this.stepControl?.valid) {
68
+ this.hasError = false;
69
+ this.completed = true;
70
+ this.state = STEP_STATE.DONE;
71
+ }
72
+ else {
73
+ this.completed = false;
74
+ this.hasError = true;
75
+ this.state = STEP_STATE.ERROR;
76
+ }
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepComponent, deps: [{ token: forwardRef(() => StepperComponent) }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepComponent, selector: "mad-step", outputs: { onNext: "onNext", onDone: "onDone", onHeaderClick: "onHeaderClick" }, providers: [{ provide: CdkStep, useExisting: StepComponent }], usesInheritance: true, ngImport: i0, template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <mad-primary-button (click)=\"next()\">{{ nextBtnLbl }}</mad-primary-button>\n </div>\n <div *ngIf=\"last\">\n <mad-primary-button (click)=\"completeLast()\">{{ doneBtnLbl }}</mad-primary-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;display:flex;flex-direction:column}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'mad-step', providers: [{ provide: CdkStep, useExisting: StepComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <mad-primary-button (click)=\"next()\">{{ nextBtnLbl }}</mad-primary-button>\n </div>\n <div *ngIf=\"last\">\n <mad-primary-button (click)=\"completeLast()\">{{ doneBtnLbl }}</mad-primary-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;display:flex;flex-direction:column}.step-content,.step-buttons{padding:2em}\n"] }]
84
+ }], ctorParameters: () => [{ type: StepperComponent, decorators: [{
85
+ type: Inject,
86
+ args: [forwardRef(() => StepperComponent)]
87
+ }] }, { type: i0.ViewContainerRef }], propDecorators: { onNext: [{
88
+ type: Output
89
+ }], onDone: [{
90
+ type: Output
91
+ }], onHeaderClick: [{
92
+ type: Output
93
+ }] } });
94
+ export class StepperComponent extends CdkStepper {
95
+ constructor(dir, changeDetectorRef, elementRef) {
96
+ super(dir, changeDetectorRef, elementRef);
97
+ /** Event emitted when the current step is done transitioning in. */
98
+ this.animationDone = new EventEmitter();
99
+ /** Steps that belong to the current stepper, excluding ones from nested steppers. */
100
+ this.steps = new QueryList();
101
+ this._animationDone = new Subject();
102
+ this.orientation = 'vertical';
103
+ }
104
+ ngOnInit() {
105
+ // Only linear stepper implementation is supported
106
+ super.linear = true;
107
+ }
108
+ ngAfterContentInit() {
109
+ super.ngAfterContentInit();
110
+ this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {
111
+ this._stateChanged();
112
+ });
113
+ this._animationDone
114
+ .pipe(distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), takeUntil(this._destroyed))
115
+ .subscribe((event) => {
116
+ if (event.toState === 'current') {
117
+ this.animationDone.emit();
118
+ }
119
+ });
120
+ }
121
+ /**
122
+ * Method patched to enable the closing of the last step.
123
+ */
124
+ _getAnimationDirection(index) {
125
+ const closeLastStep = this.selectedIndex === this.steps.length - 1 && this._steps.last?.completed && this._steps.last?.stepClosed;
126
+ if (closeLastStep) {
127
+ return 'next';
128
+ }
129
+ return super._getAnimationDirection(index);
130
+ }
131
+ _stepIsNavigable(index, step) {
132
+ return step.completed || this.selectedIndex === index || !this.linear;
133
+ }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperComponent, deps: [{ token: i3.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: StepperComponent, selector: "mad-stepper", inputs: { nextButtonLabel: "nextButtonLabel", doneButtonLabel: "doneButtonLabel" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist" }, properties: { "class.stepper-vertical": "true", "attr.aria-orientation": "\"vertical\"" } }, providers: [{ provide: CdkStepper, useExisting: StepperComponent }], queries: [{ propertyName: "_steps", predicate: StepComponent, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: StepHeaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Vertical stepper -->\n<ng-container>\n <div *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container [ngTemplateOutlet]=\"stepTemplate\" [ngTemplateOutletContext]=\"{ step: step, i: i }\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div\n class=\"vertical-stepper-content\"\n role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\"\n >\n <div class=\"vertical-content\">\n <ng-container\n [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{\n step: step,\n i: i,\n last: isLast,\n first: isFirst,\n nextBtnLbl: this.nextButtonLabel,\n doneBtnLbl: this.doneButtonLabel\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"\n ></mad-step-header>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;display:flex;flex-direction:column}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.StepHeaderComponent, selector: "mad-step-header", inputs: ["color", "index", "label", "state", "errorMessage", "selected", "active", "optional", "hasError", "completed", "closed"] }], animations: [madStepperAnimations.verticalStepTransition], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'mad-stepper', host: {
140
+ '[class.stepper-vertical]': 'true',
141
+ '[attr.aria-orientation]': '"vertical"',
142
+ role: 'tablist',
143
+ }, animations: [madStepperAnimations.verticalStepTransition], providers: [{ provide: CdkStepper, useExisting: StepperComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Vertical stepper -->\n<ng-container>\n <div *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container [ngTemplateOutlet]=\"stepTemplate\" [ngTemplateOutletContext]=\"{ step: step, i: i }\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div\n class=\"vertical-stepper-content\"\n role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\"\n >\n <div class=\"vertical-content\">\n <ng-container\n [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{\n step: step,\n i: i,\n last: isLast,\n first: isFirst,\n nextBtnLbl: this.nextButtonLabel,\n doneBtnLbl: this.doneButtonLabel\n }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"\n ></mad-step-header>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey;display:flex;flex-direction:column}.step-content,.step-buttons{padding:2em}\n"] }]
144
+ }], ctorParameters: () => [{ type: i3.Directionality, decorators: [{
145
+ type: Optional
146
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { animationDone: [{
147
+ type: Output
148
+ }], nextButtonLabel: [{
149
+ type: Input
150
+ }], doneButtonLabel: [{
151
+ type: Input
152
+ }], _stepHeader: [{
153
+ type: ViewChildren,
154
+ args: [StepHeaderComponent]
155
+ }], _steps: [{
156
+ type: ContentChildren,
157
+ args: [StepComponent, { descendants: true }]
158
+ }] } });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBVS9ELE1BQU0sT0FBTyxhQUFjLFNBQVEsT0FBTztJQWlCeEMsWUFDc0QsT0FBeUIsRUFDckUsaUJBQW1DO1FBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhxQyxZQUFPLEdB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aSc7XG5pbXBvcnQgeyBDZGtTdGVwLCBDZGtTdGVwcGVyLCBTVEVQX1NUQVRFLCBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RlcEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc3RlcC1oZWFkZXIvc3RlcC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IG1hZFN0ZXBwZXJBbmltYXRpb25zIH0gZnJvbSAnLi9tYWQtc3RlcHBlci1hbmltYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka1N0ZXAsIHVzZUV4aXN0aW5nOiBTdGVwQ29tcG9uZW50IH1dLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCBleHRlbmRzIENka1N0ZXAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQWN0aW9uIGV2ZW50IGZvciB0aGUgbmV4dCBidXR0b24uIElmIG5vdCBzZXQgdGhlIFN0ZXBDb21wb25lbnQgd2lsbCBoYW5kbGUgdGhlIHN0ZXAgbmF2aWdhdGlvbiAqL1xuICBAT3V0cHV0KClcbiAgb25OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqIEFjdGlvbiBldmVudCBmb3IgdGhlIGRvbmUgYnV0dG9uLiBJZiBub3Qgc2V0IHRoZSBTdGVwQ29tcG9uZW50IHdpbGwgaGFuZGxlIHRoZSBzdGVwIG5hdmlnYXRpb24gICovXG4gIEBPdXRwdXQoKVxuICBvbkRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKioqIEFjdGlvbiBldmVudCB3aGVuIHRoZSBoZWFkZXIgaXMgY2xpY2tlZC4gSWYgbm90IHNldCB0aGUgU3RlcENvbXBvbmVudCB3aWxsIGhhbmRsZSB0aGUgc3RlcCBuYXZpZ2F0aW9uKi9cbiAgQE91dHB1dCgpXG4gIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBzdGVwQ2xvc2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaXNTZWxlY3RlZCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlckNvbXBvbmVudCkpIHByaXZhdGUgc3RlcHBlcjogU3RlcHBlckNvbXBvbmVudCxcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHtcbiAgICBzdXBlcihzdGVwcGVyKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9pc1NlbGVjdGVkID0gdGhpcy5fc3RlcHBlci5zdGVwcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fc3RlcHBlci5zZWxlY3Rpb25DaGFuZ2UucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IGV2ZW50LnNlbGVjdGVkU3RlcCA9PT0gdGhpcyksXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuc3RlcENsb3NlZCA9IGZhbHNlKSksXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fc3RlcHBlci5zZWxlY3RlZCA9PT0gdGhpcyksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2lzU2VsZWN0ZWQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5leHQobWFya0Zvcm1Bc1RvdWNoZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwVmFsaWRhdGlvbihtYXJrRm9ybUFzVG91Y2hlZCk7XG5cbiAgICBpZiAodGhpcy5vbk5leHQub2JzZXJ2ZXJzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgIH1cbiAgICB0aGlzLm9uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBzZWxlY3RBbmRNYXJrQXNUb3VjaGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvL01hcmsgY3VycmVudCBzZWxlY3RlZCBzdGVwIGFzIHRvdWNoZWQgYmVmb3JlIHNlbGVjdGluZyB0byBkaXNwbGF5IGVycm9ycyBpbiB0aGUgZnJvbVxuICAgIHRoaXMuX3N0ZXBwZXIuc2VsZWN0ZWQ/LnN0ZXBDb250cm9sPy5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5zdGVwQ2xvc2VkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMub25IZWFkZXJDbGljay5vYnNlcnZlcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuICAgIHRoaXMub25IZWFkZXJDbGljay5lbWl0KGluZGV4KTtcbiAgfVxuXG4gIGNvbXBsZXRlTGFzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBWYWxpZGF0aW9uKHRydWUpO1xuICAgIHRoaXMuc3RlcENsb3NlZCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5vbkRvbmUub2JzZXJ2ZXJzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgIH1cblxuICAgIHRoaXMub25Eb25lLmVtaXQoKTtcbiAgfVxuXG4gIHJlc2V0VmFsaWRhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuY29tcGxldGVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXRlID0gU1RFUF9TVEFURS5ET05FO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGVwVmFsaWRhdGlvbihtYXJrRm9ybUFzVG91Y2hlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChtYXJrRm9ybUFzVG91Y2hlZCkge1xuICAgICAgdGhpcy5zdGVwQ29udHJvbD8ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwQ29udHJvbD8udmFsaWQpIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGUgPSBTVEVQX1NUQVRFLkRPTkU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tcGxldGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGUgPSBTVEVQX1NUQVRFLkVSUk9SO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5zdGVwcGVyLXZlcnRpY2FsXSc6ICd0cnVlJyxcbiAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnXCJ2ZXJ0aWNhbFwiJyxcbiAgICByb2xlOiAndGFibGlzdCcsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFttYWRTdGVwcGVyQW5pbWF0aW9ucy52ZXJ0aWNhbFN0ZXBUcmFuc2l0aW9uXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50IH1dLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbXBvbmVudCBleHRlbmRzIENka1N0ZXBwZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjdXJyZW50IHN0ZXAgaXMgZG9uZSB0cmFuc2l0aW9uaW5nIGluLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgYW5pbWF0aW9uRG9uZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIG5leHRCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGRvbmVCdXR0b25MYWJlbDogc3RyaW5nO1xuICAvKiogU3RlcCBoZWFkZXJzIG9mIGFsbCBzdGVwcyBpbnNpZGUgdGhlIHN0ZXBwZXIgKi9cbiAgQFZpZXdDaGlsZHJlbihTdGVwSGVhZGVyQ29tcG9uZW50KSBfc3RlcEhlYWRlcjogUXVlcnlMaXN0PFN0ZXBIZWFkZXJDb21wb25lbnQ+O1xuXG4gIC8qKiBTdGVwcyBpbnNpZGUgdGhlIFN0ZXBwZXIgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihTdGVwQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIF9zdGVwczogUXVlcnlMaXN0PFN0ZXBDb21wb25lbnQ+O1xuXG4gIC8qKiBTdGVwcyB0aGF0IGJlbG9uZyB0byB0aGUgY3VycmVudCBzdGVwcGVyLCBleGNsdWRpbmcgb25lcyBmcm9tIG5lc3RlZCBzdGVwcGVycy4gKi9cbiAgc3RlcHM6IFF1ZXJ5TGlzdDxTdGVwQ29tcG9uZW50PiA9IG5ldyBRdWVyeUxpc3Q8U3RlcENvbXBvbmVudD4oKTtcblxuICByZWFkb25seSBfYW5pbWF0aW9uRG9uZSA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihkaXIsIGNoYW5nZURldGVjdG9yUmVmLCBlbGVtZW50UmVmKTtcbiAgICB0aGlzLm9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIE9ubHkgbGluZWFyIHN0ZXBwZXIgaW1wbGVtZW50YXRpb24gaXMgc3VwcG9ydGVkXG4gICAgc3VwZXIubGluZWFyID0gdHJ1ZTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblxuICAgIHRoaXMuc3RlcHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hbmltYXRpb25Eb25lXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHgsIHkpID0+IHguZnJvbVN0YXRlID09PSB5LmZyb21TdGF0ZSAmJiB4LnRvU3RhdGUgPT09IHkudG9TdGF0ZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKChldmVudC50b1N0YXRlIGFzIFN0ZXBDb250ZW50UG9zaXRpb25TdGF0ZSkgPT09ICdjdXJyZW50Jykge1xuICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRG9uZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBwYXRjaGVkIHRvIGVuYWJsZSB0aGUgY2xvc2luZyBvZiB0aGUgbGFzdCBzdGVwLlxuICAgKi9cbiAgX2dldEFuaW1hdGlvbkRpcmVjdGlvbihpbmRleDogbnVtYmVyKTogU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlIHtcbiAgICBjb25zdCBjbG9zZUxhc3RTdGVwID0gdGhpcy5zZWxlY3RlZEluZGV4ID09PSB0aGlzLnN0ZXBzLmxlbmd0aCAtIDEgJiYgdGhpcy5fc3RlcHMubGFzdD8uY29tcGxldGVkICYmIHRoaXMuX3N0ZXBzLmxhc3Q/LnN0ZXBDbG9zZWQ7XG4gICAgaWYgKGNsb3NlTGFzdFN0ZXApIHtcbiAgICAgIHJldHVybiAnbmV4dCc7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5fZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGluZGV4KTtcbiAgfVxuXG4gIF9zdGVwSXNOYXZpZ2FibGUoaW5kZXg6IG51bWJlciwgc3RlcDogU3RlcENvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGVwLmNvbXBsZXRlZCB8fCB0aGlzLnNlbGVjdGVkSW5kZXggPT09IGluZGV4IHx8ICF0aGlzLmxpbmVhcjtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGxldC1sYXN0PVwibGFzdFwiIGxldC1uZXh0QnRuTGJsPVwibmV4dEJ0bkxibFwiIGxldC1kb25lQnRuTGJsPVwiZG9uZUJ0bkxibFwiPlxuICA8ZGl2IGNsYXNzPVwic3RlcC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1jb250ZW50XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInN0ZXAtYnV0dG9uc1wiPlxuICAgICAgPGRpdiAqbmdJZj1cIiFsYXN0XCI+XG4gICAgICAgIDxtYWQtcHJpbWFyeS1idXR0b24gKGNsaWNrKT1cIm5leHQoKVwiPnt7IG5leHRCdG5MYmwgfX08L21hZC1wcmltYXJ5LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImxhc3RcIj5cbiAgICAgICAgPG1hZC1wcmltYXJ5LWJ1dHRvbiAoY2xpY2spPVwiY29tcGxldGVMYXN0KClcIj57eyBkb25lQnRuTGJsIH19PC9tYWQtcHJpbWFyeS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIiwiPCEtLSBWZXJ0aWNhbCBzdGVwcGVyIC0tPlxuPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDsgbGV0IGlzTGFzdCA9IGxhc3Q7IGxldCBpc0ZpcnN0ID0gZmlyc3RcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXBUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHN0ZXA6IHN0ZXAsIGk6IGkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1jb250ZW50LWNvbnRhaW5lclwiIFtjbGFzcy5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lXT1cIiFpc0xhc3RcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnRcIlxuICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICBbQHN0ZXBUcmFuc2l0aW9uXT1cIl9nZXRBbmltYXRpb25EaXJlY3Rpb24oaSlcIlxuICAgICAgICAoQHN0ZXBUcmFuc2l0aW9uLmRvbmUpPVwiX2FuaW1hdGlvbkRvbmUubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgW2lkXT1cIl9nZXRTdGVwQ29udGVudElkKGkpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1jb250ZW50XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic3RlcC5jb250ZW50XCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgIHN0ZXA6IHN0ZXAsXG4gICAgICAgICAgICAgIGk6IGksXG4gICAgICAgICAgICAgIGxhc3Q6IGlzTGFzdCxcbiAgICAgICAgICAgICAgZmlyc3Q6IGlzRmlyc3QsXG4gICAgICAgICAgICAgIG5leHRCdG5MYmw6IHRoaXMubmV4dEJ1dHRvbkxhYmVsLFxuICAgICAgICAgICAgICBkb25lQnRuTGJsOiB0aGlzLmRvbmVCdXR0b25MYWJlbFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgbGV0LXN0ZXA9XCJzdGVwXCIgbGV0LWk9XCJpXCIgI3N0ZXBUZW1wbGF0ZT5cbiAgPG1hZC1zdGVwLWhlYWRlclxuICAgIGNsYXNzPVwibWF0LXZlcnRpY2FsLXN0ZXBwZXItaGVhZGVyXCJcbiAgICAoY2xpY2spPVwic3RlcC5zZWxlY3RBbmRNYXJrQXNUb3VjaGVkKGkpXCJcbiAgICAoa2V5ZG93bik9XCJfb25LZXlkb3duKCRldmVudClcIlxuICAgIFt0YWJJbmRleF09XCJfZ2V0Rm9jdXNJbmRleCgpID09PSBpID8gMCA6IC0xXCJcbiAgICBbaWRdPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcbiAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cImkgKyAxXCJcbiAgICBbYXR0ci5hcmlhLXNldHNpemVdPVwic3RlcHMubGVuZ3RoXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIl9nZXRTdGVwQ29udGVudElkKGkpXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXggPT0gaVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzdGVwLmFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXN0ZXAuYXJpYUxhYmVsICYmIHN0ZXAuYXJpYUxhYmVsbGVkYnkgPyBzdGVwLmFyaWFMYWJlbGxlZGJ5IDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApID8gbnVsbCA6IHRydWVcIlxuICAgIFtpbmRleF09XCJpXCJcbiAgICBbY29tcGxldGVkXT1cInN0ZXAuY29tcGxldGVkXCJcbiAgICBbaGFzRXJyb3JdPVwic3RlcC5oYXNFcnJvclwiXG4gICAgW3N0YXRlXT1cIl9nZXRJbmRpY2F0b3JUeXBlKGksIHN0ZXAuc3RhdGUpXCJcbiAgICBbbGFiZWxdPVwic3RlcC5zdGVwTGFiZWwgfHwgc3RlcC5sYWJlbFwiXG4gICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuICAgIFthY3RpdmVdPVwiX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKVwiXG4gICAgW29wdGlvbmFsXT1cInN0ZXAub3B0aW9uYWxcIlxuICAgIFtjbG9zZWRdPVwic3RlcC5zdGVwQ2xvc2VkXCJcbiAgICBbZXJyb3JNZXNzYWdlXT1cInN0ZXAuZXJyb3JNZXNzYWdlXCJcbiAgPjwvbWFkLXN0ZXAtaGVhZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==