@progress/kendo-angular-inputs 14.4.0-develop.2 → 14.4.0-develop.20

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 (296) hide show
  1. package/LICENSE.md +1 -1
  2. package/NOTICE.txt +147 -594
  3. package/README.md +1 -1
  4. package/checkbox/checkbox.directive.d.ts +1 -1
  5. package/checkbox.module.d.ts +1 -1
  6. package/colorpicker/color-contrast-svg.component.d.ts +1 -1
  7. package/colorpicker/color-gradient-numeric-label.directive.d.ts +1 -1
  8. package/colorpicker/color-gradient.component.d.ts +2 -2
  9. package/colorpicker/color-input.component.d.ts +1 -1
  10. package/colorpicker/color-palette.component.d.ts +2 -2
  11. package/colorpicker/colorpicker.component.d.ts +2 -2
  12. package/colorpicker/constants.d.ts +1 -1
  13. package/colorpicker/contrast-validation.component.d.ts +1 -1
  14. package/colorpicker/contrast.component.d.ts +1 -1
  15. package/colorpicker/events/active-color-click-event.d.ts +1 -1
  16. package/colorpicker/events/cancel-event.d.ts +1 -1
  17. package/colorpicker/events/close-event.d.ts +1 -1
  18. package/colorpicker/events/kendo-drag-event.d.ts +1 -1
  19. package/colorpicker/events/open-event.d.ts +1 -1
  20. package/colorpicker/events.d.ts +1 -1
  21. package/colorpicker/flatcolorpicker-actions.component.d.ts +1 -1
  22. package/colorpicker/flatcolorpicker-header.component.d.ts +1 -1
  23. package/colorpicker/flatcolorpicker.component.d.ts +2 -2
  24. package/colorpicker/focus-on-dom-ready.directive.d.ts +1 -1
  25. package/colorpicker/localization/colorgradient-localization.service.d.ts +1 -1
  26. package/colorpicker/localization/colorpalette-localization.service.d.ts +1 -1
  27. package/colorpicker/localization/colorpicker-localization.service.d.ts +1 -1
  28. package/colorpicker/localization/custom-messages.component.d.ts +1 -1
  29. package/colorpicker/localization/flatcolorpicker-localization.service.d.ts +1 -1
  30. package/colorpicker/localization/localized-colorpicker-messages.directive.d.ts +1 -1
  31. package/colorpicker/localization/messages.d.ts +1 -1
  32. package/colorpicker/models/actions-layout.d.ts +1 -1
  33. package/colorpicker/models/colorpicker-view.d.ts +1 -1
  34. package/colorpicker/models/gradient-settings.d.ts +1 -1
  35. package/colorpicker/models/hsva.d.ts +1 -1
  36. package/colorpicker/models/output-format.d.ts +1 -1
  37. package/colorpicker/models/palette-presets.d.ts +1 -1
  38. package/colorpicker/models/palette-settings.d.ts +1 -1
  39. package/colorpicker/models/popup-settings.d.ts +1 -1
  40. package/colorpicker/models/rgb.d.ts +1 -1
  41. package/colorpicker/models/rgba.d.ts +1 -1
  42. package/colorpicker/models/table-cell.d.ts +1 -1
  43. package/colorpicker/models/tile-size.d.ts +1 -1
  44. package/colorpicker/models.d.ts +1 -1
  45. package/colorpicker/services/color-palette.service.d.ts +1 -1
  46. package/colorpicker/services/flatcolorpicker.service.d.ts +1 -1
  47. package/colorpicker/utils/color-parser.d.ts +1 -1
  48. package/colorpicker/utils/contrast-curve.d.ts +1 -1
  49. package/colorpicker/utils.d.ts +1 -1
  50. package/colorpicker.module.d.ts +1 -1
  51. package/common/dom-utils.d.ts +1 -1
  52. package/common/math.d.ts +1 -1
  53. package/common/models/fillmode.d.ts +1 -1
  54. package/common/models/rounded.d.ts +1 -1
  55. package/common/models/size.d.ts +1 -1
  56. package/common/models/styling-classes.d.ts +1 -1
  57. package/common/models/type.d.ts +1 -1
  58. package/common/models.d.ts +1 -1
  59. package/common/utils.d.ts +1 -1
  60. package/esm2020/checkbox/checkbox.directive.mjs +1 -1
  61. package/esm2020/checkbox.module.mjs +1 -1
  62. package/esm2020/colorpicker/color-contrast-svg.component.mjs +1 -1
  63. package/esm2020/colorpicker/color-gradient-numeric-label.directive.mjs +1 -1
  64. package/esm2020/colorpicker/color-gradient.component.mjs +2 -2
  65. package/esm2020/colorpicker/color-input.component.mjs +2 -2
  66. package/esm2020/colorpicker/color-palette.component.mjs +2 -2
  67. package/esm2020/colorpicker/colorpicker.component.mjs +2 -2
  68. package/esm2020/colorpicker/constants.mjs +1 -1
  69. package/esm2020/colorpicker/contrast-validation.component.mjs +1 -1
  70. package/esm2020/colorpicker/contrast.component.mjs +1 -1
  71. package/esm2020/colorpicker/events/active-color-click-event.mjs +1 -1
  72. package/esm2020/colorpicker/events/cancel-event.mjs +1 -1
  73. package/esm2020/colorpicker/events/close-event.mjs +1 -1
  74. package/esm2020/colorpicker/events/kendo-drag-event.mjs +1 -1
  75. package/esm2020/colorpicker/events/open-event.mjs +1 -1
  76. package/esm2020/colorpicker/events.mjs +1 -1
  77. package/esm2020/colorpicker/flatcolorpicker-actions.component.mjs +1 -1
  78. package/esm2020/colorpicker/flatcolorpicker-header.component.mjs +1 -1
  79. package/esm2020/colorpicker/flatcolorpicker.component.mjs +2 -2
  80. package/esm2020/colorpicker/focus-on-dom-ready.directive.mjs +1 -1
  81. package/esm2020/colorpicker/localization/colorgradient-localization.service.mjs +1 -1
  82. package/esm2020/colorpicker/localization/colorpalette-localization.service.mjs +1 -1
  83. package/esm2020/colorpicker/localization/colorpicker-localization.service.mjs +1 -1
  84. package/esm2020/colorpicker/localization/custom-messages.component.mjs +1 -1
  85. package/esm2020/colorpicker/localization/flatcolorpicker-localization.service.mjs +1 -1
  86. package/esm2020/colorpicker/localization/localized-colorpicker-messages.directive.mjs +1 -1
  87. package/esm2020/colorpicker/localization/messages.mjs +1 -1
  88. package/esm2020/colorpicker/models/actions-layout.mjs +1 -1
  89. package/esm2020/colorpicker/models/colorpicker-view.mjs +1 -1
  90. package/esm2020/colorpicker/models/gradient-settings.mjs +1 -1
  91. package/esm2020/colorpicker/models/hsva.mjs +1 -1
  92. package/esm2020/colorpicker/models/output-format.mjs +1 -1
  93. package/esm2020/colorpicker/models/palette-presets.mjs +1 -1
  94. package/esm2020/colorpicker/models/palette-settings.mjs +1 -1
  95. package/esm2020/colorpicker/models/popup-settings.mjs +1 -1
  96. package/esm2020/colorpicker/models/rgb.mjs +1 -1
  97. package/esm2020/colorpicker/models/rgba.mjs +1 -1
  98. package/esm2020/colorpicker/models/table-cell.mjs +1 -1
  99. package/esm2020/colorpicker/models/tile-size.mjs +1 -1
  100. package/esm2020/colorpicker/models.mjs +1 -1
  101. package/esm2020/colorpicker/services/color-palette.service.mjs +1 -1
  102. package/esm2020/colorpicker/services/flatcolorpicker.service.mjs +1 -1
  103. package/esm2020/colorpicker/utils/color-parser.mjs +1 -1
  104. package/esm2020/colorpicker/utils/contrast-curve.mjs +1 -1
  105. package/esm2020/colorpicker/utils.mjs +1 -1
  106. package/esm2020/colorpicker.module.mjs +1 -1
  107. package/esm2020/common/dom-utils.mjs +1 -1
  108. package/esm2020/common/math.mjs +1 -1
  109. package/esm2020/common/models/fillmode.mjs +1 -1
  110. package/esm2020/common/models/rounded.mjs +1 -1
  111. package/esm2020/common/models/size.mjs +1 -1
  112. package/esm2020/common/models/styling-classes.mjs +1 -1
  113. package/esm2020/common/models/type.mjs +1 -1
  114. package/esm2020/common/models.mjs +1 -1
  115. package/esm2020/common/utils.mjs +1 -1
  116. package/esm2020/formfield/error.component.mjs +1 -1
  117. package/esm2020/formfield/formfield.component.mjs +1 -1
  118. package/esm2020/formfield/hint.component.mjs +1 -1
  119. package/esm2020/formfield/models/message-align.mjs +1 -1
  120. package/esm2020/formfield/models/orientation.mjs +1 -1
  121. package/esm2020/formfield/models/show-options.mjs +1 -1
  122. package/esm2020/formfield.module.mjs +1 -1
  123. package/esm2020/index.mjs +5 -1
  124. package/esm2020/inputs.module.mjs +1 -1
  125. package/esm2020/maskedtextbox/maskedtextbox.component.mjs +146 -58
  126. package/esm2020/maskedtextbox/masking.service.mjs +1 -1
  127. package/esm2020/maskedtextbox/parsing/combinators.mjs +1 -1
  128. package/esm2020/maskedtextbox/parsing/parsers.mjs +1 -1
  129. package/esm2020/maskedtextbox/parsing/result.mjs +1 -1
  130. package/esm2020/maskedtextbox/parsing/stream.mjs +1 -1
  131. package/esm2020/maskedtextbox.module.mjs +31 -7
  132. package/esm2020/numerictextbox/arrow-direction.mjs +1 -1
  133. package/esm2020/numerictextbox/constants.mjs +1 -1
  134. package/esm2020/numerictextbox/localization/custom-messages.component.mjs +1 -1
  135. package/esm2020/numerictextbox/localization/localized-numerictextbox-messages.directive.mjs +1 -1
  136. package/esm2020/numerictextbox/localization/messages.mjs +1 -1
  137. package/esm2020/numerictextbox/numerictextbox.component.mjs +188 -93
  138. package/esm2020/numerictextbox/utils.mjs +1 -1
  139. package/esm2020/numerictextbox.module.mjs +11 -7
  140. package/esm2020/package-metadata.mjs +3 -3
  141. package/esm2020/progress-kendo-angular-inputs.mjs +1 -1
  142. package/esm2020/radiobutton/radiobutton.directive.mjs +1 -1
  143. package/esm2020/radiobutton.module.mjs +1 -1
  144. package/esm2020/rangeslider/localization/custom-messages.component.mjs +1 -1
  145. package/esm2020/rangeslider/localization/localized-rangeslider-messages.directive.mjs +1 -1
  146. package/esm2020/rangeslider/localization/messages.mjs +1 -1
  147. package/esm2020/rangeslider/rangeslider-model.mjs +1 -1
  148. package/esm2020/rangeslider/rangeslider-value.type.mjs +1 -1
  149. package/esm2020/rangeslider/rangeslider.component.mjs +1 -1
  150. package/esm2020/rangeslider.module.mjs +1 -1
  151. package/esm2020/shared/input-separator.component.mjs +22 -4
  152. package/esm2020/shared/shared-events.directive.mjs +95 -0
  153. package/esm2020/shared/textarea.directive.mjs +1 -1
  154. package/esm2020/shared/utils.mjs +1 -1
  155. package/esm2020/shared-events.module.mjs +22 -0
  156. package/esm2020/shared.module.mjs +1 -1
  157. package/esm2020/signature/events/close-event.mjs +1 -1
  158. package/esm2020/signature/events/index.mjs +1 -1
  159. package/esm2020/signature/events/open-event.mjs +1 -1
  160. package/esm2020/signature/localization/custom-messages.component.mjs +1 -1
  161. package/esm2020/signature/localization/index.mjs +1 -1
  162. package/esm2020/signature/localization/localized-signature-messages.directive.mjs +1 -1
  163. package/esm2020/signature/localization/messages.mjs +1 -1
  164. package/esm2020/signature/signature.component.mjs +2 -2
  165. package/esm2020/signature.module.mjs +1 -1
  166. package/esm2020/slider/localization/custom-messages.component.mjs +1 -1
  167. package/esm2020/slider/localization/localized-slider-messages.directive.mjs +1 -1
  168. package/esm2020/slider/localization/messages.mjs +1 -1
  169. package/esm2020/slider/slider-model.mjs +1 -1
  170. package/esm2020/slider/slider.component.mjs +1 -1
  171. package/esm2020/slider.module.mjs +1 -1
  172. package/esm2020/sliders-common/label-template.directive.mjs +1 -1
  173. package/esm2020/sliders-common/slider-base.mjs +2 -2
  174. package/esm2020/sliders-common/slider-model.base.mjs +1 -1
  175. package/esm2020/sliders-common/slider-ticks.component.mjs +1 -1
  176. package/esm2020/sliders-common/sliders-common.module.mjs +1 -1
  177. package/esm2020/sliders-common/sliders-util.mjs +1 -1
  178. package/esm2020/sliders-common/title-callback.mjs +1 -1
  179. package/esm2020/switch/events/blur-event.mjs +1 -1
  180. package/esm2020/switch/events/focus-event.mjs +1 -1
  181. package/esm2020/switch/localization/custom-messages.component.mjs +1 -1
  182. package/esm2020/switch/localization/localized-switch-messages.directive.mjs +1 -1
  183. package/esm2020/switch/localization/messages.mjs +1 -1
  184. package/esm2020/switch/switch.component.mjs +2 -2
  185. package/esm2020/switch.module.mjs +1 -1
  186. package/esm2020/text-fields-common/text-fields-base.mjs +2 -2
  187. package/esm2020/textarea/models/adornments-orientation.mjs +5 -0
  188. package/esm2020/textarea/models/flow.mjs +1 -1
  189. package/esm2020/textarea/models/resize.mjs +1 -1
  190. package/esm2020/textarea/textarea-prefix.component.mjs +70 -0
  191. package/esm2020/textarea/textarea-suffix.component.mjs +34 -4
  192. package/esm2020/textarea/textarea.component.mjs +199 -132
  193. package/esm2020/textarea.module.mjs +15 -6
  194. package/esm2020/textbox/localization/custom-messages.component.mjs +1 -1
  195. package/esm2020/textbox/localization/localized-textbox-messages.directive.mjs +1 -1
  196. package/esm2020/textbox/localization/messages.mjs +1 -1
  197. package/esm2020/textbox/models/icon-show-options.mjs +1 -1
  198. package/esm2020/textbox/textbox-prefix.directive.mjs +18 -4
  199. package/esm2020/textbox/textbox-suffix.directive.mjs +18 -4
  200. package/esm2020/textbox/textbox.component.mjs +207 -205
  201. package/esm2020/textbox/textbox.directive.mjs +1 -1
  202. package/esm2020/textbox.module.mjs +10 -6
  203. package/esm2020/validators/max.validator.mjs +1 -1
  204. package/esm2020/validators/min.validator.mjs +1 -1
  205. package/fesm2015/progress-kendo-angular-inputs.mjs +1143 -621
  206. package/fesm2020/progress-kendo-angular-inputs.mjs +1143 -621
  207. package/formfield/error.component.d.ts +1 -1
  208. package/formfield/formfield.component.d.ts +1 -1
  209. package/formfield/hint.component.d.ts +1 -1
  210. package/formfield/models/message-align.d.ts +1 -1
  211. package/formfield/models/orientation.d.ts +1 -1
  212. package/formfield/models/show-options.d.ts +1 -1
  213. package/formfield.module.d.ts +1 -1
  214. package/index.d.ts +7 -1
  215. package/inputs.module.d.ts +1 -1
  216. package/maskedtextbox/maskedtextbox.component.d.ts +39 -8
  217. package/maskedtextbox/masking.service.d.ts +1 -1
  218. package/maskedtextbox/parsing/combinators.d.ts +1 -1
  219. package/maskedtextbox/parsing/parsers.d.ts +1 -1
  220. package/maskedtextbox/parsing/result.d.ts +1 -1
  221. package/maskedtextbox/parsing/stream.d.ts +1 -1
  222. package/maskedtextbox.module.d.ts +4 -2
  223. package/numerictextbox/arrow-direction.d.ts +1 -1
  224. package/numerictextbox/constants.d.ts +1 -1
  225. package/numerictextbox/localization/custom-messages.component.d.ts +1 -1
  226. package/numerictextbox/localization/localized-numerictextbox-messages.directive.d.ts +1 -1
  227. package/numerictextbox/localization/messages.d.ts +1 -1
  228. package/numerictextbox/numerictextbox.component.d.ts +40 -9
  229. package/numerictextbox/utils.d.ts +1 -1
  230. package/numerictextbox.module.d.ts +4 -2
  231. package/package-metadata.d.ts +1 -1
  232. package/package.json +11 -11
  233. package/progress-kendo-angular-inputs.d.ts +1 -1
  234. package/radiobutton/radiobutton.directive.d.ts +1 -1
  235. package/radiobutton.module.d.ts +1 -1
  236. package/rangeslider/localization/custom-messages.component.d.ts +1 -1
  237. package/rangeslider/localization/localized-rangeslider-messages.directive.d.ts +1 -1
  238. package/rangeslider/localization/messages.d.ts +1 -1
  239. package/rangeslider/rangeslider-model.d.ts +1 -1
  240. package/rangeslider/rangeslider-value.type.d.ts +1 -1
  241. package/rangeslider/rangeslider.component.d.ts +1 -1
  242. package/rangeslider.module.d.ts +1 -1
  243. package/shared/input-separator.component.d.ts +9 -2
  244. package/shared/shared-events.directive.d.ts +27 -0
  245. package/shared/textarea.directive.d.ts +1 -1
  246. package/shared/utils.d.ts +1 -1
  247. package/shared-events.module.d.ts +14 -0
  248. package/shared.module.d.ts +1 -1
  249. package/signature/events/close-event.d.ts +1 -1
  250. package/signature/events/index.d.ts +1 -1
  251. package/signature/events/open-event.d.ts +1 -1
  252. package/signature/localization/custom-messages.component.d.ts +1 -1
  253. package/signature/localization/index.d.ts +1 -1
  254. package/signature/localization/localized-signature-messages.directive.d.ts +1 -1
  255. package/signature/localization/messages.d.ts +1 -1
  256. package/signature/signature.component.d.ts +2 -2
  257. package/signature.module.d.ts +1 -1
  258. package/slider/localization/custom-messages.component.d.ts +1 -1
  259. package/slider/localization/localized-slider-messages.directive.d.ts +1 -1
  260. package/slider/localization/messages.d.ts +1 -1
  261. package/slider/slider-model.d.ts +1 -1
  262. package/slider/slider.component.d.ts +1 -1
  263. package/slider.module.d.ts +1 -1
  264. package/sliders-common/label-template.directive.d.ts +1 -1
  265. package/sliders-common/slider-base.d.ts +2 -2
  266. package/sliders-common/slider-model.base.d.ts +1 -1
  267. package/sliders-common/slider-ticks.component.d.ts +1 -1
  268. package/sliders-common/sliders-common.module.d.ts +1 -1
  269. package/sliders-common/sliders-util.d.ts +1 -1
  270. package/sliders-common/title-callback.d.ts +1 -1
  271. package/switch/events/blur-event.d.ts +1 -1
  272. package/switch/events/focus-event.d.ts +1 -1
  273. package/switch/localization/custom-messages.component.d.ts +1 -1
  274. package/switch/localization/localized-switch-messages.directive.d.ts +1 -1
  275. package/switch/localization/messages.d.ts +1 -1
  276. package/switch/switch.component.d.ts +2 -2
  277. package/switch.module.d.ts +1 -1
  278. package/text-fields-common/text-fields-base.d.ts +2 -2
  279. package/textarea/models/adornments-orientation.d.ts +12 -0
  280. package/textarea/models/flow.d.ts +1 -1
  281. package/textarea/models/resize.d.ts +1 -1
  282. package/textarea/textarea-prefix.component.d.ts +37 -0
  283. package/textarea/textarea-suffix.component.d.ts +13 -2
  284. package/textarea/textarea.component.d.ts +63 -7
  285. package/textarea.module.d.ts +10 -8
  286. package/textbox/localization/custom-messages.component.d.ts +1 -1
  287. package/textbox/localization/localized-textbox-messages.directive.d.ts +1 -1
  288. package/textbox/localization/messages.d.ts +1 -1
  289. package/textbox/models/icon-show-options.d.ts +1 -1
  290. package/textbox/textbox-prefix.directive.d.ts +10 -2
  291. package/textbox/textbox-suffix.directive.d.ts +10 -2
  292. package/textbox/textbox.component.d.ts +38 -11
  293. package/textbox/textbox.directive.d.ts +1 -1
  294. package/textbox.module.d.ts +5 -4
  295. package/validators/max.validator.d.ts +1 -1
  296. package/validators/min.validator.d.ts +1 -1
