@progress/kendo-angular-inputs 13.2.1-develop.11 → 13.2.1-develop.13

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 (289) hide show
  1. package/LICENSE.md +11 -0
  2. package/NOTICE.txt +654 -0
  3. package/README.md +184 -0
  4. package/checkbox/checkbox.directive.d.ts +52 -0
  5. package/checkbox.module.d.ts +43 -0
  6. package/colorpicker/color-contrast-svg.component.d.ts +29 -0
  7. package/colorpicker/color-gradient-numeric-label.directive.d.ts +20 -0
  8. package/colorpicker/color-gradient.component.d.ts +281 -0
  9. package/colorpicker/color-input.component.d.ts +95 -0
  10. package/colorpicker/color-palette.component.d.ts +221 -0
  11. package/colorpicker/colorpicker.component.d.ts +383 -0
  12. package/colorpicker/constants.d.ts +41 -0
  13. package/colorpicker/contrast-validation.component.d.ts +24 -0
  14. package/colorpicker/contrast.component.d.ts +25 -0
  15. package/colorpicker/events/active-color-click-event.d.ts +53 -0
  16. package/colorpicker/events/cancel-event.d.ts +15 -0
  17. package/colorpicker/events/close-event.d.ts +10 -0
  18. package/colorpicker/events/kendo-drag-event.d.ts +21 -0
  19. package/colorpicker/events/open-event.d.ts +10 -0
  20. package/colorpicker/events.d.ts +8 -0
  21. package/colorpicker/flatcolorpicker-actions.component.d.ts +24 -0
  22. package/colorpicker/flatcolorpicker-header.component.d.ts +43 -0
  23. package/colorpicker/flatcolorpicker.component.d.ts +267 -0
  24. package/colorpicker/focus-on-dom-ready.directive.d.ts +18 -0
  25. package/colorpicker/localization/colorgradient-localization.service.d.ts +17 -0
  26. package/colorpicker/localization/colorpalette-localization.service.d.ts +17 -0
  27. package/colorpicker/localization/colorpicker-localization.service.d.ts +14 -0
  28. package/colorpicker/localization/custom-messages.component.d.ts +17 -0
  29. package/colorpicker/localization/flatcolorpicker-localization.service.d.ts +17 -0
  30. package/colorpicker/localization/localized-colorpicker-messages.directive.d.ts +16 -0
  31. package/colorpicker/localization/messages.d.ts +121 -0
  32. package/colorpicker/models/actions-layout.d.ts +8 -0
  33. package/colorpicker/models/colorpicker-view.d.ts +8 -0
  34. package/colorpicker/models/gradient-settings.d.ts +35 -0
  35. package/colorpicker/models/hsva.d.ts +13 -0
  36. package/colorpicker/models/output-format.d.ts +8 -0
  37. package/colorpicker/models/palette-presets.d.ts +61 -0
  38. package/colorpicker/models/palette-settings.d.ts +33 -0
  39. package/colorpicker/models/popup-settings.d.ts +18 -0
  40. package/colorpicker/models/rgb.d.ts +12 -0
  41. package/colorpicker/models/rgba.d.ts +13 -0
  42. package/colorpicker/models/table-cell.d.ts +11 -0
  43. package/colorpicker/models/tile-size.d.ts +11 -0
  44. package/colorpicker/models.d.ts +16 -0
  45. package/colorpicker/services/color-palette.service.d.ts +19 -0
  46. package/colorpicker/services/flatcolorpicker.service.d.ts +15 -0
  47. package/colorpicker/utils/color-parser.d.ts +77 -0
  48. package/colorpicker/utils/contrast-curve.d.ts +37 -0
  49. package/colorpicker/utils.d.ts +6 -0
  50. package/colorpicker.module.d.ts +35 -0
  51. package/common/dom-utils.d.ts +25 -0
  52. package/common/math.d.ts +36 -0
  53. package/common/models/fillmode.d.ts +9 -0
  54. package/common/models/rounded.d.ts +14 -0
  55. package/common/models/size.d.ts +9 -0
  56. package/common/models/styling-classes.d.ts +11 -0
  57. package/common/models.d.ts +8 -0
  58. package/common/utils.d.ts +56 -0
  59. package/esm2020/checkbox/checkbox.directive.mjs +94 -0
  60. package/esm2020/checkbox.module.mjs +52 -0
  61. package/esm2020/colorpicker/color-contrast-svg.component.mjs +97 -0
  62. package/esm2020/colorpicker/color-gradient-numeric-label.directive.mjs +31 -0
  63. package/esm2020/colorpicker/color-gradient.component.mjs +1003 -0
  64. package/esm2020/colorpicker/color-input.component.mjs +433 -0
  65. package/esm2020/colorpicker/color-palette.component.mjs +553 -0
  66. package/esm2020/colorpicker/colorpicker.component.mjs +1086 -0
  67. package/esm2020/colorpicker/constants.mjs +40 -0
  68. package/esm2020/colorpicker/contrast-validation.component.mjs +72 -0
  69. package/esm2020/colorpicker/contrast.component.mjs +100 -0
  70. package/esm2020/colorpicker/events/active-color-click-event.mjs +58 -0
  71. package/esm2020/colorpicker/events/cancel-event.mjs +14 -0
  72. package/esm2020/colorpicker/events/close-event.mjs +10 -0
  73. package/esm2020/colorpicker/events/kendo-drag-event.mjs +5 -0
  74. package/esm2020/colorpicker/events/open-event.mjs +10 -0
  75. package/esm2020/colorpicker/events.mjs +8 -0
  76. package/esm2020/colorpicker/flatcolorpicker-actions.component.mjs +93 -0
  77. package/esm2020/colorpicker/flatcolorpicker-header.component.mjs +217 -0
  78. package/esm2020/colorpicker/flatcolorpicker.component.mjs +829 -0
  79. package/esm2020/colorpicker/focus-on-dom-ready.directive.mjs +29 -0
  80. package/esm2020/colorpicker/localization/colorgradient-localization.service.mjs +45 -0
  81. package/esm2020/colorpicker/localization/colorpalette-localization.service.mjs +45 -0
  82. package/esm2020/colorpicker/localization/colorpicker-localization.service.mjs +31 -0
  83. package/esm2020/colorpicker/localization/custom-messages.component.mjs +41 -0
  84. package/esm2020/colorpicker/localization/flatcolorpicker-localization.service.mjs +45 -0
  85. package/esm2020/colorpicker/localization/localized-colorpicker-messages.directive.mjs +37 -0
  86. package/esm2020/colorpicker/localization/messages.mjs +75 -0
  87. package/esm2020/colorpicker/models/actions-layout.mjs +5 -0
  88. package/esm2020/colorpicker/models/colorpicker-view.mjs +5 -0
  89. package/esm2020/colorpicker/models/gradient-settings.mjs +5 -0
  90. package/esm2020/colorpicker/models/hsva.mjs +5 -0
  91. package/esm2020/colorpicker/models/output-format.mjs +5 -0
  92. package/esm2020/colorpicker/models/palette-presets.mjs +62 -0
  93. package/esm2020/colorpicker/models/palette-settings.mjs +5 -0
  94. package/esm2020/colorpicker/models/popup-settings.mjs +5 -0
  95. package/esm2020/colorpicker/models/rgb.mjs +5 -0
  96. package/esm2020/colorpicker/models/rgba.mjs +5 -0
  97. package/esm2020/colorpicker/models/table-cell.mjs +5 -0
  98. package/esm2020/colorpicker/models/tile-size.mjs +6 -0
  99. package/esm2020/colorpicker/models.mjs +16 -0
  100. package/esm2020/colorpicker/services/color-palette.service.mjs +67 -0
  101. package/esm2020/colorpicker/services/flatcolorpicker.service.mjs +39 -0
  102. package/esm2020/colorpicker/utils/color-parser.mjs +164 -0
  103. package/esm2020/colorpicker/utils/contrast-curve.mjs +85 -0
  104. package/esm2020/colorpicker/utils.mjs +6 -0
  105. package/esm2020/colorpicker.module.mjs +104 -0
  106. package/esm2020/common/dom-utils.mjs +36 -0
  107. package/esm2020/common/math.mjs +65 -0
  108. package/esm2020/common/models/fillmode.mjs +5 -0
  109. package/esm2020/common/models/rounded.mjs +5 -0
  110. package/esm2020/common/models/size.mjs +5 -0
  111. package/esm2020/common/models/styling-classes.mjs +5 -0
  112. package/esm2020/common/models.mjs +8 -0
  113. package/esm2020/common/utils.mjs +81 -0
  114. package/esm2020/formfield/error.component.mjs +68 -0
  115. package/esm2020/formfield/formfield.component.mjs +284 -0
  116. package/esm2020/formfield/hint.component.mjs +63 -0
  117. package/esm2020/formfield/models/message-align.mjs +5 -0
  118. package/esm2020/formfield/models/orientation.mjs +5 -0
  119. package/esm2020/formfield/models/show-options.mjs +5 -0
  120. package/esm2020/formfield.module.mjs +54 -0
  121. package/esm2020/index.mjs +66 -0
  122. package/esm2020/inputs.module.mjs +98 -0
  123. package/esm2020/maskedtextbox/maskedtextbox.component.mjs +711 -0
  124. package/esm2020/maskedtextbox/masking.service.mjs +191 -0
  125. package/esm2020/maskedtextbox/parsing/combinators.mjs +28 -0
  126. package/esm2020/maskedtextbox/parsing/parsers.mjs +147 -0
  127. package/esm2020/maskedtextbox/parsing/result.mjs +41 -0
  128. package/esm2020/maskedtextbox/parsing/stream.mjs +41 -0
  129. package/esm2020/maskedtextbox.module.mjs +53 -0
  130. package/esm2020/numerictextbox/arrow-direction.mjs +13 -0
  131. package/esm2020/numerictextbox/constants.mjs +28 -0
  132. package/esm2020/numerictextbox/localization/custom-messages.component.mjs +41 -0
  133. package/esm2020/numerictextbox/localization/localized-numerictextbox-messages.directive.mjs +37 -0
  134. package/esm2020/numerictextbox/localization/messages.mjs +25 -0
  135. package/esm2020/numerictextbox/numerictextbox.component.mjs +1105 -0
  136. package/esm2020/numerictextbox/utils.mjs +92 -0
  137. package/esm2020/numerictextbox.module.mjs +66 -0
  138. package/esm2020/package-metadata.mjs +15 -0
  139. package/esm2020/progress-kendo-angular-inputs.mjs +8 -0
  140. package/esm2020/radiobutton/radiobutton.directive.mjs +76 -0
  141. package/esm2020/radiobutton.module.mjs +52 -0
  142. package/esm2020/rangeslider/localization/custom-messages.component.mjs +41 -0
  143. package/esm2020/rangeslider/localization/localized-rangeslider-messages.directive.mjs +37 -0
  144. package/esm2020/rangeslider/localization/messages.mjs +25 -0
  145. package/esm2020/rangeslider/rangeslider-model.mjs +52 -0
  146. package/esm2020/rangeslider/rangeslider-value.type.mjs +5 -0
  147. package/esm2020/rangeslider/rangeslider.component.mjs +605 -0
  148. package/esm2020/rangeslider.module.mjs +71 -0
  149. package/esm2020/shared/input-separator.component.mjs +41 -0
  150. package/esm2020/shared/textarea.directive.mjs +260 -0
  151. package/esm2020/shared/utils.mjs +13 -0
  152. package/esm2020/shared.module.mjs +32 -0
  153. package/esm2020/signature/events/close-event.mjs +10 -0
  154. package/esm2020/signature/events/index.mjs +6 -0
  155. package/esm2020/signature/events/open-event.mjs +10 -0
  156. package/esm2020/signature/localization/custom-messages.component.mjs +41 -0
  157. package/esm2020/signature/localization/index.mjs +7 -0
  158. package/esm2020/signature/localization/localized-signature-messages.directive.mjs +37 -0
  159. package/esm2020/signature/localization/messages.mjs +29 -0
  160. package/esm2020/signature/signature.component.mjs +906 -0
  161. package/esm2020/signature.module.mjs +79 -0
  162. package/esm2020/slider/localization/custom-messages.component.mjs +41 -0
  163. package/esm2020/slider/localization/localized-slider-messages.directive.mjs +37 -0
  164. package/esm2020/slider/localization/messages.mjs +27 -0
  165. package/esm2020/slider/slider-model.mjs +34 -0
  166. package/esm2020/slider/slider.component.mjs +646 -0
  167. package/esm2020/slider.module.mjs +73 -0
  168. package/esm2020/sliders-common/label-template.directive.mjs +45 -0
  169. package/esm2020/sliders-common/slider-base.mjs +255 -0
  170. package/esm2020/sliders-common/slider-model.base.mjs +93 -0
  171. package/esm2020/sliders-common/slider-ticks.component.mjs +125 -0
  172. package/esm2020/sliders-common/sliders-common.module.mjs +42 -0
  173. package/esm2020/sliders-common/sliders-util.mjs +219 -0
  174. package/esm2020/sliders-common/title-callback.mjs +5 -0
  175. package/esm2020/switch/events/blur-event.mjs +9 -0
  176. package/esm2020/switch/events/focus-event.mjs +9 -0
  177. package/esm2020/switch/localization/custom-messages.component.mjs +41 -0
  178. package/esm2020/switch/localization/localized-switch-messages.directive.mjs +37 -0
  179. package/esm2020/switch/localization/messages.mjs +25 -0
  180. package/esm2020/switch/switch.component.mjs +577 -0
  181. package/esm2020/switch.module.mjs +68 -0
  182. package/esm2020/text-fields-common/text-fields-base.mjs +128 -0
  183. package/esm2020/textarea/models/flow.mjs +5 -0
  184. package/esm2020/textarea/models/resize.mjs +5 -0
  185. package/esm2020/textarea/textarea-suffix.component.mjs +40 -0
  186. package/esm2020/textarea/textarea.component.mjs +604 -0
  187. package/esm2020/textarea.module.mjs +68 -0
  188. package/esm2020/textbox/localization/custom-messages.component.mjs +41 -0
  189. package/esm2020/textbox/localization/localized-textbox-messages.directive.mjs +37 -0
  190. package/esm2020/textbox/localization/messages.mjs +23 -0
  191. package/esm2020/textbox/models/icon-show-options.mjs +5 -0
  192. package/esm2020/textbox/textbox-prefix.directive.mjs +38 -0
  193. package/esm2020/textbox/textbox-suffix.directive.mjs +37 -0
  194. package/esm2020/textbox/textbox.component.mjs +849 -0
  195. package/esm2020/textbox/textbox.directive.mjs +121 -0
  196. package/esm2020/textbox.module.mjs +89 -0
  197. package/esm2020/validators/max.validator.mjs +21 -0
  198. package/esm2020/validators/min.validator.mjs +21 -0
  199. package/fesm2015/progress-kendo-angular-inputs.mjs +15090 -0
  200. package/fesm2020/progress-kendo-angular-inputs.mjs +15055 -0
  201. package/formfield/error.component.d.ts +31 -0
  202. package/formfield/formfield.component.d.ts +98 -0
  203. package/formfield/hint.component.d.ts +29 -0
  204. package/formfield/models/message-align.d.ts +8 -0
  205. package/formfield/models/orientation.d.ts +9 -0
  206. package/formfield/models/show-options.d.ts +16 -0
  207. package/formfield.module.d.ts +45 -0
  208. package/index.d.ts +76 -0
  209. package/inputs.module.d.ts +55 -0
  210. package/maskedtextbox/maskedtextbox.component.d.ts +315 -0
  211. package/maskedtextbox/masking.service.d.ts +48 -0
  212. package/maskedtextbox/parsing/combinators.d.ts +13 -0
  213. package/maskedtextbox/parsing/parsers.d.ts +51 -0
  214. package/maskedtextbox/parsing/result.d.ts +27 -0
  215. package/maskedtextbox/parsing/stream.d.ts +26 -0
  216. package/maskedtextbox.module.d.ts +44 -0
  217. package/numerictextbox/arrow-direction.d.ts +12 -0
  218. package/numerictextbox/constants.d.ts +28 -0
  219. package/numerictextbox/localization/custom-messages.component.d.ts +17 -0
  220. package/numerictextbox/localization/localized-numerictextbox-messages.directive.d.ts +16 -0
  221. package/numerictextbox/localization/messages.d.ts +21 -0
  222. package/numerictextbox/numerictextbox.component.d.ts +364 -0
  223. package/numerictextbox/utils.d.ts +44 -0
  224. package/numerictextbox.module.d.ts +47 -0
  225. package/package-metadata.d.ts +9 -0
  226. package/package.json +74 -0
  227. package/progress-kendo-angular-inputs.d.ts +9 -0
  228. package/radiobutton/radiobutton.directive.d.ts +38 -0
  229. package/radiobutton.module.d.ts +43 -0
  230. package/rangeslider/localization/custom-messages.component.d.ts +17 -0
  231. package/rangeslider/localization/localized-rangeslider-messages.directive.d.ts +16 -0
  232. package/rangeslider/localization/messages.d.ts +21 -0
  233. package/rangeslider/rangeslider-model.d.ts +15 -0
  234. package/rangeslider/rangeslider-value.type.d.ts +9 -0
  235. package/rangeslider/rangeslider.component.d.ts +139 -0
  236. package/rangeslider.module.d.ts +48 -0
  237. package/schematics/collection.json +12 -0
  238. package/schematics/ngAdd/index.js +11 -0
  239. package/schematics/ngAdd/schema.json +28 -0
  240. package/shared/input-separator.component.d.ts +28 -0
  241. package/shared/textarea.directive.d.ts +99 -0
  242. package/shared/utils.d.ts +10 -0
  243. package/shared.module.d.ts +19 -0
  244. package/signature/events/close-event.d.ts +10 -0
  245. package/signature/events/index.d.ts +6 -0
  246. package/signature/events/open-event.d.ts +10 -0
  247. package/signature/localization/custom-messages.component.d.ts +17 -0
  248. package/signature/localization/index.d.ts +7 -0
  249. package/signature/localization/localized-signature-messages.directive.d.ts +16 -0
  250. package/signature/localization/messages.d.ts +29 -0
  251. package/signature/signature.component.d.ts +364 -0
  252. package/signature.module.d.ts +48 -0
  253. package/slider/localization/custom-messages.component.d.ts +17 -0
  254. package/slider/localization/localized-slider-messages.directive.d.ts +16 -0
  255. package/slider/localization/messages.d.ts +25 -0
  256. package/slider/slider-model.d.ts +14 -0
  257. package/slider/slider.component.d.ts +175 -0
  258. package/slider.module.d.ts +50 -0
  259. package/sliders-common/label-template.directive.d.ts +36 -0
  260. package/sliders-common/slider-base.d.ts +141 -0
  261. package/sliders-common/slider-model.base.d.ts +26 -0
  262. package/sliders-common/slider-ticks.component.d.ts +26 -0
  263. package/sliders-common/sliders-common.module.d.ts +17 -0
  264. package/sliders-common/sliders-util.d.ts +119 -0
  265. package/sliders-common/title-callback.d.ts +10 -0
  266. package/switch/events/blur-event.d.ts +13 -0
  267. package/switch/events/focus-event.d.ts +13 -0
  268. package/switch/localization/custom-messages.component.d.ts +17 -0
  269. package/switch/localization/localized-switch-messages.directive.d.ts +16 -0
  270. package/switch/localization/messages.d.ts +21 -0
  271. package/switch/switch.component.d.ts +216 -0
  272. package/switch.module.d.ts +46 -0
  273. package/text-fields-common/text-fields-base.d.ts +91 -0
  274. package/textarea/models/flow.d.ts +12 -0
  275. package/textarea/models/resize.d.ts +16 -0
  276. package/textarea/textarea-suffix.component.d.ts +26 -0
  277. package/textarea/textarea.component.d.ts +225 -0
  278. package/textarea.module.d.ts +48 -0
  279. package/textbox/localization/custom-messages.component.d.ts +17 -0
  280. package/textbox/localization/localized-textbox-messages.directive.d.ts +16 -0
  281. package/textbox/localization/messages.d.ts +17 -0
  282. package/textbox/models/icon-show-options.d.ts +13 -0
  283. package/textbox/textbox-prefix.directive.d.ts +29 -0
  284. package/textbox/textbox-suffix.directive.d.ts +28 -0
  285. package/textbox/textbox.component.d.ts +376 -0
  286. package/textbox/textbox.directive.d.ts +59 -0
  287. package/textbox.module.d.ts +53 -0
  288. package/validators/max.validator.d.ts +8 -0
  289. package/validators/min.validator.d.ts +8 -0
