@koobiq/components 18.31.0 → 18.32.0

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 (215) hide show
  1. package/actions-panel/actions-panel-config.d.ts +2 -0
  2. package/actions-panel/actions-panel.d.ts +3 -57
  3. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
  4. package/autocomplete/autocomplete.component.d.ts +1 -0
  5. package/autocomplete/autocomplete.module.d.ts +1 -1
  6. package/button-toggle/button-toggle.module.d.ts +3 -4
  7. package/code-block/code-block-highlight.d.ts +1 -2
  8. package/code-block/code-block.d.ts +57 -10
  9. package/core/common-behaviors/color.d.ts +3 -0
  10. package/core/common-behaviors/common-module.d.ts +16 -3
  11. package/core/form-field/form-field-ref.d.ts +5 -3
  12. package/core/option/option.d.ts +2 -2
  13. package/core/public-api.d.ts +1 -0
  14. package/core/styles/common/_select.scss +10 -24
  15. package/core/styles/theming/_theming.scss +0 -4
  16. package/core/tokens/index.d.ts +1 -0
  17. package/core/tokens/window.d.ts +5 -0
  18. package/core/validation/validation.d.ts +23 -2
  19. package/datepicker/datepicker-input.scss +1 -5
  20. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  21. package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
  22. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  23. package/esm2022/actions-panel/actions-panel.mjs +16 -113
  24. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
  25. package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
  26. package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
  27. package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
  28. package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
  29. package/esm2022/code-block/code-block-highlight.mjs +8 -12
  30. package/esm2022/code-block/code-block.mjs +60 -18
  31. package/esm2022/core/common-behaviors/color.mjs +4 -1
  32. package/esm2022/core/common-behaviors/common-module.mjs +19 -26
  33. package/esm2022/core/form-field/form-field-ref.mjs +3 -4
  34. package/esm2022/core/option/option.mjs +7 -5
  35. package/esm2022/core/public-api.mjs +2 -1
  36. package/esm2022/core/tokens/index.mjs +2 -0
  37. package/esm2022/core/tokens/window.mjs +19 -0
  38. package/esm2022/core/utils/utils.mjs +2 -1
  39. package/esm2022/core/validation/validation.mjs +21 -2
  40. package/esm2022/core/version.mjs +2 -2
  41. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  42. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  43. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
  44. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
  45. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  46. package/esm2022/filter-bar/filter-bar.mjs +17 -3
  47. package/esm2022/filter-bar/filter-search.mjs +2 -2
  48. package/esm2022/filter-bar/filters.mjs +3 -3
  49. package/esm2022/filter-bar/pipes/pipe-date.mjs +5 -11
  50. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +5 -11
  51. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  52. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  53. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  54. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  55. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  56. package/esm2022/form-field/cleaner.mjs +11 -6
  57. package/esm2022/form-field/error.mjs +20 -0
  58. package/esm2022/form-field/fieldset.mjs +84 -0
  59. package/esm2022/form-field/form-field-control.mjs +2 -2
  60. package/esm2022/form-field/form-field.mjs +247 -74
  61. package/esm2022/form-field/form-field.module.mjs +59 -47
  62. package/esm2022/form-field/hint.mjs +10 -18
  63. package/esm2022/form-field/label.mjs +19 -0
  64. package/esm2022/form-field/password-hint.mjs +6 -5
  65. package/esm2022/form-field/password-toggle.mjs +52 -27
  66. package/esm2022/form-field/prefix.mjs +9 -3
  67. package/esm2022/form-field/public-api.mjs +5 -2
  68. package/esm2022/form-field/reactive-password-hint.mjs +65 -0
  69. package/esm2022/form-field/stepper.mjs +34 -16
  70. package/esm2022/form-field/suffix.mjs +8 -3
  71. package/esm2022/form-field/validate.directive.mjs +16 -19
  72. package/esm2022/input/input-number.mjs +7 -2
  73. package/esm2022/input/input.module.mjs +1 -5
  74. package/esm2022/modal/modal-util.mjs +2 -1
  75. package/esm2022/navbar/navbar-item.component.mjs +10 -11
  76. package/esm2022/overflow-items/overflow-items.mjs +27 -10
  77. package/esm2022/radio/radio.module.mjs +4 -5
  78. package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
  79. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
  80. package/esm2022/select/select.component.mjs +11 -8
  81. package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
  82. package/esm2022/splitter/splitter.component.mjs +5 -3
  83. package/esm2022/tabs/paginated-tab-header.mjs +6 -2
  84. package/esm2022/tabs/tabs.module.mjs +1 -5
  85. package/esm2022/tags/tag-list.component.mjs +2 -2
  86. package/esm2022/textarea/textarea.component.mjs +7 -6
  87. package/esm2022/textarea/textarea.module.mjs +4 -5
  88. package/esm2022/timezone/timezone-select.component.mjs +6 -4
  89. package/esm2022/toast/toast-animations.mjs +2 -2
  90. package/esm2022/toast/toast.component.mjs +3 -3
  91. package/esm2022/toggle/toggle.component.mjs +3 -3
  92. package/esm2022/toggle/toggle.module.mjs +4 -5
  93. package/esm2022/top-bar/top-bar.mjs +2 -2
  94. package/esm2022/tree/padding.directive.mjs +8 -6
  95. package/esm2022/tree-select/tree-select.component.mjs +18 -13
  96. package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
  97. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
  99. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  101. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-button-toggle.mjs +5 -5
  103. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-code-block.mjs +65 -28
  105. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-core.mjs +68 -35
  107. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-datepicker.mjs +4 -4
  109. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-dropdown.mjs +3 -2
  111. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
  113. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-file-upload.mjs +1 -1
  115. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-filter-bar.mjs +30 -29
  117. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-form-field.mjs +610 -219
  119. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-input.mjs +7 -5
  121. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-modal.mjs +1 -0
  123. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-navbar.mjs +9 -10
  125. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
  127. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-radio.mjs +4 -4
  129. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
  131. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-select.mjs +11 -8
  133. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-sidepanel.mjs +1 -4
  135. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-splitter.mjs +4 -2
  137. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-tabs.mjs +5 -5
  139. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-tags.mjs +2 -2
  141. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-textarea.mjs +9 -8
  143. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-timezone.mjs +5 -3
  145. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-toast.mjs +3 -3
  147. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-toggle.mjs +6 -6
  149. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  151. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-tree-select.mjs +18 -13
  153. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-tree.mjs +7 -5
  155. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  156. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  157. package/form-field/_fiedset-theme.scss +13 -0
  158. package/form-field/_form-field-theme.scss +29 -13
  159. package/form-field/_hint-theme.scss +21 -22
  160. package/form-field/cleaner.d.ts +5 -1
  161. package/form-field/cleaner.scss +1 -4
  162. package/form-field/error.d.ts +8 -0
  163. package/form-field/fieldset-tokens.scss +5 -0
  164. package/form-field/fieldset.d.ts +27 -0
  165. package/form-field/fieldset.scss +93 -0
  166. package/form-field/form-field-control.d.ts +1 -1
  167. package/form-field/form-field-tokens.scss +13 -3
  168. package/form-field/form-field.d.ts +210 -22
  169. package/form-field/form-field.module.d.ts +14 -12
  170. package/form-field/form-field.scss +58 -78
  171. package/form-field/hint.d.ts +5 -1
  172. package/form-field/hint.scss +3 -5
  173. package/form-field/label.d.ts +6 -0
  174. package/form-field/password-hint.d.ts +1 -1
  175. package/form-field/password-toggle.d.ts +25 -11
  176. package/form-field/password-toggle.scss +1 -2
  177. package/form-field/prefix.d.ts +2 -1
  178. package/form-field/public-api.d.ts +4 -1
  179. package/form-field/reactive-password-hint.d.ts +19 -0
  180. package/form-field/stepper.d.ts +20 -8
  181. package/form-field/stepper.scss +12 -11
  182. package/form-field/suffix.d.ts +2 -1
  183. package/form-field/validate.directive.d.ts +10 -12
  184. package/input/input-tokens.scss +2 -2
  185. package/input/input.module.d.ts +3 -4
  186. package/input/input.scss +1 -2
  187. package/navbar/navbar-item.component.d.ts +3 -1
  188. package/overflow-items/overflow-items.d.ts +12 -5
  189. package/package.json +4 -4
  190. package/prebuilt-themes/dark-theme.css +1 -1
  191. package/prebuilt-themes/light-theme.css +1 -1
  192. package/prebuilt-themes/theme.css +1 -1
  193. package/radio/radio.module.d.ts +1 -2
  194. package/schematics/ng-add/index.js +2 -2
  195. package/scrollbar/scrollbar.component.d.ts +1 -0
  196. package/select/select-tokens.scss +5 -4
  197. package/select/select.component.d.ts +4 -2
  198. package/sidepanel/sidepanel.module.d.ts +5 -6
  199. package/splitter/splitter.component.d.ts +1 -0
  200. package/tabs/paginated-tab-header.d.ts +1 -0
  201. package/tabs/tabs.module.d.ts +5 -6
  202. package/tags/tag-list.scss +8 -4
  203. package/textarea/textarea.component.d.ts +1 -0
  204. package/textarea/textarea.module.d.ts +2 -3
  205. package/timepicker/timepicker.scss +1 -1
  206. package/toast/toast.component.scss +2 -0
  207. package/toggle/_toggle-theme.scss +10 -2
  208. package/toggle/toggle-tokens.scss +7 -1
  209. package/toggle/toggle.module.d.ts +1 -2
  210. package/toggle/toggle.scss +6 -6
  211. package/top-bar/top-bar.scss +48 -32
  212. package/tree/padding.directive.d.ts +1 -1
  213. package/tree-select/tree-select.component.d.ts +2 -0
  214. package/esm2022/form-field/form-field-errors.mjs +0 -7
  215. package/form-field/form-field-errors.d.ts +0 -2
@@ -1,6 +1,6 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
- import { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, DestroyRef, Directive, ElementRef, inject, Optional, QueryList, Self, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { Attribute, booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, DestroyRef, Directive, ElementRef, inject, InjectionToken, input, Optional, QueryList, Self, ViewChild, ViewEncapsulation } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { NgControl } from '@angular/forms';
6
6
  import { ESCAPE, F8 } from '@koobiq/cdk/keycodes';
@@ -8,123 +8,250 @@ import { KBQ_FORM_FIELD_REF, KbqColorDirective } from '@koobiq/components/core';
8
8
  import { EMPTY, merge } from 'rxjs';
9
9
  import { startWith } from 'rxjs/operators';
10
10
  import { KbqCleaner } from './cleaner';
11
+ import { KbqError } from './error';
11
12
  import { KbqFormFieldControl } from './form-field-control';
12
- import { getKbqFormFieldMissingControlError, getKbqFormFieldYouCanNotUseCleanerInNumberInputError } from './form-field-errors';
13
13
  import { KbqHint } from './hint';
14
+ import { KbqLabel } from './label';
14
15
  import { hasPasswordStrengthError, KbqPasswordHint } from './password-hint';
15
16
  import { KbqPasswordToggle } from './password-toggle';
16
17
  import { KbqPrefix } from './prefix';
18
+ import { KbqReactivePasswordHint } from './reactive-password-hint';
17
19
  import { KbqStepper } from './stepper';
18
20
  import { KbqSuffix } from './suffix';
19
21
  import * as i0 from "@angular/core";
20
- import * as i1 from "@angular/cdk/a11y";
21
- import * as i2 from "@angular/forms";
22
- let nextUniqueId = 0;
22
+ import * as i1 from "@angular/forms";
23
+ /** @docs-private */
24
+ export function getKbqFormFieldMissingControlError() {
25
+ return Error('kbq-form-field must contain a KbqFormFieldControl');
26
+ }
27
+ /** @docs-private */
28
+ export function getKbqFormFieldYouCanNotUseCleanerInNumberInputError() {
29
+ return Error(`You can't use kbq-cleaner with input that have type="number"`);
30
+ }
31
+ /**
32
+ * Injection token that can be used to configure the default options for all kbq-form-field's.
33
+ */
34
+ export const KBQ_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken('KBQ_FORM_FIELD_DEFAULT_OPTIONS');
35
+ /** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */
36
+ export const kbqFormFieldDefaultOptionsProvider = (options) => ({
37
+ provide: KBQ_FORM_FIELD_DEFAULT_OPTIONS,
38
+ useValue: options
39
+ });
40
+ /** Container for form controls that applies styling and behavior. */
23
41
  export class KbqFormField extends KbqColorDirective {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.destroyRef = inject(DestroyRef);
45
+ this.changeDetectorRef = inject(ChangeDetectorRef);
46
+ this.focusMonitor = inject(FocusMonitor);
47
+ this.defaultOptions = inject(KBQ_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });
48
+ /**
49
+ * @docs-private
50
+ */
51
+ this.elementRef = inject(ElementRef);
52
+ /** Disables form field borders and shadows. */
53
+ this.noBorders = input(this.defaultOptions?.noBorders, { transform: booleanAttribute });
54
+ /**
55
+ * @docs-private
56
+ */
57
+ this.hovered = false;
58
+ /**
59
+ * @docs-private
60
+ */
61
+ this.canCleanerClearByEsc = true;
62
+ /**
63
+ * @deprecated stepper should be always visible when provided, so this parameter is redundant,
64
+ * use `hasStepper` instead
65
+ *
66
+ * @docs-private
67
+ */
68
+ this.canShowStepper = true;
69
+ /**
70
+ * Runs the focus monitor for the form field.
71
+ *
72
+ * @docs-private
73
+ */
74
+ this.runFocusMonitor = () => {
75
+ this.focusMonitor
76
+ .monitor(this.elementRef.nativeElement, true)
77
+ .pipe(takeUntilDestroyed(this.destroyRef))
78
+ .subscribe((origin) => (this._focusOrigin = origin));
79
+ };
80
+ }
81
+ /** Whether the form field is invalid. */
82
+ get invalid() {
83
+ return !!this.control?.errorState;
84
+ }
85
+ /**
86
+ * Whether the form field control has an reactive password hint.
87
+ *
88
+ * @docs-private
89
+ */
90
+ get hasReactivePasswordHint() {
91
+ return this.reactivePasswordHint.length > 0;
92
+ }
93
+ /**
94
+ * Whether the form-field contains kbq-error.
95
+ *
96
+ * @docs-private
97
+ */
98
+ get hasError() {
99
+ return this.error.length > 0;
100
+ }
101
+ /**
102
+ * Whether the form-field contains kbq-label.
103
+ *
104
+ * @docs-private
105
+ */
106
+ get hasLabel() {
107
+ return !!this.label;
108
+ }
109
+ /**
110
+ * Whether the form-field contains kbq-password-hint.
111
+ *
112
+ * @docs-private
113
+ */
114
+ get hasPasswordHint() {
115
+ return this.passwordHints?.length > 0;
116
+ }
117
+ /**
118
+ * Current focus origin state.
119
+ *
120
+ * @docs-private
121
+ */
24
122
  get focusOrigin() {
25
123
  return this._focusOrigin;
26
124
  }