@@ -1,8 +1,8 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Directive, Optional, TemplateRef } from '@angular/core';
5
+ import { Directive, Input, Optional, TemplateRef } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * Specifies the adornments in the suffix container ([see examples]({% slug adornments_textbox %}#toc-suffixadornments)).
@@ -23,10 +23,22 @@ import * as i0 from "@angular/core";
23
23
  export class TextBoxSuffixTemplateDirective {
24
24
  constructor(templateRef) {
25
25
  this.templateRef = templateRef;
26
+ this._showSeparator = false;
27
+ }
28
+ /**
29
+ * Sets the `showSeparator` attribute of the `kendoTextBoxSuffixTemplate`.
30
+ *
31
+ * @default false
32
+ */
33
+ set showSeparator(value) {
34
+ this._showSeparator = value;
35
+ }
36
+ get showSeparator() {
37
+ return this._showSeparator;
26
38
  }
27
39
  }
28
40
  TextBoxSuffixTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxSuffixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
29
- TextBoxSuffixTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", ngImport: i0 });
41
+ TextBoxSuffixTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
30
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxSuffixTemplateDirective, decorators: [{
31
43
  type: Directive,
32
44
  args: [{
@@ -34,4 +46,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
34
46
  }]
35
47
  }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
36
48
  type: Optional
37
- }] }]; } });
49
+ }] }]; }, propDecorators: { showSeparator: [{
50
+ type: Input
51
+ }] } });
@@ -1,27 +1,28 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
  import { isJapanese } from './../shared/utils';
