ngx-formly-zorro-antd 17.0.10 → 17.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. package/README.md +1 -1
  2. package/autocomplete/autocomplete.props.d.ts +2 -4
  3. package/card-wrapper/card-wrapper.props.d.ts +3 -2
  4. package/common/interface.d.ts +3 -1
  5. package/esm2022/autocomplete/autocomplete.props.mjs +1 -1
  6. package/esm2022/autocomplete/public_api.mjs +1 -1
  7. package/esm2022/button/button.module.mjs +1 -1
  8. package/esm2022/button/button.type.mjs +123 -123
  9. package/esm2022/button/public_api.mjs +1 -1
  10. package/esm2022/button-group/button-group.module.mjs +1 -1
  11. package/esm2022/button-group/button-group.type.mjs +67 -67
  12. package/esm2022/button-group/public_api.mjs +1 -1
  13. package/esm2022/card/card.module.mjs +1 -1
  14. package/esm2022/card/card.type.mjs +51 -51
  15. package/esm2022/card/public_api.mjs +1 -1
  16. package/esm2022/card-wrapper/card-wrapper.module.mjs +1 -1
  17. package/esm2022/card-wrapper/card-wrapper.props.mjs +1 -1
  18. package/esm2022/card-wrapper/card.wrapper.mjs +37 -37
  19. package/esm2022/card-wrapper/public_api.mjs +1 -1
  20. package/esm2022/cascader/cascader.module.mjs +1 -1
  21. package/esm2022/cascader/cascader.type.mjs +65 -65
  22. package/esm2022/cascader/public_api.mjs +1 -1
  23. package/esm2022/checkbox/checkbox.module.mjs +1 -1
  24. package/esm2022/checkbox/checkbox.type.mjs +39 -39
  25. package/esm2022/checkbox/public_api.mjs +1 -1
  26. package/esm2022/common/common.module.mjs +1 -1
  27. package/esm2022/common/formly-box-templates.directive.mjs +1 -1
  28. package/esm2022/common/formly-utils.mjs +1 -1
  29. package/esm2022/common/interface.mjs +1 -1
  30. package/esm2022/common/public_api.mjs +1 -1
  31. package/esm2022/datepicker/datepicker.module.mjs +1 -1
  32. package/esm2022/datepicker/datepicker.props.mjs +1 -1
  33. package/esm2022/datepicker/datepicker.type.mjs +149 -149
  34. package/esm2022/datepicker/public_api.mjs +1 -1
  35. package/esm2022/extension/public_api.mjs +1 -1
  36. package/esm2022/extension/value-changes-extension.mjs +1 -1
  37. package/esm2022/form-field/form-field.module.mjs +1 -1
  38. package/esm2022/form-field/form-field.props.mjs +1 -1
  39. package/esm2022/form-field/form-field.wrapper.mjs +125 -125
  40. package/esm2022/form-field/public_api.mjs +1 -1
  41. package/esm2022/grid/grid.module.mjs +1 -1
  42. package/esm2022/grid/grid.props.mjs +1 -1
  43. package/esm2022/grid/grid.type.mjs +59 -59
  44. package/esm2022/grid/public_api.mjs +1 -1
  45. package/esm2022/index.mjs +1 -1
  46. package/esm2022/input/input.module.mjs +1 -1
  47. package/esm2022/input/input.props.mjs +1 -1
  48. package/esm2022/input/input.type.mjs +297 -286
  49. package/esm2022/input/public_api.mjs +1 -1
  50. package/esm2022/input-group/input-group.module.mjs +1 -1
  51. package/esm2022/input-group/input-group.props.mjs +1 -1
  52. package/esm2022/input-group/input-group.type.mjs +39 -39
  53. package/esm2022/input-group/public_api.mjs +1 -1
  54. package/esm2022/input-number/input-number.module.mjs +1 -1
  55. package/esm2022/input-number/input-number.props.mjs +1 -1
  56. package/esm2022/input-number/input-number.type.mjs +89 -89
  57. package/esm2022/input-number/public_api.mjs +1 -1
  58. package/esm2022/lib/ui-ng-zorro-antd.mjs +1 -1
  59. package/esm2022/lib/ui-ng-zorro-antd.module.mjs +1 -1
  60. package/esm2022/radio/public_api.mjs +1 -1
  61. package/esm2022/radio/radio.module.mjs +1 -1
  62. package/esm2022/radio/radio.type.mjs +81 -81
  63. package/esm2022/rate/public_api.mjs +1 -1
  64. package/esm2022/rate/rate.module.mjs +1 -1
  65. package/esm2022/rate/rate.type.mjs +33 -33
  66. package/esm2022/ref-template/public_api.mjs +1 -1
  67. package/esm2022/ref-template/ref-template.module.mjs +1 -1
  68. package/esm2022/ref-template/ref-template.type.mjs +9 -9
  69. package/esm2022/select/public_api.mjs +1 -1
  70. package/esm2022/select/select.module.mjs +1 -1
  71. package/esm2022/select/select.props.mjs +1 -1
  72. package/esm2022/select/select.type.mjs +123 -123
  73. package/esm2022/slider/public_api.mjs +1 -1
  74. package/esm2022/slider/slider.module.mjs +1 -1
  75. package/esm2022/slider/slider.type.mjs +33 -33
  76. package/esm2022/space/public_api.mjs +1 -1
  77. package/esm2022/space/space.module.mjs +1 -1
  78. package/esm2022/space/space.type.mjs +27 -27
  79. package/esm2022/switch/public_api.mjs +1 -1
  80. package/esm2022/switch/switch.module.mjs +1 -1
  81. package/esm2022/switch/switch.type.mjs +25 -25
  82. package/esm2022/tabs/public_api.mjs +1 -1
  83. package/esm2022/tabs/tabs.module.mjs +1 -1
  84. package/esm2022/tabs/tabs.props.mjs +1 -1
  85. package/esm2022/tabs/tabs.wrapper.mjs +79 -79
  86. package/esm2022/text-value/ngx-formly-zorro-antd-text-value.mjs +5 -0
  87. package/esm2022/text-value/public_api.mjs +3 -0
  88. package/esm2022/text-value/text-value.module.mjs +46 -0
  89. package/esm2022/text-value/text-value.type.mjs +68 -0
  90. package/esm2022/textarea/public_api.mjs +1 -1
  91. package/esm2022/textarea/textarea.module.mjs +1 -1
  92. package/esm2022/textarea/textarea.type.mjs +113 -113
  93. package/esm2022/timepicker/public_api.mjs +1 -1
  94. package/esm2022/timepicker/timepicker.module.mjs +1 -1
  95. package/esm2022/timepicker/timepicker.type.mjs +61 -61
  96. package/esm2022/transfer/public_api.mjs +1 -1
  97. package/esm2022/transfer/transfer.component.mjs +49 -49
  98. package/esm2022/transfer/transfer.module.mjs +1 -1
  99. package/esm2022/transfer/transfer.type.mjs +47 -47
  100. package/esm2022/tree-select/public_api.mjs +1 -1
  101. package/esm2022/tree-select/tree-select.module.mjs +1 -1
  102. package/esm2022/tree-select/tree-select.type.mjs +69 -69
  103. package/esm2022/upload/public_api.mjs +1 -1
  104. package/esm2022/upload/upload.component.mjs +145 -145
  105. package/esm2022/upload/upload.module.mjs +1 -1
  106. package/esm2022/upload/upload.props.mjs +1 -1
  107. package/esm2022/upload/upload.type.mjs +88 -87
  108. package/fesm2022/ngx-formly-zorro-antd-button-group.mjs +66 -66
  109. package/fesm2022/ngx-formly-zorro-antd-button-group.mjs.map +1 -1
  110. package/fesm2022/ngx-formly-zorro-antd-button.mjs +122 -122
  111. package/fesm2022/ngx-formly-zorro-antd-button.mjs.map +1 -1
  112. package/fesm2022/ngx-formly-zorro-antd-card-wrapper.mjs +36 -36
  113. package/fesm2022/ngx-formly-zorro-antd-card-wrapper.mjs.map +1 -1
  114. package/fesm2022/ngx-formly-zorro-antd-card.mjs +50 -50
  115. package/fesm2022/ngx-formly-zorro-antd-card.mjs.map +1 -1
  116. package/fesm2022/ngx-formly-zorro-antd-cascader.mjs +64 -64
  117. package/fesm2022/ngx-formly-zorro-antd-cascader.mjs.map +1 -1
  118. package/fesm2022/ngx-formly-zorro-antd-checkbox.mjs +38 -38
  119. package/fesm2022/ngx-formly-zorro-antd-checkbox.mjs.map +1 -1
  120. package/fesm2022/ngx-formly-zorro-antd-common.mjs.map +1 -1
  121. package/fesm2022/ngx-formly-zorro-antd-datepicker.mjs +148 -148
  122. package/fesm2022/ngx-formly-zorro-antd-datepicker.mjs.map +1 -1
  123. package/fesm2022/ngx-formly-zorro-antd-extension.mjs.map +1 -1
  124. package/fesm2022/ngx-formly-zorro-antd-form-field.mjs +124 -124
  125. package/fesm2022/ngx-formly-zorro-antd-form-field.mjs.map +1 -1
  126. package/fesm2022/ngx-formly-zorro-antd-grid.mjs +58 -58
  127. package/fesm2022/ngx-formly-zorro-antd-grid.mjs.map +1 -1
  128. package/fesm2022/ngx-formly-zorro-antd-input-group.mjs +38 -38
  129. package/fesm2022/ngx-formly-zorro-antd-input-group.mjs.map +1 -1
  130. package/fesm2022/ngx-formly-zorro-antd-input-number.mjs +88 -88
  131. package/fesm2022/ngx-formly-zorro-antd-input-number.mjs.map +1 -1
  132. package/fesm2022/ngx-formly-zorro-antd-input.mjs +297 -286
  133. package/fesm2022/ngx-formly-zorro-antd-input.mjs.map +1 -1
  134. package/fesm2022/ngx-formly-zorro-antd-radio.mjs +80 -80
  135. package/fesm2022/ngx-formly-zorro-antd-radio.mjs.map +1 -1
  136. package/fesm2022/ngx-formly-zorro-antd-rate.mjs +32 -32
  137. package/fesm2022/ngx-formly-zorro-antd-rate.mjs.map +1 -1
  138. package/fesm2022/ngx-formly-zorro-antd-ref-template.mjs +8 -8
  139. package/fesm2022/ngx-formly-zorro-antd-ref-template.mjs.map +1 -1
  140. package/fesm2022/ngx-formly-zorro-antd-select.mjs +122 -122
  141. package/fesm2022/ngx-formly-zorro-antd-select.mjs.map +1 -1
  142. package/fesm2022/ngx-formly-zorro-antd-slider.mjs +32 -32
  143. package/fesm2022/ngx-formly-zorro-antd-slider.mjs.map +1 -1
  144. package/fesm2022/ngx-formly-zorro-antd-space.mjs +26 -26
  145. package/fesm2022/ngx-formly-zorro-antd-space.mjs.map +1 -1
  146. package/fesm2022/ngx-formly-zorro-antd-switch.mjs +24 -24
  147. package/fesm2022/ngx-formly-zorro-antd-switch.mjs.map +1 -1
  148. package/fesm2022/ngx-formly-zorro-antd-tabs.mjs +78 -78
  149. package/fesm2022/ngx-formly-zorro-antd-tabs.mjs.map +1 -1
  150. package/fesm2022/ngx-formly-zorro-antd-text-value.mjs +115 -0
  151. package/fesm2022/ngx-formly-zorro-antd-text-value.mjs.map +1 -0
  152. package/fesm2022/ngx-formly-zorro-antd-textarea.mjs +112 -112
  153. package/fesm2022/ngx-formly-zorro-antd-textarea.mjs.map +1 -1
  154. package/fesm2022/ngx-formly-zorro-antd-timepicker.mjs +60 -60
  155. package/fesm2022/ngx-formly-zorro-antd-timepicker.mjs.map +1 -1
  156. package/fesm2022/ngx-formly-zorro-antd-transfer.mjs +94 -94
  157. package/fesm2022/ngx-formly-zorro-antd-transfer.mjs.map +1 -1
  158. package/fesm2022/ngx-formly-zorro-antd-tree-select.mjs +68 -68
  159. package/fesm2022/ngx-formly-zorro-antd-tree-select.mjs.map +1 -1
  160. package/fesm2022/ngx-formly-zorro-antd-upload.mjs +230 -230
  161. package/fesm2022/ngx-formly-zorro-antd-upload.mjs.map +1 -1
  162. package/fesm2022/ngx-formly-zorro-antd.mjs.map +1 -1
  163. package/form-field/form-field.props.d.ts +8 -16
  164. package/grid/grid.props.d.ts +6 -9
  165. package/input/input.type.d.ts +6 -1
  166. package/input-group/input-group.props.d.ts +4 -0
  167. package/package.json +24 -18
  168. package/text-value/index.d.ts +5 -0
  169. package/text-value/public_api.d.ts +2 -0
  170. package/text-value/text-value.module.d.ts +11 -0
  171. package/text-value/text-value.type.d.ts +37 -0
  172. package/tree-select/tree-select.type.d.ts +2 -3
  173. package/upload/upload.component.d.ts +3 -4
  174. package/autocomplete/package.json +0 -3
  175. package/button/package.json +0 -3
  176. package/button-group/package.json +0 -3
  177. package/card/package.json +0 -3
  178. package/card-wrapper/package.json +0 -3
  179. package/cascader/package.json +0 -3
  180. package/checkbox/package.json +0 -3
  181. package/common/package.json +0 -3
  182. package/datepicker/package.json +0 -3
  183. package/extension/package.json +0 -3
  184. package/form-field/package.json +0 -3
  185. package/grid/package.json +0 -3
  186. package/input/package.json +0 -3
  187. package/input-group/package.json +0 -3
  188. package/input-number/package.json +0 -3
  189. package/radio/package.json +0 -3
  190. package/rate/package.json +0 -3
  191. package/ref-template/package.json +0 -3
  192. package/select/package.json +0 -3
  193. package/slider/package.json +0 -3
  194. package/space/package.json +0 -3
  195. package/switch/package.json +0 -3
  196. package/tabs/package.json +0 -3
  197. package/textarea/package.json +0 -3
  198. package/timepicker/package.json +0 -3
  199. package/transfer/package.json +0 -3
  200. package/tree-select/package.json +0 -3
  201. package/upload/package.json +0 -3