125
+ /**
126
+ * @docs-private
127
+ */
27
128
  get hasFocus() {
28
129
  return this.control?.focused;
29
130
  }
131
+ /**
132
+ * Whether the form-field contains kbq-hint.
133
+ *
134
+ * @docs-private
135
+ */
30
136
  get hasHint() {
31
137
  return this.hint?.length > 0;
32
138
  }
139
+ /**
140
+ * Whether the form-field contains kbqSuffix.
141
+ *
142
+ * @docs-private
143
+ */
33
144
  get hasSuffix() {
34
145
  return this.suffix?.length > 0;
35
146
  }
147
+ /**
148
+ * Whether the form-field contains kbqPrefix.
149
+ *
150
+ * @docs-private
151
+ */
36
152
  get hasPrefix() {
37
153
  return this.prefix?.length > 0;
38
154
  }
155
+ /**
156
+ * Whether the form-field contains kbq-cleaner.
157
+ *
158
+ * @docs-private
159
+ */
39
160
  get hasCleaner() {
40
161
  return !!this.cleaner;
41
162
  }
163
+ /**
164
+ * Whether the form-field contains kbq-stepper.
165
+ *
166
+ * @docs-private
167
+ */
42
168
  get hasStepper() {
43
169
  return !!this.stepper;
44
170
  }
171
+ /**
172
+ * Whether the form-field contains kbq-password-toggle.
173
+ *
174
+ * @docs-private
175
+ */
45
176
  get hasPasswordToggle() {
46
177
  return !!this.passwordToggle;
47
178
  }
179
+ /**
180
+ * @docs-private
181
+ */
48
182
  get canShowCleaner() {
49
- return this.hasCleaner && this.control?.ngControl
50
- ? this.control.ngControl.value && !this.control.disabled
51
- : false;
183
+ return this.hasCleaner && this.control?.ngControl ? this.control.ngControl.value && !this.disabled : false;
52
184
  }
185
+ /** Whether the form field is disabled. */
53
186
  get disabled() {
54
187
  return this.control?.disabled;
55
188
  }