7
- import { closest } from './../common/dom-utils';
8
7
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
9
- import { Component, ElementRef, forwardRef, Input, Output, EventEmitter, HostBinding, ViewChild, NgZone, ChangeDetectorRef, Injector, ContentChild, Renderer2 } from '@angular/core';
8
+ import { Component, ElementRef, forwardRef, Input, Output, EventEmitter, HostBinding, ViewChild, NgZone, ChangeDetectorRef, Injector, ContentChild, Renderer2, ContentChildren, QueryList } from '@angular/core';
10
9
  import { validatePackage } from '@progress/kendo-licensing';
11
10
  import { packageMetadata } from '../package-metadata';
12
11
  import { invokeElementMethod } from '../common/dom-utils';
13
- import { areSame, requiresZoneOnBlur, getStylingClasses } from '../common/utils';
14
- import { guid, hasObservers, KendoInput, Keys, isSafari } from '@progress/kendo-angular-common';
12
+ import { areSame, requiresZoneOnBlur, getStylingClasses, isPresent } from '../common/utils';
13
+ import { guid, hasObservers, KendoInput, isSafari, SuffixTemplateDirective, PrefixTemplateDirective } from '@progress/kendo-angular-common';
15
14
  import { TextBoxSuffixTemplateDirective } from './textbox-suffix.directive';