@@ -1,15 +1,18 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component, Optional, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { FieldType } from '@ngx-formly/core';
3
+ import { FormlyBoxTemplates, resolveTplName } from 'ngx-formly-zorro-antd/common';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "ng-zorro-antd/input";
7
- import * as i4 from "ng-zorro-antd/auto-complete";
8
- import * as i5 from "ng-zorro-antd/icon";
9
- import * as i6 from "@ngx-formly/core";
5
+ import * as i1 from "ngx-formly-zorro-antd/common";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "ng-zorro-antd/input";
9
+ import * as i5 from "ng-zorro-antd/auto-complete";
10
+ import * as i6 from "ng-zorro-antd/icon";
11
+ import * as i7 from "@ngx-formly/core";
10
12
  export class FormlyFieldInput extends FieldType {
11
- constructor() {
12
- super(...arguments);
13
+ constructor(fieldTemplates) {
14
+ super();
15
+ this.fieldTemplates = fieldTemplates;
13
16
  this.defaultOptions = {
14
17
  props: {
15
18
  borderless: false,
@@ -25,289 +28,297 @@ export class FormlyFieldInput extends FieldType {
25
28
  };
26
29
  this.passwordVisible = false;
27
30
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FormlyFieldInput, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.6", type: FormlyFieldInput, selector: "formly-field-input", usesInheritance: true, ngImport: i0, template: `
30
- @switch (props.type) {
31
- @case ('password') {
32
- <nz-input-group
33
- [nzPrefixIcon]="props['prefixIcon']"
34
- [nzSuffixIcon]="props['suffixIcon']"
35
- [nzAddOnAfterIcon]="props['addOnAfterIcon']"
36
- [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
37
- [nzAddOnBefore]="props['addOnBefore']"
38
- [nzAddOnAfter]="props['addOnAfter']"
39
- [nzPrefix]="props['prefix']"
40
- [nzCompact]="props['compact']!!"
41
- [nzSearch]="props['search']!!"
42
- [nzSize]="props['size']!"
43
- [nzStatus]="props['status']!"
44
- [nzSuffix]="passwordEyeTpl"
45
- >
46
- <input
47
- [type]="passwordVisible ? 'text' : 'password'"
48
- nz-input
49
- [formControl]="formControl"
50
- [formlyAttributes]="field"
51
- [nzBorderless]="props['borderless']!!"
52
- (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
53
- />
54
- </nz-input-group>
55
- }
56
- @case ('autoComplete') {
57
- <nz-input-group
58
- [nzSize]="props['size']"
59
- [nzPrefixIcon]="props['prefixIcon']"
60
- [nzSuffixIcon]="props['suffixIcon']"
61
- [nzAddOnAfterIcon]="props['addOnAfterIcon']"
62
- [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
63
- [nzAddOnBefore]="props['addOnBefore']"
64
- [nzAddOnAfter]="props['addOnAfter']"
65
- [nzPrefix]="props['prefix']"
66
- [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
67
- >
68
- <input
69
- nz-input
70
- [nzBorderless]="props['borderless']"
71
- [nzAutocomplete]="auto"
72
- [formControl]="formControl"
73
- [formlyAttributes]="field"
74
- />
75
- <nz-autocomplete
76
- [nzBackfill]="props['autocompleteOptions']?.backfill"
77
- [nzDefaultActiveFirstOption]="props['autocompleteOptions']?.defaultActiveFirstOption"
78
- [nzWidth]="props['autocompleteOptions']?.width"
79
- [nzOverlayClassName]="props['autocompleteOptions']?.overlayClassName"
80
- [nzOverlayStyle]="props['autocompleteOptions']?.overlayStyle"
81
- [compareWith]="props['autocompleteOptions']?.compareWith"
82
- #auto
83
- >
84
- @for (option of props['autocompleteOptions'].dataSource; track option) {
85
- <nz-auto-option [nzLabel]="option.label" [nzValue]="option.value">
86
- {{ option.label }}
87
- </nz-auto-option>
88
- }
89
- </nz-autocomplete>
90
- </nz-input-group>
91
- }
92
- @case ('group') {
93
- <nz-input-group
94
- [nzPrefixIcon]="props['prefixIcon']"
95
- [nzSuffixIcon]="props['suffixIcon']"
96
- [nzAddOnAfterIcon]="props['addOnAfterIcon']"
97
- [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
98
- [nzAddOnBefore]="props['addOnBefore']"
99
- [nzAddOnAfter]="props['addOnAfter']"
100
- [nzPrefix]="props['prefix']"
101
- [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
102
- [nzCompact]="props['compact']!!"
103
- [nzSearch]="props['search']!!"
104
- [nzSize]="props['size']!"
105
- [nzStatus]="props['status']!"
106
- >
107
- <input
108
- nz-input
109
- type="text"
110
- [ngClass]="props['className']"
111
- [ngStyle]="props['style']"
112
- [formControl]="formControl"
113
- [formlyAttributes]="field"
114
- [nzBorderless]="!!props['borderless']!!"
115
- (ngModelChange)="props['modelChange']?.(field, $event)"
116
- />
117
- </nz-input-group>
118
- }
119
- @default {
120
- <input
121
- nz-input
122
- type="text"
123
- [ngClass]="props['className']"
124
- [ngStyle]="props['style']"
125
- [formControl]="formControl"
126
- [formlyAttributes]="field"
127
- [nzSize]="props['size']"
128
- [nzStatus]="props['status']"
129
- [nzBorderless]="props['borderless']!!"
130
- (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
131
- />
132
- }
31
+ get addOnBefore() {
32
+ return resolveTplName(this.props, this.fieldTemplates, 'addOnBefore');
33
+ }
34
+ get addOnAfter() {
35
+ return resolveTplName(this.props, this.fieldTemplates, 'addOnAfter');
133
36
  }
134
-
135
- <!-- 查看密码 -->
136
- <ng-template #passwordEyeTpl>
137
- <span
138
- nz-icon
139
- class="cursor-pointer"
140
- [nzType]="passwordVisible ? 'eye-invisible' : 'eye'"
141
- (click)="passwordVisible = !passwordVisible"
142
- ></span>
143
-
144
- @if (formControl.value && props['allowClear']!!) {
145
- <span
146
- nz-icon
147
- class="ant-input-clear-icon"
148
- nzTheme="fill"
149
- nzType="close-circle"
150
- (click)="formControl.reset()"
151
- ></span>
152
- }
153
- </ng-template>
154
- <!-- 清除数据 -->
155
- <ng-template #inputClearTpl>
156
- @if (formControl.value && !props['disabled'] && !props['readonly']) {
157
- <span
158
- nz-icon
159
- class="ant-input-clear-icon"
160
- nzTheme="fill"
161
- nzType="close-circle"
162
- (click)="formControl.reset()"
163
- ></span>
164
- }
165
- </ng-template>
166
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i3.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i3.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: i4.NzAutocompleteComponent, selector: "nz-autocomplete", inputs: ["nzWidth", "nzOverlayClassName", "nzOverlayStyle", "nzDefaultActiveFirstOption", "nzBackfill", "compareWith", "nzDataSource"], outputs: ["selectionChange"], exportAs: ["nzAutocomplete"] }, { kind: "component", type: i4.NzAutocompleteOptionComponent, selector: "nz-auto-option", inputs: ["nzValue", "nzLabel", "nzDisabled"], outputs: ["selectionChange", "mouseEntered"], exportAs: ["nzAutoOption"] }, { kind: "directive", type: i4.NzAutocompleteTriggerDirective, selector: "input[nzAutocomplete], textarea[nzAutocomplete]", inputs: ["nzAutocomplete"], exportAs: ["nzAutocompleteTrigger"] }, { kind: "directive", type: i5.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i6.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FormlyFieldInput, deps: [{ token: i1.FormlyBoxTemplates, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.6", type: FormlyFieldInput, selector: "formly-field-input", usesInheritance: true, ngImport: i0, template: `
39
+ @switch (props.type) {
40
+ @case ('password') {
41
+ <nz-input-group
42
+ [nzPrefixIcon]="props['prefixIcon']"
43
+ [nzSuffixIcon]="props['suffixIcon']"
44
+ [nzAddOnAfterIcon]="props['addOnAfterIcon']"
45
+ [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
46
+ [nzAddOnBefore]="addOnBefore"
47
+ [nzAddOnAfter]="addOnAfter"
48
+ [nzPrefix]="props['prefix']"
49
+ [nzCompact]="props['compact']!!"
50
+ [nzSearch]="props['search']!!"
51
+ [nzSize]="props['size']!"
52
+ [nzStatus]="props['status']!"
53
+ [nzSuffix]="passwordEyeTpl"
54
+ >
55
+ <input
56
+ [type]="passwordVisible ? 'text' : 'password'"
57
+ nz-input
58
+ [formControl]="formControl"
59
+ [formlyAttributes]="field"
60
+ [nzBorderless]="props['borderless']!!"
61
+ (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
62
+ />
63
+ </nz-input-group>
64
+ }
65
+ @case ('autoComplete') {
66
+ <nz-input-group
67
+ [nzSize]="props['size']"
68
+ [nzPrefixIcon]="props['prefixIcon']"
69
+ [nzSuffixIcon]="props['suffixIcon']"
70
+ [nzAddOnAfterIcon]="props['addOnAfterIcon']"
71
+ [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
72
+ [nzAddOnBefore]="addOnBefore"
73
+ [nzAddOnAfter]="addOnAfter"
74
+ [nzPrefix]="props['prefix']"
75
+ [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
76
+ >
77
+ <input
78
+ nz-input
79
+ [nzBorderless]="props['borderless']"
80
+ [nzAutocomplete]="auto"
81
+ [formControl]="formControl"
82
+ [formlyAttributes]="field"
83
+ />
84
+ <nz-autocomplete
85
+ [nzBackfill]="props['autocompleteOptions']?.backfill"
86
+ [nzDefaultActiveFirstOption]="props['autocompleteOptions']?.defaultActiveFirstOption"
87
+ [nzWidth]="props['autocompleteOptions']?.width"
88
+ [nzOverlayClassName]="props['autocompleteOptions']?.overlayClassName"
89
+ [nzOverlayStyle]="props['autocompleteOptions']?.overlayStyle"
90
+ [compareWith]="props['autocompleteOptions']?.compareWith"
91
+ #auto
92
+ >
93
+ @for (option of props['autocompleteOptions'].dataSource; track option) {
94
+ <nz-auto-option [nzLabel]="option.label" [nzValue]="option.value">
95
+ {{ option.label }}
96
+ </nz-auto-option>
97
+ }
98
+ </nz-autocomplete>
99
+ </nz-input-group>
100
+ }
101
+ @case ('group') {
102
+ <nz-input-group
103
+ [nzPrefixIcon]="props['prefixIcon']"
104
+ [nzSuffixIcon]="props['suffixIcon']"
105
+ [nzAddOnAfterIcon]="props['addOnAfterIcon']"
106
+ [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
107
+ [nzAddOnBefore]="addOnBefore"
108
+ [nzAddOnAfter]="addOnAfter"
109
+ [nzPrefix]="props['prefix']"
110
+ [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
111
+ [nzCompact]="props['compact']!!"
112
+ [nzSearch]="props['search']!!"
113
+ [nzSize]="props['size']!"
114
+ [nzStatus]="props['status']!"
115
+ >
116
+ <input
117
+ nz-input
118
+ type="text"
119
+ [ngClass]="props['ngClass']"
120
+ [ngStyle]="props['ngStyle']"
121
+ [formControl]="formControl"
122
+ [formlyAttributes]="field"
123
+ [nzBorderless]="!!props['borderless']!!"
124
+ (ngModelChange)="props['modelChange']?.(field, $event)"
125
+ />
126
+ </nz-input-group>
127
+ }
128
+ @default {
129
+ <input
130
+ nz-input
131
+ type="text"
132
+ [ngClass]="props['ngClass']"
133
+ [ngStyle]="props['ngStyle']"
134
+ [formControl]="formControl"
135
+ [formlyAttributes]="field"
136
+ [nzSize]="props['size']"
137
+ [nzStatus]="props['status']"
138
+ [nzBorderless]="props['borderless']!!"
139
+ (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
140
+ />
141
+ }
142
+ }
143
+
144
+ <!-- 查看密码 -->
145
+ <ng-template #passwordEyeTpl>
146
+ <span
147
+ nz-icon
148
+ class="cursor-pointer"
149
+ [nzType]="passwordVisible ? 'eye-invisible' : 'eye'"
150
+ (click)="passwordVisible = !passwordVisible"
151
+ ></span>
152
+
153
+ @if (formControl.value && props['allowClear']!!) {
154
+ <span
155
+ nz-icon
156
+ class="ant-input-clear-icon"
157
+ nzTheme="fill"
158
+ nzType="close-circle"
159
+ (click)="formControl.reset()"
160
+ ></span>
161
+ }
162
+ </ng-template>
163
+ <!-- 清除数据 -->
164
+ <ng-template #inputClearTpl>
165
+ @if (formControl.value && !props['disabled'] && !props['readonly']) {
166
+ <span
167
+ nz-icon
168
+ class="ant-input-clear-icon"
169
+ nzTheme="fill"
170
+ nzType="close-circle"
171
+ (click)="formControl.reset()"
172
+ ></span>
173
+ }
174
+ </ng-template>
175
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i4.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i4.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: i5.NzAutocompleteComponent, selector: "nz-autocomplete", inputs: ["nzWidth", "nzOverlayClassName", "nzOverlayStyle", "nzDefaultActiveFirstOption", "nzBackfill", "compareWith", "nzDataSource"], outputs: ["selectionChange"], exportAs: ["nzAutocomplete"] }, { kind: "component", type: i5.NzAutocompleteOptionComponent, selector: "nz-auto-option", inputs: ["nzValue", "nzLabel", "nzDisabled"], outputs: ["selectionChange", "mouseEntered"], exportAs: ["nzAutoOption"] }, { kind: "directive", type: i5.NzAutocompleteTriggerDirective, selector: "input[nzAutocomplete], textarea[nzAutocomplete]", inputs: ["nzAutocomplete"], exportAs: ["nzAutocompleteTrigger"] }, { kind: "directive", type: i6.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i7.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
167
176
  }
168
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FormlyFieldInput, decorators: [{
169
178
  type: Component,
170
179
  args: [{
171
180
  selector: 'formly-field-input',
172
- template: `
173
- @switch (props.type) {
174
- @case ('password') {
175
- <nz-input-group
176
- [nzPrefixIcon]="props['prefixIcon']"
177
- [nzSuffixIcon]="props['suffixIcon']"
178
- [nzAddOnAfterIcon]="props['addOnAfterIcon']"
179
- [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
180
- [nzAddOnBefore]="props['addOnBefore']"
181
- [nzAddOnAfter]="props['addOnAfter']"
182
- [nzPrefix]="props['prefix']"
183
- [nzCompact]="props['compact']!!"
184
- [nzSearch]="props['search']!!"
185
- [nzSize]="props['size']!"
186
- [nzStatus]="props['status']!"
187
- [nzSuffix]="passwordEyeTpl"
188
- >
189
- <input
190
- [type]="passwordVisible ? 'text' : 'password'"
191
- nz-input
192
- [formControl]="formControl"
193
- [formlyAttributes]="field"
194
- [nzBorderless]="props['borderless']!!"
195
- (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
196
- />
197
- </nz-input-group>
198
- }
199
- @case ('autoComplete') {
200
- <nz-input-group
201
- [nzSize]="props['size']"
202
- [nzPrefixIcon]="props['prefixIcon']"
203
- [nzSuffixIcon]="props['suffixIcon']"
204
- [nzAddOnAfterIcon]="props['addOnAfterIcon']"
205
- [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
206
- [nzAddOnBefore]="props['addOnBefore']"
207
- [nzAddOnAfter]="props['addOnAfter']"
208
- [nzPrefix]="props['prefix']"
209
- [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
210
- >
211
- <input
212
- nz-input
213
- [nzBorderless]="props['borderless']"
214
- [nzAutocomplete]="auto"
215
- [formControl]="formControl"
216
- [formlyAttributes]="field"
217
- />
218
- <nz-autocomplete
219
- [nzBackfill]="props['autocompleteOptions']?.backfill"
220
- [nzDefaultActiveFirstOption]="props['autocompleteOptions']?.defaultActiveFirstOption"
221
- [nzWidth]="props['autocompleteOptions']?.width"
222
- [nzOverlayClassName]="props['autocompleteOptions']?.overlayClassName"
223
- [nzOverlayStyle]="props['autocompleteOptions']?.overlayStyle"
224
- [compareWith]="props['autocompleteOptions']?.compareWith"
225
- #auto
226
- >
227
- @for (option of props['autocompleteOptions'].dataSource; track option) {
228
- <nz-auto-option [nzLabel]="option.label" [nzValue]="option.value">
229
- {{ option.label }}
230
- </nz-auto-option>
231
- }
232
- </nz-autocomplete>
233
- </nz-input-group>
234
- }
235
- @case ('group') {
236
- <nz-input-group
237
- [nzPrefixIcon]="props['prefixIcon']"
238
- [nzSuffixIcon]="props['suffixIcon']"
239
- [nzAddOnAfterIcon]="props['addOnAfterIcon']"
240
- [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
241
- [nzAddOnBefore]="props['addOnBefore']"
242
- [nzAddOnAfter]="props['addOnAfter']"
243
- [nzPrefix]="props['prefix']"
244
- [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
245
- [nzCompact]="props['compact']!!"
246
- [nzSearch]="props['search']!!"
247
- [nzSize]="props['size']!"
248
- [nzStatus]="props['status']!"
249
- >
250
- <input
251
- nz-input
252
- type="text"
253
- [ngClass]="props['className']"
254
- [ngStyle]="props['style']"
255
- [formControl]="formControl"
256
- [formlyAttributes]="field"
257
- [nzBorderless]="!!props['borderless']!!"
258
- (ngModelChange)="props['modelChange']?.(field, $event)"
259
- />
260
- </nz-input-group>
261
- }
262
- @default {
263
- <input
264
- nz-input
265
- type="text"
266
- [ngClass]="props['className']"
267
- [ngStyle]="props['style']"
268
- [formControl]="formControl"
269
- [formlyAttributes]="field"
270
- [nzSize]="props['size']"
271
- [nzStatus]="props['status']"
272
- [nzBorderless]="props['borderless']!!"
273
- (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
274
- />
275
- }
276
- }
277
-
278
- <!-- 查看密码 -->
279
- <ng-template #passwordEyeTpl>
280
- <span
281
- nz-icon
282
- class="cursor-pointer"
283
- [nzType]="passwordVisible ? 'eye-invisible' : 'eye'"
284
- (click)="passwordVisible = !passwordVisible"
285
- ></span>
286
-
287
- @if (formControl.value && props['allowClear']!!) {
288
- <span
289
- nz-icon
290
- class="ant-input-clear-icon"
291
- nzTheme="fill"
292
- nzType="close-circle"
293
- (click)="formControl.reset()"
294
- ></span>
295
- }
296
- </ng-template>
297
- <!-- 清除数据 -->
298
- <ng-template #inputClearTpl>
299
- @if (formControl.value && !props['disabled'] && !props['readonly']) {
300
- <span
301
- nz-icon
302
- class="ant-input-clear-icon"
303
- nzTheme="fill"
304
- nzType="close-circle"
305
- (click)="formControl.reset()"
306
- ></span>
307
- }
308
- </ng-template>
181
+ template: `
182
+ @switch (props.type) {
183
+ @case ('password') {
184
+ <nz-input-group
185
+ [nzPrefixIcon]="props['prefixIcon']"
186
+ [nzSuffixIcon]="props['suffixIcon']"
187
+ [nzAddOnAfterIcon]="props['addOnAfterIcon']"
188
+ [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
189
+ [nzAddOnBefore]="addOnBefore"
190
+ [nzAddOnAfter]="addOnAfter"
191
+ [nzPrefix]="props['prefix']"
192
+ [nzCompact]="props['compact']!!"
193
+ [nzSearch]="props['search']!!"
194
+ [nzSize]="props['size']!"
195
+ [nzStatus]="props['status']!"
196
+ [nzSuffix]="passwordEyeTpl"
197
+ >
198
+ <input
199
+ [type]="passwordVisible ? 'text' : 'password'"
200
+ nz-input
201
+ [formControl]="formControl"
202
+ [formlyAttributes]="field"
203
+ [nzBorderless]="props['borderless']!!"
204
+ (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
205
+ />
206
+ </nz-input-group>
207
+ }
208
+ @case ('autoComplete') {
209
+ <nz-input-group
210
+ [nzSize]="props['size']"
211
+ [nzPrefixIcon]="props['prefixIcon']"
212
+ [nzSuffixIcon]="props['suffixIcon']"
213
+ [nzAddOnAfterIcon]="props['addOnAfterIcon']"
214
+ [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
215
+ [nzAddOnBefore]="addOnBefore"
216
+ [nzAddOnAfter]="addOnAfter"
217
+ [nzPrefix]="props['prefix']"
218
+ [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
219
+ >
220
+ <input
221
+ nz-input
222
+ [nzBorderless]="props['borderless']"
223
+ [nzAutocomplete]="auto"
224
+ [formControl]="formControl"
225
+ [formlyAttributes]="field"
226
+ />
227
+ <nz-autocomplete
228
+ [nzBackfill]="props['autocompleteOptions']?.backfill"
229
+ [nzDefaultActiveFirstOption]="props['autocompleteOptions']?.defaultActiveFirstOption"
230
+ [nzWidth]="props['autocompleteOptions']?.width"
231
+ [nzOverlayClassName]="props['autocompleteOptions']?.overlayClassName"
232
+ [nzOverlayStyle]="props['autocompleteOptions']?.overlayStyle"
233
+ [compareWith]="props['autocompleteOptions']?.compareWith"
234
+ #auto
235
+ >
236
+ @for (option of props['autocompleteOptions'].dataSource; track option) {
237
+ <nz-auto-option [nzLabel]="option.label" [nzValue]="option.value">
238
+ {{ option.label }}
239
+ </nz-auto-option>
240
+ }
241
+ </nz-autocomplete>
242
+ </nz-input-group>
243
+ }
244
+ @case ('group') {
245
+ <nz-input-group
246
+ [nzPrefixIcon]="props['prefixIcon']"
247
+ [nzSuffixIcon]="props['suffixIcon']"
248
+ [nzAddOnAfterIcon]="props['addOnAfterIcon']"
249
+ [nzAddOnBeforeIcon]="props['addOnBeforeIcon']"
250
+ [nzAddOnBefore]="addOnBefore"
251
+ [nzAddOnAfter]="addOnAfter"
252
+ [nzPrefix]="props['prefix']"
253
+ [nzSuffix]="props['allowClear']!! ? inputClearTpl : props['suffix']"
254
+ [nzCompact]="props['compact']!!"
255
+ [nzSearch]="props['search']!!"
256
+ [nzSize]="props['size']!"
257
+ [nzStatus]="props['status']!"
258
+ >
259
+ <input
260
+ nz-input
261
+ type="text"
262
+ [ngClass]="props['ngClass']"
263
+ [ngStyle]="props['ngStyle']"
264
+ [formControl]="formControl"
265
+ [formlyAttributes]="field"
266
+ [nzBorderless]="!!props['borderless']!!"
267
+ (ngModelChange)="props['modelChange']?.(field, $event)"
268
+ />
269
+ </nz-input-group>
270
+ }
271
+ @default {
272
+ <input
273
+ nz-input
274
+ type="text"
275
+ [ngClass]="props['ngClass']"
276
+ [ngStyle]="props['ngStyle']"
277
+ [formControl]="formControl"
278
+ [formlyAttributes]="field"
279
+ [nzSize]="props['size']"
280
+ [nzStatus]="props['status']"
281
+ [nzBorderless]="props['borderless']!!"
282
+ (ngModelChange)="props['modelChange'] && props['modelChange'](field, $event)"
283
+ />
284
+ }
285
+ }
286
+
287
+ <!-- 查看密码 -->
288
+ <ng-template #passwordEyeTpl>
289
+ <span
290
+ nz-icon
291
+ class="cursor-pointer"
292
+ [nzType]="passwordVisible ? 'eye-invisible' : 'eye'"
293
+ (click)="passwordVisible = !passwordVisible"
294
+ ></span>
295
+
296
+ @if (formControl.value && props['allowClear']!!) {
297
+ <span
298
+ nz-icon
299
+ class="ant-input-clear-icon"
300
+ nzTheme="fill"
301
+ nzType="close-circle"
302
+ (click)="formControl.reset()"
303
+ ></span>
304
+ }
305
+ </ng-template>
306
+ <!-- 清除数据 -->
307
+ <ng-template #inputClearTpl>
308
+ @if (formControl.value && !props['disabled'] && !props['readonly']) {
309
+ <span
310
+ nz-icon
311
+ class="ant-input-clear-icon"
312
+ nzTheme="fill"
313
+ nzType="close-circle"
314
+ (click)="formControl.reset()"
315
+ ></span>
316
+ }
317
+ </ng-template>
309
318
  `,
310
319
  changeDetection: ChangeDetectionStrategy.OnPush
311
320
  }]
312
- }] });
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm1seWFudGQvaW5wdXQvc3JjL2lucHV0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQXdKOUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQTBCO0lBOUloRTs7UUErSVcsbUJBQWMsR0FBRztZQUN4QixLQUFLLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixtQkFBbUIsRUFBRTtvQkFDbkIsUUFBUSxFQUFFLEtBQUs7b0JBQ2Ysd0JBQXdCLEVBQUUsSUFBSTtvQkFDOUIsV0FBVyxFQUFFLENBQUMsRUFBYSxFQUFFLEVBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7aUJBQ3pEO2FBQ0Y7U0FDRixDQUFDO1FBQ0Ysb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FDekI7OEdBZlksZ0JBQWdCO2tHQUFoQixnQkFBZ0IsaUZBNUlqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5SVQ7OzJGQUdVLGdCQUFnQjtrQkE5STVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlJVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOekZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnbmd4LWZvcm1seS16b3Jyby1hbnRkL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmltcG9ydCB0eXBlIHsgSW5wdXRQcm9wcyB9IGZyb20gJy4vaW5wdXQucHJvcHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1seUlucHV0RmllbGRDb25maWcgZXh0ZW5kcyBOekZvcm1seUZpZWxkQ29uZmlnPElucHV0UHJvcHM+IHtcbiAgdHlwZTogJ2lucHV0JyB8ICdzdHJpbmcnIHwgJ3Bhc3N3b3JkJyB8IFR5cGU8Rm9ybWx5RmllbGRJbnB1dD47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1maWVsZC1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgQHN3aXRjaCAocHJvcHMudHlwZSkge1xuICAgICAgQGNhc2UgKCdwYXNzd29yZCcpIHtcbiAgICAgICAgPG56LWlucHV0LWdyb3VwXG4gICAgICAgICAgW256UHJlZml4SWNvbl09XCJwcm9wc1sncHJlZml4SWNvbiddXCJcbiAgICAgICAgICBbbnpTdWZmaXhJY29uXT1cInByb3BzWydzdWZmaXhJY29uJ11cIlxuICAgICAgICAgIFtuekFkZE9uQWZ0ZXJJY29uXT1cInByb3BzWydhZGRPbkFmdGVySWNvbiddXCJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZUljb25dPVwicHJvcHNbJ2FkZE9uQmVmb3JlSWNvbiddXCJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZV09XCJwcm9wc1snYWRkT25CZWZvcmUnXVwiXG4gICAgICAgICAgW256QWRkT25BZnRlcl09XCJwcm9wc1snYWRkT25BZnRlciddXCJcbiAgICAgICAgICBbbnpQcmVmaXhdPVwicHJvcHNbJ3ByZWZpeCddXCJcbiAgICAgICAgICBbbnpDb21wYWN0XT1cInByb3BzWydjb21wYWN0J10hIVwiXG4gICAgICAgICAgW256U2VhcmNoXT1cInByb3BzWydzZWFyY2gnXSEhXCJcbiAgICAgICAgICBbbnpTaXplXT1cInByb3BzWydzaXplJ10hXCJcbiAgICAgICAgICBbbnpTdGF0dXNdPVwicHJvcHNbJ3N0YXR1cyddIVwiXG4gICAgICAgICAgW256U3VmZml4XT1cInBhc3N3b3JkRXllVHBsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW3R5cGVdPVwicGFzc3dvcmRWaXNpYmxlID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtuekJvcmRlcmxlc3NdPVwicHJvcHNbJ2JvcmRlcmxlc3MnXSEhXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByb3BzWydtb2RlbENoYW5nZSddICYmIHByb3BzWydtb2RlbENoYW5nZSddKGZpZWxkLCAkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCdhdXRvQ29tcGxldGUnKSB7XG4gICAgICAgIDxuei1pbnB1dC1ncm91cFxuICAgICAgICAgIFtuelNpemVdPVwicHJvcHNbJ3NpemUnXVwiXG4gICAgICAgICAgW256UHJlZml4SWNvbl09XCJwcm9wc1sncHJlZml4SWNvbiddXCJcbiAgICAgICAgICBbbnpTdWZmaXhJY29uXT1cInByb3BzWydzdWZmaXhJY29uJ11cIlxuICAgICAgICAgIFtuekFkZE9uQWZ0ZXJJY29uXT1cInByb3BzWydhZGRPbkFmdGVySWNvbiddXCJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZUljb25dPVwicHJvcHNbJ2FkZE9uQmVmb3JlSWNvbiddXCJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZV09XCJwcm9wc1snYWRkT25CZWZvcmUnXVwiXG4gICAgICAgICAgW256QWRkT25BZnRlcl09XCJwcm9wc1snYWRkT25BZnRlciddXCJcbiAgICAgICAgICBbbnpQcmVmaXhdPVwicHJvcHNbJ3ByZWZpeCddXCJcbiAgICAgICAgICBbbnpTdWZmaXhdPVwicHJvcHNbJ2FsbG93Q2xlYXInXSEhID8gaW5wdXRDbGVhclRwbCA6IHByb3BzWydzdWZmaXgnXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgICBbbnpCb3JkZXJsZXNzXT1cInByb3BzWydib3JkZXJsZXNzJ11cIlxuICAgICAgICAgICAgW256QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxuei1hdXRvY29tcGxldGVcbiAgICAgICAgICAgIFtuekJhY2tmaWxsXT1cInByb3BzWydhdXRvY29tcGxldGVPcHRpb25zJ10/LmJhY2tmaWxsXCJcbiAgICAgICAgICAgIFtuekRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbl09XCJwcm9wc1snYXV0b2NvbXBsZXRlT3B0aW9ucyddPy5kZWZhdWx0QWN0aXZlRmlyc3RPcHRpb25cIlxuICAgICAgICAgICAgW256V2lkdGhdPVwicHJvcHNbJ2F1dG9jb21wbGV0ZU9wdGlvbnMnXT8ud2lkdGhcIlxuICAgICAgICAgICAgW256T3ZlcmxheUNsYXNzTmFtZV09XCJwcm9wc1snYXV0b2NvbXBsZXRlT3B0aW9ucyddPy5vdmVybGF5Q2xhc3NOYW1lXCJcbiAgICAgICAgICAgIFtuek92ZXJsYXlTdHlsZV09XCJwcm9wc1snYXV0b2NvbXBsZXRlT3B0aW9ucyddPy5vdmVybGF5U3R5bGVcIlxuICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cInByb3BzWydhdXRvY29tcGxldGVPcHRpb25zJ10/LmNvbXBhcmVXaXRoXCJcbiAgICAgICAgICAgICNhdXRvXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHByb3BzWydhdXRvY29tcGxldGVPcHRpb25zJ10uZGF0YVNvdXJjZTsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICAgIDxuei1hdXRvLW9wdGlvbiBbbnpMYWJlbF09XCJvcHRpb24ubGFiZWxcIiBbbnpWYWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9uei1hdXRvLW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L256LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgPC9uei1pbnB1dC1ncm91cD5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgnZ3JvdXAnKSB7XG4gICAgICAgIDxuei1pbnB1dC1ncm91cFxuICAgICAgICAgIFtuelByZWZpeEljb25dPVwicHJvcHNbJ3ByZWZpeEljb24nXVwiXG4gICAgICAgICAgW256U3VmZml4SWNvbl09XCJwcm9wc1snc3VmZml4SWNvbiddXCJcbiAgICAgICAgICBbbnpBZGRPbkFmdGVySWNvbl09XCJwcm9wc1snYWRkT25BZnRlckljb24nXVwiXG4gICAgICAgICAgW256QWRkT25CZWZvcmVJY29uXT1cInByb3BzWydhZGRPbkJlZm9yZUljb24nXVwiXG4gICAgICAgICAgW256QWRkT25CZWZvcmVdPVwicHJvcHNbJ2FkZE9uQmVmb3JlJ11cIlxuICAgICAgICAgIFtuekFkZE9uQWZ0ZXJdPVwicHJvcHNbJ2FkZE9uQWZ0ZXInXVwiXG4gICAgICAgICAgW256UHJlZml4XT1cInByb3BzWydwcmVmaXgnXVwiXG4gICAgICAgICAgW256U3VmZml4XT1cInByb3BzWydhbGxvd0NsZWFyJ10hISA/IGlucHV0Q2xlYXJUcGwgOiBwcm9wc1snc3VmZml4J11cIlxuICAgICAgICAgIFtuekNvbXBhY3RdPVwicHJvcHNbJ2NvbXBhY3QnXSEhXCJcbiAgICAgICAgICBbbnpTZWFyY2hdPVwicHJvcHNbJ3NlYXJjaCddISFcIlxuICAgICAgICAgIFtuelNpemVdPVwicHJvcHNbJ3NpemUnXSFcIlxuICAgICAgICAgIFtuelN0YXR1c109XCJwcm9wc1snc3RhdHVzJ10hXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbnotaW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInByb3BzWydjbGFzc05hbWUnXVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJwcm9wc1snc3R5bGUnXVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgICAgICAgICAgW256Qm9yZGVybGVzc109XCIhIXByb3BzWydib3JkZXJsZXNzJ10hIVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcm9wc1snbW9kZWxDaGFuZ2UnXT8uKGZpZWxkLCAkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJwcm9wc1snY2xhc3NOYW1lJ11cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInByb3BzWydzdHlsZSddXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgICAgICBbbnpTaXplXT1cInByb3BzWydzaXplJ11cIlxuICAgICAgICAgIFtuelN0YXR1c109XCJwcm9wc1snc3RhdHVzJ11cIlxuICAgICAgICAgIFtuekJvcmRlcmxlc3NdPVwicHJvcHNbJ2JvcmRlcmxlc3MnXSEhXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcm9wc1snbW9kZWxDaGFuZ2UnXSAmJiBwcm9wc1snbW9kZWxDaGFuZ2UnXShmaWVsZCwgJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgPCEtLSDmn6XnnIvlr4bnoIEgLS0+XG4gICAgPG5nLXRlbXBsYXRlICNwYXNzd29yZEV5ZVRwbD5cbiAgICAgIDxzcGFuXG4gICAgICAgIG56LWljb25cbiAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIFtuelR5cGVdPVwicGFzc3dvcmRWaXNpYmxlID8gJ2V5ZS1pbnZpc2libGUnIDogJ2V5ZSdcIlxuICAgICAgICAoY2xpY2spPVwicGFzc3dvcmRWaXNpYmxlID0gIXBhc3N3b3JkVmlzaWJsZVwiXG4gICAgICA+PC9zcGFuPlxuXG4gICAgICBAaWYgKGZvcm1Db250cm9sLnZhbHVlICYmIHByb3BzWydhbGxvd0NsZWFyJ10hISkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIG56LWljb25cbiAgICAgICAgICBjbGFzcz1cImFudC1pbnB1dC1jbGVhci1pY29uXCJcbiAgICAgICAgICBuelRoZW1lPVwiZmlsbFwiXG4gICAgICAgICAgbnpUeXBlPVwiY2xvc2UtY2lyY2xlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucmVzZXQoKVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8IS0tIOa4hemZpOaVsOaNriAtLT5cbiAgICA8bmctdGVtcGxhdGUgI2lucHV0Q2xlYXJUcGw+XG4gICAgICBAaWYgKGZvcm1Db250cm9sLnZhbHVlICYmICFwcm9wc1snZGlzYWJsZWQnXSAmJiAhcHJvcHNbJ3JlYWRvbmx5J10pIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBuei1pY29uXG4gICAgICAgICAgY2xhc3M9XCJhbnQtaW5wdXQtY2xlYXItaWNvblwiXG4gICAgICAgICAgbnpUaGVtZT1cImZpbGxcIlxuICAgICAgICAgIG56VHlwZT1cImNsb3NlLWNpcmNsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnJlc2V0KClcIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkSW5wdXQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPiB7XG4gIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xuICAgIHByb3BzOiB7XG4gICAgICBib3JkZXJsZXNzOiBmYWxzZSxcbiAgICAgIGNvbXBhY3Q6IGZhbHNlLFxuICAgICAgc2VhcmNoOiBmYWxzZSxcbiAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLFxuICAgICAgYXV0b2NvbXBsZXRlT3B0aW9uczoge1xuICAgICAgICBiYWNrZmlsbDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZSxcbiAgICAgICAgY29tcGFyZVdpdGg6IChvMTogTnpTYWZlQW55LCBvMjogTnpTYWZlQW55KSA9PiBvMSA9PT0gbzJcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHBhc3N3b3JkVmlzaWJsZSA9IGZhbHNlO1xufVxuIl19
321
+ }], ctorParameters: () => [{ type: i1.FormlyBoxTemplates, decorators: [{
322
+ type: Optional
323
+ }] }] });
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm1seWFudGQvaW5wdXQvc3JjL2lucHV0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQXNKbEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQTBCO0lBZ0I5RCxZQUErQixjQUFrQztRQUMvRCxLQUFLLEVBQUUsQ0FBQztRQURxQixtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFmeEQsbUJBQWMsR0FBRztZQUN4QixLQUFLLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixtQkFBbUIsRUFBRTtvQkFDbkIsUUFBUSxFQUFFLEtBQUs7b0JBQ2Ysd0JBQXdCLEVBQUUsSUFBSTtvQkFDOUIsV0FBVyxFQUFFLENBQUMsRUFBYSxFQUFFLEVBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7aUJBQ3pEO2FBQ0Y7U0FDRixDQUFDO1FBQ0Ysb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFJeEIsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OEdBMUJVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGlGQTVJakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUlUOzsyRkFHVSxnQkFBZ0I7a0JBOUk1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5SVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFpQmMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3B0aW9uYWwsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgTnpGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ25neC1mb3JtbHktem9ycm8tYW50ZC9jb21tb24nO1xyXG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XHJcbmltcG9ydCB7IEZvcm1seUJveFRlbXBsYXRlcywgcmVzb2x2ZVRwbE5hbWUgfSBmcm9tICduZ3gtZm9ybWx5LXpvcnJvLWFudGQvY29tbW9uJztcclxuXHJcbmltcG9ydCB0eXBlIHsgSW5wdXRQcm9wcyB9IGZyb20gJy4vaW5wdXQucHJvcHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlJbnB1dEZpZWxkQ29uZmlnIGV4dGVuZHMgTnpGb3JtbHlGaWVsZENvbmZpZzxJbnB1dFByb3BzPiB7XHJcbiAgdHlwZTogJ2lucHV0JyB8ICdzdHJpbmcnIHwgJ3Bhc3N3b3JkJyB8IFR5cGU8Rm9ybWx5RmllbGRJbnB1dD47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZm9ybWx5LWZpZWxkLWlucHV0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgQHN3aXRjaCAocHJvcHMudHlwZSkge1xyXG4gICAgICBAY2FzZSAoJ3Bhc3N3b3JkJykge1xyXG4gICAgICAgIDxuei1pbnB1dC1ncm91cFxyXG4gICAgICAgICAgW256UHJlZml4SWNvbl09XCJwcm9wc1sncHJlZml4SWNvbiddXCJcclxuICAgICAgICAgIFtuelN1ZmZpeEljb25dPVwicHJvcHNbJ3N1ZmZpeEljb24nXVwiXHJcbiAgICAgICAgICBbbnpBZGRPbkFmdGVySWNvbl09XCJwcm9wc1snYWRkT25BZnRlckljb24nXVwiXHJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZUljb25dPVwicHJvcHNbJ2FkZE9uQmVmb3JlSWNvbiddXCJcclxuICAgICAgICAgIFtuekFkZE9uQmVmb3JlXT1cImFkZE9uQmVmb3JlXCJcclxuICAgICAgICAgIFtuekFkZE9uQWZ0ZXJdPVwiYWRkT25BZnRlclwiXHJcbiAgICAgICAgICBbbnpQcmVmaXhdPVwicHJvcHNbJ3ByZWZpeCddXCJcclxuICAgICAgICAgIFtuekNvbXBhY3RdPVwicHJvcHNbJ2NvbXBhY3QnXSEhXCJcclxuICAgICAgICAgIFtuelNlYXJjaF09XCJwcm9wc1snc2VhcmNoJ10hIVwiXHJcbiAgICAgICAgICBbbnpTaXplXT1cInByb3BzWydzaXplJ10hXCJcclxuICAgICAgICAgIFtuelN0YXR1c109XCJwcm9wc1snc3RhdHVzJ10hXCJcclxuICAgICAgICAgIFtuelN1ZmZpeF09XCJwYXNzd29yZEV5ZVRwbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIFt0eXBlXT1cInBhc3N3b3JkVmlzaWJsZSA/ICd0ZXh0JyA6ICdwYXNzd29yZCdcIlxyXG4gICAgICAgICAgICBuei1pbnB1dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXHJcbiAgICAgICAgICAgIFtuekJvcmRlcmxlc3NdPVwicHJvcHNbJ2JvcmRlcmxlc3MnXSEhXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicHJvcHNbJ21vZGVsQ2hhbmdlJ10gJiYgcHJvcHNbJ21vZGVsQ2hhbmdlJ10oZmllbGQsICRldmVudClcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnYXV0b0NvbXBsZXRlJykge1xyXG4gICAgICAgIDxuei1pbnB1dC1ncm91cFxyXG4gICAgICAgICAgW256U2l6ZV09XCJwcm9wc1snc2l6ZSddXCJcclxuICAgICAgICAgIFtuelByZWZpeEljb25dPVwicHJvcHNbJ3ByZWZpeEljb24nXVwiXHJcbiAgICAgICAgICBbbnpTdWZmaXhJY29uXT1cInByb3BzWydzdWZmaXhJY29uJ11cIlxyXG4gICAgICAgICAgW256QWRkT25BZnRlckljb25dPVwicHJvcHNbJ2FkZE9uQWZ0ZXJJY29uJ11cIlxyXG4gICAgICAgICAgW256QWRkT25CZWZvcmVJY29uXT1cInByb3BzWydhZGRPbkJlZm9yZUljb24nXVwiXHJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZV09XCJhZGRPbkJlZm9yZVwiXHJcbiAgICAgICAgICBbbnpBZGRPbkFmdGVyXT1cImFkZE9uQWZ0ZXJcIlxyXG4gICAgICAgICAgW256UHJlZml4XT1cInByb3BzWydwcmVmaXgnXVwiXHJcbiAgICAgICAgICBbbnpTdWZmaXhdPVwicHJvcHNbJ2FsbG93Q2xlYXInXSEhID8gaW5wdXRDbGVhclRwbCA6IHByb3BzWydzdWZmaXgnXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIG56LWlucHV0XHJcbiAgICAgICAgICAgIFtuekJvcmRlcmxlc3NdPVwicHJvcHNbJ2JvcmRlcmxlc3MnXVwiXHJcbiAgICAgICAgICAgIFtuekF1dG9jb21wbGV0ZV09XCJhdXRvXCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxuei1hdXRvY29tcGxldGVcclxuICAgICAgICAgICAgW256QmFja2ZpbGxdPVwicHJvcHNbJ2F1dG9jb21wbGV0ZU9wdGlvbnMnXT8uYmFja2ZpbGxcIlxyXG4gICAgICAgICAgICBbbnpEZWZhdWx0QWN0aXZlRmlyc3RPcHRpb25dPVwicHJvcHNbJ2F1dG9jb21wbGV0ZU9wdGlvbnMnXT8uZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uXCJcclxuICAgICAgICAgICAgW256V2lkdGhdPVwicHJvcHNbJ2F1dG9jb21wbGV0ZU9wdGlvbnMnXT8ud2lkdGhcIlxyXG4gICAgICAgICAgICBbbnpPdmVybGF5Q2xhc3NOYW1lXT1cInByb3BzWydhdXRvY29tcGxldGVPcHRpb25zJ10/Lm92ZXJsYXlDbGFzc05hbWVcIlxyXG4gICAgICAgICAgICBbbnpPdmVybGF5U3R5bGVdPVwicHJvcHNbJ2F1dG9jb21wbGV0ZU9wdGlvbnMnXT8ub3ZlcmxheVN0eWxlXCJcclxuICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cInByb3BzWydhdXRvY29tcGxldGVPcHRpb25zJ10/LmNvbXBhcmVXaXRoXCJcclxuICAgICAgICAgICAgI2F1dG9cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHByb3BzWydhdXRvY29tcGxldGVPcHRpb25zJ10uZGF0YVNvdXJjZTsgdHJhY2sgb3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgPG56LWF1dG8tb3B0aW9uIFtuekxhYmVsXT1cIm9wdGlvbi5sYWJlbFwiIFtuelZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgPC9uei1hdXRvLW9wdGlvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9uei1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgPC9uei1pbnB1dC1ncm91cD5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ2dyb3VwJykge1xyXG4gICAgICAgIDxuei1pbnB1dC1ncm91cFxyXG4gICAgICAgICAgW256UHJlZml4SWNvbl09XCJwcm9wc1sncHJlZml4SWNvbiddXCJcclxuICAgICAgICAgIFtuelN1ZmZpeEljb25dPVwicHJvcHNbJ3N1ZmZpeEljb24nXVwiXHJcbiAgICAgICAgICBbbnpBZGRPbkFmdGVySWNvbl09XCJwcm9wc1snYWRkT25BZnRlckljb24nXVwiXHJcbiAgICAgICAgICBbbnpBZGRPbkJlZm9yZUljb25dPVwicHJvcHNbJ2FkZE9uQmVmb3JlSWNvbiddXCJcclxuICAgICAgICAgIFtuekFkZE9uQmVmb3JlXT1cImFkZE9uQmVmb3JlXCJcclxuICAgICAgICAgIFtuekFkZE9uQWZ0ZXJdPVwiYWRkT25BZnRlclwiXHJcbiAgICAgICAgICBbbnpQcmVmaXhdPVwicHJvcHNbJ3ByZWZpeCddXCJcclxuICAgICAgICAgIFtuelN1ZmZpeF09XCJwcm9wc1snYWxsb3dDbGVhciddISEgPyBpbnB1dENsZWFyVHBsIDogcHJvcHNbJ3N1ZmZpeCddXCJcclxuICAgICAgICAgIFtuekNvbXBhY3RdPVwicHJvcHNbJ2NvbXBhY3QnXSEhXCJcclxuICAgICAgICAgIFtuelNlYXJjaF09XCJwcm9wc1snc2VhcmNoJ10hIVwiXHJcbiAgICAgICAgICBbbnpTaXplXT1cInByb3BzWydzaXplJ10hXCJcclxuICAgICAgICAgIFtuelN0YXR1c109XCJwcm9wc1snc3RhdHVzJ10hXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgbnotaW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJwcm9wc1snbmdDbGFzcyddXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwicHJvcHNbJ25nU3R5bGUnXVwiXHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgW256Qm9yZGVybGVzc109XCIhIXByb3BzWydib3JkZXJsZXNzJ10hIVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByb3BzWydtb2RlbENoYW5nZSddPy4oZmllbGQsICRldmVudClcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxyXG4gICAgICB9XHJcbiAgICAgIEBkZWZhdWx0IHtcclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG56LWlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJwcm9wc1snbmdDbGFzcyddXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInByb3BzWyduZ1N0eWxlJ11cIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcclxuICAgICAgICAgIFtuelNpemVdPVwicHJvcHNbJ3NpemUnXVwiXHJcbiAgICAgICAgICBbbnpTdGF0dXNdPVwicHJvcHNbJ3N0YXR1cyddXCJcclxuICAgICAgICAgIFtuekJvcmRlcmxlc3NdPVwicHJvcHNbJ2JvcmRlcmxlc3MnXSEhXCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByb3BzWydtb2RlbENoYW5nZSddICYmIHByb3BzWydtb2RlbENoYW5nZSddKGZpZWxkLCAkZXZlbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgPCEtLSDmn6XnnIvlr4bnoIEgLS0+XHJcbiAgICA8bmctdGVtcGxhdGUgI3Bhc3N3b3JkRXllVHBsPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIG56LWljb25cclxuICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICBbbnpUeXBlXT1cInBhc3N3b3JkVmlzaWJsZSA/ICdleWUtaW52aXNpYmxlJyA6ICdleWUnXCJcclxuICAgICAgICAoY2xpY2spPVwicGFzc3dvcmRWaXNpYmxlID0gIXBhc3N3b3JkVmlzaWJsZVwiXHJcbiAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICBAaWYgKGZvcm1Db250cm9sLnZhbHVlICYmIHByb3BzWydhbGxvd0NsZWFyJ10hISkge1xyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBuei1pY29uXHJcbiAgICAgICAgICBjbGFzcz1cImFudC1pbnB1dC1jbGVhci1pY29uXCJcclxuICAgICAgICAgIG56VGhlbWU9XCJmaWxsXCJcclxuICAgICAgICAgIG56VHlwZT1cImNsb3NlLWNpcmNsZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucmVzZXQoKVwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwhLS0g5riF6Zmk5pWw5o2uIC0tPlxyXG4gICAgPG5nLXRlbXBsYXRlICNpbnB1dENsZWFyVHBsPlxyXG4gICAgICBAaWYgKGZvcm1Db250cm9sLnZhbHVlICYmICFwcm9wc1snZGlzYWJsZWQnXSAmJiAhcHJvcHNbJ3JlYWRvbmx5J10pIHtcclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgbnotaWNvblxyXG4gICAgICAgICAgY2xhc3M9XCJhbnQtaW5wdXQtY2xlYXItaWNvblwiXHJcbiAgICAgICAgICBuelRoZW1lPVwiZmlsbFwiXHJcbiAgICAgICAgICBuelR5cGU9XCJjbG9zZS1jaXJjbGVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnJlc2V0KClcIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRJbnB1dCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+IHtcclxuICBvdmVycmlkZSBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGJvcmRlcmxlc3M6IGZhbHNlLFxyXG4gICAgICBjb21wYWN0OiBmYWxzZSxcclxuICAgICAgc2VhcmNoOiBmYWxzZSxcclxuICAgICAgYWxsb3dDbGVhcjogZmFsc2UsXHJcbiAgICAgIGF1dG9jb21wbGV0ZU9wdGlvbnM6IHtcclxuICAgICAgICBiYWNrZmlsbDogZmFsc2UsXHJcbiAgICAgICAgZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uOiB0cnVlLFxyXG4gICAgICAgIGNvbXBhcmVXaXRoOiAobzE6IE56U2FmZUFueSwgbzI6IE56U2FmZUFueSkgPT4gbzEgPT09IG8yXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIHBhc3N3b3JkVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgZmllbGRUZW1wbGF0ZXM6IEZvcm1seUJveFRlbXBsYXRlcykge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRPbkJlZm9yZSgpIHtcclxuICAgIHJldHVybiByZXNvbHZlVHBsTmFtZSh0aGlzLnByb3BzLCB0aGlzLmZpZWxkVGVtcGxhdGVzLCAnYWRkT25CZWZvcmUnKTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRPbkFmdGVyKCkge1xyXG4gICAgcmV0dXJuIHJlc29sdmVUcGxOYW1lKHRoaXMucHJvcHMsIHRoaXMuZmllbGRUZW1wbGF0ZXMsICdhZGRPbkFmdGVyJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==