56
- constructor(changeDetectorRef, focusMonitor) {
57
- super();
58
- this.changeDetectorRef = changeDetectorRef;
59
- this.focusMonitor = focusMonitor;
60
- // Unique id for the internal form field label.
61
- this.labelId = `kbq-form-field-label-${nextUniqueId++}`;
62
- this.hovered = false;
63
- this.canCleanerClearByEsc = true;
64
- this.destroyRef = inject(DestroyRef);
65
- /** @deprecated stepper should be always visible when provided, so this parameter is redundant,
66
- * use `hasStepper` instead */
67
- this.canShowStepper = true;
68
- this.runFocusMonitor = () => {
69
- this.focusMonitor
70
- .monitor(this.elementRef.nativeElement, true)
71
- .pipe(takeUntilDestroyed(this.destroyRef))
72
- .subscribe((origin) => (this._focusOrigin = origin));
73
- };
74
- }
75
189
  ngAfterContentInit() {
190
+ this.validateControlChild();
76
191
  if (this.control.numberInput && this.hasCleaner) {
77
192
  this.cleaner = null;
78
193
  throw getKbqFormFieldYouCanNotUseCleanerInNumberInputError();
79
194
  }
80
- this.validateControlChild();
81
- if (this.control.controlType) {
82
- this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${this.control.controlType}`);
83
- }
84
195
  // Subscribe to changes in the child control state in order to update the form field UI.
85
196
  this.control.stateChanges.pipe(startWith()).subscribe((state) => {
86
197
  if (this.passwordHints.length && !state?.focused && hasPasswordStrengthError(this.passwordHints)) {
87
198
  this.control.ngControl?.control?.setErrors({ passwordStrength: true });
88
199
  }
89
- this.changeDetectorRef.markForCheck();
90
200
  });
91
201
  if (this.hasStepper) {
92
202
  this.stepper.connectTo(this.control.numberInput);
93
203
  }
94
- // Run change detection if the value changes.
95
- const valueChanges = this.control.ngControl?.valueChanges || EMPTY;
96
- merge(valueChanges, this.hint.changes, this.passwordHints.changes)
97
- .pipe(takeUntilDestroyed(this.destroyRef))
98
- .subscribe(() => this.changeDetectorRef.markForCheck());
204
+ this.initializeControl();
205
+ this.initializePrefixAndSuffix();
206
+ this.initializeHint();
99
207
  }
100
208
  ngAfterContentChecked() {
101
209
  this.validateControlChild();
102
210
  }
103
211
  ngAfterViewInit() {
104
212
  this.runFocusMonitor();
105
- // Avoid animations on load.
213
+ // Because the above changes a value used in the template after it was checked, we need
214
+ // to trigger CD or the change might not be reflected if there is no other CD scheduled.
106
215
  this.changeDetectorRef.detectChanges();
107
216
  }
217
+ ngOnDestroy() {
218
+ this.stopFocusMonitor();
219
+ }
108
220
  /** Focuses the control. */
109
221
  focus(options) {
110
222
  this.control.focus(options);
111
223
  }
112
224
  /**
113
225
  * @deprecated Use `focus` instead.
226
+ *
227
+ * @docs-private
114
228
  */
115
229
  focusViaKeyboard(options) {
116
230
  this.control.focus(options);
117
231
  }
118
- clearValue($event) {
119
- $event.stopPropagation();
232
+ /**
233
+ * @docs-private
234
+ */
235
+ clearValue(event) {
236
+ event.stopPropagation();
120
237
  this.control?.ngControl?.reset();
121
238
  this.control?.focus();
122
239
  }
123
- onContainerClick($event) {
240
+ /**
241
+ * Handles a click on the control's container.
242
+ *
243
+ * @docs-private
244
+ */
245
+ onContainerClick(event) {
124
246
  if (this.control?.onContainerClick) {
125
- this.control.onContainerClick($event);
247
+ this.control.onContainerClick(event);
126
248
  }
127
249
  }
250
+ /**
251
+ * Handles keydown events.
252
+ *
253
+ * @docs-private
254
+ */
128
255
  onKeyDown(event) {
129
256
  if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {
130
257
  this.control.toggleType();
@@ -134,6 +261,9 @@ export class KbqFormField extends KbqColorDirective {
134
261
  event.preventDefault();
135
262
  }
136
263
  }
264
+ /**
265
+ * @docs-private
266
+ */
137
267
  onHoverChanged(isHovered) {
138
268
  if (isHovered !== this.hovered) {
139
269
  this.hovered = isHovered;
@@ -141,45 +271,71 @@ export class KbqFormField extends KbqColorDirective {
141
271
  }
142
272
  }
143
273
  /**
144
- * Gets an ElementRef for the element that a overlay attached to the form-field should be
145
- * positioned relative to.
274
+ * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.
146
275
  */
147
276
  getConnectedOverlayOrigin() {
148
277
  return this.connectionContainerRef || this.elementRef;
149
278
  }
150
- /** Determines whether a class from the NgControl should be forwarded to the host element. */
279
+ /**
280
+ * Determines whether a class from the NgControl should be forwarded to the host element.
281
+ *
282
+ * @docs-private
283
+ */
151
284
  shouldForward(prop) {
152
285
  const ngControl = this.control?.ngControl;
153
286
  return ngControl && ngControl[prop];
154
287
  }
155
- ngOnDestroy() {
156
- this.stopFocusMonitor();
157
- }
288
+ /**
289
+ * Stops the focus monitor for the form field.
290
+ *
291
+ * @docs-private
292
+ */
158
293
  stopFocusMonitor() {
159
294
  this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
160
295
  }
161
- /** Throws an error if the form field's control is missing. */
296
+ /**
297
+ * Throws an error if the form-field control is missing.
298
+ *
299
+ * @docs-private
300
+ */
162
301
  validateControlChild() {
163
302
  if (!this.control) {
164
303
  throw getKbqFormFieldMissingControlError();
165
304
  }
166
305
  }
167
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqFormField, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
168
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqFormField, selector: "kbq-form-field", host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.kbq-form-field_invalid": "control.errorState", "class.kbq-form-field_has-prefix": "hasPrefix", "class.kbq-form-field_has-suffix": "hasSuffix", "class.kbq-form-field_has-password-toggle": "hasPasswordToggle", "class.kbq-form-field_has-cleaner": "canShowCleaner", "class.kbq-form-field_has-stepper": "hasStepper", "class.kbq-disabled": "control.disabled", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "kbq-form-field" }, providers: [
169
- { provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }
170
- ], queries: [{ propertyName: "control", first: true, predicate: KbqFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: KbqStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: KbqCleaner, descendants: true }, { propertyName: "passwordToggle", first: true, predicate: KbqPasswordToggle, descendants: true }, { propertyName: "hint", predicate: KbqHint }, { propertyName: "passwordHints", predicate: KbqPasswordHint }, { propertyName: "suffix", predicate: KbqSuffix }, { propertyName: "prefix", predicate: KbqPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["kbqFormField"], usesInheritance: true, ngImport: i0, template: "<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__infix\">\n <ng-content />\n </div>\n\n @if (hasSuffix) {\n <div class=\"kbq-form-field__suffix\">\n <ng-content select=\"[kbqSuffix]\" />\n </div>\n }\n\n @if (canShowCleaner && !hasSuffix) {\n <div class=\"kbq-form-field__cleaner\" (click)=\"clearValue($event)\" (keydown.enter)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <ng-content select=\"kbq-password-toggle\" />\n\n <ng-content select=\"kbq-stepper\" />\n</div>\n\n@if (hasHint || passwordHints.length) {\n <div class=\"kbq-form-field__hint\">\n <ng-content select=\"kbq-hint, kbq-password-hint\" />\n </div>\n}\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box;position:relative;border-width:var(--kbq-form-field-size-border-width);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius)}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius)}.kbq-form-field:hover{z-index:1}.kbq-form-field.cdk-focused,.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size) + var(--kbq-size-m) + var(--kbq-size-s))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size) + var(--kbq-form-field-size-icon-button-margin-left) + var(--kbq-form-field-size-icon-button-margin-right))}.kbq-form-field+.kbq-password-hint{margin-top:var(--kbq-size-m)}.kbq-form-field .kbq-form-field__prefix,.kbq-form-field .kbq-form-field__suffix{position:absolute;top:0;bottom:0;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field .kbq-form-field__prefix{left:0;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-s)}.kbq-form-field .kbq-form-field__suffix{right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-s)}.kbq-form-field .kbq-form-field__cleaner,.kbq-form-field .kbq-password-toggle,.kbq-form-field .kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-form-field .kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-icon-button-size)}.kbq-form-field .kbq-stepper .kbq-stepper-step-up,.kbq-form-field .kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-icon-button-size);text-align:center}.kbq-form-field .kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field .kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top)}.kbq-form-field .kbq-form-field__hint .kbq-password-hint:first-child{margin-top:var(--kbq-size-s)}.kbq-form-field .kbq-password-hint{margin-top:var(--kbq-form-field-hint-size-gap)}.kbq-form-field .kbq-form-field__container{border-color:var(--kbq-form-field-default-border-color);background-color:var(--kbq-form-field-default-background)}.kbq-form-field .kbq-input,.kbq-form-field .kbq-tag-input,.kbq-form-field .kbq-textarea{color:var(--kbq-form-field-default-text)}.kbq-form-field .kbq-input::placeholder,.kbq-form-field .kbq-tag-input::placeholder,.kbq-form-field .kbq-textarea::placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-ms-input-placeholder,.kbq-form-field .kbq-tag-input::-ms-input-placeholder,.kbq-form-field .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-webkit-input-placeholder,.kbq-form-field .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input:-webkit-autofill,.kbq-form-field .kbq-input:-webkit-autofill:hover,.kbq-form-field .kbq-input:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 40rem var(--kbq-form-field-states-autofill-background);-webkit-text-fill-color:var(--kbq-form-field-states-autofill-text);caret-color:var(--kbq-form-field-states-autofill-text)}.kbq-form-field.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{border-color:var(--kbq-form-field-states-focused-border-color);background-color:var(--kbq-form-field-states-focused-background)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea{color:var(--kbq-form-field-states-focused-text)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-focused-focus-outline)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-error-focused-focus-outline)}.kbq-form-field.kbq-disabled .kbq-form-field__container{border-color:var(--kbq-form-field-states-disabled-border-color);background-color:var(--kbq-form-field-states-disabled-background)}.kbq-form-field.kbq-disabled .kbq-input,.kbq-form-field.kbq-disabled .kbq-tag-input,.kbq-form-field.kbq-disabled .kbq-textarea{color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field.kbq-disabled .kbq-input::placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-form-field-states-disabled-text);-webkit-text-fill-color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field .kbq-form-field__prefix .kbq-icon.kbq-empty,.kbq-form-field .kbq-form-field__suffix .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast-fade)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint,.kbq-contrast-fade,.kbq-success,.kbq-warning,.kbq-error){color:var(--kbq-form-field-hint-text)}.kbq-form-field{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint) .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-size-3xl) - var(--kbq-size-border-width) * 2);padding:calc(var(--kbq-input-size-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-input-size-padding-horizontal)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}.kbq-input,.kbq-input.kbq-input-password::placeholder{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-input.kbq-input-password{font-size:var(--kbq-typography-mono-normal-font-size);font-weight:var(--kbq-typography-mono-normal-font-weight);line-height:var(--kbq-typography-mono-normal-line-height);font-family:var(--kbq-typography-mono-normal-font-family);text-transform:var(--kbq-typography-mono-normal-text-transform);font-feature-settings:var(--kbq-typography-mono-normal-font-feature-settings);letter-spacing:var(--kbq-typography-mono-normal-letter-spacing);font-variant-ligatures:none;font-feature-settings:\"liga\" 0,\"clig\" 0,\"calt\" 0}\n", ".kbq-timepicker{padding-right:var(--kbq-timepicker-size-padding-right)}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:130px}\n", ".kbq-textarea{--kbq-textarea-size-min-height: 64px;--kbq-textarea-size-max-height: 96px;--kbq-textarea-size-padding-vertical: 5px;--kbq-textarea-size-padding-horizontal: var(--kbq-size-m)}.kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical) var(--kbq-textarea-size-padding-horizontal);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height)}.kbq-textarea.kbq-textarea_max-row-limit-reached{resize:unset}.kbq-textarea:invalid{box-shadow:unset}\n", ".kbq-form-field{--kbq-form-field-size-height: var(--kbq-size-3xl);--kbq-form-field-size-border-width: 1px;--kbq-form-field-size-border-radius: var(--kbq-size-border-radius);--kbq-form-field-size-icon-size: var(--kbq-size-l);--kbq-form-field-size-icon-margin-left: var(--kbq-size-s);--kbq-form-field-size-icon-margin-right: var(--kbq-size-s);--kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);--kbq-form-field-size-icon-button-margin-right: var(--kbq-size-xxs);--kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);--kbq-form-field-hint-size-margin-top: var(--kbq-size-xxs);--kbq-form-field-hint-size-gap: var(--kbq-size-s);--kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);--kbq-form-field-default-background: var(--kbq-background-bg);--kbq-form-field-default-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-default-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-focused-background: var(--kbq-background-bg);--kbq-form-field-states-focused-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-focused-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-focus-outline: var(--kbq-states-line-focus-theme);--kbq-form-field-states-error-border-color: var(--kbq-line-error);--kbq-form-field-states-error-background: var(--kbq-background-error-less);--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-tertiary);--kbq-form-field-states-error-text: var(--kbq-foreground-error);--kbq-form-field-states-error-focused-focus-outline: var(--kbq-states-line-focus-error);--kbq-form-field-states-autofill-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-autofill-background: var(--kbq-background-theme-less);--kbq-form-field-states-autofill-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-autofill-text: var(--kbq-foreground-contrast);--kbq-form-field-states-disabled-border-color: var(--kbq-states-line-disabled);--kbq-form-field-states-disabled-background: var(--kbq-states-background-disabled);--kbq-form-field-states-disabled-placeholder: var(--kbq-states-foreground-disabled);--kbq-form-field-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-form-field-hint-text: var(--kbq-foreground-contrast-secondary)}:where(.kbq-dark){--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-secondary)}\n", ".kbq-input{--kbq-input-size-padding-horizontal: var(--kbq-size-m);--kbq-input-size-padding-vertical: var(--kbq-size-xs)}\n", ".kbq-form-field-type-tag-list{--kbq-tag-input-size-padding-left: var(--kbq-size-xxs);--kbq-tag-input-size-padding-right: var(--kbq-size-m);--kbq-tag-input-size-padding-vertical: var(--kbq-size-xxs);--kbq-tag-input-size-content-gap: var(--kbq-size-s)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
306
+ /** Initializes the form field control. */
307
+ initializeControl() {
308
+ if (this.control.controlType) {
309
+ this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${this.control.controlType}`);
310
+ }
311
+ merge(this.control.stateChanges, this.control.ngControl?.valueChanges || EMPTY)
312
+ .pipe(takeUntilDestroyed(this.destroyRef))
313
+ .subscribe(() => this.changeDetectorRef.markForCheck());
314
+ }
315
+ /** Initializes the kbqPrefix and kbqSuffix containers. */
316
+ initializePrefixAndSuffix() {
317
+ // Mark the form field as dirty whenever the prefix or suffix children change. This is necessary because we
318
+ // conditionally display the prefix/suffix containers based on whether there is projected content.
319
+ merge(this.prefix.changes, this.suffix.changes)
320
+ .pipe(takeUntilDestroyed(this.destroyRef))
321
+ .subscribe(() => this.changeDetectorRef.markForCheck());
322
+ }
323
+ /** Initializes the KbqHint, KbqPasswordHint, KbqReactivePasswordHint and KbqError containers. */
324
+ initializeHint() {
325
+ merge(this.hint.changes, this.passwordHints.changes, this.reactivePasswordHint.changes, this.error.changes)
326
+ .pipe(takeUntilDestroyed(this.destroyRef))
327
+ .subscribe(() => this.changeDetectorRef.markForCheck());
328
+ }
329
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqFormField, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
330
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqFormField, isStandalone: true, selector: "kbq-form-field", inputs: { noBorders: { classPropertyName: "noBorders", publicName: "noBorders", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.kbq-form-field_invalid": "invalid", "class.kbq-disabled": "disabled", "class.kbq-form-field_no-borders": "noBorders()", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "kbq-form-field" }, providers: [{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }], queries: [{ propertyName: "control", first: true, predicate: KbqFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: KbqStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: KbqCleaner }, { propertyName: "passwordToggle", first: true, predicate: KbqPasswordToggle, descendants: true }, { propertyName: "label", first: true, predicate: KbqLabel, descendants: true }, { propertyName: "hint", predicate: KbqHint }, { propertyName: "passwordHints", predicate: KbqPasswordHint }, { propertyName: "suffix", predicate: KbqSuffix }, { propertyName: "prefix", predicate: KbqPrefix }, { propertyName: "reactivePasswordHint", predicate: KbqReactivePasswordHint }, { propertyName: "error", predicate: KbqError }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["kbqFormField"], usesInheritance: true, ngImport: i0, template: "@if (hasLabel) {\n <label class=\"kbq-form-field__label\" [attr.for]=\"control.id\">\n <ng-content select=\"kbq-label\" />\n </label>\n}\n\n<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__infix\">\n <ng-content />\n </div>\n\n @if (hasSuffix || hasCleaner || hasPasswordToggle || hasStepper) {\n <div class=\"kbq-form-field__suffix\">\n @if (canShowCleaner) {\n <div class=\"kbq-form-field__cleaner\" (click)=\"clearValue($event)\" (keydown.enter)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <ng-content select=\"kbq-password-toggle, kbq-stepper, [kbqSuffix]\" />\n </div>\n }\n</div>\n\n@if (hasHint || hasPasswordHint || hasError || hasReactivePasswordHint) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-password-hint, kbq-reactive-password-hint\" />\n </div>\n}\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__label{display:flex;margin-bottom:var(--kbq-size-xs)}.kbq-form-field.kbq-form-field-type-select .kbq-form-field__suffix{margin-right:0}.kbq-form-field .kbq-form-field__container{box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;border-width:var(--kbq-form-field-size-border-width);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius);padding-left:var(--kbq-form-field-size-container-left-padding);padding-right:var(--kbq-form-field-size-container-right-padding)}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height)}.kbq-form-field .kbq-form-field__infix{width:100%;max-width:calc(100% - var(--kbq-size-xs));flex-grow:1;padding-left:var(--kbq-form-field-size-infix-left-padding)}.kbq-form-field .kbq-form-field__infix:has(.kbq-select_multiple):not(:has(.kbq-select__trigger_empty)),.kbq-form-field .kbq-form-field__infix:has(.kbq-tag-list){padding-left:0;max-width:100%}.kbq-form-field .kbq-form-field__infix .kbq-input,.kbq-form-field .kbq-form-field__infix .kbq-tag-input{padding-right:var(--kbq-form-field-size-infix-right-padding)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius)}.kbq-form-field:hover{z-index:1}.kbq-form-field.cdk-focused,.kbq-form-field.kbq-focused{z-index:3}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container,.kbq-form-field.kbq-form-field_no-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field+.kbq-password-hint{margin-top:var(--kbq-size-m)}.kbq-form-field .kbq-form-field__prefix,.kbq-form-field .kbq-form-field__suffix{display:flex;justify-content:center;align-items:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field .kbq-form-field__prefix+.kbq-form-field__infix{padding-left:0}.kbq-form-field .kbq-form-field__hint{display:flex;flex-direction:column;gap:var(--kbq-size-xxs);margin-top:var(--kbq-form-field-hint-size-margin-top)}.kbq-form-field .kbq-form-field__hint .kbq-password-hint:first-child{margin-top:var(--kbq-size-s)}.kbq-form-field .kbq-password-hint{margin-top:var(--kbq-form-field-hint-size-gap)}.kbq-form-field .kbq-form-field__container{border-color:var(--kbq-form-field-default-border-color);background-color:var(--kbq-form-field-default-background)}.kbq-form-field .kbq-input,.kbq-form-field .kbq-tag-input,.kbq-form-field .kbq-textarea{color:var(--kbq-form-field-default-text)}.kbq-form-field .kbq-input::placeholder,.kbq-form-field .kbq-tag-input::placeholder,.kbq-form-field .kbq-textarea::placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-ms-input-placeholder,.kbq-form-field .kbq-tag-input::-ms-input-placeholder,.kbq-form-field .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-webkit-input-placeholder,.kbq-form-field .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input:-webkit-autofill,.kbq-form-field .kbq-input:-webkit-autofill:hover,.kbq-form-field .kbq-input:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 40rem var(--kbq-form-field-states-autofill-background);-webkit-text-fill-color:var(--kbq-form-field-states-autofill-text);caret-color:var(--kbq-form-field-states-autofill-text)}.kbq-form-field.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{border-color:var(--kbq-form-field-states-focused-border-color);background-color:var(--kbq-form-field-states-focused-background)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea{color:var(--kbq-form-field-states-focused-text)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-focused-focus-outline)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-error-focused-focus-outline)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty{color:var(--kbq-form-field-states-error-text);-webkit-text-fill-color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-disabled .kbq-form-field__container{border-color:var(--kbq-form-field-states-disabled-border-color);background-color:var(--kbq-form-field-states-disabled-background)}.kbq-form-field.kbq-disabled .kbq-input,.kbq-form-field.kbq-disabled .kbq-tag-input,.kbq-form-field.kbq-disabled .kbq-textarea{color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field.kbq-disabled .kbq-input::placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-form-field-states-disabled-text);-webkit-text-fill-color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field .kbq-form-field__prefix .kbq-icon.kbq-empty,.kbq-form-field .kbq-form-field__suffix .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast-fade)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint,.kbq-contrast-fade,.kbq-success,.kbq-warning,.kbq-error){color:var(--kbq-form-field-hint-text)}.kbq-form-field{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint,.kbq-reactive-password-hint,.kbq-contrast-fade,.kbq-success,.kbq-warning) .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-form-field{--kbq-form-field-size-height: var(--kbq-size-3xl);--kbq-form-field-size-border-width: var(--kbq-size-border-width);--kbq-form-field-size-border-radius: var(--kbq-size-border-radius);--kbq-form-field-size-icon-size: var(--kbq-size-l);--kbq-form-field-size-icon-margin-left: var(--kbq-size-s);--kbq-form-field-size-icon-margin-right: var(--kbq-size-s);--kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);--kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);--kbq-form-field-hint-size-margin-top: var(--kbq-size-xs);--kbq-form-field-hint-size-gap: var(--kbq-size-s);--kbq-form-field-size-container-vertical-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));--kbq-form-field-size-container-left-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));--kbq-form-field-size-container-right-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));--kbq-form-field-size-infix-left-padding: var(--kbq-size-xs);--kbq-form-field-size-infix-right-padding: var(--kbq-size-xxs);--kbq-form-field-size-addon-width: 28px;--kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);--kbq-form-field-default-background: var(--kbq-background-bg);--kbq-form-field-default-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-default-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-focused-background: var(--kbq-background-bg);--kbq-form-field-states-focused-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-focused-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-focus-outline: var(--kbq-states-line-focus-theme);--kbq-form-field-states-error-border-color: var(--kbq-line-error);--kbq-form-field-states-error-background: var(--kbq-background-error-less);--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-tertiary);--kbq-form-field-states-error-text: var(--kbq-foreground-error);--kbq-form-field-states-error-focused-focus-outline: var(--kbq-states-line-focus-error);--kbq-form-field-states-autofill-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-autofill-background: var(--kbq-background-theme-less);--kbq-form-field-states-autofill-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-autofill-text: var(--kbq-foreground-contrast);--kbq-form-field-states-disabled-border-color: var(--kbq-states-line-disabled);--kbq-form-field-states-disabled-background: var(--kbq-states-background-disabled);--kbq-form-field-states-disabled-placeholder: var(--kbq-states-foreground-disabled);--kbq-form-field-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-form-field-hint-text: var(--kbq-foreground-contrast-secondary)}:where(.kbq-dark){--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-secondary)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-size-3xl) - var(--kbq-size-border-width) * 2);padding:var(--kbq-input-size-padding-vertical) var(--kbq-input-size-padding-horizontal)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}.kbq-input,.kbq-input.kbq-input-password::placeholder{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-input.kbq-input-password{font-size:var(--kbq-typography-mono-normal-font-size);font-weight:var(--kbq-typography-mono-normal-font-weight);line-height:var(--kbq-typography-mono-normal-line-height);font-family:var(--kbq-typography-mono-normal-font-family);text-transform:var(--kbq-typography-mono-normal-text-transform);font-feature-settings:var(--kbq-typography-mono-normal-font-feature-settings);letter-spacing:var(--kbq-typography-mono-normal-letter-spacing);font-variant-ligatures:none;font-feature-settings:\"liga\" 0,\"clig\" 0,\"calt\" 0}\n", ".kbq-input{--kbq-input-size-padding-horizontal: 0;--kbq-input-size-padding-vertical: var(--kbq-form-field-size-container-vertical-padding)}\n", ".kbq-timepicker{padding-right:var(--kbq-timepicker-size-padding-right)}.kbq-form-field-type-timepicker{width:136px}\n", ".kbq-form-field-type-datepicker{width:136px}\n", ".kbq-textarea{--kbq-textarea-size-min-height: 64px;--kbq-textarea-size-max-height: 96px;--kbq-textarea-size-padding-vertical: 5px;--kbq-textarea-size-padding-horizontal: var(--kbq-size-m)}.kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical) var(--kbq-textarea-size-padding-horizontal);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height)}.kbq-textarea.kbq-textarea_max-row-limit-reached{resize:unset}.kbq-textarea:invalid{box-shadow:unset}\n", ".kbq-form-field-type-tag-list{--kbq-tag-input-size-padding-left: var(--kbq-size-xxs);--kbq-tag-input-size-padding-right: var(--kbq-size-m);--kbq-tag-input-size-padding-vertical: var(--kbq-size-xxs);--kbq-tag-input-size-content-gap: var(--kbq-size-s)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
171
331
  }
172
332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqFormField, decorators: [{
173
333
  type: Component,
174
- args: [{ selector: 'kbq-form-field', exportAs: 'kbqFormField', host: {
334
+ args: [{ standalone: true, selector: 'kbq-form-field', exportAs: 'kbqFormField', host: {
175
335
  class: 'kbq-form-field',
176
- '[class.kbq-form-field_invalid]': 'control.errorState',
177
- '[class.kbq-form-field_has-prefix]': 'hasPrefix',
178
- '[class.kbq-form-field_has-suffix]': 'hasSuffix',
179
- '[class.kbq-form-field_has-password-toggle]': 'hasPasswordToggle',
180
- '[class.kbq-form-field_has-cleaner]': 'canShowCleaner',
181
- '[class.kbq-form-field_has-stepper]': 'hasStepper',
182
- '[class.kbq-disabled]': 'control.disabled',
336
+ '[class.kbq-form-field_invalid]': 'invalid',
337
+ '[class.kbq-disabled]': 'disabled',
338
+ '[class.kbq-form-field_no-borders]': 'noBorders()',
183
339
  '[class.ng-untouched]': 'shouldForward("untouched")',
184
340
  '[class.ng-touched]': 'shouldForward("touched")',
185
341
  '[class.ng-pristine]': 'shouldForward("pristine")',
@@ -190,21 +346,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
190
346
  '(keydown)': 'onKeyDown($event)',
191
347
  '(mouseenter)': 'onHoverChanged(true)',
192
348
  '(mouseleave)': 'onHoverChanged(false)'
193
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
194
- { provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }
195
- ], template: "<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__infix\">\n <ng-content />\n </div>\n\n @if (hasSuffix) {\n <div class=\"kbq-form-field__suffix\">\n <ng-content select=\"[kbqSuffix]\" />\n </div>\n }\n\n @if (canShowCleaner && !hasSuffix) {\n <div class=\"kbq-form-field__cleaner\" (click)=\"clearValue($event)\" (keydown.enter)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <ng-content select=\"kbq-password-toggle\" />\n\n <ng-content select=\"kbq-stepper\" />\n</div>\n\n@if (hasHint || passwordHints.length) {\n <div class=\"kbq-form-field__hint\">\n <ng-content select=\"kbq-hint, kbq-password-hint\" />\n </div>\n}\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box;position:relative;border-width:var(--kbq-form-field-size-border-width);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius)}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius)}.kbq-form-field:hover{z-index:1}.kbq-form-field.cdk-focused,.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size) + var(--kbq-size-m) + var(--kbq-size-s))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size) + var(--kbq-form-field-size-icon-button-margin-left) + var(--kbq-form-field-size-icon-button-margin-right))}.kbq-form-field+.kbq-password-hint{margin-top:var(--kbq-size-m)}.kbq-form-field .kbq-form-field__prefix,.kbq-form-field .kbq-form-field__suffix{position:absolute;top:0;bottom:0;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field .kbq-form-field__prefix{left:0;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-s)}.kbq-form-field .kbq-form-field__suffix{right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-s)}.kbq-form-field .kbq-form-field__cleaner,.kbq-form-field .kbq-password-toggle,.kbq-form-field .kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-form-field .kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-icon-button-size)}.kbq-form-field .kbq-stepper .kbq-stepper-step-up,.kbq-form-field .kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-icon-button-size);text-align:center}.kbq-form-field .kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field .kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top)}.kbq-form-field .kbq-form-field__hint .kbq-password-hint:first-child{margin-top:var(--kbq-size-s)}.kbq-form-field .kbq-password-hint{margin-top:var(--kbq-form-field-hint-size-gap)}.kbq-form-field .kbq-form-field__container{border-color:var(--kbq-form-field-default-border-color);background-color:var(--kbq-form-field-default-background)}.kbq-form-field .kbq-input,.kbq-form-field .kbq-tag-input,.kbq-form-field .kbq-textarea{color:var(--kbq-form-field-default-text)}.kbq-form-field .kbq-input::placeholder,.kbq-form-field .kbq-tag-input::placeholder,.kbq-form-field .kbq-textarea::placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-ms-input-placeholder,.kbq-form-field .kbq-tag-input::-ms-input-placeholder,.kbq-form-field .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-webkit-input-placeholder,.kbq-form-field .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input:-webkit-autofill,.kbq-form-field .kbq-input:-webkit-autofill:hover,.kbq-form-field .kbq-input:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 40rem var(--kbq-form-field-states-autofill-background);-webkit-text-fill-color:var(--kbq-form-field-states-autofill-text);caret-color:var(--kbq-form-field-states-autofill-text)}.kbq-form-field.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{border-color:var(--kbq-form-field-states-focused-border-color);background-color:var(--kbq-form-field-states-focused-background)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea{color:var(--kbq-form-field-states-focused-text)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-focused-focus-outline)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-error-focused-focus-outline)}.kbq-form-field.kbq-disabled .kbq-form-field__container{border-color:var(--kbq-form-field-states-disabled-border-color);background-color:var(--kbq-form-field-states-disabled-background)}.kbq-form-field.kbq-disabled .kbq-input,.kbq-form-field.kbq-disabled .kbq-tag-input,.kbq-form-field.kbq-disabled .kbq-textarea{color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field.kbq-disabled .kbq-input::placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-form-field-states-disabled-text);-webkit-text-fill-color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field .kbq-form-field__prefix .kbq-icon.kbq-empty,.kbq-form-field .kbq-form-field__suffix .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast-fade)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint,.kbq-contrast-fade,.kbq-success,.kbq-warning,.kbq-error){color:var(--kbq-form-field-hint-text)}.kbq-form-field{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint) .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-size-3xl) - var(--kbq-size-border-width) * 2);padding:calc(var(--kbq-input-size-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-input-size-padding-horizontal)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}.kbq-input,.kbq-input.kbq-input-password::placeholder{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-input.kbq-input-password{font-size:var(--kbq-typography-mono-normal-font-size);font-weight:var(--kbq-typography-mono-normal-font-weight);line-height:var(--kbq-typography-mono-normal-line-height);font-family:var(--kbq-typography-mono-normal-font-family);text-transform:var(--kbq-typography-mono-normal-text-transform);font-feature-settings:var(--kbq-typography-mono-normal-font-feature-settings);letter-spacing:var(--kbq-typography-mono-normal-letter-spacing);font-variant-ligatures:none;font-feature-settings:\"liga\" 0,\"clig\" 0,\"calt\" 0}\n", ".kbq-timepicker{padding-right:var(--kbq-timepicker-size-padding-right)}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:130px}\n", ".kbq-textarea{--kbq-textarea-size-min-height: 64px;--kbq-textarea-size-max-height: 96px;--kbq-textarea-size-padding-vertical: 5px;--kbq-textarea-size-padding-horizontal: var(--kbq-size-m)}.kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical) var(--kbq-textarea-size-padding-horizontal);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height)}.kbq-textarea.kbq-textarea_max-row-limit-reached{resize:unset}.kbq-textarea:invalid{box-shadow:unset}\n", ".kbq-form-field{--kbq-form-field-size-height: var(--kbq-size-3xl);--kbq-form-field-size-border-width: 1px;--kbq-form-field-size-border-radius: var(--kbq-size-border-radius);--kbq-form-field-size-icon-size: var(--kbq-size-l);--kbq-form-field-size-icon-margin-left: var(--kbq-size-s);--kbq-form-field-size-icon-margin-right: var(--kbq-size-s);--kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);--kbq-form-field-size-icon-button-margin-right: var(--kbq-size-xxs);--kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);--kbq-form-field-hint-size-margin-top: var(--kbq-size-xxs);--kbq-form-field-hint-size-gap: var(--kbq-size-s);--kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);--kbq-form-field-default-background: var(--kbq-background-bg);--kbq-form-field-default-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-default-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-focused-background: var(--kbq-background-bg);--kbq-form-field-states-focused-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-focused-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-focus-outline: var(--kbq-states-line-focus-theme);--kbq-form-field-states-error-border-color: var(--kbq-line-error);--kbq-form-field-states-error-background: var(--kbq-background-error-less);--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-tertiary);--kbq-form-field-states-error-text: var(--kbq-foreground-error);--kbq-form-field-states-error-focused-focus-outline: var(--kbq-states-line-focus-error);--kbq-form-field-states-autofill-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-autofill-background: var(--kbq-background-theme-less);--kbq-form-field-states-autofill-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-autofill-text: var(--kbq-foreground-contrast);--kbq-form-field-states-disabled-border-color: var(--kbq-states-line-disabled);--kbq-form-field-states-disabled-background: var(--kbq-states-background-disabled);--kbq-form-field-states-disabled-placeholder: var(--kbq-states-foreground-disabled);--kbq-form-field-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-form-field-hint-text: var(--kbq-foreground-contrast-secondary)}:where(.kbq-dark){--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-secondary)}\n", ".kbq-input{--kbq-input-size-padding-horizontal: var(--kbq-size-m);--kbq-input-size-padding-vertical: var(--kbq-size-xs)}\n", ".kbq-form-field-type-tag-list{--kbq-tag-input-size-padding-left: var(--kbq-size-xxs);--kbq-tag-input-size-padding-right: var(--kbq-size-m);--kbq-tag-input-size-padding-vertical: var(--kbq-size-xxs);--kbq-tag-input-size-content-gap: var(--kbq-size-s)}\n"] }]
196
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }], propDecorators: { control: [{
349
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }], template: "@if (hasLabel) {\n <label class=\"kbq-form-field__label\" [attr.for]=\"control.id\">\n <ng-content select=\"kbq-label\" />\n </label>\n}\n\n<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__infix\">\n <ng-content />\n </div>\n\n @if (hasSuffix || hasCleaner || hasPasswordToggle || hasStepper) {\n <div class=\"kbq-form-field__suffix\">\n @if (canShowCleaner) {\n <div class=\"kbq-form-field__cleaner\" (click)=\"clearValue($event)\" (keydown.enter)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <ng-content select=\"kbq-password-toggle, kbq-stepper, [kbqSuffix]\" />\n </div>\n }\n</div>\n\n@if (hasHint || hasPasswordHint || hasError || hasReactivePasswordHint) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-password-hint, kbq-reactive-password-hint\" />\n </div>\n}\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__label{display:flex;margin-bottom:var(--kbq-size-xs)}.kbq-form-field.kbq-form-field-type-select .kbq-form-field__suffix{margin-right:0}.kbq-form-field .kbq-form-field__container{box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;border-width:var(--kbq-form-field-size-border-width);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius);padding-left:var(--kbq-form-field-size-container-left-padding);padding-right:var(--kbq-form-field-size-container-right-padding)}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height)}.kbq-form-field .kbq-form-field__infix{width:100%;max-width:calc(100% - var(--kbq-size-xs));flex-grow:1;padding-left:var(--kbq-form-field-size-infix-left-padding)}.kbq-form-field .kbq-form-field__infix:has(.kbq-select_multiple):not(:has(.kbq-select__trigger_empty)),.kbq-form-field .kbq-form-field__infix:has(.kbq-tag-list){padding-left:0;max-width:100%}.kbq-form-field .kbq-form-field__infix .kbq-input,.kbq-form-field .kbq-form-field__infix .kbq-tag-input{padding-right:var(--kbq-form-field-size-infix-right-padding)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius)}.kbq-form-field:hover{z-index:1}.kbq-form-field.cdk-focused,.kbq-form-field.kbq-focused{z-index:3}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container,.kbq-form-field.kbq-form-field_no-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field+.kbq-password-hint{margin-top:var(--kbq-size-m)}.kbq-form-field .kbq-form-field__prefix,.kbq-form-field .kbq-form-field__suffix{display:flex;justify-content:center;align-items:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field .kbq-form-field__prefix+.kbq-form-field__infix{padding-left:0}.kbq-form-field .kbq-form-field__hint{display:flex;flex-direction:column;gap:var(--kbq-size-xxs);margin-top:var(--kbq-form-field-hint-size-margin-top)}.kbq-form-field .kbq-form-field__hint .kbq-password-hint:first-child{margin-top:var(--kbq-size-s)}.kbq-form-field .kbq-password-hint{margin-top:var(--kbq-form-field-hint-size-gap)}.kbq-form-field .kbq-form-field__container{border-color:var(--kbq-form-field-default-border-color);background-color:var(--kbq-form-field-default-background)}.kbq-form-field .kbq-input,.kbq-form-field .kbq-tag-input,.kbq-form-field .kbq-textarea{color:var(--kbq-form-field-default-text)}.kbq-form-field .kbq-input::placeholder,.kbq-form-field .kbq-tag-input::placeholder,.kbq-form-field .kbq-textarea::placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-ms-input-placeholder,.kbq-form-field .kbq-tag-input::-ms-input-placeholder,.kbq-form-field .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input::-webkit-input-placeholder,.kbq-form-field .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-default-placeholder)}.kbq-form-field .kbq-input:-webkit-autofill,.kbq-form-field .kbq-input:-webkit-autofill:hover,.kbq-form-field .kbq-input:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 40rem var(--kbq-form-field-states-autofill-background);-webkit-text-fill-color:var(--kbq-form-field-states-autofill-text);caret-color:var(--kbq-form-field-states-autofill-text)}.kbq-form-field.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{border-color:var(--kbq-form-field-states-focused-border-color);background-color:var(--kbq-form-field-states-focused-background)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea{color:var(--kbq-form-field-states-focused-text)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-focused-placeholder)}.kbq-form-field.kbq-form-field-type-input.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-focused-focus-outline)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-form-field__container{border-color:var(--kbq-form-field-states-error-border-color);background-color:var(--kbq-form-field-states-error-background)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea{color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-textarea::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid.cdk-focused .kbq-form-field__container,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid.cdk-focused .kbq-form-field__container{box-shadow:0 0 .1px 1px var(--kbq-form-field-states-error-focused-focus-outline)}.kbq-form-field.kbq-form-field-type-input.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-input.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-textarea.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-timepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-datepicker.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-input-password.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-tag-list.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_invalid .kbq-icon.kbq-empty,.kbq-form-field.kbq-form-field-type-select.cdk-keyboard-focused.kbq-form-field_has-validate-directive.ng-invalid .kbq-icon.kbq-empty{color:var(--kbq-form-field-states-error-text);-webkit-text-fill-color:var(--kbq-form-field-states-error-text)}.kbq-form-field.kbq-disabled .kbq-form-field__container{border-color:var(--kbq-form-field-states-disabled-border-color);background-color:var(--kbq-form-field-states-disabled-background)}.kbq-form-field.kbq-disabled .kbq-input,.kbq-form-field.kbq-disabled .kbq-tag-input,.kbq-form-field.kbq-disabled .kbq-textarea{color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field.kbq-disabled .kbq-input::placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-ms-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-ms-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-tag-input::-webkit-input-placeholder,.kbq-form-field.kbq-disabled .kbq-textarea::-webkit-input-placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-form-field.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-form-field-states-disabled-text);-webkit-text-fill-color:var(--kbq-form-field-states-disabled-text)}.kbq-form-field .kbq-form-field__prefix .kbq-icon.kbq-empty,.kbq-form-field .kbq-form-field__suffix .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast-fade)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint,.kbq-contrast-fade,.kbq-success,.kbq-warning,.kbq-error){color:var(--kbq-form-field-hint-text)}.kbq-form-field{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-form-field .kbq-form-field__hint>.kbq-hint:not(.kbq-password-hint,.kbq-reactive-password-hint,.kbq-contrast-fade,.kbq-success,.kbq-warning) .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-form-field{--kbq-form-field-size-height: var(--kbq-size-3xl);--kbq-form-field-size-border-width: var(--kbq-size-border-width);--kbq-form-field-size-border-radius: var(--kbq-size-border-radius);--kbq-form-field-size-icon-size: var(--kbq-size-l);--kbq-form-field-size-icon-margin-left: var(--kbq-size-s);--kbq-form-field-size-icon-margin-right: var(--kbq-size-s);--kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);--kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);--kbq-form-field-hint-size-margin-top: var(--kbq-size-xs);--kbq-form-field-hint-size-gap: var(--kbq-size-s);--kbq-form-field-size-container-vertical-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));--kbq-form-field-size-container-left-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));--kbq-form-field-size-container-right-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));--kbq-form-field-size-infix-left-padding: var(--kbq-size-xs);--kbq-form-field-size-infix-right-padding: var(--kbq-size-xxs);--kbq-form-field-size-addon-width: 28px;--kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);--kbq-form-field-default-background: var(--kbq-background-bg);--kbq-form-field-default-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-default-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-focused-background: var(--kbq-background-bg);--kbq-form-field-states-focused-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-focused-text: var(--kbq-foreground-contrast);--kbq-form-field-states-focused-focus-outline: var(--kbq-states-line-focus-theme);--kbq-form-field-states-error-border-color: var(--kbq-line-error);--kbq-form-field-states-error-background: var(--kbq-background-error-less);--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-tertiary);--kbq-form-field-states-error-text: var(--kbq-foreground-error);--kbq-form-field-states-error-focused-focus-outline: var(--kbq-states-line-focus-error);--kbq-form-field-states-autofill-border-color: var(--kbq-states-line-focus-theme);--kbq-form-field-states-autofill-background: var(--kbq-background-theme-less);--kbq-form-field-states-autofill-placeholder: var(--kbq-foreground-contrast-tertiary);--kbq-form-field-states-autofill-text: var(--kbq-foreground-contrast);--kbq-form-field-states-disabled-border-color: var(--kbq-states-line-disabled);--kbq-form-field-states-disabled-background: var(--kbq-states-background-disabled);--kbq-form-field-states-disabled-placeholder: var(--kbq-states-foreground-disabled);--kbq-form-field-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-form-field-hint-text: var(--kbq-foreground-contrast-secondary)}:where(.kbq-dark){--kbq-form-field-states-error-placeholder: var(--kbq-foreground-error-secondary)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-size-3xl) - var(--kbq-size-border-width) * 2);padding:var(--kbq-input-size-padding-vertical) var(--kbq-input-size-padding-horizontal)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}.kbq-input,.kbq-input.kbq-input-password::placeholder{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-input.kbq-input-password{font-size:var(--kbq-typography-mono-normal-font-size);font-weight:var(--kbq-typography-mono-normal-font-weight);line-height:var(--kbq-typography-mono-normal-line-height);font-family:var(--kbq-typography-mono-normal-font-family);text-transform:var(--kbq-typography-mono-normal-text-transform);font-feature-settings:var(--kbq-typography-mono-normal-font-feature-settings);letter-spacing:var(--kbq-typography-mono-normal-letter-spacing);font-variant-ligatures:none;font-feature-settings:\"liga\" 0,\"clig\" 0,\"calt\" 0}\n", ".kbq-input{--kbq-input-size-padding-horizontal: 0;--kbq-input-size-padding-vertical: var(--kbq-form-field-size-container-vertical-padding)}\n", ".kbq-timepicker{padding-right:var(--kbq-timepicker-size-padding-right)}.kbq-form-field-type-timepicker{width:136px}\n", ".kbq-form-field-type-datepicker{width:136px}\n", ".kbq-textarea{--kbq-textarea-size-min-height: 64px;--kbq-textarea-size-max-height: 96px;--kbq-textarea-size-padding-vertical: 5px;--kbq-textarea-size-padding-horizontal: var(--kbq-size-m)}.kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical) var(--kbq-textarea-size-padding-horizontal);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height)}.kbq-textarea.kbq-textarea_max-row-limit-reached{resize:unset}.kbq-textarea:invalid{box-shadow:unset}\n", ".kbq-form-field-type-tag-list{--kbq-tag-input-size-padding-left: var(--kbq-size-xxs);--kbq-tag-input-size-padding-right: var(--kbq-size-m);--kbq-tag-input-size-padding-vertical: var(--kbq-size-xxs);--kbq-tag-input-size-content-gap: var(--kbq-size-s)}\n"] }]
350
+ }], propDecorators: { control: [{
197
351
  type: ContentChild,
198
- args: [KbqFormFieldControl, { static: false }]
352
+ args: [KbqFormFieldControl]
199
353
  }], stepper: [{
200
354
  type: ContentChild,
201
- args: [KbqStepper, { static: false }]
355
+ args: [KbqStepper]
202
356
  }], cleaner: [{
203
357
  type: ContentChild,
204
- args: [KbqCleaner, { static: false }]
358
+ args: [KbqCleaner, { descendants: false }]
205
359
  }], passwordToggle: [{
206
360
  type: ContentChild,
207
- args: [KbqPasswordToggle, { static: false }]
361
+ args: [KbqPasswordToggle]
208
362
  }], hint: [{
209
363
  type: ContentChildren,
210
364
  args: [KbqHint]
@@ -220,19 +374,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
220
374
  }], connectionContainerRef: [{
221
375
  type: ViewChild,
222
376
  args: ['connectionContainer', { static: true }]
377
+ }], reactivePasswordHint: [{
378
+ type: ContentChildren,
379
+ args: [KbqReactivePasswordHint]
380
+ }], error: [{
381
+ type: ContentChildren,
382
+ args: [KbqError]
383
+ }], label: [{
384
+ type: ContentChild,
385
+ args: [KbqLabel]
223
386
  }] } });