16
15
  import { TextBoxPrefixTemplateDirective } from './textbox-prefix.directive';
17
16
  import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
18
17
  import { checkIcon, exclamationCircleIcon, xIcon } from '@progress/kendo-svg-icons';
19
18
  import * as i0 from "@angular/core";
20
19
  import * as i1 from "@progress/kendo-angular-l10n";
21
- import * as i2 from "@progress/kendo-angular-icons";
22
- import * as i3 from "./localization/localized-textbox-messages.directive";
23
- import * as i4 from "@angular/common";
24
- import * as i5 from "@progress/kendo-angular-common";
20
+ import * as i2 from "../shared/input-separator.component";
21
+ import * as i3 from "@progress/kendo-angular-icons";
22
+ import * as i4 from "./localization/localized-textbox-messages.directive";
23
+ import * as i5 from "../shared/shared-events.directive";
24
+ import * as i6 from "@angular/common";
25
+ import * as i7 from "@progress/kendo-angular-common";
25
26
  const FOCUSED = 'k-focus';
26
27
  const DEFAULT_SIZE = 'medium';
27
28
  const DEFAULT_ROUNDED = 'medium';
@@ -48,7 +49,7 @@ export class TextBoxComponent {
48
49
  */
49
50
  this.type = 'text';
50
51
  /**
51
- * Sets the disabled state of the component.
52
+ * Sets the disabled state of the TextBox. To learn how to disable the component in reactive forms, refer to the article on [Forms Support](slug:formssupport_textbox#toc-managing-the-textbox-disabled-state-in-reactive-forms).
52
53
  *
53
54
  * @default false
54
55
  */
@@ -180,12 +181,8 @@ export class TextBoxComponent {
180
181
  setTimeout(() => { this.selectAll(); });
181
182
  });