@@ -0,0 +1,284 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Component, ContentChild, ContentChildren, ElementRef, HostBinding, Input, isDevMode, Renderer2, QueryList } from '@angular/core';
6
+ import { NgControl, RadioControlValueAccessor } from '@angular/forms';
7
+ import { Subscription } from 'rxjs';
8
+ import { KendoInput, isDocumentAvailable } from '@progress/kendo-angular-common';
9
+ import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
10
+ import { validatePackage } from '@progress/kendo-licensing';
11
+ import { packageMetadata } from '../package-metadata';
12
+ import { ErrorComponent } from './error.component';
13
+ import { HintComponent } from './hint.component';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@progress/kendo-angular-l10n";
16
+ import * as i2 from "@angular/common";
17
+ /**
18
+ * Specifies a container for form-bound controls (Kendo controls or native HTML controls).
19
+ * Applies styling and behavior rules.
20
+ */
21
+ export class FormFieldComponent {
22
+ constructor(renderer, localizationService, hostElement) {
23
+ this.renderer = renderer;
24
+ this.localizationService = localizationService;
25
+ this.hostElement = hostElement;
26
+ this.hostClass = true;
27
+ /**
28
+ *
29
+ * Specifies when the Hint messages will be shown.
30
+ *
31
+ * The possible values are:
32
+ *
33
+ * * (Default) `initial`—Allows displaying hints when the form-bound component state is
34
+ * `valid` or `untouched` and `pristine`.
35
+ * * `always`—Allows full control over the visibility of the hints.
36
+ *
37
+ */
38
+ this.showHints = 'initial';
39
+ /**
40
+ * Specifies the layout orientation of the form field.
41
+ *
42
+ * * The possible values are:
43
+ *
44
+ * * (Default) `vertical`
45
+ * * `horizontal`
46
+ */
47
+ this.orientation = 'vertical';
48
+ /**
49
+ * Specifies when the Error messages will be shown.
50
+ *
51
+ * The possible values are:
52
+ *
53
+ * * (Default) `initial`—Allows displaying errors when the form-bound component state is
54
+ * `invalid` and `touched` or `dirty`.
55
+ * * `always`—Allows full control over the visibility of the errors.
56
+ *
57
+ */
58
+ this.showErrors = 'initial';
59
+ this.subscriptions = new Subscription();
60
+ this.rtl = false;
61
+ validatePackage(packageMetadata);
62
+ this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
63
+ this.rtl = rtl;
64
+ this.direction = this.rtl ? 'rtl' : 'ltr';
65
+ }));
66
+ }
67
+ get errorClass() {
68
+ if (!this.control) {
69
+ return false;
70
+ }
71
+ return this.control.invalid && (this.control.touched || this.control.dirty);
72
+ }
73
+ get disabledClass() {
74
+ if (!this.control) {
75
+ return false;
76
+ }
77
+ // radiobutton group
78
+ if (this.isRadioControl(this.control)) {
79
+ return false;
80
+ }
81
+ return this.disabledControl() ||
82
+ this.disabledElement() ||
83
+ this.disabledKendoInput();
84
+ }
85
+ set formControls(formControls) {
86
+ this.validateFormControl(formControls);
87
+ this.control = formControls.first;
88
+ }
89
+ /**
90
+ * @hidden
91
+ */
92
+ get horizontal() {
93
+ return this.orientation === 'horizontal';
94
+ }
95
+ /**
96
+ * @hidden
97
+ */
98
+ get hasHints() {
99
+ return this.showHints === 'always' ? true : this.showHintsInitial();
100
+ }
101
+ /**
102
+ * @hidden
103
+ */
104
+ get hasErrors() {
105
+ return this.showErrors === 'always' ? true : this.showErrorsInitial();
106
+ }
107
+ ngAfterViewInit() {
108
+ this.setDescription();
109
+ }
110
+ ngAfterViewChecked() {
111
+ this.updateDescription();
112
+ }
113
+ ngOnDestroy() {
114
+ this.subscriptions.unsubscribe();
115
+ }
116
+ disabledKendoInput() {
117
+ return this.kendoInput && this.kendoInput.disabled;
118
+ }
119
+ disabledControl() {
120
+ return this.control.disabled;
121
+ }
122
+ disabledElement() {
123
+ const elements = this.controlElementRefs.toArray();
124
+ return elements.every(e => e.nativeElement.hasAttribute('disabled'));
125
+ }
126
+ validateFormControl(formControls) {
127
+ if (isDevMode() && formControls.length !== 1 && !this.isControlGroup(formControls)) {
128
+ throw new Error('The `kendo-formfield` component should contain ' +
129
+ 'only one control of type NgControl with a formControlName(https://angular.io/api/forms/FormControlName)' +
130
+ 'or an ngModel(https://angular.io/api/forms/NgModel) binding.');
131
+ }
132
+ }
133
+ isControlGroup(formControls) {
134
+ if (!formControls.length) {
135
+ return false;
136
+ }
137
+ const name = formControls.first.name;
138
+ return formControls.toArray().every(c => c.name === name && (this.isRadioControl(c)));
139
+ }
140
+ isRadioControl(control) {
141
+ return control.valueAccessor instanceof RadioControlValueAccessor;
142
+ }
143
+ updateDescription() {
144
+ const controls = this.findControlElements();
145
+ if (!controls) {
146
+ return;
147
+ }
148
+ controls.forEach((control) => {
149
+ if (this.errorChildren.length > 0 || this.hintChildren.length > 0) {
150
+ const ariaIds = this.generateDescriptionIds(control);
151
+ if (ariaIds !== '') {
152
+ this.renderer.setAttribute(control, 'aria-describedby', ariaIds);
153
+ }
154
+ else {
155
+ this.renderer.removeAttribute(control, 'aria-describedby');
156
+ }
157
+ }
158
+ });
159
+ }
160
+ findControlElements() {
161
+ if (!this.controlElementRefs) {
162
+ return;
163
+ }
164
+ // if the control is KendoInput and has focusableId - dropdowns, dateinputs
165
+ if (this.kendoInput && this.kendoInput.focusableId && isDocumentAvailable()) {
166
+ return [this.hostElement.nativeElement.querySelector(`#${this.kendoInput.focusableId}`)];
167
+ }
168
+ return this.controlElementRefs.map(el => el.nativeElement);
169
+ }
170
+ generateDescriptionIds(control) {
171
+ const ids = new Set();
172
+ let errorAttribute = '';
173
+ if (control.hasAttribute('aria-describedby')) {
174
+ const attributes = control.getAttribute('aria-describedby').split(' ');
175
+ errorAttribute = attributes.filter(attr => attr.includes('kendo-error-'))[0];
176
+ attributes.forEach((attr) => {
177
+ if (attr.includes('kendo-hint-') || attr.includes('kendo-error-')) {
178
+ return;
179
+ }
180
+ ids.add(attr);
181
+ });
182
+ }
183
+ this.hintChildren.forEach((hint) => {
184
+ ids.add(hint.id);
185
+ });
186
+ if (this.hasErrors) {
187
+ this.errorChildren.forEach((error) => {
188
+ ids.add(error.id);
189
+ });
190
+ }
191
+ else {
192
+ ids.delete(errorAttribute);
193
+ }
194
+ return Array.from(ids).join(' ');
195
+ }
196
+ showHintsInitial() {
197
+ if (!this.control) {
198
+ return true;
199
+ }
200
+ const { valid, untouched, pristine } = this.control;
201
+ return valid || (untouched && pristine);
202
+ }
203
+ showErrorsInitial() {
204
+ if (!this.control) {
205
+ return false;
206
+ }
207
+ const { invalid, dirty, touched } = this.control;
208
+ return invalid && (dirty || touched);
209
+ }
210
+ setDescription() {
211
+ this.updateDescription();
212
+ this.subscriptions.add(this.errorChildren.changes.subscribe(() => this.updateDescription()));
213
+ this.subscriptions.add(this.hintChildren.changes.subscribe(() => this.updateDescription()));
214
+ }
215
+ }
216
+ FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
217
+ FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FormFieldComponent, selector: "kendo-formfield", inputs: { showHints: "showHints", orientation: "orientation", showErrors: "showErrors" }, host: { properties: { "class.k-form-field": "this.hostClass", "attr.dir": "this.direction", "class.k-form-field-error": "this.errorClass", "class.k-form-field-disabled": "this.disabledClass" } }, providers: [
218
+ LocalizationService,
219
+ {
220
+ provide: L10N_PREFIX,
221
+ useValue: 'kendo.formfield'
222
+ }
223
+ ], queries: [{ propertyName: "kendoInput", first: true, predicate: KendoInput, descendants: true, static: true }, { propertyName: "formControls", predicate: NgControl, descendants: true }, { propertyName: "controlElementRefs", predicate: NgControl, descendants: true, read: ElementRef }, { propertyName: "errorChildren", predicate: ErrorComponent, descendants: true }, { propertyName: "hintChildren", predicate: HintComponent, descendants: true }], ngImport: i0, template: `
224
+ <ng-content select="label, kendo-label"></ng-content>
225
+ <div [class.k-form-field-wrap]="horizontal">
226
+ <ng-content></ng-content>
227
+ <ng-content select="kendo-formhint" *ngIf="hasHints"></ng-content>
228
+ <ng-content select="kendo-formerror" *ngIf="hasErrors"></ng-content>
229
+ </div>
230
+ `, isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormFieldComponent, decorators: [{
232
+ type: Component,
233
+ args: [{
234
+ selector: 'kendo-formfield',
235
+ template: `
236
+ <ng-content select="label, kendo-label"></ng-content>
237
+ <div [class.k-form-field-wrap]="horizontal">
238
+ <ng-content></ng-content>
239
+ <ng-content select="kendo-formhint" *ngIf="hasHints"></ng-content>
240
+ <ng-content select="kendo-formerror" *ngIf="hasErrors"></ng-content>
241
+ </div>
242
+ `,
243
+ providers: [
244
+ LocalizationService,
245
+ {
246
+ provide: L10N_PREFIX,
247
+ useValue: 'kendo.formfield'
248
+ }
249
+ ]
250
+ }]
251
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
252
+ type: HostBinding,
253
+ args: ['class.k-form-field']
254
+ }], direction: [{
255
+ type: HostBinding,
256
+ args: ['attr.dir']
257
+ }], errorClass: [{
258
+ type: HostBinding,
259
+ args: ['class.k-form-field-error']
260
+ }], disabledClass: [{
261
+ type: HostBinding,
262
+ args: ['class.k-form-field-disabled']
263
+ }], formControls: [{
264
+ type: ContentChildren,
265
+ args: [NgControl, { descendants: true }]
266
+ }], controlElementRefs: [{
267
+ type: ContentChildren,
268
+ args: [NgControl, { read: ElementRef, descendants: true }]
269
+ }], kendoInput: [{
270
+ type: ContentChild,
271
+ args: [KendoInput, { static: true }]
272
+ }], errorChildren: [{
273
+ type: ContentChildren,
274
+ args: [ErrorComponent, { descendants: true }]
275
+ }], hintChildren: [{
276
+ type: ContentChildren,
277
+ args: [HintComponent, { descendants: true }]
278
+ }], showHints: [{
279
+ type: Input
280
+ }], orientation: [{
281
+ type: Input
282
+ }], showErrors: [{
283
+ type: Input
284
+ }] } });
@@ -0,0 +1,63 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Component, HostBinding, Input } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ let serial = 0;
8
+ /**
9
+ * Represents a hint message that will be shown underneath a form-bound component.
10
+ */
11
+ export class HintComponent {
12
+ constructor() {
13
+ /**
14
+ * Specifies the alignment of the Hint message.
15
+ *
16
+ * The possible values are:
17
+ * * (Default) `start`
18
+ * * `end`
19
+ */
20
+ this.align = 'start';
21
+ /**
22
+ * @hidden
23
+ */
24
+ this.id = `kendo-hint-${serial++}`;
25
+ this.hostClass = true;
26
+ }
27
+ get startClass() {
28
+ return this.align === 'start';
29
+ }
30
+ get endClass() {
31
+ return this.align === 'end';
32
+ }
33
+ get idAttribute() {
34
+ return this.id;
35
+ }
36
+ }
37
+ HintComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ HintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: HintComponent, selector: "kendo-formhint", inputs: { align: "align" }, host: { properties: { "class.k-form-hint": "this.hostClass", "class.k-text-start": "this.startClass", "class.k-text-end": "this.endClass", "attr.id": "this.idAttribute" } }, ngImport: i0, template: `
39
+ <ng-content></ng-content>
40
+ `, isInline: true });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HintComponent, decorators: [{
42
+ type: Component,
43
+ args: [{
44
+ selector: 'kendo-formhint',
45
+ template: `
46
+ <ng-content></ng-content>
47
+ `
48
+ }]
49
+ }], propDecorators: { align: [{
50
+ type: Input
51
+ }], hostClass: [{
52
+ type: HostBinding,
53
+ args: ['class.k-form-hint']
54
+ }], startClass: [{
55
+ type: HostBinding,
56
+ args: ['class.k-text-start']
57
+ }], endClass: [{
58
+ type: HostBinding,
59
+ args: ['class.k-text-end']
60
+ }], idAttribute: [{
61
+ type: HostBinding,
62
+ args: ['attr.id']
63
+ }] } });
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -0,0 +1,54 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { NgModule } from '@angular/core';
6
+ import { CommonModule } from '@angular/common';
7
+ import { FormFieldComponent } from './formfield/formfield.component';
8
+ import { HintComponent } from './formfield/hint.component';
9
+ import { ErrorComponent } from './formfield/error.component';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
13
+ * definition for the FormField, Error and Hint components.
14
+ *
15
+ * @example
16
+ *
17
+ * ```ts-no-run
18
+ * // Import the FormField module
19
+ * import { FormFieldModule } from '@progress/kendo-angular-inputs';
20
+ *
21
+ * // The browser platform with a compiler
22
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
23
+ *
24
+ * import { NgModule } from '@angular/core';
25
+ *
26
+ * // Import the app component
27
+ * import { AppComponent } from './app.component';
28
+ *
29
+ * // Define the app module
30
+ * _@NgModule({
31
+ * declarations: [AppComponent], // declare app component
32
+ * imports: [BrowserModule, FormFieldModule], // import FormField module
33
+ * bootstrap: [AppComponent]
34
+ * })
35
+ * export class AppModule {}
36
+ *
37
+ * // Compile and launch the module
38
+ * platformBrowserDynamic().bootstrapModule(AppModule);
39
+ *
40
+ * ```
41
+ */
42
+ export class FormFieldModule {
43
+ }
44
+ FormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
45
+ FormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormFieldModule, declarations: [HintComponent, ErrorComponent, FormFieldComponent], imports: [CommonModule], exports: [HintComponent, ErrorComponent, FormFieldComponent] });
46
+ FormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormFieldModule, imports: [[CommonModule]] });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormFieldModule, decorators: [{
48
+ type: NgModule,
49
+ args: [{
50
+ declarations: [HintComponent, ErrorComponent, FormFieldComponent],
51
+ exports: [HintComponent, ErrorComponent, FormFieldComponent],
52
+ imports: [CommonModule]
53
+ }]
54
+ }] });
@@ -0,0 +1,66 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export { SliderComponent } from './slider/slider.component';
6
+ export { RangeSliderComponent } from './rangeslider/rangeslider.component';
7
+ export { LabelTemplateDirective } from './sliders-common/label-template.directive';
8
+ export { SwitchComponent } from './switch/switch.component';
9
+ export { TextBoxDirective } from './textbox/textbox.directive';
10
+ export { TextAreaDirective } from './shared/textarea.directive';
11
+ export { NumericTextBoxComponent } from './numerictextbox/numerictextbox.component';
12
+ export { NumericTextBoxCustomMessagesComponent } from './numerictextbox/localization/custom-messages.component';
13
+ export { MaskedTextBoxComponent } from './maskedtextbox/maskedtextbox.component';
14
+ export { InputsModule } from './inputs.module';
15
+ export { SliderTicksComponent } from './sliders-common/slider-ticks.component';
16
+ export { SliderModule } from './slider.module';
17
+ export { RangeSliderModule } from './rangeslider.module';
18
+ export { SwitchModule } from './switch.module';
19
+ export { NumericTextBoxModule } from './numerictextbox.module';
20
+ export { MaskedTextBoxModule } from './maskedtextbox.module';
21
+ export { TextBoxModule } from './textbox.module';
22
+ export { TextAreaModule } from './textarea.module';
23
+ export { CheckBoxModule } from './checkbox.module';
24
+ export { RadioButtonModule } from './radiobutton.module';
25
+ export { SwitchBlurEvent } from './switch/events/blur-event';
26
+ export { SwitchFocusEvent } from './switch/events/focus-event';
27
+ // All ColorPicker Components
28
+ export { ColorPickerComponent } from './colorpicker/colorpicker.component';
29
+ export { ColorPaletteComponent } from './colorpicker/color-palette.component';
30
+ export { ColorGradientComponent } from './colorpicker/color-gradient.component';
31
+ export { ColorPickerModule } from './colorpicker.module';
32
+ export * from './colorpicker/events';
33
+ export { FlatColorPickerComponent } from './colorpicker/flatcolorpicker.component';
34
+ export { CheckBoxDirective } from './checkbox/checkbox.directive';
35
+ export { RadioButtonDirective } from './radiobutton/radiobutton.directive';
36
+ export { HintComponent } from './formfield/hint.component';
37
+ export { ErrorComponent } from './formfield/error.component';
38
+ export { FormFieldComponent } from './formfield/formfield.component';
39
+ export { FormFieldModule } from './formfield.module';
40
+ //TextBox Component
41
+ export { TextBoxComponent } from './textbox/textbox.component';
42
+ export { TextBoxPrefixTemplateDirective } from './textbox/textbox-prefix.directive';
43
+ export { TextBoxSuffixTemplateDirective } from './textbox/textbox-suffix.directive';
44
+ //TextArea Component
45
+ export { TextAreaComponent } from './textarea/textarea.component';
46
+ export { TextAreaSuffixComponent } from './textarea/textarea-suffix.component';
47
+ //Shared
48
+ export { InputSeparatorComponent } from './shared/input-separator.component';
49
+ export { SharedModule } from './shared.module';
50
+ export { LocalizedColorPickerMessagesDirective } from './colorpicker/localization/localized-colorpicker-messages.directive';
51
+ export { LocalizedNumericTextBoxMessagesDirective } from './numerictextbox/localization/localized-numerictextbox-messages.directive';
52
+ export { LocalizedTextBoxMessagesDirective } from './textbox/localization/localized-textbox-messages.directive';
53
+ export { LocalizedSliderMessagesDirective } from './slider/localization/localized-slider-messages.directive';
54
+ export { LocalizedRangeSliderMessagesDirective } from './rangeslider/localization/localized-rangeslider-messages.directive';
55
+ export { LocalizedSwitchMessagesDirective } from './switch/localization/localized-switch-messages.directive';
56
+ // WRT error NG3001: Unsupported private class
57
+ export { SliderCustomMessagesComponent } from './slider/localization/custom-messages.component';
58
+ export { RangeSliderCustomMessagesComponent } from './rangeslider/localization/custom-messages.component';
59
+ export { SwitchCustomMessagesComponent } from './switch/localization/custom-messages.component';
60
+ export { TextBoxCustomMessagesComponent } from './textbox/localization/custom-messages.component';
61
+ export { ColorPickerCustomMessagesComponent } from './colorpicker/localization/custom-messages.component';
62
+ export { NumericLabelDirective } from './colorpicker/color-gradient-numeric-label.directive';
63
+ export { SignatureComponent } from './signature/signature.component';
64
+ export { SignatureModule } from './signature.module';
65
+ export { SignatureOpenEvent, SignatureCloseEvent } from './signature/events';
66
+ export { SignatureCustomMessagesComponent, LocalizedSignatureMessagesDirective, SignatureMessages } from './signature/localization';
@@ -0,0 +1,98 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { NgModule } from '@angular/core';
6
+ import { SliderModule } from './slider.module';
7
+ import { RangeSliderModule } from './rangeslider.module';
8
+ import { SwitchModule } from './switch.module';
9
+ import { NumericTextBoxModule } from './numerictextbox.module';
10
+ import { MaskedTextBoxModule } from './maskedtextbox.module';
11
+ import { TextBoxModule } from './textbox.module';
12
+ import { TextAreaModule } from './textarea.module';
13
+ import { CommonModule } from '@angular/common';
14
+ import { ColorPickerModule } from './colorpicker.module';
15
+ import { CheckBoxModule } from './checkbox.module';
16
+ import { RadioButtonModule } from './radiobutton.module';
17
+ import { FormFieldModule } from './formfield.module';
18
+ import { SignatureModule } from './signature.module';
19
+ import * as i0 from "@angular/core";
20
+ /**
21
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
22
+ * definition for the Inputs components.
23
+ *
24
+ * @example
25
+ *
26
+ * ```ts-no-run
27
+ * // Import the Inputs module
28
+ * import { InputsModule } from '@progress/kendo-angular-inputs';
29
+ *
30
+ * // The browser platform with a compiler
31
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
32
+ * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
33
+ *
34
+ * import { NgModule } from '@angular/core';
35
+ *
36
+ * // Import the app component
37
+ * import { AppComponent } from './app.component';
38
+ *
39
+ * // Define the app module
40
+ * _@NgModule({
41
+ * declarations: [AppComponent], // declare app component
42
+ * imports: [BrowserModule, BrowserAnimationsModule, InputsModule], // import Inputs module
43
+ * bootstrap: [AppComponent]
44
+ * })
45
+ * export class AppModule {}
46
+ *
47
+ * // Compile and launch the module
48
+ * platformBrowserDynamic().bootstrapModule(AppModule);
49
+ *
50
+ * ```
51
+ */
52
+ export class InputsModule {
53
+ }
54
+ InputsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
55
+ InputsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputsModule, imports: [CommonModule], exports: [TextAreaModule,
56
+ TextBoxModule,
57
+ SliderModule,
58
+ RangeSliderModule,
59
+ SwitchModule,
60
+ NumericTextBoxModule,
61
+ MaskedTextBoxModule,
62
+ ColorPickerModule,
63
+ CheckBoxModule,
64
+ RadioButtonModule,
65
+ FormFieldModule,
66
+ SignatureModule] });
67
+ InputsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputsModule, imports: [[CommonModule], TextAreaModule,
68
+ TextBoxModule,
69
+ SliderModule,
70
+ RangeSliderModule,
71
+ SwitchModule,
72
+ NumericTextBoxModule,
73
+ MaskedTextBoxModule,
74
+ ColorPickerModule,
75
+ CheckBoxModule,
76
+ RadioButtonModule,
77
+ FormFieldModule,
78
+ SignatureModule] });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputsModule, decorators: [{
80
+ type: NgModule,
81
+ args: [{
82
+ exports: [
83
+ TextAreaModule,
84
+ TextBoxModule,
85
+ SliderModule,
86
+ RangeSliderModule,
87
+ SwitchModule,
88
+ NumericTextBoxModule,
89
+ MaskedTextBoxModule,
90
+ ColorPickerModule,
91
+ CheckBoxModule,
92
+ RadioButtonModule,
93
+ FormFieldModule,
94
+ SignatureModule
95
+ ],
96
+ imports: [CommonModule]
97
+ }]
98
+ }] });