387
+ /**
388
+ * @docs-private
389
+ *
390
+ * @deprecated Will be removed in next major release, use `noBorders` input instead.
391
+ */
224
392
  export class KbqFormFieldWithoutBorders {
225
393
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqFormFieldWithoutBorders, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
226
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", host: { classAttribute: "kbq-form-field_without-borders" }, exportAs: ["kbqFormFieldWithoutBorders"], ngImport: i0 }); }
394
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqFormFieldWithoutBorders, isStandalone: true, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", host: { classAttribute: "kbq-form-field_without-borders" }, exportAs: ["kbqFormFieldWithoutBorders"], ngImport: i0 }); }
227
395
  }
228
396
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqFormFieldWithoutBorders, decorators: [{
229
397
  type: Directive,
230
398
  args: [{
399
+ standalone: true,
231
400
  selector: 'kbq-form-field[kbqFormFieldWithoutBorders]',
232
401
  exportAs: 'kbqFormFieldWithoutBorders',
233
402
  host: { class: 'kbq-form-field_without-borders' }
234
403
  }]
235
404
  }] });
405
+ /**
406
+ * @docs-private
407
+ */
236
408
  export class KbqTrim {
237
409
  constructor(noTrim, ngControl) {
238
410
  this.noTrim = noTrim;
@@ -253,12 +425,13 @@ export class KbqTrim {
253
425
  }
254
426
  return typeof value === 'string' ? value.trim() : value;
255
427
  }
256
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqTrim, deps: [{ token: 'no-trim', attribute: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
257
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqTrim, selector: "[kbqInput], [kbqTextarea]", host: { classAttribute: "kbq-trim" }, exportAs: ["KbqTrim"], ngImport: i0 }); }
428
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqTrim, deps: [{ token: 'no-trim', attribute: true }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
429
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqTrim, isStandalone: true, selector: "[kbqInput], [kbqTextarea]", host: { classAttribute: "kbq-trim" }, exportAs: ["KbqTrim"], ngImport: i0 }); }
258
430
  }