182
183
  }
183
- if (hasObservers(this.onFocus)) {
184
- if (!this.isFocused) {
185
- this.ngZone.run(() => {
186
- this.onFocus.emit();
187
- });
188
- }
184
+ if (!this.isFocused) {
185
+ this.handleFocus();
189
186
  }
190
187
  if (hasObservers(this.inputFocus)) {
191
188
  if (!this.focusChangedProgrammatically || (this.focusChangedProgrammatically && this.clearButtonClicked)) {
@@ -194,9 +191,6 @@ export class TextBoxComponent {
194
191
  });
195
192
  }
196
193
  }
197
- this.ngZone.run(() => {
198
- this.isFocused = true;
199
- });
200
194
  }
201
195
  };
202
196
  /**
@@ -304,56 +298,16 @@ export class TextBoxComponent {
304
298
  });
305
299
  }
306
300
  ngAfterViewInit() {
307
- const hostElement = this.hostElement.nativeElement;
308
- let cursorInsideWrapper = false;
309
- let tabbing = false;
310
- this.ngZone.runOutsideAngular(() => {
311
- // focusIn and focusOut are relative to the host element
312
- this.subscriptions.add(this.renderer.listen(hostElement, 'focusin', () => {
313
- if (!this.isFocused) {
314
- this.ngZone.run(() => {
315
- this.onFocus.emit();
316
- this.isFocused = true;
317
- });
318
- }
319
- }));
320
- this.subscriptions.add(this.renderer.listen(hostElement, 'focusout', (args) => {
321
- if (!this.isFocused) {
322
- return;
323
- }
324
- if (tabbing) {
325
- const closestTextbox = closest(args.relatedTarget, (element) => element === this.hostElement.nativeElement);
326
- if (!closestTextbox) {
327
- this.handleBlur();
328
- }
329
- tabbing = false;
330
- }
331
- else {
332
- if (!cursorInsideWrapper && !this.clearButtonClicked) {
333
- this.handleBlur();
334
- }
335
- }
336
- }));
337
- this.subscriptions.add(this.renderer.listen(hostElement, 'mouseenter', () => {
338
- cursorInsideWrapper = true;
339
- }));
340
- this.subscriptions.add(this.renderer.listen(hostElement, 'mouseleave', () => {
341
- cursorInsideWrapper = false;
342
- }));
343
- this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {
344
- if (args.keyCode === Keys.Tab) {
345
- tabbing = true;
346
- }
347
- else {
348
- tabbing = false;
349
- }
350
- }));
351
- });
352
301
  const stylingInputs = ['size', 'rounded', 'fillMode'];
353
302
  stylingInputs.forEach(input => {
354
303
  this.handleClasses(this[input], input);
355
304
  });
356
305
  }
306
+ ngAfterContentInit() {
307
+ this.configureAdornments();
308
+ this.subscriptions.add(this.textBoxPrefixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
309
+ this.subscriptions.add(this.textBoxSuffixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
310
+ }
357
311
  ngOnChanges(changes) {
358
312
  if (changes['disabled'] || changes['readonly'] || changes['value']) {
359
313
  this.checkClearButton();
@@ -556,6 +510,27 @@ export class TextBoxComponent {
556
510
  ? this.showSuccessInitial()
557
511
  : this.showSuccessIcon;
558
512
  }
513
+ /**
514
+ * @hidden
515
+ */
516
+ get isFocused() {
517
+ return this._isFocused;
518
+ }
519
+ /**
520
+ * @hidden
521
+ */
522
+ set isFocused(value) {
523
+ if (this._isFocused !== value && this.hostElement) {
524
+ const element = this.hostElement.nativeElement;
525
+ if (value && !this.disabled) {
526
+ this.renderer.addClass(element, FOCUSED);
527
+ }
528
+ else {
529
+ this.renderer.removeClass(element, FOCUSED);
530
+ }
531
+ this._isFocused = value;
532
+ }
533
+ }
559
534
  setSelection(start, end) {
560
535
  if (this.isFocused) {
561
536
  invokeElementMethod(this.input, 'setSelectionRange', start, end);
@@ -577,21 +552,20 @@ export class TextBoxComponent {
577
552
  });
578
553
  }
579
554
  }
