@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,191 @@
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 { Injectable } from '@angular/core';
6
+ import { greedy, sequence } from './parsing/combinators';
7
+ import { literal, mask as maskParser, rawLiteral, rawMask, token, unliteral, unmask } from './parsing/parsers';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * @hidden
11
+ */
12
+ export class MaskingService {
13
+ constructor() {
14
+ this.rules = {};
15
+ this.prompt = "_";
16
+ this.mask = "";
17
+ this.promptPlaceholder = " ";
18
+ this.includeLiterals = false;
19
+ this.maskTokens = [];
20
+ this.unmaskTokens = [];
21
+ this.rawTokens = [];
22
+ this.validationTokens = [];
23
+ }
24
+ update({ mask = '', prompt = '', promptPlaceholder = ' ', rules = {}, includeLiterals = false }) {
25
+ this.mask = mask;
26
+ this.prompt = prompt;
27
+ this.promptPlaceholder = promptPlaceholder;
28
+ this.rules = rules;
29
+ this.includeLiterals = includeLiterals;
30
+ this.tokenize();
31
+ }
32
+ validationValue(maskedValue = '') {
33
+ let value = maskedValue;
34
+ sequence(this.validationTokens)
35
+ .run(maskedValue)
36
+ .fold(unmasked => {
37
+ value = unmasked.join('');
38
+ });
39
+ return value;
40
+ }
41
+ rawValue(maskedValue = '') {
42
+ let value = maskedValue;
43
+ if (!this.rawTokens.length) {
44
+ return value;
45
+ }
46
+ sequence(this.rawTokens)
47
+ .run(maskedValue)
48
+ .fold(unmasked => {
49
+ value = unmasked.join('');
50
+ });
51
+ return value;
52
+ }
53
+ /**
54
+ * @hidden
55
+ */
56
+ maskRaw(rawValue = '') {
57
+ let value = rawValue;
58
+ if (!this.maskTokens.length) {
59
+ return value;
60
+ }
61
+ sequence(this.maskTokens)
62
+ .run(rawValue)
63
+ .fold(masked => {
64
+ value = masked.join('');
65
+ });
66
+ return value;
67
+ }
68
+ maskInput(input, control, splitPoint) {
69
+ if (input.length < control.length) {
70
+ return this.maskRemoved(input, control, splitPoint);
71
+ }
72
+ return this.maskInserted(input, control, splitPoint);
73
+ }
74
+ maskInRange(pasted, oldValue, start, end) {
75
+ let value = '';
76
+ const selection = end;
77
+ const beforeChange = oldValue.split('').slice(0, start);
78
+ const afterChange = oldValue.split('').slice(end);
79
+ sequence(this.maskTokens.slice(start, end))
80
+ .run(pasted)
81
+ .fold(masked => {
82
+ value = beforeChange
83
+ .concat(masked)
84
+ .concat(afterChange)
85
+ .join('');
86
+ });
87
+ return {
88
+ selection,
89
+ value
90
+ };
91
+ }
92
+ maskRemoved(input, control, splitPoint) {
93
+ let value = '';
94
+ let selection = splitPoint;
95
+ const unchanged = input.split('').slice(splitPoint);
96
+ const changed = input.split('').slice(0, splitPoint).join('');
97
+ const take = this.maskTokens.length - (input.length - splitPoint);
98
+ sequence(this.maskTokens.slice(0, take))
99
+ .run(changed, control)
100
+ .fold(masked => {
101
+ selection = this.adjustPosition(masked, selection);
102
+ value = masked.concat(unchanged).join('');
103
+ });
104
+ return {
105
+ selection,
106
+ value
107
+ };
108
+ }
109
+ adjustPosition(input, selection) {
110
+ const caretChar = input[selection];
111
+ const isLiteral = this.maskTokens[selection].isLiteral(caretChar);
112
+ if (!isLiteral && caretChar !== this.prompt) {
113
+ return selection + 1;
114
+ }
115
+ return selection;
116
+ }
117
+ maskInserted(input, control, splitPoint) {
118
+ let value = '';
119
+ let selection = splitPoint;
120
+ const changed = input.slice(0, splitPoint);
121
+ sequence(this.unmaskTokens)
122
+ .run(changed, control)
123
+ .chain(unmasked => {
124
+ selection = unmasked.join('').length;
125
+ const unchanged = control.slice(selection);
126
+ return sequence(this.maskTokens)
127
+ .run(unmasked.join('') + unchanged, control);
128
+ })
129
+ .fold(masked => {
130
+ value = masked.join('');
131
+ });
132
+ return {
133
+ selection,
134
+ value
135
+ };
136
+ }
137
+ get maskTokenCreator() {
138
+ const { prompt, promptPlaceholder } = this;
139
+ return {
140
+ literal: rule => literal(rule),
141
+ mask: rule => maskParser({ prompt, promptPlaceholder })(rule)
142
+ };
143
+ }
144
+ get unmaskTokenCreator() {
145
+ return {
146
+ literal: rule => unliteral(rule),
147
+ mask: rule => unmask(this.prompt)(rule)
148
+ };
149
+ }
150
+ get rawTokenCreator() {
151
+ const { prompt, promptPlaceholder, includeLiterals } = this;
152
+ return {
153
+ literal: _ => rawLiteral(includeLiterals),
154
+ mask: _ => rawMask({ prompt, promptPlaceholder })
155
+ };
156
+ }
157
+ get validationTokenCreator() {
158
+ const { prompt } = this;
159
+ return {
160
+ literal: _ => rawLiteral(false),
161
+ mask: _ => rawMask({ prompt, promptPlaceholder: '' })
162
+ };
163
+ }
164
+ tokenize() {
165
+ greedy(token(this.rules, this.maskTokenCreator))
166
+ .run(this.mask)
167
+ .fold((tokens, _) => {
168
+ this.maskTokens = tokens;
169
+ });
170
+ greedy(token(this.rules, this.unmaskTokenCreator))
171
+ .run(this.mask)
172
+ .fold((tokens, _) => {
173
+ this.unmaskTokens = tokens;
174
+ });
175
+ greedy(token(this.rules, this.rawTokenCreator))
176
+ .run(this.mask)
177
+ .fold((tokens, _) => {
178
+ this.rawTokens = tokens;
179
+ });
180
+ greedy(token(this.rules, this.validationTokenCreator))
181
+ .run(this.mask)
182
+ .fold((tokens, _) => {
183
+ this.validationTokens = tokens;
184
+ });
185
+ }
186
+ }
187
+ MaskingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
188
+ MaskingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskingService });
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskingService, decorators: [{
190
+ type: Injectable
191
+ }] });
@@ -0,0 +1,28 @@
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 { Parser } from './parsers';
6
+ import { Result } from './result';
7
+ /**
8
+ * @hidden
9
+ */
10
+ const always = value => new Parser(stream => new Result(value, stream));
11
+ /**
12
+ * @hidden
13
+ */
14
+ const append = (p1, p2) => p1.chain(vs => p2.map(v => vs.concat([v])));
15
+ /**
16
+ * @hidden
17
+ */
18
+ export const sequence = list => list.reduce((acc, parser) => append(acc, parser), always([]));
19
+ /**
20
+ * @hidden
21
+ */
22
+ export const greedy = parser => new Parser(stream => {
23
+ let result = new Result([], stream);
24
+ while (!stream.eof()) {
25
+ result = result.concat(parser.run(stream));
26
+ }
27
+ return result;
28
+ });
@@ -0,0 +1,147 @@
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 { Result, ResultType } from './result';
6
+ import { Stream } from './stream';
7
+ const toArray = (value) => (value || '').split('');
8
+ const ESCAPE_CHARACTER = '\\';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export class Parser {
13
+ constructor(parse) {
14
+ this.parse = parse;
15
+ }
16
+ run(input, control = '') {
17
+ if (input instanceof Stream) {
18
+ return this.parse(input);
19
+ }
20
+ else {
21
+ return this.parse(new Stream(toArray(input), toArray(control)));
22
+ }
23
+ }
24
+ //map :: Functor f => f a ~> (a -> b) -> f b
25
+ map(f) {
26
+ return new Parser(stream => this.parse(stream).map(f));
27
+ }
28
+ //chain :: Chain m => m a ~> (a -> m b) -> m b
29
+ chain(f) {
30
+ return new Parser(stream => this.parse(stream).chain((v, s) => f(v).run(s)));
31
+ }
32
+ isLiteral(c) {
33
+ return this.run(c).type === ResultType.Literal;
34
+ }
35
+ }
36
+ /**
37
+ * @hidden
38
+ */
39
+ export const mask = ({ prompt, promptPlaceholder }) => rule => new Parser(stream => {
40
+ while (!stream.eof()) {
41
+ const { char, control } = stream.peek();
42
+ if (char === control && control === prompt) {
43
+ stream.eat();
44
+ return new Result(prompt, stream, ResultType.Mask);
45
+ }
46
+ if (rule.test(char)) {
47
+ stream.eat();
48
+ return new Result(char, stream, ResultType.Mask);
49
+ }
50
+ if (char === promptPlaceholder) {
51
+ stream.eat();
52
+ return new Result(prompt, stream, ResultType.Mask);
53
+ }
54
+ stream.eat_input();
55
+ }
56
+ stream.eat();
57
+ return new Result(prompt, stream, ResultType.Mask);
58
+ });
59
+ /**
60
+ * @hidden
61
+ */
62
+ export const literal = _token => new Parser(stream => {
63
+ // let {char, control} = stream.peek();
64
+ const char = stream.peek().char;
65
+ if (char === _token) {
66
+ stream.eat();
67
+ return new Result(_token, stream, ResultType.Literal);
68
+ }
69
+ // if (control === _token) {
70
+ // while (!stream.eof() && char !== _token) {
71
+ // stream.eat_input();
72
+ // char = stream.peek().char;
73
+ // }
74
+ // }
75
+ //
76
+ // if (control !== undefined) {
77
+ // stream.eat();
78
+ // }
79
+ return new Result(_token, stream, ResultType.Literal);
80
+ });
81
+ /**
82
+ * @hidden
83
+ */
84
+ export const unmask = prompt => rule => new Parser(stream => {
85
+ while (!stream.eof()) {
86
+ const { char, control } = stream.peek();
87
+ if (char === prompt && control === prompt) {
88
+ stream.eat();
89
+ return new Result(char, stream);
90
+ }
91
+ if (rule.test(char)) {
92
+ stream.eat();
93
+ return new Result(char, stream);
94
+ }
95
+ stream.eat_input();
96
+ }
97
+ stream.eat();
98
+ return new Result('', stream);
99
+ });
100
+ /**
101
+ * @hidden
102
+ */
103
+ export const unliteral = _token => new Parser(stream => {
104
+ if (stream.eof()) {
105
+ return new Result('', stream);
106
+ }
107
+ const { char } = stream.peek();
108
+ if (char === _token) {
109
+ stream.eat();
110
+ }
111
+ return new Result(_token, stream);
112
+ });
113
+ /**
114
+ * @hidden
115
+ */
116
+ export const token = (rules, creator) => new Parser(stream => {
117
+ let { char } = stream.next();
118
+ const rule = rules[char];
119
+ if (char === ESCAPE_CHARACTER) {
120
+ char = stream.next().char;
121
+ return new Result(creator.literal(char), stream);
122
+ }
123
+ if (!rule) {
124
+ return new Result(creator.literal(char), stream);
125
+ }
126
+ return new Result(creator.mask(rule), stream);
127
+ });
128
+ /**
129
+ * @hidden
130
+ */
131
+ export const rawMask = ({ prompt, promptPlaceholder }) => new Parser(stream => {
132
+ const { char } = stream.next();
133
+ if (char === prompt) {
134
+ return new Result(promptPlaceholder, stream);
135
+ }
136
+ return new Result(char, stream);
137
+ });
138
+ /**
139
+ * @hidden
140
+ */
141
+ export const rawLiteral = includeLiterals => new Parser(stream => {
142
+ const { char } = stream.next();
143
+ if (includeLiterals) {
144
+ return new Result(char, stream);
145
+ }
146
+ return new Result('', stream);
147
+ });
@@ -0,0 +1,41 @@
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
+ /**
6
+ * @hidden
7
+ */
8
+ export var ResultType;
9
+ (function (ResultType) {
10
+ ResultType[ResultType["Literal"] = 0] = "Literal";
11
+ ResultType[ResultType["Mask"] = 1] = "Mask";
12
+ // eslint-disable-next-line id-denylist
13
+ ResultType[ResultType["Undefined"] = 2] = "Undefined";
14
+ })(ResultType || (ResultType = {}));
15
+ /**
16
+ * @hidden
17
+ */
18
+ export class Result {
19
+ constructor(value, rest, type = ResultType.Undefined) {
20
+ this.value = value;
21
+ this.rest = rest;
22
+ this.type = type;
23
+ }
24
+ //map :: Functor f => f a ~> (a -> b) -> f b
25
+ map(fn) {
26
+ return new Result(fn(this.value), this.rest);
27
+ }
28
+ //chain :: Chain m => m a ~> (a -> m b) -> m b
29
+ chain(fn) {
30
+ return fn(this.value, this.rest);
31
+ }
32
+ fold(s, _ /*we don't need it*/) {
33
+ return s(this.value, this.rest);
34
+ }
35
+ concat(r) {
36
+ return this.map((vs, _) => r.chain((v, __) => vs.concat([v])));
37
+ }
38
+ toString() {
39
+ return `Result({ value: '${this.value}', rest: ${this.rest} })`;
40
+ }
41
+ }
@@ -0,0 +1,41 @@
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
+ /**
6
+ * @hidden
7
+ */
8
+ export class Stream {
9
+ constructor(input = [], control = []) {
10
+ this.input = input;
11
+ this.control = control;
12
+ this.inputCursor = 0;
13
+ this.controlCursor = 0;
14
+ }
15
+ eof() {
16
+ return this.inputCursor >= this.input.length;
17
+ }
18
+ // Get the first value from the input.
19
+ next() {
20
+ return {
21
+ char: this.input[this.inputCursor++],
22
+ control: this.control[this.controlCursor++]
23
+ };
24
+ }
25
+ peek() {
26
+ return {
27
+ char: this.input[this.inputCursor],
28
+ control: this.control[this.controlCursor]
29
+ };
30
+ }
31
+ eat_input() {
32
+ this.inputCursor++;
33
+ }
34
+ eat_control() {
35
+ this.controlCursor++;
36
+ }
37
+ eat() {
38
+ this.inputCursor++;
39
+ this.controlCursor++;
40
+ }
41
+ }
@@ -0,0 +1,53 @@
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 { MaskedTextBoxComponent } from './maskedtextbox/maskedtextbox.component';
7
+ import { CommonModule } from '@angular/common';
8
+ import { EventsModule } from '@progress/kendo-angular-common';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
12
+ * definition for the MaskedTextBox component.
13
+ *
14
+ * @example
15
+ *
16
+ * ```ts-no-run
17
+ * // Import the MaskedTextBox module
18
+ * import { MaskedTextBoxModule } from '@progress/kendo-angular-inputs';
19
+ *
20
+ * // The browser platform with a compiler
21
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
22
+ *
23
+ * import { NgModule } from '@angular/core';
24
+ *
25
+ * // Import the app component
26
+ * import { AppComponent } from './app.component';
27
+ *
28
+ * // Define the app module
29
+ * _@NgModule({
30
+ * declarations: [AppComponent], // declare app component
31
+ * imports: [BrowserModule, MaskedTextBoxModule], // import MaskedTextBox module
32
+ * bootstrap: [AppComponent]
33
+ * })
34
+ * export class AppModule {}
35
+ *
36
+ * // Compile and launch the module
37
+ * platformBrowserDynamic().bootstrapModule(AppModule);
38
+ *
39
+ * ```
40
+ */
41
+ export class MaskedTextBoxModule {
42
+ }
43
+ MaskedTextBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskedTextBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
44
+ MaskedTextBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskedTextBoxModule, declarations: [MaskedTextBoxComponent], imports: [CommonModule, EventsModule], exports: [MaskedTextBoxComponent] });
45
+ MaskedTextBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskedTextBoxModule, imports: [[CommonModule, EventsModule]] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskedTextBoxModule, decorators: [{
47
+ type: NgModule,
48
+ args: [{
49
+ declarations: [MaskedTextBoxComponent],
50
+ exports: [MaskedTextBoxComponent],
51
+ imports: [CommonModule, EventsModule]
52
+ }]
53
+ }] });
@@ -0,0 +1,13 @@
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
+ /**
6
+ * @hidden
7
+ */
8
+ export var ArrowDirection;
9
+ (function (ArrowDirection) {
10
+ ArrowDirection[ArrowDirection["Down"] = -1] = "Down";
11
+ ArrowDirection[ArrowDirection["None"] = 0] = "None";
12
+ ArrowDirection[ArrowDirection["Up"] = 1] = "Up";
13
+ })(ArrowDirection || (ArrowDirection = {}));
@@ -0,0 +1,28 @@
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
+ /**
6
+ * @hidden
7
+ */
8
+ export const MIN_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/inputs/api/NumericTextBoxComponent/#toc-min';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export const MAX_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/inputs/api/NumericTextBoxComponent/#toc-max';
13
+ /**
14
+ * @hidden
15
+ */
16
+ export const POINT = ".";
17
+ /**
18
+ * @hidden
19
+ */
20
+ export const INITIAL_SPIN_DELAY = 500;
21
+ /**
22
+ * @hidden
23
+ */
24
+ export const SPIN_DELAY = 50;
25
+ /**
26
+ * @hidden
27
+ */
28
+ export const EXPONENT_REGEX = /[eE][\-+]?([0-9]+)/;
@@ -0,0 +1,41 @@
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, forwardRef } from '@angular/core';
6
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
7
+ import { NumericTextBoxMessages } from './messages';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@progress/kendo-angular-l10n";
10
+ /**
11
+ * Custom component messages override default component messages.
12
+ */
13
+ export class NumericTextBoxCustomMessagesComponent extends NumericTextBoxMessages {
14
+ constructor(service) {
15
+ super();
16
+ this.service = service;
17
+ }
18
+ get override() {
19
+ return true;
20
+ }
21
+ }
22
+ NumericTextBoxCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericTextBoxCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
23
+ NumericTextBoxCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages", providers: [
24
+ {
25
+ provide: NumericTextBoxMessages,
26
+ useExisting: forwardRef(() => NumericTextBoxCustomMessagesComponent)
27
+ }
28
+ ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericTextBoxCustomMessagesComponent, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ providers: [
33
+ {
34
+ provide: NumericTextBoxMessages,
35
+ useExisting: forwardRef(() => NumericTextBoxCustomMessagesComponent)
36
+ }
37
+ ],
38
+ selector: 'kendo-numerictextbox-messages',
39
+ template: ``
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
@@ -0,0 +1,37 @@
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 { Directive, forwardRef } from '@angular/core';
6
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
7
+ import { NumericTextBoxMessages } from './messages';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@progress/kendo-angular-l10n";
10
+ /**
11
+ * @hidden
12
+ */
13
+ export class LocalizedNumericTextBoxMessagesDirective extends NumericTextBoxMessages {
14
+ constructor(service) {
15
+ super();
16
+ this.service = service;
17
+ }
18
+ }
19
+ LocalizedNumericTextBoxMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedNumericTextBoxMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
20
+ LocalizedNumericTextBoxMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: LocalizedNumericTextBoxMessagesDirective, selector: "[kendoNumericTextBoxLocalizedMessages]", providers: [
21
+ {
22
+ provide: NumericTextBoxMessages,
23
+ useExisting: forwardRef(() => LocalizedNumericTextBoxMessagesDirective)
24
+ }
25
+ ], usesInheritance: true, ngImport: i0 });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedNumericTextBoxMessagesDirective, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ providers: [
30
+ {
31
+ provide: NumericTextBoxMessages,
32
+ useExisting: forwardRef(() => LocalizedNumericTextBoxMessagesDirective)
33
+ }
34
+ ],
35
+ selector: '[kendoNumericTextBoxLocalizedMessages]'
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
@@ -0,0 +1,25 @@
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 { Directive, Input } from '@angular/core';
6
+ import { ComponentMessages } from '@progress/kendo-angular-l10n';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * @hidden
10
+ */
11
+ export class NumericTextBoxMessages extends ComponentMessages {
12
+ }
13
+ NumericTextBoxMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericTextBoxMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
+ NumericTextBoxMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: NumericTextBoxMessages, selector: "kendo-numerictextbox-messages-base", inputs: { decrement: "decrement", increment: "increment" }, usesInheritance: true, ngImport: i0 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericTextBoxMessages, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ // eslint-disable-next-line @angular-eslint/directive-selector
19
+ selector: 'kendo-numerictextbox-messages-base'
20
+ }]
21
+ }], propDecorators: { decrement: [{
22
+ type: Input
23
+ }], increment: [{
24
+ type: Input
25
+ }] } });