259
431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqTrim, decorators: [{
260
432
  type: Directive,
261
433
  args: [{
434
+ standalone: true,
262
435
  selector: '[kbqInput], [kbqTextarea]',
263
436
  exportAs: 'KbqTrim',
264
437
  host: { class: 'kbq-trim' }
@@ -266,9 +439,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
266
439
  }], ctorParameters: () => [{ type: undefined, decorators: [{
267
440
  type: Attribute,
268
441
  args: ['no-trim']
269
- }] }, { type: i2.NgControl, decorators: [{
442
+ }] }, { type: i1.NgControl, decorators: [{
270
443
  type: Optional
271
444
  }, {
272
445
  type: Self
273
446
  }] }] });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUlILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsb0RBQW9ELEVB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QUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0YsQ0FBQyxDQUFDO1FBckJFLElBQUksQ0FBQyxNQUFNLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUNoRCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSztRQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RCxDQUFDO2tJQXhCUSxPQUFPLGtCQUlELFNBQVM7c0hBSmYsT0FBTzs7NEZBQVAsT0FBTztrQkFMbkIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsU0FBUztvQkFDbkIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtpQkFDOUI7OzBCQUtRLFNBQVM7MkJBQUMsU0FBUzs7MEJBQ25CLFFBQVE7OzBCQUFJLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFU0NBUEUsIEY4IH0gZnJvbSAnQGtvb2JpcS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgS0JRX0ZPUk1fRklFTERfUkVGLCBLYnFDb2xvckRpcmVjdGl2ZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEVNUFRZLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxQ2xlYW5lciB9IGZyb20gJy4vY2xlYW5lcic7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgICBnZXRLYnFGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yLFxuICAgIGdldEticUZvcm1GaWVsZFlvdUNhbk5vdFVzZUNsZWFuZXJJbk51bWJlcklucHV0RXJyb3Jcbn0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9ycyc7XG5pbXBvcnQgeyBLYnFIaW50IH0gZnJvbSAnLi9oaW50JztcbmltcG9ydCB7IGhhc1Bhc3N3b3JkU3RyZW5ndGhFcnJvciwgS2JxUGFzc3dvcmRIaW50IH0gZnJvbSAnLi9wYXNzd29yZC1oaW50JztcbmltcG9ydCB7IEticVBhc3N3b3JkVG9nZ2xlIH0gZnJvbSAnLi9wYXNzd29yZC10b2dnbGUnO1xuaW1wb3J0IHsgS2JxUHJlZml4IH0gZnJvbSAnLi9wcmVmaXgnO1xuaW1wb3J0IHsgS2JxU3RlcHBlciB9IGZyb20gJy4vc3RlcHBlcic7XG5pbXBvcnQgeyBLYnFTdWZmaXggfSBmcm9tICcuL3N1ZmZpeCc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1mb3JtLWZpZWxkJyxcbiAgICBleHBvcnRBczogJ2ticUZvcm1GaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdmb3JtLWZpZWxkLmh0bWwnLFxuICAgIC8vIEticUlucHV0IGlzIGEgZGlyZWN0aXZlIGFuZCBjYW4ndCBoYXZlIHN0eWxlcywgc28gd2UgbmVlZCB0byBpbmNsdWRlIGl0cyBzdHlsZXMgaGVyZS5cbiAgICAvLyBUaGUgS2JxSW5wdXQgc3R5bGVzIGFyZSBmYWlybHkgbWluaW1hbCBzbyBpdCBzaG91bGRuJ3QgYmUgYSBiaWcgZGVhbCBmb3IgcGVvcGxlIHdob1xuICAgIC8vIGFyZW4ndCB1c2luZyBLYnFJbnB1dC5cbiAgICBzdHlsZVVybHM6IFtcbiAgICAgICAgJ2Zvcm0tZmllbGQuc2NzcycsXG4gICAgICAgICcuLi9pbnB1dC9pbnB1dC5zY3NzJyxcbiAgICAgICAgJy4uL3RpbWVwaWNrZXIvdGltZXBpY2tlci5zY3NzJyxcbiAgICAgICAgJy4uL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC5zY3NzJyxcbiAgICAgICAgJy4uL3RleHRhcmVhL3RleHRhcmVhLnNjc3MnLFxuICAgICAgICAnZm9ybS1maWVsZC10b2tlbnMuc2NzcycsXG4gICAgICAgICcuLi9pbnB1dC9pbnB1dC10b2tlbnMuc2NzcycsXG4gICAgICAgICcuLi90YWdzL3RhZy1pbnB1dC10b2tlbnMuc2NzcydcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtZm9ybS1maWVsZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaW52YWxpZF0nOiAnY29udHJvbC5lcnJvclN0YXRlJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZm9ybS1maWVsZF9oYXMtcHJlZml4XSc6ICdoYXNQcmVmaXgnLFxuICAgICAgICAnW2NsYXNzLmticS1mb3JtLWZpZWxkX2hhcy1zdWZmaXhdJzogJ2hhc1N1ZmZpeCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaGFzLXBhc3N3b3JkLXRvZ2dsZV0nOiAnaGFzUGFzc3dvcmRUb2dnbGUnLFxuICAgICAgICAnW2NsYXNzLmticS1mb3JtLWZpZWxkX2hhcy1jbGVhbmVyXSc6ICdjYW5TaG93Q2xlYW5lcicsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaGFzLXN0ZXBwZXJdJzogJ2hhc1N0ZXBwZXInLFxuXG4gICAgICAgICdbY2xhc3Mua2JxLWRpc2FibGVkXSc6ICdjb250cm9sLmRpc2FibGVkJyxcblxuICAgICAgICAnW2NsYXNzLm5nLXVudG91Y2hlZF0nOiAnc2hvdWxkRm9yd2FyZChcInVudG91Y2hlZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctdG91Y2hlZF0nOiAnc2hvdWxkRm9yd2FyZChcInRvdWNoZWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXByaXN0aW5lXSc6ICdzaG91bGRGb3J3YXJkKFwicHJpc3RpbmVcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLWRpcnR5XSc6ICdzaG91bGRGb3J3YXJkKFwiZGlydHlcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXZhbGlkXSc6ICdzaG91bGRGb3J3YXJkKFwidmFsaWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLWludmFsaWRdJzogJ3Nob3VsZEZvcndhcmQoXCJpbnZhbGlkXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy1wZW5kaW5nXSc6ICdzaG91bGRGb3J3YXJkKFwicGVuZGluZ1wiKScsXG5cbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleURvd24oJGV2ZW50KScsXG4gICAgICAgICcobW91c2VlbnRlciknOiAnb25Ib3ZlckNoYW5nZWQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ29uSG92ZXJDaGFuZ2VkKGZhbHNlKSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogS0JRX0ZPUk1fRklFTERfUkVGLCB1c2VFeGlzdGluZzogS2JxRm9ybUZpZWxkIH1dXG59KVxuZXhwb3J0IGNsYXNzIEticUZvcm1GaWVsZFxuICAgIGV4dGVuZHMgS2JxQ29sb3JEaXJlY3RpdmVcbiAgICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIEBDb250ZW50Q2hpbGQoS2JxRm9ybUZpZWxkQ29udHJvbCwgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRyb2w6IEticUZvcm1GaWVsZENvbnRyb2w8YW55PjtcbiAgICBAQ29udGVudENoaWxkKEticVN0ZXBwZXIsIHsgc3RhdGljOiBmYWxzZSB9KSBzdGVwcGVyOiBLYnFTdGVwcGVyO1xuICAgIEBDb250ZW50Q2hpbGQoS2JxQ2xlYW5lciwgeyBzdGF0aWM6IGZhbHNlIH0pIGNsZWFuZXI6IEticUNsZWFuZXIgfCBudWxsO1xuICAgIEBDb250ZW50Q2hpbGQoS2JxUGFzc3dvcmRUb2dnbGUsIHsgc3RhdGljOiBmYWxzZSB9KSBwYXNzd29yZFRvZ2dsZTogS2JxUGFzc3dvcmRUb2dnbGUgfCBudWxsO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFIaW50KSBoaW50OiBRdWVyeUxpc3Q8S2JxSGludD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFQYXNzd29yZEhpbnQpIHBhc3N3b3JkSGludHM6IFF1ZXJ5TGlzdDxLYnFQYXNzd29yZEhpbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oS2JxU3VmZml4KSBzdWZmaXg6IFF1ZXJ5TGlzdDxLYnFTdWZmaXg+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oS2JxUHJlZml4KSBwcmVmaXg6IFF1ZXJ5TGlzdDxLYnFQcmVmaXg+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29ubmVjdGlvbkNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbm5lY3Rpb25Db250YWluZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICAvLyBVbmlxdWUgaWQgZm9yIHRoZSBpbnRlcm5hbCBmb3JtIGZpZWxkIGxhYmVsLlxuICAgIGxhYmVsSWQgPSBga2JxLWZvcm0tZmllbGQtbGFiZWwtJHtuZXh0VW5pcXVlSWQrK31gO1xuXG4gICAgaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY2FuQ2xlYW5lckNsZWFyQnlFc2M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgZ2V0IGZvY3VzT3JpZ2luKCk6IEZvY3VzT3JpZ2luIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzT3JpZ2luO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbjtcblxuICAgIGdldCBoYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzSGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludD8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgaGFzU3VmZml4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWZmaXg/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1ByZWZpeCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNsZWFuZXI7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1N0ZXBwZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3RlcHBlcjtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGFzc3dvcmRUb2dnbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucGFzc3dvcmRUb2dnbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNhblNob3dDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDbGVhbmVyICYmIHRoaXMuY29udHJvbD8ubmdDb250cm9sXG4gICAgICAgICAgICA/IHRoaXMuY29udHJvbC5uZ0NvbnRyb2wudmFsdWUgJiYgIXRoaXMuY29udHJvbC5kaXNhYmxlZFxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKiBAZGVwcmVjYXRlZCBzdGVwcGVyIHNob3VsZCBiZSBhbHdheXMgdmlzaWJsZSB3aGVuIHByb3ZpZGVkLCBzbyB0aGlzIHBhcmFtZXRlciBpcyByZWR1bmRhbnQsXG4gICAgICogdXNlIGBoYXNTdGVwcGVyYCBpbnN0ZWFkICovXG4gICAgY2FuU2hvd1N0ZXBwZXIgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAoKHRoaXMuY29udHJvbCBhcyBhbnkpLm51bWJlcklucHV0ICYmIHRoaXMuaGFzQ2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy5jbGVhbmVyID0gbnVsbDtcbiAgICAgICAgICAgIHRocm93IGdldEticUZvcm1GaWVsZFlvdUNhbk5vdFVzZUNsZWFuZXJJbk51bWJlcklucHV0RXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsaWRhdGVDb250cm9sQ2hpbGQoKTtcblxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmNvbnRyb2xUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBrYnEtZm9ybS1maWVsZC10eXBlLSR7dGhpcy5jb250cm9sLmNvbnRyb2xUeXBlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIGNoaWxkIGNvbnRyb2wgc3RhdGUgaW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBmb3JtIGZpZWxkIFVJLlxuICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdGVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKCkpLnN1YnNjcmliZSgoc3RhdGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFzc3dvcmRIaW50cy5sZW5ndGggJiYgIXN0YXRlPy5mb2N1c2VkICYmIGhhc1Bhc3N3b3JkU3RyZW5ndGhFcnJvcih0aGlzLnBhc3N3b3JkSGludHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLm5nQ29udHJvbD8uY29udHJvbD8uc2V0RXJyb3JzKHsgcGFzc3dvcmRTdHJlbmd0aDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzU3RlcHBlcikge1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyLmNvbm5lY3RUbygodGhpcy5jb250cm9sIGFzIGFueSkubnVtYmVySW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUnVuIGNoYW5nZSBkZXRlY3Rpb24gaWYgdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlcyA9IHRoaXMuY29udHJvbC5uZ0NvbnRyb2w/LnZhbHVlQ2hhbmdlcyB8fCBFTVBUWTtcblxuICAgICAgICBtZXJnZSh2YWx1ZUNoYW5nZXMsIHRoaXMuaGludC5jaGFuZ2VzLCB0aGlzLnBhc3N3b3JkSGludHMuY2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb250cm9sQ2hpbGQoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG5cbiAgICAgICAgLy8gQXZvaWQgYW5pbWF0aW9ucyBvbiBsb2FkLlxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRm9jdXNlcyB0aGUgY29udHJvbC4gKi9cbiAgICBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udHJvbC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYGZvY3VzYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGZvY3VzVmlhS2V5Ym9hcmQob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2wuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2xlYXJWYWx1ZSgkZXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuY29udHJvbD8ubmdDb250cm9sPy5yZXNldCgpO1xuICAgICAgICB0aGlzLmNvbnRyb2w/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25Db250YWluZXJDbGljaygkZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbD8ub25Db250YWluZXJDbGljaykge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLm9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLmNvbnRyb2xUeXBlID09PSAnaW5wdXQtcGFzc3dvcmQnICYmIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBGOCkge1xuICAgICAgICAgICAgKHRoaXMuY29udHJvbCBhcyB1bmtub3duIGFzIHsgdG9nZ2xlVHlwZSgpOiB2b2lkIH0pLnRvZ2dsZVR5cGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbkNsZWFuZXJDbGVhckJ5RXNjICYmIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiB0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiB0aGlzLmhhc0NsZWFuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubmdDb250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlckNoYW5nZWQoaXNIb3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0hvdmVyZWQgIT09IHRoaXMuaG92ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlcmVkID0gaXNIb3ZlcmVkO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gRWxlbWVudFJlZiBmb3IgdGhlIGVsZW1lbnQgdGhhdCBhIG92ZXJsYXkgYXR0YWNoZWQgdG8gdGhlIGZvcm0tZmllbGQgc2hvdWxkIGJlXG4gICAgICogcG9zaXRpb25lZCByZWxhdGl2ZSB0by5cbiAgICAgKi9cbiAgICBnZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uQ29udGFpbmVyUmVmIHx8IHRoaXMuZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgY2xhc3MgZnJvbSB0aGUgTmdDb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC4gKi9cbiAgICBzaG91bGRGb3J3YXJkKHByb3A6IGtleW9mIE5nQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbDtcblxuICAgICAgICByZXR1cm4gbmdDb250cm9sICYmIG5nQ29udHJvbFtwcm9wXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgcnVuRm9jdXNNb25pdG9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvclxuICAgICAgICAgICAgLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbikgPT4gKHRoaXMuX2ZvY3VzT3JpZ2luID0gb3JpZ2luKSk7XG4gICAgfTtcblxuICAgIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBmb3JtIGZpZWxkJ3MgY29udHJvbCBpcyBtaXNzaW5nLiAqL1xuICAgIHByb3RlY3RlZCB2YWxpZGF0ZUNvbnRyb2xDaGlsZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRocm93IGdldEticUZvcm1GaWVsZE1pc3NpbmdDb250cm9sRXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtZm9ybS1maWVsZFtrYnFGb3JtRmllbGRXaXRob3V0Qm9yZGVyc10nLFxuICAgIGV4cG9ydEFzOiAna2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMnLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdrYnEtZm9ybS1maWVsZF93aXRob3V0LWJvcmRlcnMnIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxSW5wdXRdLCBba2JxVGV4dGFyZWFdJyxcbiAgICBleHBvcnRBczogJ0ticVRyaW0nLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdrYnEtdHJpbScgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUcmltIHtcbiAgICBwcml2YXRlIG9yaWdpbmFsOiAoZm46IGFueSkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCduby10cmltJykgcHJpdmF0ZSByZWFkb25seSBub1RyaW06IGJvb2xlYW4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICAgICkge1xuICAgICAgICB0aGlzLm5vVHJpbSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShub1RyaW0pO1xuXG4gICAgICAgIGlmICh0aGlzLm5vVHJpbSB8fCAhdGhpcy5uZ0NvbnRyb2w/LnZhbHVlQWNjZXNzb3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3JpZ2luYWwgPSB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2U7XG5cbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5yZWdpc3Rlck9uQ2hhbmdlID0gdGhpcy5yZWdpc3Rlck9uQ2hhbmdlO1xuICAgIH1cblxuICAgIHRyaW0odmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMubm9UcmltKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJPbkNoYW5nZSA9IChmbikgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmlnaW5hbC5jYWxsKHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IsICh2YWx1ZSkgPT4gZm4odGhpcy50cmltKHZhbHVlKSkpO1xuICAgIH07XG59XG4iLCI8ZGl2ICNjb25uZWN0aW9uQ29udGFpbmVyIGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX2NvbnRhaW5lclwiIChjbGljayk9XCJvbkNvbnRhaW5lckNsaWNrKCRldmVudClcIj5cbiAgICBAaWYgKGhhc1ByZWZpeCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX3ByZWZpeFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticVByZWZpeF1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX2luZml4XCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGhhc1N1ZmZpeCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX3N1ZmZpeFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticVN1ZmZpeF1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGNhblNob3dDbGVhbmVyICYmICFoYXNTdWZmaXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19jbGVhbmVyXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiIChrZXlkb3duLmVudGVyKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWNsZWFuZXJcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtcGFzc3dvcmQtdG9nZ2xlXCIgLz5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1zdGVwcGVyXCIgLz5cbjwvZGl2PlxuXG5AaWYgKGhhc0hpbnQgfHwgcGFzc3dvcmRIaW50cy5sZW5ndGgpIHtcbiAgICA8ZGl2IGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX2hpbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWhpbnQsIGticS1wYXNzd29yZC1oaW50XCIgLz5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