580
- get isFocused() {
581
- return this._isFocused;
582
- }
583
- set isFocused(value) {
584
- if (this._isFocused !== value && this.hostElement) {
585
- const element = this.hostElement.nativeElement;
586
- if (value && !this.disabled) {
587
- this.renderer.addClass(element, FOCUSED);
588
- }
589
- else {
590
- this.renderer.removeClass(element, FOCUSED);
555
+ /**
556
+ * @hidden
557
+ */
558
+ handleFocus() {
559
+ this.ngZone.run(() => {
560
+ if (!this.focusChangedProgrammatically && hasObservers(this.onFocus)) {
561
+ this.onFocus.emit();
591
562
  }
592
- this._isFocused = value;
593
- }
563
+ this.isFocused = true;
564
+ });
594
565
  }
566
+ /**
567
+ * @hidden
568
+ */
595
569
  handleBlur() {
596
570
  this.ngZone.run(() => {
597
571
  if (!this.focusChangedProgrammatically) {
@@ -610,6 +584,14 @@ export class TextBoxComponent {
610
584
  this.renderer.addClass(elem, classes.toAdd);
611
585
  }
612
586
  }
587
+ configureAdornments() {
588
+ if (isPresent(this.textBoxPrefixTemplate.first)) {
589
+ this.prefixTemplate = this.textBoxPrefixTemplate.first;
590
+ }
591
+ if (isPresent(this.textBoxSuffixTemplate.first)) {
592
+ this.suffixTemplate = this.textBoxSuffixTemplate.first;
593
+ }
594
+ }
613
595
  }
614
596
  TextBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
615
597
  TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TextBoxComponent, selector: "kendo-textbox", inputs: { focusableId: "focusableId", title: "title", type: "type", disabled: "disabled", readonly: "readonly", tabindex: "tabindex", value: "value", selectOnFocus: "selectOnFocus", showSuccessIcon: "showSuccessIcon", showErrorIcon: "showErrorIcon", clearButton: "clearButton", successIcon: "successIcon", successSvgIcon: "successSvgIcon", errorIcon: "errorIcon", errorSvgIcon: "errorSvgIcon", clearButtonIcon: "clearButtonIcon", clearButtonSvgIcon: "clearButtonSvgIcon", size: "size", rounded: "rounded", fillMode: "fillMode", tabIndex: "tabIndex", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { valueChange: "valueChange", inputFocus: "inputFocus", inputBlur: "inputBlur", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-disabled": "this.disabledClass", "class.k-textbox": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.direction" } }, providers: [
@@ -621,75 +603,82 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
621
603
  multi: true
622
604
  },
623
605
  { provide: KendoInput, useExisting: forwardRef(() => TextBoxComponent) }
624
- ], queries: [{ propertyName: "suffixTemplate", first: true, predicate: TextBoxSuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: TextBoxPrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
606
+ ], queries: [{ propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }, { propertyName: "textBoxSuffixTemplate", predicate: TextBoxSuffixTemplateDirective }, { propertyName: "textBoxPrefixTemplate", predicate: TextBoxPrefixTemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
625
607
  <ng-container kendoTextBoxLocalizedMessages
626
608
  i18n-clear="kendo.textbox.clear|The title for the **Clear** button in the TextBox."
627
609
  clear="Clear">
628
610
  </ng-container>
629
- <span class="k-input-prefix">
630
- <ng-template
631
- *ngIf="prefixTemplate"
632
- [ngTemplateOutlet]="prefixTemplate?.templateRef">
633
- </ng-template>
634
- </span>
635
- <input #input
636
- class="k-input-inner"
637
- [id]="focusableId"
638
- [disabled]="disabled"
639
- [readonly]="readonly"
640
- [attr.tabindex]="disabled ? undefined : tabindex"
641
- [value]="value"
642
- [attr.type]="type"
643
- [attr.placeholder]="placeholder"
644
- [attr.title]="title"
645
- [attr.maxlength]="maxlength"
646
- [attr.aria-invalid]="isControlInvalid"
647
- [kendoEventsOutsideAngular]="{
648
- focus: handleInputFocus,
649
- blur: handleInputBlur,
650
- input: handleInput}"
651
- />
652
- <span
653
- role="button"
654
- class="k-clear-value"
655
- *ngIf="showClearButton"
656
- (click)="clearValue()"
657
- (mousedown)="$event.preventDefault()"
658
- [tabindex]="tabIndex"
659
- [attr.aria-label]="clearTitle()"
660
- [title]="clearTitle()"
661
- (keydown.enter)="clearValue($event)"
662
- (keydown.space)="clearValue($event)">
663
- <kendo-icon-wrapper
664
- [name]="clearButtonClass"
665
- [customFontClass]="customClearButtonClasses"
666
- [svgIcon]="clearButtonSvgIcon || svgIcon('xIcon')"
667
- >
668
- </kendo-icon-wrapper>
669
- </span>
670
- <kendo-icon-wrapper
671
- *ngIf="hasErrors"
672
- innerCssClass="k-input-validation-icon"
673
- [name]="errorIconClasses"
674
- [customFontClass]="customIconClasses"
675
- [svgIcon]="errorSvgIcon || svgIcon('exclamationCircleIcon')"
611
+ <ng-container
612
+ kendoInputSharedEvents
613
+ [hostElement]="hostElement"
614
+ [(isFocused)]="isFocused"
615
+ (handleBlur)="handleBlur()"
616
+ (onFocus)="handleFocus()"
617
+ [clearButtonClicked]="clearButtonClicked"
676
618
  >
677
- </kendo-icon-wrapper>
678
- <kendo-icon-wrapper
679
- *ngIf="isSuccessful"
680
- innerCssClass="k-input-validation-icon"
681
- [name]="successIconClasses"
682
- [customFontClass]="customSuccessIconClasses"
683
- [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
684
- >
685
- </kendo-icon-wrapper>
686
- <span class="k-input-suffix">
687
- <ng-template
688
- *ngIf="suffixTemplate"
689
- [ngTemplateOutlet]="suffixTemplate?.templateRef">
690
- </ng-template>
691
- </span>
692
- `, isInline: true, components: [{ type: i2.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i3.LocalizedTextBoxMessagesDirective, selector: "[kendoTextBoxLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
619
+ <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
620
+ <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
621
+ </ng-template>
622
+ </span>
623
+ <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
624
+ <input #input
625
+ class="k-input-inner"
626
+ [id]="focusableId"
627
+ [disabled]="disabled"
628
+ [readonly]="readonly"
629
+ [attr.tabindex]="disabled ? undefined : tabindex"
630
+ [value]="value"
631
+ [attr.type]="type"
632
+ [attr.placeholder]="placeholder"
633
+ [attr.title]="title"
634
+ [attr.maxlength]="maxlength"
635
+ [attr.aria-invalid]="isControlInvalid"
636
+ [kendoEventsOutsideAngular]="{
637
+ focus: handleInputFocus,
638
+ blur: handleInputBlur,
639
+ input: handleInput}"
640
+ />
641
+ <span
642
+ role="button"
643
+ class="k-clear-value"
644
+ *ngIf="showClearButton"
645
+ (click)="clearValue()"
646
+ (mousedown)="$event.preventDefault()"
647
+ [tabindex]="tabIndex"
648
+ [attr.aria-label]="clearTitle()"
649
+ [title]="clearTitle()"
650
+ (keydown.enter)="clearValue($event)"
651
+ (keydown.space)="clearValue($event)">
652
+ <kendo-icon-wrapper
653
+ [name]="clearButtonClass"
654
+ [customFontClass]="customClearButtonClasses"
655
+ [svgIcon]="clearButtonSvgIcon || svgIcon('xIcon')"
656
+ >
657
+ </kendo-icon-wrapper>
658
+ </span>
659
+ <kendo-icon-wrapper
660
+ *ngIf="hasErrors"
661
+ innerCssClass="k-input-validation-icon"
662
+ [name]="errorIconClasses"
663
+ [customFontClass]="customIconClasses"
664
+ [svgIcon]="errorSvgIcon || svgIcon('exclamationCircleIcon')"
665
+ >
666
+ </kendo-icon-wrapper>
667
+ <kendo-icon-wrapper
668
+ *ngIf="isSuccessful"
669
+ innerCssClass="k-input-validation-icon"
670
+ [name]="successIconClasses"
671
+ [customFontClass]="customSuccessIconClasses"
672
+ [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
673
+ >
674
+ </kendo-icon-wrapper>
675
+ <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
676
+ <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
677
+ <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
678
+ </ng-template>
679
+ </span>
680
+ <ng-container>
681
+ `, isInline: true, components: [{ type: i2.InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.LocalizedTextBoxMessagesDirective, selector: "[kendoTextBoxLocalizedMessages]" }, { type: i5.SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
693
682
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxComponent, decorators: [{
694
683
  type: Component,
695
684
  args: [{
@@ -710,69 +699,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
710
699
  i18n-clear="kendo.textbox.clear|The title for the **Clear** button in the TextBox."
711
700
  clear="Clear">
712
701
  </ng-container>
713
- <span class="k-input-prefix">
714
- <ng-template
715
- *ngIf="prefixTemplate"
716
- [ngTemplateOutlet]="prefixTemplate?.templateRef">
717
- </ng-template>
718
- </span>
719
- <input #input
720
- class="k-input-inner"
721
- [id]="focusableId"
722
- [disabled]="disabled"
723
- [readonly]="readonly"
724
- [attr.tabindex]="disabled ? undefined : tabindex"
725
- [value]="value"
726
- [attr.type]="type"
727
- [attr.placeholder]="placeholder"
728
- [attr.title]="title"
729
- [attr.maxlength]="maxlength"
730
- [attr.aria-invalid]="isControlInvalid"
731
- [kendoEventsOutsideAngular]="{
732
- focus: handleInputFocus,
733
- blur: handleInputBlur,
734
- input: handleInput}"
735
- />
736
- <span
737
- role="button"
738
- class="k-clear-value"
739
- *ngIf="showClearButton"
740
- (click)="clearValue()"
741
- (mousedown)="$event.preventDefault()"
742
- [tabindex]="tabIndex"
743
- [attr.aria-label]="clearTitle()"
744
- [title]="clearTitle()"
745
- (keydown.enter)="clearValue($event)"
746
- (keydown.space)="clearValue($event)">
747
- <kendo-icon-wrapper
748
- [name]="clearButtonClass"
749
- [customFontClass]="customClearButtonClasses"
750
- [svgIcon]="clearButtonSvgIcon || svgIcon('xIcon')"
751
- >
752
- </kendo-icon-wrapper>
753
- </span>
754
- <kendo-icon-wrapper
755
- *ngIf="hasErrors"
756
- innerCssClass="k-input-validation-icon"
757
- [name]="errorIconClasses"
758
- [customFontClass]="customIconClasses"
759
- [svgIcon]="errorSvgIcon || svgIcon('exclamationCircleIcon')"
760
- >
761
- </kendo-icon-wrapper>
762
- <kendo-icon-wrapper
763
- *ngIf="isSuccessful"
764
- innerCssClass="k-input-validation-icon"
765
- [name]="successIconClasses"
766
- [customFontClass]="customSuccessIconClasses"
767
- [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
702
+ <ng-container
703
+ kendoInputSharedEvents
704
+ [hostElement]="hostElement"
705
+ [(isFocused)]="isFocused"
706
+ (handleBlur)="handleBlur()"
707
+ (onFocus)="handleFocus()"
708
+ [clearButtonClicked]="clearButtonClicked"
768
709
  >
769
- </kendo-icon-wrapper>
770
- <span class="k-input-suffix">
771
- <ng-template
772
- *ngIf="suffixTemplate"
773
- [ngTemplateOutlet]="suffixTemplate?.templateRef">
774
- </ng-template>
775
- </span>
710
+ <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
711
+ <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
712
+ </ng-template>
713
+ </span>
714
+ <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
715
+ <input #input
716
+ class="k-input-inner"
717
+ [id]="focusableId"
718
+ [disabled]="disabled"
719
+ [readonly]="readonly"
720
+ [attr.tabindex]="disabled ? undefined : tabindex"
721
+ [value]="value"
722
+ [attr.type]="type"
723
+ [attr.placeholder]="placeholder"
724
+ [attr.title]="title"
725
+ [attr.maxlength]="maxlength"
726
+ [attr.aria-invalid]="isControlInvalid"
727
+ [kendoEventsOutsideAngular]="{
728
+ focus: handleInputFocus,
729
+ blur: handleInputBlur,
730
+ input: handleInput}"
731
+ />
732
+ <span
733
+ role="button"
734
+ class="k-clear-value"
735
+ *ngIf="showClearButton"
736
+ (click)="clearValue()"
737
+ (mousedown)="$event.preventDefault()"
738
+ [tabindex]="tabIndex"
739
+ [attr.aria-label]="clearTitle()"
740
+ [title]="clearTitle()"
741
+ (keydown.enter)="clearValue($event)"
742
+ (keydown.space)="clearValue($event)">
743
+ <kendo-icon-wrapper
744
+ [name]="clearButtonClass"
745
+ [customFontClass]="customClearButtonClasses"
746
+ [svgIcon]="clearButtonSvgIcon || svgIcon('xIcon')"
747
+ >
748
+ </kendo-icon-wrapper>
749
+ </span>
750
+ <kendo-icon-wrapper
751
+ *ngIf="hasErrors"
752
+ innerCssClass="k-input-validation-icon"
753
+ [name]="errorIconClasses"
754
+ [customFontClass]="customIconClasses"
755
+ [svgIcon]="errorSvgIcon || svgIcon('exclamationCircleIcon')"
756
+ >
757
+ </kendo-icon-wrapper>
758
+ <kendo-icon-wrapper
759
+ *ngIf="isSuccessful"
760
+ innerCssClass="k-input-validation-icon"
761
+ [name]="successIconClasses"
762
+ [customFontClass]="customSuccessIconClasses"
763
+ [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
764
+ >
765
+ </kendo-icon-wrapper>
766
+ <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
767
+ <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
768
+ <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
769
+ </ng-template>
770
+ </span>
771
+ <ng-container>
776
772
  `
777
773
  }]
778
774
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { focusableId: [{
@@ -836,12 +832,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
836
832
  }], input: [{
837
833
  type: ViewChild,
838
834
  args: ['input', { static: true }]
835
+ }], textBoxSuffixTemplate: [{
836
+ type: ContentChildren,
837
+ args: [TextBoxSuffixTemplateDirective, { descendants: false }]
838
+ }], textBoxPrefixTemplate: [{
839
+ type: ContentChildren,
840
+ args: [TextBoxPrefixTemplateDirective, { descendants: false }]
839
841
  }], suffixTemplate: [{
840
842
  type: ContentChild,
841
- args: [TextBoxSuffixTemplateDirective, { static: false }]
843
+ args: [SuffixTemplateDirective]
842
844
  }], prefixTemplate: [{
843
845
  type: ContentChild,
844
- args: [TextBoxPrefixTemplateDirective, { static: false }]
846
+ args: [PrefixTemplateDirective]
845
847
  }], disabledClass: [{
846
848
  type: HostBinding,
847
849
  args: ['class.k-disabled']
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive, ElementRef, EventEmitter, Input, HostBinding, Renderer2, forwardRef, NgZone } from '@angular/core';
@@ -1,18 +1,19 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { NgModule } from "@angular/core";
6
6
  import { TextBoxDirective } from "./textbox/textbox.directive";
7
7
  import { TextBoxComponent } from "./textbox/textbox.component";
8
8
  import { CommonModule } from "@angular/common";
9
- import { EventsModule } from "@progress/kendo-angular-common";
9
+ import { AdornmentsModule, EventsModule } from "@progress/kendo-angular-common";
10
10
  import { TextBoxSuffixTemplateDirective } from "./textbox/textbox-suffix.directive";
11
11
  import { TextBoxPrefixTemplateDirective } from './textbox/textbox-prefix.directive';
12
12
  import { TextBoxCustomMessagesComponent } from './textbox/localization/custom-messages.component';
13
13
  import { LocalizedTextBoxMessagesDirective } from './textbox/localization/localized-textbox-messages.directive';
14
14
  import { SharedModule, SHARED_DIRECTIVES } from './shared.module';
15
15
  import { IconsModule } from "@progress/kendo-angular-icons";
16
+ import { SharedEventsModule } from "./shared-events.module";
16
17
  import * as i0 from "@angular/core";
17
18
  import * as i1 from "./shared/input-separator.component";
18
19
  import * as i2 from "./shared/textarea.directive";
@@ -55,14 +56,16 @@ TextBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
55
56
  TextBoxSuffixTemplateDirective,
56
57
  TextBoxPrefixTemplateDirective,
57
58
  TextBoxCustomMessagesComponent,
58
- LocalizedTextBoxMessagesDirective], imports: [CommonModule, EventsModule, SharedModule, IconsModule], exports: [TextBoxDirective,
59
+ LocalizedTextBoxMessagesDirective], imports: [CommonModule, EventsModule, SharedModule, IconsModule, AdornmentsModule, SharedEventsModule], exports: [TextBoxDirective,
59
60
  TextBoxComponent,
60
61
  TextBoxSuffixTemplateDirective,
61
62
  TextBoxPrefixTemplateDirective,
62
63
  EventsModule,
63
64
  TextBoxCustomMessagesComponent,
64
- LocalizedTextBoxMessagesDirective, i1.InputSeparatorComponent, i2.TextAreaDirective] });
65
- TextBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxModule, imports: [[CommonModule, EventsModule, SharedModule, IconsModule], EventsModule] });
65
+ LocalizedTextBoxMessagesDirective,
66
+ AdornmentsModule, i1.InputSeparatorComponent, i2.TextAreaDirective] });
67
+ TextBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxModule, imports: [[CommonModule, EventsModule, SharedModule, IconsModule, AdornmentsModule, SharedEventsModule], EventsModule,
68
+ AdornmentsModule] });
66
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxModule, decorators: [{
67
70
  type: NgModule,
68
71
  args: [{
@@ -82,8 +85,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
82
85
  EventsModule,
83
86
  TextBoxCustomMessagesComponent,
84
87
  LocalizedTextBoxMessagesDirective,
88
+ AdornmentsModule,
85
89
  SHARED_DIRECTIVES
86
90
  ],
87
- imports: [CommonModule, EventsModule, SharedModule, IconsModule]
91
+ imports: [CommonModule, EventsModule, SharedModule, IconsModule, AdornmentsModule, SharedEventsModule]
88
92
  }]
89
93
  }] });
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { isPresent } from '../common/utils';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { isPresent } from '../common/utils';