447
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUlILFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxRQUFRLEVBRVIsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FB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bml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgaW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFByb3ZpZGVyLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVTQ0FQRSwgRjggfSBmcm9tICdAa29vYmlxL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBLQlFfRk9STV9GSUVMRF9SRUYsIEticUNvbG9yRGlyZWN0aXZlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgRU1QVFksIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLYnFDbGVhbmVyIH0gZnJvbSAnLi9jbGVhbmVyJztcbmltcG9ydCB7IEticUVycm9yIH0gZnJvbSAnLi9lcnJvcic7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHsgS2JxSGludCB9IGZyb20gJy4vaGludCc7XG5pbXBvcnQgeyBLYnFMYWJlbCB9IGZyb20gJy4vbGFiZWwnO1xuaW1wb3J0IHsgaGFzUGFzc3dvcmRTdHJlbmd0aEVycm9yLCBLYnFQYXNzd29yZEhpbnQgfSBmcm9tICcuL3Bhc3N3b3JkLWhpbnQnO1xuaW1wb3J0IHsgS2JxUGFzc3dvcmRUb2dnbGUgfSBmcm9tICcuL3Bhc3N3b3JkLXRvZ2dsZSc7XG5pbXBvcnQgeyBLYnFQcmVmaXggfSBmcm9tICcuL3ByZWZpeCc7XG5pbXBvcnQgeyBLYnFSZWFjdGl2ZVBhc3N3b3JkSGludCB9IGZyb20gJy4vcmVhY3RpdmUtcGFzc3dvcmQtaGludCc7XG5pbXBvcnQgeyBLYnFTdGVwcGVyIH0gZnJvbSAnLi9zdGVwcGVyJztcbmltcG9ydCB7IEticVN1ZmZpeCB9IGZyb20gJy4vc3VmZml4JztcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLYnFGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yKCk6IEVycm9yIHtcbiAgICByZXR1cm4gRXJyb3IoJ2ticS1mb3JtLWZpZWxkIG11c3QgY29udGFpbiBhIEticUZvcm1GaWVsZENvbnRyb2wnKTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLYnFGb3JtRmllbGRZb3VDYW5Ob3RVc2VDbGVhbmVySW5OdW1iZXJJbnB1dEVycm9yKCk6IEVycm9yIHtcbiAgICByZXR1cm4gRXJyb3IoYFlvdSBjYW4ndCB1c2Uga2JxLWNsZWFuZXIgd2l0aCBpbnB1dCB0aGF0IGhhdmUgdHlwZT1cIm51bWJlclwiYCk7XG59XG5cbi8qKlxuICogRGVmYXVsdCBvcHRpb25zIGZvciB0aGUga2JxLWZvcm0tZmllbGQgdGhhdCBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEtCUV9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OU2BcbiAqIGluamVjdGlvbiB0b2tlbi5cbiAqL1xuZXhwb3J0IHR5cGUgS2JxRm9ybUZpZWxkRGVmYXVsdE9wdGlvbnMgPSBQYXJ0aWFsPHtcbiAgICAvKiogRGlzYWJsZXMgZm9ybSBmaWVsZCBib3JkZXJzIGFuZCBzaGFkb3dzLiAqL1xuICAgIG5vQm9yZGVyczogYm9vbGVhbjtcbn0+O1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgZGVmYXVsdCBvcHRpb25zIGZvciBhbGwga2JxLWZvcm0tZmllbGQncy5cbiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxLYnFGb3JtRmllbGREZWZhdWx0T3B0aW9ucz4oXG4gICAgJ0tCUV9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUydcbik7XG5cbi8qKiBVdGlsaXR5IHByb3ZpZGVyIGZvciBgS0JRX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TYC4gKi9cbmV4cG9ydCBjb25zdCBrYnFGb3JtRmllbGREZWZhdWx0T3B0aW9uc1Byb3ZpZGVyID0gKG9wdGlvbnM6IEticUZvcm1GaWVsZERlZmF1bHRPcHRpb25zKTogUHJvdmlkZXIgPT4gKHtcbiAgICBwcm92aWRlOiBLQlFfRk9STV9GSUVMRF9ERUZBVUxUX09QVElPTlMsXG4gICAgdXNlVmFsdWU6IG9wdGlvbnNcbn0pO1xuXG4vKiogQ29udGFpbmVyIGZvciBmb3JtIGNvbnRyb2xzIHRoYXQgYXBwbGllcyBzdHlsaW5nIGFuZCBiZWhhdmlvci4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtZm9ybS1maWVsZCcsXG4gICAgZXhwb3J0QXM6ICdrYnFGb3JtRmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnZm9ybS1maWVsZC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFtcbiAgICAgICAgJ2Zvcm0tZmllbGQuc2NzcycsXG4gICAgICAgICdmb3JtLWZpZWxkLXRva2Vucy5zY3NzJyxcbiAgICAgICAgLy8gS2JxSW5wdXQgaXMgYSBkaXJlY3RpdmUgYW5kIGNhbid0IGhhdmUgc3R5bGVzLCBzbyB3ZSBuZWVkIHRvIGluY2x1ZGUgaXRzIHN0eWxlcyBoZXJlLlxuICAgICAgICAvLyBUaGUgS2JxSW5wdXQgc3R5bGVzIGFyZSBmYWlybHkgbWluaW1hbCBzbyBpdCBzaG91bGRuJ3QgYmUgYSBiaWcgZGVhbCBmb3IgcGVvcGxlIHdobyBhcmVuJ3QgdXNpbmcgS2JxSW5wdXQuXG4gICAgICAgICcuLi9pbnB1dC9pbnB1dC5zY3NzJyxcbiAgICAgICAgJy4uL2lucHV0L2lucHV0LXRva2Vucy5zY3NzJyxcbiAgICAgICAgJy4uL3RpbWVwaWNrZXIvdGltZXBpY2tlci5zY3NzJyxcbiAgICAgICAgJy4uL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC5zY3NzJyxcbiAgICAgICAgJy4uL3RleHRhcmVhL3RleHRhcmVhLnNjc3MnLFxuICAgICAgICAnLi4vdGFncy90YWctaW5wdXQtdG9rZW5zLnNjc3MnXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWZvcm0tZmllbGQnLFxuXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaW52YWxpZF0nOiAnaW52YWxpZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfbm8tYm9yZGVyc10nOiAnbm9Cb3JkZXJzKCknLFxuXG4gICAgICAgICdbY2xhc3MubmctdW50b3VjaGVkXSc6ICdzaG91bGRGb3J3YXJkKFwidW50b3VjaGVkXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy10b3VjaGVkXSc6ICdzaG91bGRGb3J3YXJkKFwidG91Y2hlZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctcHJpc3RpbmVdJzogJ3Nob3VsZEZvcndhcmQoXCJwcmlzdGluZVwiKScsXG4gICAgICAgICdbY2xhc3MubmctZGlydHldJzogJ3Nob3VsZEZvcndhcmQoXCJkaXJ0eVwiKScsXG4gICAgICAgICdbY2xhc3MubmctdmFsaWRdJzogJ3Nob3VsZEZvcndhcmQoXCJ2YWxpZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctaW52YWxpZF0nOiAnc2hvdWxkRm9yd2FyZChcImludmFsaWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXBlbmRpbmddJzogJ3Nob3VsZEZvcndhcmQoXCJwZW5kaW5nXCIpJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5RG93bigkZXZlbnQpJyxcbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdvbkhvdmVyQ2hhbmdlZCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnb25Ib3ZlckNoYW5nZWQoZmFsc2UpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEtCUV9GT1JNX0ZJRUxEX1JFRiwgdXNlRXhpc3Rpbmc6IEticUZvcm1GaWVsZCB9XVxufSlcbmV4cG9ydCBjbGFzcyBLYnFGb3JtRmllbGRcbiAgICBleHRlbmRzIEticUNvbG9yRGlyZWN0aXZlXG4gICAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWRcbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zID0gaW5qZWN0KEtCUV9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIC8qKiBEaXNhYmxlcyBmb3JtIGZpZWxkIGJvcmRlcnMgYW5kIHNoYWRvd3MuICovXG4gICAgcmVhZG9ubHkgbm9Cb3JkZXJzID0gaW5wdXQodGhpcy5kZWZhdWx0T3B0aW9ucz8ubm9Cb3JkZXJzLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBmb3JtIGZpZWxkIGNvbnRyb2wuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChLYnFGb3JtRmllbGRDb250cm9sKSBjb250cm9sOiBLYnFGb3JtRmllbGRDb250cm9sPHVua25vd24+O1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKEticVN0ZXBwZXIpIHJlYWRvbmx5IHN0ZXBwZXI6IEticVN0ZXBwZXI7XG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqXG4gICAgICogQFRPRE8gU2hvdWxkIGJlIHJlYWRvbmx5ICgjRFMtMzg4MylcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKEticUNsZWFuZXIsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGNsZWFuZXI6IEticUNsZWFuZXIgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKEticVBhc3N3b3JkVG9nZ2xlKSBwYXNzd29yZFRvZ2dsZTogS2JxUGFzc3dvcmRUb2dnbGUgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEticUhpbnQpIGhpbnQ6IFF1ZXJ5TGlzdDxLYnFIaW50PjtcbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFQYXNzd29yZEhpbnQpIHBhc3N3b3JkSGludHM6IFF1ZXJ5TGlzdDxLYnFQYXNzd29yZEhpbnQ+O1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEticVN1ZmZpeCkgc3VmZml4OiBRdWVyeUxpc3Q8S2JxU3VmZml4PjtcbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFQcmVmaXgpIHByZWZpeDogUXVlcnlMaXN0PEticVByZWZpeD47XG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2Nvbm5lY3Rpb25Db250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb25uZWN0aW9uQ29udGFpbmVyUmVmOiBFbGVtZW50UmVmO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFSZWFjdGl2ZVBhc3N3b3JkSGludCkgcHJpdmF0ZSByZWFkb25seSByZWFjdGl2ZVBhc3N3b3JkSGludDogUXVlcnlMaXN0PEticVJlYWN0aXZlUGFzc3dvcmRIaW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKEticUVycm9yKSBwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBRdWVyeUxpc3Q8S2JxRXJyb3I+O1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTGFiZWwpIHByaXZhdGUgcmVhZG9ubHkgbGFiZWw6IEticUxhYmVsIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBob3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgY2FuQ2xlYW5lckNsZWFyQnlFc2M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGZvcm0gZmllbGQgaXMgaW52YWxpZC4gKi9cbiAgICBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb250cm9sPy5lcnJvclN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGZvcm0gZmllbGQgY29udHJvbCBoYXMgYW4gcmVhY3RpdmUgcGFzc3dvcmQgaGludC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGhhc1JlYWN0aXZlUGFzc3dvcmRIaW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFjdGl2ZVBhc3N3b3JkSGludC5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGZvcm0tZmllbGQgY29udGFpbnMga2JxLWVycm9yLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybS1maWVsZCBjb250YWlucyBrYnEtbGFiZWwuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldCBoYXNMYWJlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5sYWJlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtLWZpZWxkIGNvbnRhaW5zIGticS1wYXNzd29yZC1oaW50LlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGdldCBoYXNQYXNzd29yZEhpbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkSGludHM/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCBmb2N1cyBvcmlnaW4gc3RhdGUuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgZ2V0IGZvY3VzT3JpZ2luKCk6IEZvY3VzT3JpZ2luIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzT3JpZ2luO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbjtcblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaGFzRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybS1maWVsZCBjb250YWlucyBrYnEtaGludC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaGFzSGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludD8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtLWZpZWxkIGNvbnRhaW5zIGticVN1ZmZpeC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaGFzU3VmZml4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWZmaXg/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybS1maWVsZCBjb250YWlucyBrYnFQcmVmaXguXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgZ2V0IGhhc1ByZWZpeCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGZvcm0tZmllbGQgY29udGFpbnMga2JxLWNsZWFuZXIuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY2xlYW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtLWZpZWxkIGNvbnRhaW5zIGticS1zdGVwcGVyLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGdldCBoYXNTdGVwcGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnN0ZXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybS1maWVsZCBjb250YWlucyBrYnEtcGFzc3dvcmQtdG9nZ2xlLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGdldCBoYXNQYXNzd29yZFRvZ2dsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wYXNzd29yZFRvZ2dsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgZ2V0IGNhblNob3dDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDbGVhbmVyICYmIHRoaXMuY29udHJvbD8ubmdDb250cm9sID8gdGhpcy5jb250cm9sLm5nQ29udHJvbC52YWx1ZSAmJiAhdGhpcy5kaXNhYmxlZCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmb3JtIGZpZWxkIGlzIGRpc2FibGVkLiAqL1xuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgc3RlcHBlciBzaG91bGQgYmUgYWx3YXlzIHZpc2libGUgd2hlbiBwcm92aWRlZCwgc28gdGhpcyBwYXJhbWV0ZXIgaXMgcmVkdW5kYW50LFxuICAgICAqIHVzZSBgaGFzU3RlcHBlcmAgaW5zdGVhZFxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGNhblNob3dTdGVwcGVyID0gdHJ1ZTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbnRyb2xDaGlsZCgpO1xuXG4gICAgICAgIGlmICgodGhpcy5jb250cm9sIGFzIGFueSkubnVtYmVySW5wdXQgJiYgdGhpcy5oYXNDbGVhbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFuZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhyb3cgZ2V0S2JxRm9ybUZpZWxkWW91Q2FuTm90VXNlQ2xlYW5lckluTnVtYmVySW5wdXRFcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIGNoaWxkIGNvbnRyb2wgc3RhdGUgaW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBmb3JtIGZpZWxkIFVJLlxuICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdGVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKCkpLnN1YnNjcmliZSgoc3RhdGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFzc3dvcmRIaW50cy5sZW5ndGggJiYgIXN0YXRlPy5mb2N1c2VkICYmIGhhc1Bhc3N3b3JkU3RyZW5ndGhFcnJvcih0aGlzLnBhc3N3b3JkSGludHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLm5nQ29udHJvbD8uY29udHJvbD8uc2V0RXJyb3JzKHsgcGFzc3dvcmRTdHJlbmd0aDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzU3RlcHBlcikge1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyLmNvbm5lY3RUbygodGhpcy5jb250cm9sIGFzIGFueSkubnVtYmVySW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplQ29udHJvbCgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVQcmVmaXhBbmRTdWZmaXgoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplSGludCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbnRyb2xDaGlsZCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICAvLyBCZWNhdXNlIHRoZSBhYm92ZSBjaGFuZ2VzIGEgdmFsdWUgdXNlZCBpbiB0aGUgdGVtcGxhdGUgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQsIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gdHJpZ2dlciBDRCBvciB0aGUgY2hhbmdlIG1pZ2h0IG5vdCBiZSByZWZsZWN0ZWQgaWYgdGhlcmUgaXMgbm8gb3RoZXIgQ0Qgc2NoZWR1bGVkLlxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgLyoqIEZvY3VzZXMgdGhlIGNvbnRyb2wuICovXG4gICAgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2wuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBmb2N1c2AgaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBmb2N1c1ZpYUtleWJvYXJkKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBjbGVhclZhbHVlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbD8ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5jb250cm9sPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYSBjbGljayBvbiB0aGUgY29udHJvbCdzIGNvbnRhaW5lci5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2w/Lm9uQ29udGFpbmVyQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbFR5cGUgPT09ICdpbnB1dC1wYXNzd29yZCcgJiYgZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmtleUNvZGUgPT09IEY4KSB7XG4gICAgICAgICAgICAodGhpcy5jb250cm9sIGFzIHVua25vd24gYXMgeyB0b2dnbGVUeXBlKCk6IHZvaWQgfSkudG9nZ2xlVHlwZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2FuQ2xlYW5lckNsZWFyQnlFc2MgJiYgZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmIHRoaXMuY29udHJvbC5mb2N1c2VkICYmIHRoaXMuaGFzQ2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sPy5uZ0NvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgb25Ib3ZlckNoYW5nZWQoaXNIb3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0hvdmVyZWQgIT09IHRoaXMuaG92ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlcmVkID0gaXNIb3ZlcmVkO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gRWxlbWVudFJlZiBmb3IgdGhlIGVsZW1lbnQgdGhhdCBhIG92ZXJsYXkgYXR0YWNoZWQgdG8gdGhlIGZvcm0tZmllbGQgc2hvdWxkIGJlIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8uXG4gICAgICovXG4gICAgZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbkNvbnRhaW5lclJlZiB8fCB0aGlzLmVsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgY2xhc3MgZnJvbSB0aGUgTmdDb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBzaG91bGRGb3J3YXJkKHByb3A6IGtleW9mIE5nQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbDtcblxuICAgICAgICByZXR1cm4gbmdDb250cm9sICYmIG5nQ29udHJvbFtwcm9wXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSdW5zIHRoZSBmb2N1cyBtb25pdG9yIGZvciB0aGUgZm9ybSBmaWVsZC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBydW5Gb2N1c01vbml0b3IgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAgICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JpZ2luKSA9PiAodGhpcy5fZm9jdXNPcmlnaW4gPSBvcmlnaW4pKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU3RvcHMgdGhlIGZvY3VzIG1vbml0b3IgZm9yIHRoZSBmb3JtIGZpZWxkLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHN0b3BGb2N1c01vbml0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIGZvcm0tZmllbGQgY29udHJvbCBpcyBtaXNzaW5nLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB2YWxpZGF0ZUNvbnRyb2xDaGlsZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRocm93IGdldEticUZvcm1GaWVsZE1pc3NpbmdDb250cm9sRXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBJbml0aWFsaXplcyB0aGUgZm9ybSBmaWVsZCBjb250cm9sLiAqL1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbFR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGticS1mb3JtLWZpZWxkLXR5cGUtJHt0aGlzLmNvbnRyb2wuY29udHJvbFR5cGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBtZXJnZSh0aGlzLmNvbnRyb2wuc3RhdGVDaGFuZ2VzLCB0aGlzLmNvbnRyb2wubmdDb250cm9sPy52YWx1ZUNoYW5nZXMgfHwgRU1QVFkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG4gICAgLyoqIEluaXRpYWxpemVzIHRoZSBrYnFQcmVmaXggYW5kIGticVN1ZmZpeCBjb250YWluZXJzLiAqL1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVByZWZpeEFuZFN1ZmZpeCgpOiB2b2lkIHtcbiAgICAgICAgLy8gTWFyayB0aGUgZm9ybSBmaWVsZCBhcyBkaXJ0eSB3aGVuZXZlciB0aGUgcHJlZml4IG9yIHN1ZmZpeCBjaGlsZHJlbiBjaGFuZ2UuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugd2VcbiAgICAgICAgLy8gY29uZGl0aW9uYWxseSBkaXNwbGF5IHRoZSBwcmVmaXgvc3VmZml4IGNvbnRhaW5lcnMgYmFzZWQgb24gd2hldGhlciB0aGVyZSBpcyBwcm9qZWN0ZWQgY29udGVudC5cbiAgICAgICAgbWVyZ2UodGhpcy5wcmVmaXguY2hhbmdlcywgdGhpcy5zdWZmaXguY2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICAvKiogSW5pdGlhbGl6ZXMgdGhlIEticUhpbnQsIEticVBhc3N3b3JkSGludCwgS2JxUmVhY3RpdmVQYXNzd29yZEhpbnQgYW5kIEticUVycm9yIGNvbnRhaW5lcnMuICovXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplSGludCgpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2UodGhpcy5oaW50LmNoYW5nZXMsIHRoaXMucGFzc3dvcmRIaW50cy5jaGFuZ2VzLCB0aGlzLnJlYWN0aXZlUGFzc3dvcmRIaW50LmNoYW5nZXMsIHRoaXMuZXJyb3IuY2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG59XG5cbi8qKlxuICogQGRvY3MtcHJpdmF0ZVxuICpcbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHJlbGVhc2UsIHVzZSBgbm9Cb3JkZXJzYCBpbnB1dCBpbnN0ZWFkLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWZvcm0tZmllbGRba2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnNdJyxcbiAgICBleHBvcnRBczogJ2ticUZvcm1GaWVsZFdpdGhvdXRCb3JkZXJzJyxcbiAgICBob3N0OiB7IGNsYXNzOiAna2JxLWZvcm0tZmllbGRfd2l0aG91dC1ib3JkZXJzJyB9XG59KVxuZXhwb3J0IGNsYXNzIEticUZvcm1GaWVsZFdpdGhvdXRCb3JkZXJzIHt9XG5cbi8qKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUlucHV0XSwgW2ticVRleHRhcmVhXScsXG4gICAgZXhwb3J0QXM6ICdLYnFUcmltJyxcbiAgICBob3N0OiB7IGNsYXNzOiAna2JxLXRyaW0nIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxVHJpbSB7XG4gICAgcHJpdmF0ZSBvcmlnaW5hbDogKGZuOiBhbnkpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEF0dHJpYnV0ZSgnbm8tdHJpbScpIHByaXZhdGUgcmVhZG9ubHkgbm9UcmltOiBib29sZWFuLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgICApIHtcbiAgICAgICAgdGhpcy5ub1RyaW0gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobm9UcmltKTtcblxuICAgICAgICBpZiAodGhpcy5ub1RyaW0gfHwgIXRoaXMubmdDb250cm9sPy52YWx1ZUFjY2Vzc29yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9yaWdpbmFsID0gdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5yZWdpc3Rlck9uQ2hhbmdlO1xuXG4gICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZSA9IHRoaXMucmVnaXN0ZXJPbkNoYW5nZTtcbiAgICB9XG5cbiAgICB0cmltKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLm5vVHJpbSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyT25DaGFuZ2UgPSAoZm4pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2luYWwuY2FsbCh0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLCAodmFsdWUpID0+IGZuKHRoaXMudHJpbSh2YWx1ZSkpKTtcbiAgICB9O1xufVxuIiwiQGlmIChoYXNMYWJlbCkge1xuICAgIDxsYWJlbCBjbGFzcz1cImticS1mb3JtLWZpZWxkX19sYWJlbFwiIFthdHRyLmZvcl09XCJjb250cm9sLmlkXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1sYWJlbFwiIC8+XG4gICAgPC9sYWJlbD5cbn1cblxuPGRpdiAjY29ubmVjdGlvbkNvbnRhaW5lciBjbGFzcz1cImticS1mb3JtLWZpZWxkX19jb250YWluZXJcIiAoY2xpY2spPVwib25Db250YWluZXJDbGljaygkZXZlbnQpXCI+XG4gICAgQGlmIChoYXNQcmVmaXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19wcmVmaXhcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnFQcmVmaXhdXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19pbmZpeFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNTdWZmaXggfHwgaGFzQ2xlYW5lciB8fCBoYXNQYXNzd29yZFRvZ2dsZSB8fCBoYXNTdGVwcGVyKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybS1maWVsZF9fc3VmZml4XCI+XG4gICAgICAgICAgICBAaWYgKGNhblNob3dDbGVhbmVyKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19jbGVhbmVyXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiIChrZXlkb3duLmVudGVyKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtY2xlYW5lclwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1wYXNzd29yZC10b2dnbGUsIGticS1zdGVwcGVyLCBba2JxU3VmZml4XVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuXG5AaWYgKGhhc0hpbnQgfHwgaGFzUGFzc3dvcmRIaW50IHx8IGhhc0Vycm9yIHx8IGhhc1JlYWN0aXZlUGFzc3dvcmRIaW50KSB7XG4gICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19oaW50XCI+XG4gICAgICAgIEBpZiAoaW52YWxpZCkge1xuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWVycm9yXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1oaW50LCBrYnEtcGFzc3dvcmQtaGludCwga2JxLXJlYWN0aXZlLXBhc3N3b3JkLWhpbnRcIiAvPlxuICAgIDwvZGl2PlxufVxuIl19