@progress/kendo-react-inputs 5.6.0-dev.202208251227 → 5.7.0-sig.202208281415

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 (785) hide show
  1. package/api.json +71211 -0
  2. package/dist/cdn/js/kendo-react-inputs.js +1 -1
  3. package/dist/es/main.d.ts +2 -0
  4. package/dist/es/main.js +2 -0
  5. package/dist/es/messages/index.d.ts +15 -0
  6. package/dist/es/messages/index.js +15 -0
  7. package/dist/es/package-metadata.js +1 -1
  8. package/dist/es/signature/Signature.d.ts +14 -0
  9. package/dist/es/signature/Signature.js +346 -0
  10. package/dist/es/signature/interfaces/SignatureBlurEvent.d.ts +7 -0
  11. package/dist/es/signature/interfaces/SignatureBlurEvent.js +1 -0
  12. package/dist/es/signature/interfaces/SignatureChangeEvent.d.ts +11 -0
  13. package/dist/es/signature/interfaces/SignatureChangeEvent.js +1 -0
  14. package/dist/es/signature/interfaces/SignatureCloseEvent.d.ts +7 -0
  15. package/dist/es/signature/interfaces/SignatureCloseEvent.js +1 -0
  16. package/dist/es/signature/interfaces/SignatureFocusEvent.d.ts +7 -0
  17. package/dist/es/signature/interfaces/SignatureFocusEvent.js +1 -0
  18. package/dist/es/signature/interfaces/SignatureHandle.d.ts +34 -0
  19. package/dist/es/signature/interfaces/SignatureHandle.js +1 -0
  20. package/dist/es/signature/interfaces/SignatureOpenEvent.d.ts +7 -0
  21. package/dist/es/signature/interfaces/SignatureOpenEvent.js +1 -0
  22. package/dist/es/signature/interfaces/SignatureProps.d.ts +192 -0
  23. package/dist/es/signature/interfaces/SignatureProps.js +1 -0
  24. package/dist/es/signature/interfaces/index.d.ts +7 -0
  25. package/dist/es/signature/interfaces/index.js +1 -0
  26. package/dist/es/signature/utils/index.d.ts +4 -0
  27. package/dist/es/signature/utils/index.js +10 -0
  28. package/dist/npm/main.d.ts +2 -0
  29. package/dist/npm/main.js +2 -0
  30. package/dist/npm/messages/index.d.ts +15 -0
  31. package/dist/npm/messages/index.js +16 -1
  32. package/dist/npm/package-metadata.js +1 -1
  33. package/dist/npm/signature/Signature.d.ts +14 -0
  34. package/dist/npm/signature/Signature.js +349 -0
  35. package/dist/npm/signature/interfaces/SignatureBlurEvent.d.ts +7 -0
  36. package/dist/npm/signature/interfaces/SignatureBlurEvent.js +2 -0
  37. package/dist/npm/signature/interfaces/SignatureChangeEvent.d.ts +11 -0
  38. package/dist/npm/signature/interfaces/SignatureChangeEvent.js +2 -0
  39. package/dist/npm/signature/interfaces/SignatureCloseEvent.d.ts +7 -0
  40. package/dist/npm/signature/interfaces/SignatureCloseEvent.js +2 -0
  41. package/dist/npm/signature/interfaces/SignatureFocusEvent.d.ts +7 -0
  42. package/dist/npm/signature/interfaces/SignatureFocusEvent.js +2 -0
  43. package/dist/npm/signature/interfaces/SignatureHandle.d.ts +34 -0
  44. package/dist/npm/signature/interfaces/SignatureHandle.js +2 -0
  45. package/dist/npm/signature/interfaces/SignatureOpenEvent.d.ts +7 -0
  46. package/dist/npm/signature/interfaces/SignatureOpenEvent.js +2 -0
  47. package/dist/npm/signature/interfaces/SignatureProps.d.ts +192 -0
  48. package/dist/npm/signature/interfaces/SignatureProps.js +2 -0
  49. package/dist/npm/signature/interfaces/SignatureState.d.ts +15 -0
  50. package/dist/npm/signature/interfaces/SignatureState.js +2 -0
  51. package/dist/npm/signature/interfaces/index.d.ts +7 -0
  52. package/dist/npm/signature/interfaces/index.js +2 -0
  53. package/dist/npm/signature/utils/index.d.ts +4 -0
  54. package/dist/npm/signature/utils/index.js +14 -0
  55. package/dist/systemjs/kendo-react-inputs.js +1 -1
  56. package/docs/_meta.yml +3 -0
  57. package/docs/api/Checkbox.md +23 -0
  58. package/docs/api/CheckboxBlurEvent.md +132 -0
  59. package/docs/api/CheckboxChangeEvent.md +167 -0
  60. package/docs/api/CheckboxFocusEvent.md +132 -0
  61. package/docs/api/CheckboxHandle.md +167 -0
  62. package/docs/api/CheckboxProps.md +1068 -0
  63. package/docs/api/CheckboxPropsContext.md +17 -0
  64. package/docs/api/ColorGradient.md +27 -0
  65. package/docs/api/ColorGradientChangeEvent.md +167 -0
  66. package/docs/api/ColorGradientHandle.md +99 -0
  67. package/docs/api/ColorGradientProps.md +538 -0
  68. package/docs/api/ColorGradientPropsContext.md +17 -0
  69. package/docs/api/ColorPalette.md +26 -0
  70. package/docs/api/ColorPaletteChangeEvent.md +202 -0
  71. package/docs/api/ColorPaletteHandle.md +64 -0
  72. package/docs/api/ColorPaletteProps.md +542 -0
  73. package/docs/api/ColorPalettePropsContext.md +17 -0
  74. package/docs/api/ColorPicker.md +23 -0
  75. package/docs/api/ColorPickerActiveColorClick.md +132 -0
  76. package/docs/api/ColorPickerBlurEvent.md +97 -0
  77. package/docs/api/ColorPickerChangeEvent.md +132 -0
  78. package/docs/api/ColorPickerFocusEvent.md +97 -0
  79. package/docs/api/ColorPickerGradientSettings.md +102 -0
  80. package/docs/api/ColorPickerPaletteSettings.md +148 -0
  81. package/docs/api/ColorPickerPopupSettings.md +97 -0
  82. package/docs/api/ColorPickerProps.md +1078 -0
  83. package/docs/api/ColorPickerPropsContext.md +17 -0
  84. package/docs/api/ColorPickerView.md +19 -0
  85. package/docs/api/Direction.md +12 -0
  86. package/docs/api/FlatColorPicker.md +13 -0
  87. package/docs/api/FlatColorPickerHandle.md +127 -0
  88. package/docs/api/FlatColorPickerProps.md +412 -0
  89. package/docs/api/FormComponentValidity.md +428 -0
  90. package/docs/api/Input.md +17 -0
  91. package/docs/api/InputChangeEvent.md +167 -0
  92. package/docs/api/InputHandle.md +204 -0
  93. package/docs/api/InputProps.md +428 -0
  94. package/docs/api/InputPropsContext.md +17 -0
  95. package/docs/api/MaskedTextBox.md +17 -0
  96. package/docs/api/MaskedTextBoxChangeEvent.md +237 -0
  97. package/docs/api/MaskedTextBoxEvent.md +132 -0
  98. package/docs/api/MaskedTextBoxHandle.md +265 -0
  99. package/docs/api/MaskedTextBoxProps.md +1395 -0
  100. package/docs/api/MaskedTextBoxPropsContext.md +17 -0
  101. package/docs/api/NumericTextBox.md +13 -0
  102. package/docs/api/NumericTextBoxBlurEvent.md +132 -0
  103. package/docs/api/NumericTextBoxChangeEvent.md +167 -0
  104. package/docs/api/NumericTextBoxFocusEvent.md +132 -0
  105. package/docs/api/NumericTextBoxHandle.md +197 -0
  106. package/docs/api/NumericTextBoxProps.md +1471 -0
  107. package/docs/api/NumericTextBoxPropsContext.md +17 -0
  108. package/docs/api/RadioButton.md +17 -0
  109. package/docs/api/RadioButtonBlurEvent.md +132 -0
  110. package/docs/api/RadioButtonChangeEvent.md +167 -0
  111. package/docs/api/RadioButtonFocusEvent.md +132 -0
  112. package/docs/api/RadioButtonHandle.md +97 -0
  113. package/docs/api/RadioButtonProps.md +791 -0
  114. package/docs/api/RadioButtonPropsContext.md +17 -0
  115. package/docs/api/RadioGroup.md +17 -0
  116. package/docs/api/RadioGroupChangeEvent.md +167 -0
  117. package/docs/api/RadioGroupFocusEvent.md +132 -0
  118. package/docs/api/RadioGroupHandle.md +97 -0
  119. package/docs/api/RadioGroupProps.md +707 -0
  120. package/docs/api/RadioGroupPropsContext.md +17 -0
  121. package/docs/api/Range.md +13 -0
  122. package/docs/api/RangeSlider.md +17 -0
  123. package/docs/api/RangeSliderChangeEvent.md +132 -0
  124. package/docs/api/RangeSliderHandle.md +127 -0
  125. package/docs/api/RangeSliderProps.md +853 -0
  126. package/docs/api/RangeSliderPropsContext.md +17 -0
  127. package/docs/api/Rating.md +17 -0
  128. package/docs/api/RatingChangeEvent.md +132 -0
  129. package/docs/api/RatingFocusEvent.md +97 -0
  130. package/docs/api/RatingHandle.md +97 -0
  131. package/docs/api/RatingItem.md +13 -0
  132. package/docs/api/RatingItemFocusEvent.md +97 -0
  133. package/docs/api/RatingItemHandle.md +132 -0
  134. package/docs/api/RatingItemKeyboardEvent.md +97 -0
  135. package/docs/api/RatingItemMouseEvent.md +97 -0
  136. package/docs/api/RatingItemProps.md +941 -0
  137. package/docs/api/RatingKeyboardEvent.md +97 -0
  138. package/docs/api/RatingMouseEvent.md +97 -0
  139. package/docs/api/RatingProps.md +1308 -0
  140. package/docs/api/RatingPropsContext.md +17 -0
  141. package/docs/api/Signature.md +13 -0
  142. package/docs/api/SignatureBlurEvent.md +132 -0
  143. package/docs/api/SignatureChangeEvent.md +167 -0
  144. package/docs/api/SignatureCloseEvent.md +132 -0
  145. package/docs/api/SignatureFocusEvent.md +132 -0
  146. package/docs/api/SignatureHandle.md +162 -0
  147. package/docs/api/SignatureOpenEvent.md +132 -0
  148. package/docs/api/SignatureProps.md +1592 -0
  149. package/docs/api/SignaturePropsContext.md +17 -0
  150. package/docs/api/Slider.md +17 -0
  151. package/docs/api/SliderChangeEvent.md +167 -0
  152. package/docs/api/SliderHandle.md +99 -0
  153. package/docs/api/SliderLabel.md +62 -0
  154. package/docs/api/SliderLabelProps.md +171 -0
  155. package/docs/api/SliderProps.md +902 -0
  156. package/docs/api/SliderPropsContext.md +17 -0
  157. package/docs/api/Switch.md +17 -0
  158. package/docs/api/SwitchChangeEvent.md +167 -0
  159. package/docs/api/SwitchHandle.md +239 -0
  160. package/docs/api/SwitchProps.md +1081 -0
  161. package/docs/api/SwitchPropsContext.md +17 -0
  162. package/docs/api/TextArea.md +27 -0
  163. package/docs/api/TextAreaBlurEvent.md +132 -0
  164. package/docs/api/TextAreaChangeEvent.md +167 -0
  165. package/docs/api/TextAreaFocusEvent.md +132 -0
  166. package/docs/api/TextAreaProps.md +1082 -0
  167. package/docs/api/TextAreaPropsContext.md +17 -0
  168. package/docs/api/TileSize.md +18 -0
  169. package/docs/api/ToggleBaseProps.md +132 -0
  170. package/docs/api/_meta.yml +3 -0
  171. package/docs/api/index.md +425 -0
  172. package/docs/auto-imports.js +40 -0
  173. package/docs/checkbox/_meta.yml +3 -0
  174. package/docs/checkbox/accessibility.md +26 -0
  175. package/docs/checkbox/appearance.md +28 -0
  176. package/docs/checkbox/controlled.md +57 -0
  177. package/docs/checkbox/default-state.md +24 -0
  178. package/docs/checkbox/disabled.md +23 -0
  179. package/docs/checkbox/forms-support.md +90 -0
  180. package/docs/checkbox/index.md +46 -0
  181. package/docs/checkbox/keyboard-navigation.md +36 -0
  182. package/docs/checkbox/labels.md +36 -0
  183. package/docs/colorgradient/_meta.yml +3 -0
  184. package/docs/colorgradient/color-contrast.md +34 -0
  185. package/docs/colorgradient/controlled.md +32 -0
  186. package/docs/colorgradient/disabled.md +23 -0
  187. package/docs/colorgradient/index.md +42 -0
  188. package/docs/colorgradient/noopacity.md +28 -0
  189. package/docs/colorpalette/_meta.yml +3 -0
  190. package/docs/colorpalette/assets/demo-img.png +0 -0
  191. package/docs/colorpalette/controlled.md +32 -0
  192. package/docs/colorpalette/custom.md +23 -0
  193. package/docs/colorpalette/disabled.md +23 -0
  194. package/docs/colorpalette/events.md +27 -0
  195. package/docs/colorpalette/index.md +47 -0
  196. package/docs/colorpalette/keyboard-navigation.md +36 -0
  197. package/docs/colorpalette/presets.md +23 -0
  198. package/docs/colorpicker/_meta.yml +3 -0
  199. package/docs/colorpicker/appearance.md +30 -0
  200. package/docs/colorpicker/color-contrast.md +33 -0
  201. package/docs/colorpicker/combined-views.md +46 -0
  202. package/docs/colorpicker/controlled.md +57 -0
  203. package/docs/colorpicker/custom.md +67 -0
  204. package/docs/colorpicker/default-value.md +20 -0
  205. package/docs/colorpicker/disabled.md +20 -0
  206. package/docs/colorpicker/index.md +41 -0
  207. package/docs/colorpicker/keyboard-navigation.md +39 -0
  208. package/docs/custom-attributes.md +27 -0
  209. package/docs/examples/attribute/class/main.tsx +44 -0
  210. package/docs/examples/attribute/func/main.tsx +58 -0
  211. package/docs/examples/checkbox/appearance/func/main.tsx +33 -0
  212. package/docs/examples/checkbox/controlled/checked/class/main.tsx +32 -0
  213. package/docs/examples/checkbox/controlled/checked/func/main.tsx +29 -0
  214. package/docs/examples/checkbox/controlled/value/class/main.tsx +32 -0
  215. package/docs/examples/checkbox/controlled/value/func/main.tsx +28 -0
  216. package/docs/examples/checkbox/default/func/main.tsx +15 -0
  217. package/docs/examples/checkbox/disabled/func/main.tsx +19 -0
  218. package/docs/examples/checkbox/forms/basic/class/main.tsx +79 -0
  219. package/docs/examples/checkbox/forms/basic/func/main.tsx +71 -0
  220. package/docs/examples/checkbox/forms/custom-message/class/main.tsx +117 -0
  221. package/docs/examples/checkbox/forms/custom-message/func/main.tsx +124 -0
  222. package/docs/examples/checkbox/forms/disable-styles/class/main.tsx +126 -0
  223. package/docs/examples/checkbox/forms/disable-styles/func/main.tsx +125 -0
  224. package/docs/examples/checkbox/forms/kendo-react-form/func/main.tsx +137 -0
  225. package/docs/examples/checkbox/keyboard/class/main.tsx +32 -0
  226. package/docs/examples/checkbox/keyboard/func/main.tsx +27 -0
  227. package/docs/examples/checkbox/labels/custom/func/main.tsx +20 -0
  228. package/docs/examples/checkbox/labels/setup/func/main.tsx +20 -0
  229. package/docs/examples/checkbox/main/func/main.tsx +22 -0
  230. package/docs/examples/colorgradient/colorcontrast/class/main.tsx +48 -0
  231. package/docs/examples/colorgradient/colorcontrast/func/main.tsx +43 -0
  232. package/docs/examples/colorgradient/controlled/class/main.tsx +29 -0
  233. package/docs/examples/colorgradient/controlled/func/main.tsx +21 -0
  234. package/docs/examples/colorgradient/disabled/func/main.tsx +17 -0
  235. package/docs/examples/colorgradient/opacity/class/main.tsx +32 -0
  236. package/docs/examples/colorgradient/opacity/func/main.tsx +24 -0
  237. package/docs/examples/colorgradient/overview/class/main.tsx +42 -0
  238. package/docs/examples/colorgradient/overview/func/main.tsx +34 -0
  239. package/docs/examples/colorpalette/controlled/class/main.tsx +25 -0
  240. package/docs/examples/colorpalette/controlled/func/main.tsx +17 -0
  241. package/docs/examples/colorpalette/custom/func/main.tsx +13 -0
  242. package/docs/examples/colorpalette/disabled/func/main.tsx +13 -0
  243. package/docs/examples/colorpalette/keyboard/class/main.tsx +30 -0
  244. package/docs/examples/colorpalette/keyboard/func/main.tsx +30 -0
  245. package/docs/examples/colorpalette/overview/basic/class/main.tsx +55 -0
  246. package/docs/examples/colorpalette/overview/basic/class/styles.css +50 -0
  247. package/docs/examples/colorpalette/overview/basic/func/main.tsx +47 -0
  248. package/docs/examples/colorpalette/overview/basic/func/styles.css +50 -0
  249. package/docs/examples/colorpalette/overview/events/class/main.tsx +48 -0
  250. package/docs/examples/colorpalette/overview/events/func/main.tsx +40 -0
  251. package/docs/examples/colorpalette/presets/func/main.tsx +70 -0
  252. package/docs/examples/colorpicker/appearance/func/main.tsx +37 -0
  253. package/docs/examples/colorpicker/colorcontrast/class/main.tsx +50 -0
  254. package/docs/examples/colorpicker/colorcontrast/func/main.tsx +44 -0
  255. package/docs/examples/colorpicker/controlled/popup/class/main.tsx +39 -0
  256. package/docs/examples/colorpicker/controlled/popup/func/main.tsx +31 -0
  257. package/docs/examples/colorpicker/controlled/value/class/main.tsx +25 -0
  258. package/docs/examples/colorpicker/controlled/value/func/main.tsx +17 -0
  259. package/docs/examples/colorpicker/custom/custom-icons/func/main.tsx +18 -0
  260. package/docs/examples/colorpicker/custom/gradient/func/main.tsx +24 -0
  261. package/docs/examples/colorpicker/custom/kendo-icons/func/main.tsx +18 -0
  262. package/docs/examples/colorpicker/custom/palette/func/main.tsx +28 -0
  263. package/docs/examples/colorpicker/default/func/main.tsx +24 -0
  264. package/docs/examples/colorpicker/disabled/func/main.tsx +17 -0
  265. package/docs/examples/colorpicker/keyboard/class/main.tsx +30 -0
  266. package/docs/examples/colorpicker/keyboard/func/main.tsx +29 -0
  267. package/docs/examples/colorpicker/overview/func/main.tsx +24 -0
  268. package/docs/examples/colorpicker/view/combined/class/main.tsx +37 -0
  269. package/docs/examples/colorpicker/view/combined/func/main.tsx +27 -0
  270. package/docs/examples/colorpicker/view/popup/class/main.tsx +66 -0
  271. package/docs/examples/colorpicker/view/popup/func/main.tsx +55 -0
  272. package/docs/examples/flatcolorpicker/basic/func/main.tsx +13 -0
  273. package/docs/examples/flatcolorpicker/customization/footer/func/main.tsx +13 -0
  274. package/docs/examples/flatcolorpicker/customization/header/func/main.tsx +13 -0
  275. package/docs/examples/flatcolorpicker/disabled/func/main.tsx +13 -0
  276. package/docs/examples/get-started/func/main.tsx +14 -0
  277. package/docs/examples/globalization/func/main.tsx +47 -0
  278. package/docs/examples/input/counter/main.tsx +30 -0
  279. package/docs/examples/input/forms/basic/class/main.tsx +87 -0
  280. package/docs/examples/input/forms/basic/func/main.tsx +79 -0
  281. package/docs/examples/input/forms/custom-message/class/main.tsx +94 -0
  282. package/docs/examples/input/forms/custom-message/func/main.tsx +86 -0
  283. package/docs/examples/input/forms/disable-styles/class/main.tsx +115 -0
  284. package/docs/examples/input/forms/disable-styles/func/main.tsx +106 -0
  285. package/docs/examples/input/forms/override/class/main.tsx +111 -0
  286. package/docs/examples/input/forms/override/func/main.tsx +102 -0
  287. package/docs/examples/input/main/main.jsx +17 -0
  288. package/docs/examples/input/overview/func/main.tsx +88 -0
  289. package/docs/examples/label/class/main.tsx +69 -0
  290. package/docs/examples/label/func/main.tsx +65 -0
  291. package/docs/examples/maskedtextbox/appearance/func/main.tsx +41 -0
  292. package/docs/examples/maskedtextbox/disabled/func/main.tsx +24 -0
  293. package/docs/examples/maskedtextbox/forms/basic/class/main.tsx +78 -0
  294. package/docs/examples/maskedtextbox/forms/basic/func/main.tsx +70 -0
  295. package/docs/examples/maskedtextbox/forms/custom-message/class/main.tsx +81 -0
  296. package/docs/examples/maskedtextbox/forms/custom-message/func/main.tsx +73 -0
  297. package/docs/examples/maskedtextbox/forms/disable-styles/class/main.tsx +75 -0
  298. package/docs/examples/maskedtextbox/forms/disable-styles/func/main.tsx +67 -0
  299. package/docs/examples/maskedtextbox/forms/override/class/main.tsx +85 -0
  300. package/docs/examples/maskedtextbox/forms/override/func/main.tsx +75 -0
  301. package/docs/examples/maskedtextbox/mask/basic/func/main.tsx +19 -0
  302. package/docs/examples/maskedtextbox/mask/extend/func/main.tsx +35 -0
  303. package/docs/examples/maskedtextbox/overview/basic/func/main.tsx +18 -0
  304. package/docs/examples/maskedtextbox/readonly/func/main.tsx +20 -0
  305. package/docs/examples/maskedtextbox/valid/class/main.tsx +59 -0
  306. package/docs/examples/maskedtextbox/valid/func/main.tsx +51 -0
  307. package/docs/examples/maskedtextbox/value/class/main.tsx +37 -0
  308. package/docs/examples/maskedtextbox/value/func/main.tsx +29 -0
  309. package/docs/examples/numerictextbox/appearance/func/main.tsx +39 -0
  310. package/docs/examples/numerictextbox/formats/func/main.tsx +53 -0
  311. package/docs/examples/numerictextbox/forms/basic/class/main.tsx +75 -0
  312. package/docs/examples/numerictextbox/forms/basic/func/main.tsx +67 -0
  313. package/docs/examples/numerictextbox/forms/custom-message/class/main.tsx +82 -0
  314. package/docs/examples/numerictextbox/forms/custom-message/func/main.tsx +74 -0
  315. package/docs/examples/numerictextbox/forms/disable-styles/class/main.tsx +98 -0
  316. package/docs/examples/numerictextbox/forms/disable-styles/func/main.tsx +85 -0
  317. package/docs/examples/numerictextbox/forms/override/class/main.tsx +96 -0
  318. package/docs/examples/numerictextbox/forms/override/func/main.tsx +87 -0
  319. package/docs/examples/numerictextbox/forms/ref/class/main.tsx +44 -0
  320. package/docs/examples/numerictextbox/forms/ref/func/main.tsx +34 -0
  321. package/docs/examples/numerictextbox/keyboard/func/main.tsx +20 -0
  322. package/docs/examples/numerictextbox/overview/class/main.tsx +55 -0
  323. package/docs/examples/numerictextbox/overview/func/main.tsx +43 -0
  324. package/docs/examples/numerictextbox/spin/func/main.tsx +22 -0
  325. package/docs/examples/numerictextbox/step/func/main.tsx +21 -0
  326. package/docs/examples/overview/func/main.tsx +102 -0
  327. package/docs/examples/props-context/overview/class/grid-with-filtering.tsx +32 -0
  328. package/docs/examples/props-context/overview/class/main.tsx +26 -0
  329. package/docs/examples/props-context/overview/class/sample-products.ts +182 -0
  330. package/docs/examples/props-context/overview/func/grid-with-filtering.tsx +32 -0
  331. package/docs/examples/props-context/overview/func/main.tsx +24 -0
  332. package/docs/examples/props-context/overview/func/sample-products.ts +182 -0
  333. package/docs/examples/radiobutton/appearance/func/main.tsx +28 -0
  334. package/docs/examples/radiobutton/custom-labels/func/main.tsx +28 -0
  335. package/docs/examples/radiobutton/disabled/func/main.tsx +20 -0
  336. package/docs/examples/radiobutton/labels/func/main.tsx +20 -0
  337. package/docs/examples/radiobutton/overview/class/main.tsx +35 -0
  338. package/docs/examples/radiobutton/overview/func/main.tsx +30 -0
  339. package/docs/examples/radiogroup/controlled/class/main.tsx +49 -0
  340. package/docs/examples/radiogroup/controlled/func/main.tsx +40 -0
  341. package/docs/examples/radiogroup/default-state/func/main.tsx +19 -0
  342. package/docs/examples/radiogroup/forms/class/main.tsx +150 -0
  343. package/docs/examples/radiogroup/forms/func/main.tsx +146 -0
  344. package/docs/examples/radiogroup/keyboard/class/main.tsx +37 -0
  345. package/docs/examples/radiogroup/keyboard/func/main.tsx +31 -0
  346. package/docs/examples/radiogroup/layout/class/main.tsx +49 -0
  347. package/docs/examples/radiogroup/layout/func/main.tsx +43 -0
  348. package/docs/examples/radiogroup/overview/func/main.tsx +18 -0
  349. package/docs/examples/rangeslider/controlled/class/main.tsx +45 -0
  350. package/docs/examples/rangeslider/controlled/func/main.tsx +37 -0
  351. package/docs/examples/rangeslider/disabled/func/main.tsx +27 -0
  352. package/docs/examples/rangeslider/labels/func/main.tsx +26 -0
  353. package/docs/examples/rangeslider/orientation/func/main.tsx +27 -0
  354. package/docs/examples/rangeslider/overview/func/main.tsx +26 -0
  355. package/docs/examples/rating/controlled/class/main.tsx +29 -0
  356. package/docs/examples/rating/controlled/func/main.tsx +21 -0
  357. package/docs/examples/rating/disabled/func/main.tsx +18 -0
  358. package/docs/examples/rating/forms/class/main.tsx +85 -0
  359. package/docs/examples/rating/forms/func/main.tsx +79 -0
  360. package/docs/examples/rating/icon/func/main.tsx +15 -0
  361. package/docs/examples/rating/items/func/main.tsx +15 -0
  362. package/docs/examples/rating/label/class/main.tsx +33 -0
  363. package/docs/examples/rating/label/func/main.tsx +26 -0
  364. package/docs/examples/rating/navigation/func/main.tsx +15 -0
  365. package/docs/examples/rating/overview/func/main.tsx +12 -0
  366. package/docs/examples/rating/precision/func/main.tsx +27 -0
  367. package/docs/examples/rating/rating-item/advanced/class/main.tsx +82 -0
  368. package/docs/examples/rating/rating-item/advanced/func/main.tsx +76 -0
  369. package/docs/examples/rating/rating-item/overview/func/main.tsx +75 -0
  370. package/docs/examples/rating/readonly/func/main.tsx +18 -0
  371. package/docs/examples/rating/selection/func/main.tsx +25 -0
  372. package/docs/examples/rtl/func/main.tsx +99 -0
  373. package/docs/examples/shared/checkbox-style-configurator.tsx +69 -0
  374. package/docs/examples/shared/es.json +6 -0
  375. package/docs/examples/shared/radiobutton-style-configurator.tsx +47 -0
  376. package/docs/examples/shared/sample-signature.ts +2 -0
  377. package/docs/examples/shared/style-configurator.tsx +93 -0
  378. package/docs/examples/shared/switch-style-configurator.tsx +91 -0
  379. package/docs/examples/signature/appearance/all-options/func/main.tsx +89 -0
  380. package/docs/examples/signature/appearance/color/func/main.tsx +17 -0
  381. package/docs/examples/signature/appearance/stroke-width/func/main.tsx +16 -0
  382. package/docs/examples/signature/controlled/export-scale/func/main.tsx +34 -0
  383. package/docs/examples/signature/controlled/popup/func/main.tsx +28 -0
  384. package/docs/examples/signature/controlled/value/func/main.tsx +19 -0
  385. package/docs/examples/signature/disabled/func/main.tsx +17 -0
  386. package/docs/examples/signature/events/func/main.tsx +66 -0
  387. package/docs/examples/signature/forms/kendo/func/main.tsx +148 -0
  388. package/docs/examples/signature/overview/func/main.tsx +239 -0
  389. package/docs/examples/signature/overview/func/styles.css +56 -0
  390. package/docs/examples/signature/popup/disabled/func/main.tsx +14 -0
  391. package/docs/examples/signature/popup/scale/func/main.tsx +14 -0
  392. package/docs/examples/signature/readonly/func/main.tsx +17 -0
  393. package/docs/examples/signature/smooth/func/main.tsx +14 -0
  394. package/docs/examples/slider/buttons/func/main.tsx +18 -0
  395. package/docs/examples/slider/controlled/class/main.tsx +45 -0
  396. package/docs/examples/slider/controlled/func/main.tsx +36 -0
  397. package/docs/examples/slider/labels/class/main.tsx +44 -0
  398. package/docs/examples/slider/labels/func/main.tsx +35 -0
  399. package/docs/examples/slider/orientation/func/main.tsx +25 -0
  400. package/docs/examples/slider/overview/func/main.tsx +24 -0
  401. package/docs/examples/switch/appearance/func/main.tsx +38 -0
  402. package/docs/examples/switch/controlled/manual/class/main.tsx +40 -0
  403. package/docs/examples/switch/controlled/manual/func/main.tsx +33 -0
  404. package/docs/examples/switch/controlled/readonly/func/main.tsx +15 -0
  405. package/docs/examples/switch/default/func/main.tsx +15 -0
  406. package/docs/examples/switch/disabled/func/main.tsx +15 -0
  407. package/docs/examples/switch/forms/basic/class/main.tsx +81 -0
  408. package/docs/examples/switch/forms/basic/func/main.tsx +72 -0
  409. package/docs/examples/switch/forms/custom-message/class/main.tsx +108 -0
  410. package/docs/examples/switch/forms/custom-message/func/main.tsx +100 -0
  411. package/docs/examples/switch/forms/disable-styles/class/main.tsx +129 -0
  412. package/docs/examples/switch/forms/disable-styles/func/main.tsx +118 -0
  413. package/docs/examples/switch/forms/kendo-react-form/class/main.tsx +104 -0
  414. package/docs/examples/switch/forms/kendo-react-form/func/main.tsx +106 -0
  415. package/docs/examples/switch/keyboard/class/main.tsx +22 -0
  416. package/docs/examples/switch/keyboard/func/main.tsx +23 -0
  417. package/docs/examples/switch/labels/func/main.tsx +15 -0
  418. package/docs/examples/switch/overview/basic/func/main.tsx +15 -0
  419. package/docs/examples/textarea/appearance/func/main.tsx +39 -0
  420. package/docs/examples/textarea/auto-sizing/func/main.tsx +18 -0
  421. package/docs/examples/textarea/controlled/class/main.tsx +32 -0
  422. package/docs/examples/textarea/controlled/func/main.tsx +26 -0
  423. package/docs/examples/textarea/counter/class/main.tsx +38 -0
  424. package/docs/examples/textarea/counter/func/main.tsx +32 -0
  425. package/docs/examples/textarea/default-state/func/main.tsx +18 -0
  426. package/docs/examples/textarea/disabled/func/main.tsx +20 -0
  427. package/docs/examples/textarea/forms/kendo-react-form/class/main.tsx +152 -0
  428. package/docs/examples/textarea/forms/kendo-react-form/func/main.tsx +140 -0
  429. package/docs/examples/textarea/main/func/main.tsx +15 -0
  430. package/docs/examples/textarea/overview/class/main.tsx +103 -0
  431. package/docs/examples/textarea/overview/func/main.tsx +90 -0
  432. package/docs/examples/textarea/sizing/func/main.tsx +15 -0
  433. package/docs/examples/tsconfig.json +29 -0
  434. package/docs/flatcolorpicker/_meta.yml +3 -0
  435. package/docs/flatcolorpicker/customization.md +33 -0
  436. package/docs/flatcolorpicker/disabled.md +22 -0
  437. package/docs/flatcolorpicker/index.md +30 -0
  438. package/docs/floating-labels.md +35 -0
  439. package/docs/get-started.md +153 -0
  440. package/docs/globalization.md +67 -0
  441. package/docs/index.md +212 -0
  442. package/docs/input/_meta.yml +3 -0
  443. package/docs/input/counter.md +20 -0
  444. package/docs/input/forms.md +87 -0
  445. package/docs/input/index.md +40 -0
  446. package/docs/maskedtextbox/_meta.yml +3 -0
  447. package/docs/maskedtextbox/accessibility.md +22 -0
  448. package/docs/maskedtextbox/appearance.md +30 -0
  449. package/docs/maskedtextbox/disabled-state.md +20 -0
  450. package/docs/maskedtextbox/forms.md +87 -0
  451. package/docs/maskedtextbox/index.md +40 -0
  452. package/docs/maskedtextbox/masks.md +44 -0
  453. package/docs/maskedtextbox/readonly-state.md +20 -0
  454. package/docs/maskedtextbox/valid-state.md +25 -0
  455. package/docs/maskedtextbox/value.md +23 -0
  456. package/docs/numerictextbox/_meta.yml +3 -0
  457. package/docs/numerictextbox/accessibility.md +25 -0
  458. package/docs/numerictextbox/appearance.md +30 -0
  459. package/docs/numerictextbox/formats.md +25 -0
  460. package/docs/numerictextbox/forms.md +87 -0
  461. package/docs/numerictextbox/index.md +49 -0
  462. package/docs/numerictextbox/keyboard-navigation.md +26 -0
  463. package/docs/numerictextbox/predefined-step.md +20 -0
  464. package/docs/numerictextbox/ref.md +28 -0
  465. package/docs/numerictextbox/spin-buttons.md +20 -0
  466. package/docs/props-context.md +65 -0
  467. package/docs/radiobutton/_meta.yml +3 -0
  468. package/docs/radiobutton/appearance.md +26 -0
  469. package/docs/radiobutton/disabled.md +23 -0
  470. package/docs/radiobutton/index.md +47 -0
  471. package/docs/radiobutton/labels.md +36 -0
  472. package/docs/radiogroup/_meta.yml +3 -0
  473. package/docs/radiogroup/accessibility.md +25 -0
  474. package/docs/radiogroup/controlled_mode.md +34 -0
  475. package/docs/radiogroup/default_state.md +24 -0
  476. package/docs/radiogroup/forms_support.md +37 -0
  477. package/docs/radiogroup/index.md +41 -0
  478. package/docs/radiogroup/keyboard_navigation.md +37 -0
  479. package/docs/radiogroup/layout.md +29 -0
  480. package/docs/rangeslider/_meta.yml +3 -0
  481. package/docs/rangeslider/accessibility.md +26 -0
  482. package/docs/rangeslider/controlled.md +32 -0
  483. package/docs/rangeslider/disabled.md +23 -0
  484. package/docs/rangeslider/index.md +41 -0
  485. package/docs/rangeslider/keyboard-navigation.md +33 -0
  486. package/docs/rangeslider/orientation.md +24 -0
  487. package/docs/rangeslider/ticks.md +26 -0
  488. package/docs/rating/_meta.yml +3 -0
  489. package/docs/rating/accessibility.md +26 -0
  490. package/docs/rating/forms_support.md +39 -0
  491. package/docs/rating/functionality-and-features/_meta.yml +2 -0
  492. package/docs/rating/functionality-and-features/controlled.md +34 -0
  493. package/docs/rating/functionality-and-features/disabled.md +23 -0
  494. package/docs/rating/functionality-and-features/icon.md +27 -0
  495. package/docs/rating/functionality-and-features/items.md +24 -0
  496. package/docs/rating/functionality-and-features/label.md +28 -0
  497. package/docs/rating/functionality-and-features/precision.md +51 -0
  498. package/docs/rating/functionality-and-features/readonly.md +23 -0
  499. package/docs/rating/functionality-and-features/selection.md +23 -0
  500. package/docs/rating/index.md +45 -0
  501. package/docs/rating/item_custamization.md +45 -0
  502. package/docs/rating/keyboard-navigation.md +33 -0
  503. package/docs/signature/_meta.yml +3 -0
  504. package/docs/signature/appearance.md +96 -0
  505. package/docs/signature/controlled.md +60 -0
  506. package/docs/signature/disabled.md +21 -0
  507. package/docs/signature/events.md +20 -0
  508. package/docs/signature/forms.md +28 -0
  509. package/docs/signature/index.md +34 -0
  510. package/docs/signature/line-smoothing.md +16 -0
  511. package/docs/signature/popup.md +34 -0
  512. package/docs/signature/readonly.md +21 -0
  513. package/docs/slider/_meta.yml +3 -0
  514. package/docs/slider/accessibility.md +26 -0
  515. package/docs/slider/controlled.md +32 -0
  516. package/docs/slider/index.md +41 -0
  517. package/docs/slider/keyboard-navigation.md +33 -0
  518. package/docs/slider/orientation.md +24 -0
  519. package/docs/slider/side-buttons.md +24 -0
  520. package/docs/slider/ticks.md +31 -0
  521. package/docs/switch/_meta.yml +3 -0
  522. package/docs/switch/accessibility.md +17 -0
  523. package/docs/switch/appearance.md +30 -0
  524. package/docs/switch/controlled-switch.md +44 -0
  525. package/docs/switch/default-state.md +20 -0
  526. package/docs/switch/disabled-state.md +20 -0
  527. package/docs/switch/forms-support.md +78 -0
  528. package/docs/switch/index.md +44 -0
  529. package/docs/switch/keyboard-navigation.md +31 -0
  530. package/docs/switch/labels.md +29 -0
  531. package/docs/textarea/_meta.yml +3 -0
  532. package/docs/textarea/appearance.md +30 -0
  533. package/docs/textarea/controlled_mode.md +37 -0
  534. package/docs/textarea/counter.md +28 -0
  535. package/docs/textarea/default_state.md +25 -0
  536. package/docs/textarea/disabled.md +24 -0
  537. package/docs/textarea/forms_support.md +39 -0
  538. package/docs/textarea/index.md +51 -0
  539. package/docs/textarea/sizing.md +38 -0
  540. package/e2e/a11y.tests.ts +154 -0
  541. package/e2e/input.tests.ts +143 -0
  542. package/e2e/numeric.tests.ts +134 -0
  543. package/e2e/switch.tests.ts +122 -0
  544. package/examples/checkbox/checkbox.html +9 -0
  545. package/examples/checkbox/checkbox.tsx +292 -0
  546. package/examples/checkbox/checkboxForm.html +9 -0
  547. package/examples/checkbox/checkboxForm.tsx +81 -0
  548. package/examples/checkbox/checked-n-value.html +9 -0
  549. package/examples/checkbox/checked-n-value.tsx +115 -0
  550. package/examples/checkbox/controlled-mode.html +9 -0
  551. package/examples/checkbox/controlled-mode.tsx +69 -0
  552. package/examples/checkbox/form.html +9 -0
  553. package/examples/checkbox/form.tsx +78 -0
  554. package/examples/checkbox/formik.html +9 -0
  555. package/examples/checkbox/formik.tsx +89 -0
  556. package/examples/colors/colorContrast.html +12 -0
  557. package/examples/colors/colorContrast.tsx +52 -0
  558. package/examples/colors/colorGradient.html +9 -0
  559. package/examples/colors/colorGradient.tsx +37 -0
  560. package/examples/colors/colorPalette.html +9 -0
  561. package/examples/colors/colorPalette.tsx +29 -0
  562. package/examples/colors/colorPicker.html +22 -0
  563. package/examples/colors/colorPicker.tsx +58 -0
  564. package/examples/colors/colorPickerLocalization.html +9 -0
  565. package/examples/colors/colorPickerLocalization.tsx +31 -0
  566. package/examples/colors/flatColorPicker.html +12 -0
  567. package/examples/colors/flatColorPicker.tsx +21 -0
  568. package/examples/context/class/grid-with-filtering.tsx +32 -0
  569. package/examples/context/class/index.html +9 -0
  570. package/examples/context/class/index.tsx +28 -0
  571. package/examples/context/class/sample-products.tsx +182 -0
  572. package/examples/context/func/grid-with-filtering.tsx +32 -0
  573. package/examples/context/func/index.html +9 -0
  574. package/examples/context/func/index.tsx +26 -0
  575. package/examples/context/func/sample-products.tsx +182 -0
  576. package/examples/e2e/accessibility/CheckboxExample.tsx +26 -0
  577. package/examples/e2e/accessibility/ColorGradientExample.tsx +28 -0
  578. package/examples/e2e/accessibility/ColorPaletteExample.tsx +33 -0
  579. package/examples/e2e/accessibility/ColorPickerExample.tsx +21 -0
  580. package/examples/e2e/accessibility/InputExample.tsx +49 -0
  581. package/examples/e2e/accessibility/MaskedTextBoxExample.tsx +29 -0
  582. package/examples/e2e/accessibility/NumericTextBoxExample.tsx +24 -0
  583. package/examples/e2e/accessibility/RadioButtonExample.tsx +29 -0
  584. package/examples/e2e/accessibility/RangeSliderExample.tsx +26 -0
  585. package/examples/e2e/accessibility/RatingExample.tsx +13 -0
  586. package/examples/e2e/accessibility/SliderExample.tsx +19 -0
  587. package/examples/e2e/accessibility/SwitchExample.tsx +26 -0
  588. package/examples/e2e/accessibility/TextAreaExample.tsx +70 -0
  589. package/examples/e2e/accessibility/main.html +14 -0
  590. package/examples/e2e/accessibility/main.tsx +104 -0
  591. package/examples/e2e/input/input.html +9 -0
  592. package/examples/e2e/input/input.tsx +58 -0
  593. package/examples/e2e/numerictextbox/numericLabel.html +9 -0
  594. package/examples/e2e/numerictextbox/numericLabel.tsx +38 -0
  595. package/examples/e2e/switch/switch.html +16 -0
  596. package/examples/e2e/switch/switch.tsx +74 -0
  597. package/examples/focus/focus.html +9 -0
  598. package/examples/focus/focus.tsx +81 -0
  599. package/examples/input/inputFloatingLabels.html +9 -0
  600. package/examples/input/inputFloatingLabels.tsx +26 -0
  601. package/examples/input/inputForm.html +9 -0
  602. package/examples/input/inputForm.tsx +151 -0
  603. package/examples/maskedtextbox/basic.html +9 -0
  604. package/examples/maskedtextbox/basic.tsx +54 -0
  605. package/examples/maskedtextbox/ipmask.html +9 -0
  606. package/examples/maskedtextbox/ipmask.tsx +79 -0
  607. package/examples/messages/index.ts +4 -0
  608. package/examples/numerictextbox/newNumeric.html +9 -0
  609. package/examples/numerictextbox/newNumeric.tsx +149 -0
  610. package/examples/numerictextbox/numeric.html +9 -0
  611. package/examples/numerictextbox/numeric.tsx +247 -0
  612. package/examples/numerictextbox/numericApiExample.html +9 -0
  613. package/examples/numerictextbox/numericApiExample.tsx +25 -0
  614. package/examples/numerictextbox/numericForm.html +9 -0
  615. package/examples/numerictextbox/numericForm.tsx +89 -0
  616. package/examples/numerictextbox/roundingIssues.html +9 -0
  617. package/examples/numerictextbox/roundingIssues.tsx +51 -0
  618. package/examples/numerictextbox/test.html +9 -0
  619. package/examples/numerictextbox/test.tsx +165 -0
  620. package/examples/numerictextbox/testingBlurDisabled.html +9 -0
  621. package/examples/numerictextbox/testingBlurDisabled.tsx +167 -0
  622. package/examples/radio-group/customization/index.html +12 -0
  623. package/examples/radio-group/customization/index.tsx +32 -0
  624. package/examples/radioButton/accessibility.html +12 -0
  625. package/examples/radioButton/accessibility.tsx +81 -0
  626. package/examples/radioButton/html-forms.html +9 -0
  627. package/examples/radioButton/html-forms.tsx +63 -0
  628. package/examples/radioButton/kendo-react-form.html +12 -0
  629. package/examples/radioButton/kendo-react-form.tsx +80 -0
  630. package/examples/radioButton/radio.html +9 -0
  631. package/examples/radioButton/radio.tsx +45 -0
  632. package/examples/radioButton/standalone-radio.html +9 -0
  633. package/examples/radioButton/standalone-radio.tsx +76 -0
  634. package/examples/range-slider/form/index.html +9 -0
  635. package/examples/range-slider/form/index.tsx +57 -0
  636. package/examples/range-slider/index.html +9 -0
  637. package/examples/range-slider/index.tsx +147 -0
  638. package/examples/rating/index.html +9 -0
  639. package/examples/rating/index.tsx +158 -0
  640. package/examples/rtl/index.html +12 -0
  641. package/examples/rtl/index.tsx +29 -0
  642. package/examples/signature/basic.html +9 -0
  643. package/examples/signature/basic.tsx +72 -0
  644. package/examples/signature/forms-basic.html +9 -0
  645. package/examples/signature/forms-basic.tsx +72 -0
  646. package/examples/signature/forms.html +9 -0
  647. package/examples/signature/forms.tsx +90 -0
  648. package/examples/slider/slider.html +15 -0
  649. package/examples/slider/slider.tsx +99 -0
  650. package/examples/slider/vertical.html +15 -0
  651. package/examples/slider/vertical.tsx +28 -0
  652. package/examples/switch/switch.html +9 -0
  653. package/examples/switch/switch.tsx +44 -0
  654. package/examples/switch/switchDoubleEvent.html +9 -0
  655. package/examples/switch/switchDoubleEvent.tsx +25 -0
  656. package/examples/switch/switchForm.html +9 -0
  657. package/examples/switch/switchForm.tsx +138 -0
  658. package/examples/textarea/formik.html +12 -0
  659. package/examples/textarea/formik.tsx +84 -0
  660. package/examples/textarea/textarea.html +12 -0
  661. package/examples/textarea/textarea.tsx +96 -0
  662. package/gulpfile.js +7 -0
  663. package/package.json +19 -16
  664. package/src/checkbox/Checkbox.tsx +352 -0
  665. package/src/checkbox/interfaces/CheckboxBlurEvent.ts +7 -0
  666. package/src/checkbox/interfaces/CheckboxChangeEvent.ts +12 -0
  667. package/src/checkbox/interfaces/CheckboxFocusEvent.ts +7 -0
  668. package/src/checkbox/interfaces/CheckboxProps.ts +122 -0
  669. package/src/colors/ColorContrastLabels.tsx +83 -0
  670. package/src/colors/ColorContrastSvg.tsx +88 -0
  671. package/src/colors/ColorGradient.tsx +450 -0
  672. package/src/colors/ColorInput.tsx +192 -0
  673. package/src/colors/ColorPalette.tsx +329 -0
  674. package/src/colors/ColorPicker.tsx +387 -0
  675. package/src/colors/FlatColorPicker.tsx +258 -0
  676. package/src/colors/HexInput.tsx +67 -0
  677. package/src/colors/Picker.tsx +56 -0
  678. package/src/colors/interfaces/ColorGradientChangeEvent.ts +12 -0
  679. package/src/colors/interfaces/ColorGradientProps.ts +77 -0
  680. package/src/colors/interfaces/ColorPaletteChangeEvent.ts +16 -0
  681. package/src/colors/interfaces/ColorPaletteProps.ts +78 -0
  682. package/src/colors/interfaces/ColorPickerActiveColorClick.ts +17 -0
  683. package/src/colors/interfaces/ColorPickerBlurEvent.ts +13 -0
  684. package/src/colors/interfaces/ColorPickerChangeEvent.ts +17 -0
  685. package/src/colors/interfaces/ColorPickerFocusEvent.ts +13 -0
  686. package/src/colors/interfaces/ColorPickerGradientSettings.ts +19 -0
  687. package/src/colors/interfaces/ColorPickerPaletteSettings.ts +35 -0
  688. package/src/colors/interfaces/ColorPickerPopupSettings.ts +16 -0
  689. package/src/colors/interfaces/ColorPickerProps.ts +170 -0
  690. package/src/colors/interfaces/ColorPickerView.ts +10 -0
  691. package/src/colors/interfaces/PickerPopupSettings.ts +21 -0
  692. package/src/colors/interfaces/PickerProps.ts +51 -0
  693. package/src/colors/models/hsva.ts +9 -0
  694. package/src/colors/models/output-format.ts +4 -0
  695. package/src/colors/models/palette-presets.ts +54 -0
  696. package/src/colors/models/rgb.ts +8 -0
  697. package/src/colors/models/rgba.ts +9 -0
  698. package/src/colors/models/table-cell.ts +7 -0
  699. package/src/colors/models/tile-size.ts +8 -0
  700. package/src/colors/utils/color-cache.ts +71 -0
  701. package/src/colors/utils/color-palette.service.ts +79 -0
  702. package/src/colors/utils/color-parser.ts +158 -0
  703. package/src/colors/utils/misc.ts +23 -0
  704. package/src/colors/utils/svg-calc.ts +115 -0
  705. package/src/common/SliderTooltip.tsx +83 -0
  706. package/src/common/SwitchController.ts +130 -0
  707. package/src/common/SwitchModel.ts +12 -0
  708. package/src/input/Input.tsx +346 -0
  709. package/src/input/interfaces/InputChangeEvent.tsx +12 -0
  710. package/src/interfaces/Direction.ts +1 -0
  711. package/src/interfaces/ToggleBaseProps.ts +8 -0
  712. package/src/main.ts +57 -0
  713. package/src/maskedtextbox/MaskedTextBox.tsx +541 -0
  714. package/src/maskedtextbox/MaskedTextBoxProps.ts +215 -0
  715. package/src/maskedtextbox/masking.service.ts +230 -0
  716. package/src/maskedtextbox/parsing/combinators.ts +30 -0
  717. package/src/maskedtextbox/parsing/parsers.ts +179 -0
  718. package/src/maskedtextbox/parsing/result.ts +39 -0
  719. package/src/maskedtextbox/parsing/stream.ts +41 -0
  720. package/src/maskedtextbox/utils.ts +70 -0
  721. package/src/messages/index.ts +151 -0
  722. package/src/numerictextbox/NumericTextBox.tsx +626 -0
  723. package/src/numerictextbox/interfaces/NumericTextBoxBlurEvent.tsx +7 -0
  724. package/src/numerictextbox/interfaces/NumericTextBoxChangeEvent.tsx +12 -0
  725. package/src/numerictextbox/interfaces/NumericTextBoxFocusEvent.tsx +7 -0
  726. package/src/numerictextbox/interfaces/NumericTextBoxHandle.tsx +40 -0
  727. package/src/numerictextbox/interfaces/NumericTextBoxProps.tsx +180 -0
  728. package/src/numerictextbox/interfaces/NumericTextBoxState.tsx +15 -0
  729. package/src/numerictextbox/utils/index.tsx +744 -0
  730. package/src/package-metadata.ts +13 -0
  731. package/src/radiobutton/RadioButton.tsx +194 -0
  732. package/src/radiobutton/RadioGroup.tsx +190 -0
  733. package/src/radiobutton/interfaces/RadioButtonBlurEvent.ts +7 -0
  734. package/src/radiobutton/interfaces/RadioButtonChangeEvent.ts +12 -0
  735. package/src/radiobutton/interfaces/RadioButtonFocusEvent.ts +7 -0
  736. package/src/radiobutton/interfaces/RadioButtonProps.ts +102 -0
  737. package/src/radiobutton/interfaces/RadioGroupChangeEvent.ts +12 -0
  738. package/src/radiobutton/interfaces/RadioGroupFocusEvent.ts +7 -0
  739. package/src/radiobutton/interfaces/RadioGroupProps.ts +89 -0
  740. package/src/range-slider/RangeSlider.tsx +644 -0
  741. package/src/range-slider/range-raducer.tsx +153 -0
  742. package/src/rating/Rating.tsx +633 -0
  743. package/src/rating/RatingItem.tsx +268 -0
  744. package/src/rating/models/index.tsx +91 -0
  745. package/src/rating/rating-reducer.tsx +70 -0
  746. package/src/rating/utils/index.tsx +65 -0
  747. package/src/signature/Signature.tsx +488 -0
  748. package/src/signature/interfaces/SignatureBlurEvent.tsx +7 -0
  749. package/src/signature/interfaces/SignatureChangeEvent.tsx +12 -0
  750. package/src/signature/interfaces/SignatureCloseEvent.tsx +7 -0
  751. package/src/signature/interfaces/SignatureFocusEvent.tsx +7 -0
  752. package/src/signature/interfaces/SignatureHandle.tsx +35 -0
  753. package/src/signature/interfaces/SignatureOpenEvent.tsx +7 -0
  754. package/src/signature/interfaces/SignatureProps.tsx +227 -0
  755. package/src/signature/interfaces/index.ts +7 -0
  756. package/src/signature/utils/index.ts +11 -0
  757. package/src/slider/Slider.tsx +470 -0
  758. package/src/slider/SliderLabel.tsx +69 -0
  759. package/src/switch/Switch.tsx +559 -0
  760. package/src/textarea/TextArea.tsx +263 -0
  761. package/src/textarea/interfaces/TextAreaBlurEvent.ts +7 -0
  762. package/src/textarea/interfaces/TextAreaChangeEvent.ts +12 -0
  763. package/src/textarea/interfaces/TextAreaFocusEvent.ts +7 -0
  764. package/src/textarea/interfaces/TextAreaProps.tsx +131 -0
  765. package/src/utils.ts +16 -0
  766. package/test/Checkbox.tsx +252 -0
  767. package/test/ColorGradient.tsx +260 -0
  768. package/test/ColorPalette.tsx +440 -0
  769. package/test/ColorPicker.tsx +74 -0
  770. package/test/Input.tsx +255 -0
  771. package/test/NumericTextBox.tsx +984 -0
  772. package/test/RadioButton.tsx +176 -0
  773. package/test/RangeSlider.tsx +502 -0
  774. package/test/Rating.tsx +227 -0
  775. package/test/Slider.tsx +198 -0
  776. package/test/Switch.tsx +154 -0
  777. package/test/TextArea.tsx +216 -0
  778. package/test/maskedtextbox/component.tsx +424 -0
  779. package/test/maskedtextbox/masking.service.tsx +1345 -0
  780. package/test/maskedtextbox/parser.tsx +364 -0
  781. package/tsconfig.es.json +25 -0
  782. package/tsconfig.json +26 -0
  783. package/tsconfig.npm.json +25 -0
  784. package/LICENSE.md +0 -11
  785. package/NOTICE.txt +0 -111
@@ -0,0 +1,1345 @@
1
+ import {
2
+ MaskingService
3
+ } from './../../src/maskedtextbox/masking.service';
4
+
5
+ describe('masking service', () => {
6
+ const numberRule = /[\d]/;
7
+ const numberOrSpaceRule = /[\d\s]/;
8
+
9
+ describe('tokenizer', () => {
10
+ let service: MaskingService;
11
+
12
+ class TestMaskingService extends MaskingService {
13
+ private tokenCreator: { [key: string]: Function } = {
14
+ literal: rule => ({ value: rule }),
15
+ mask: rule => ({ value: rule })
16
+ };
17
+
18
+ protected get maskTokenCreator(): { [key: string]: Function } {
19
+ return this.tokenCreator;
20
+ }
21
+
22
+ protected get unmaskTokenCreator(): { [key: string]: Function } {
23
+ return this.tokenCreator;
24
+ }
25
+ }
26
+
27
+ beforeEach(() => {
28
+ service = new TestMaskingService();
29
+ });
30
+
31
+ it('creates literal token', () => {
32
+ service.update({
33
+ mask: '0'
34
+ });
35
+
36
+ const maskTokens = service.maskTokens;
37
+ const unmaskTokens = service.unmaskTokens;
38
+
39
+ expect(maskTokens.length).toEqual(1);
40
+ expect(maskTokens[0].value).toEqual('0');
41
+
42
+ expect(unmaskTokens.length).toEqual(1);
43
+ expect(unmaskTokens[0].value).toEqual('0');
44
+ });
45
+
46
+ it('creates rule token', () => {
47
+ service.update({
48
+ mask: '0',
49
+ rules: {
50
+ '0': numberRule
51
+ }
52
+ });
53
+
54
+ const maskTokens = service.maskTokens;
55
+ const unmaskTokens = service.unmaskTokens;
56
+
57
+ expect(maskTokens.length).toEqual(1);
58
+ expect(maskTokens[0].value).toEqual(numberRule);
59
+
60
+ expect(unmaskTokens.length).toEqual(1);
61
+ expect(unmaskTokens[0].value).toEqual(numberRule);
62
+ });
63
+
64
+ it('creates literal token for escaped tokens', () => {
65
+ service.update({
66
+ mask: '\\0',
67
+ rules: {
68
+ '0': numberRule
69
+ }
70
+ });
71
+
72
+ const maskTokens = service.maskTokens;
73
+ const unmaskTokens = service.unmaskTokens;
74
+
75
+ expect(maskTokens.length).toEqual(1);
76
+ expect(maskTokens[0].value).toEqual('0');
77
+
78
+ expect(unmaskTokens.length).toEqual(1);
79
+ expect(unmaskTokens[0].value).toEqual('0');
80
+ });
81
+
82
+ it('creates multiple tokens', () => {
83
+ service.update({
84
+ mask: '10\\02',
85
+ rules: {
86
+ '0': numberRule
87
+ }
88
+ });
89
+
90
+ const maskTokens = service.maskTokens;
91
+ const unmaskTokens = service.unmaskTokens;
92
+
93
+ expect(maskTokens.length).toEqual(4);
94
+ expect(maskTokens[0].value).toEqual('1');
95
+ expect(maskTokens[1].value).toEqual(numberRule);
96
+ expect(maskTokens[2].value).toEqual('0');
97
+ expect(maskTokens[3].value).toEqual('2');
98
+
99
+ expect(unmaskTokens.length).toEqual(4);
100
+ expect(unmaskTokens[0].value).toEqual('1');
101
+ expect(unmaskTokens[1].value).toEqual(numberRule);
102
+ expect(unmaskTokens[2].value).toEqual('0');
103
+ expect(unmaskTokens[3].value).toEqual('2');
104
+ });
105
+ });
106
+
107
+ describe('build masked value from raw', () => {
108
+ let service: MaskingService;
109
+
110
+ beforeEach(() => {
111
+ service = new MaskingService();
112
+ });
113
+
114
+ it('produces value equal to the mask in size', () => {
115
+ service.update({
116
+ mask: '0',
117
+ rules: {
118
+ '0': numberRule
119
+ }
120
+ });
121
+
122
+ const value = service.maskRaw('123');
123
+
124
+ expect(value.length).toEqual(1);
125
+ });
126
+
127
+ it('outputs prompt for empty value', () => {
128
+ service.update({
129
+ mask: '0',
130
+ prompt: '_',
131
+ rules: {
132
+ '0': numberRule
133
+ }
134
+ });
135
+
136
+ const emptyValue = service.maskRaw('');
137
+ const nullValue = service.maskRaw(null);
138
+ const undefinedValue = service.maskRaw(undefined);
139
+
140
+ expect(emptyValue).toEqual('_');
141
+ expect(nullValue).toEqual('_');
142
+ expect(undefinedValue).toEqual('_');
143
+ });
144
+
145
+ it('outputs the raw value when maks is empty', () => {
146
+ service.update({
147
+ mask: '',
148
+ prompt: '_',
149
+ rules: {
150
+ '0': numberRule
151
+ }
152
+ });
153
+
154
+ const value = service.maskRaw('123');
155
+
156
+ expect(value).toEqual('123');
157
+ });
158
+
159
+ it('replaces each match with a char from the raw value', () => {
160
+ service.update({
161
+ mask: '000',
162
+ rules: {
163
+ '0': numberRule
164
+ }
165
+ });
166
+
167
+ const value = service.maskRaw('123');
168
+
169
+ expect(value).toEqual('123');
170
+ });
171
+
172
+ it('replaces with prompt when pattern does not match (at the end of the mask)', () => {
173
+ service.update({
174
+ mask: '000',
175
+ prompt: '_',
176
+ rules: {
177
+ '0': numberRule
178
+ }
179
+ });
180
+
181
+ const value = service.maskRaw('12A');
182
+
183
+ expect(value).toEqual('12_');
184
+ });
185
+
186
+ it('replaces with prompt when pattern does not match (before the mask end)', () => {
187
+ service.update({
188
+ mask: '000',
189
+ prompt: '_',
190
+ rules: {
191
+ '0': numberRule
192
+ }
193
+ });
194
+
195
+ const value = service.maskRaw('A12');
196
+
197
+ expect(value).toEqual('12_');
198
+ });
199
+
200
+ it('value wiht literals only', () => {
201
+ service.update({
202
+ mask: '000',
203
+ prompt: '_',
204
+ rules: {
205
+ '0': numberRule
206
+ }
207
+ });
208
+
209
+ const value = service.maskRaw('AAA');
210
+
211
+ expect(value).toEqual('___');
212
+ });
213
+
214
+ it('replaces the rest of the unmatched mask with prompt', () => {
215
+ service.update({
216
+ mask: '000',
217
+ prompt: '_',
218
+ rules: {
219
+ '0': numberRule
220
+ }
221
+ });
222
+
223
+ const value = service.maskRaw('1');
224
+
225
+ expect(value).toEqual('1__');
226
+ });
227
+
228
+ it('literal token with larger value then mask', () => {
229
+ service.update({
230
+ mask: 'A000',
231
+ prompt: '_',
232
+ rules: {
233
+ '0': numberRule
234
+ }
235
+ });
236
+
237
+ const value = service.maskRaw('1234');
238
+
239
+ expect(value).toEqual('A123');
240
+ });
241
+
242
+ it('literal token with shorter value than mask', () => {
243
+ service.update({
244
+ mask: 'A000',
245
+ prompt: '_',
246
+ rules: {
247
+ '0': numberRule
248
+ }
249
+ });
250
+
251
+ const value = service.maskRaw('12');
252
+
253
+ expect(value).toEqual('A12_');
254
+ });
255
+
256
+ it('literal token with equal value and mask', () => {
257
+ service.update({
258
+ mask: 'A000',
259
+ prompt: '_',
260
+ rules: {
261
+ '0': numberRule
262
+ }
263
+ });
264
+
265
+ const value = service.maskRaw('123');
266
+
267
+ expect(value).toEqual('A123');
268
+ });
269
+
270
+ it('literal token inside the mask', () => {
271
+ service.update({
272
+ mask: '00A0',
273
+ prompt: '_',
274
+ rules: {
275
+ '0': numberRule
276
+ }
277
+ });
278
+
279
+ const value = service.maskRaw('123');
280
+
281
+ expect(value).toEqual('12A3');
282
+ });
283
+
284
+ it('literal token inside the mask with shorter value', () => {
285
+ service.update({
286
+ mask: '00A0',
287
+ prompt: '_',
288
+ rules: {
289
+ '0': numberRule
290
+ }
291
+ });
292
+
293
+ const value = service.maskRaw('12');
294
+
295
+ expect(value).toEqual('12A_');
296
+ });
297
+
298
+ it('value with prompt placeholder at the begining', () => {
299
+ service.update({
300
+ mask: '000',
301
+ prompt: '_',
302
+ promptPlaceholder: ' ',
303
+ rules: {
304
+ '0': numberRule
305
+ }
306
+ });
307
+
308
+ const value = service.maskRaw(' 12');
309
+
310
+ expect(value).toEqual('_12');
311
+ });
312
+
313
+ it('value with prompt placeholder at the end', () => {
314
+ service.update({
315
+ mask: '000',
316
+ prompt: '_',
317
+ promptPlaceholder: ' ',
318
+ rules: {
319
+ '0': numberRule
320
+ }
321
+ });
322
+
323
+ const value = service.maskRaw('12 ');
324
+
325
+ expect(value).toEqual('12_');
326
+ });
327
+
328
+ it('value with prompt placeholder in the middle', () => {
329
+ service.update({
330
+ mask: '000',
331
+ prompt: '_',
332
+ promptPlaceholder: ' ',
333
+ rules: {
334
+ '0': numberRule
335
+ }
336
+ });
337
+
338
+ const value = service.maskRaw('1 2');
339
+
340
+ expect(value).toEqual('1_2');
341
+ });
342
+
343
+ it('value with prompt placeholder filling the mask', () => {
344
+ service.update({
345
+ mask: '000',
346
+ prompt: '_',
347
+ promptPlaceholder: ' ',
348
+ rules: {
349
+ '0': numberRule
350
+ }
351
+ });
352
+
353
+ const value = service.maskRaw('1 2');
354
+
355
+ expect(value).toEqual('1__');
356
+ });
357
+
358
+ it('value with prompt placeholder matching masking rule', () => {
359
+ service.update({
360
+ mask: '990',
361
+ prompt: '_',
362
+ promptPlaceholder: ' ',
363
+ rules: {
364
+ '0': numberRule,
365
+ '9': numberOrSpaceRule
366
+ }
367
+ });
368
+
369
+ const value = service.maskRaw('1 2');
370
+
371
+ expect(value).toEqual('1 2');
372
+ });
373
+
374
+ it('value with prompt placeholder and literal', () => {
375
+ service.update({
376
+ mask: 'A90',
377
+ prompt: '_',
378
+ promptPlaceholder: ' ',
379
+ rules: {
380
+ '0': numberRule,
381
+ '9': numberOrSpaceRule
382
+ }
383
+ });
384
+
385
+ const value = service.maskRaw(' 1');
386
+
387
+ expect(value).toEqual('A 1');
388
+ });
389
+ });
390
+
391
+ describe('build masked value from input', () => {
392
+ let service: MaskingService;
393
+
394
+ beforeEach(() => {
395
+ service = new MaskingService();
396
+ });
397
+
398
+ it('inserting single valid char in the begining', () => {
399
+ service.update({
400
+ mask: '000',
401
+ prompt: '_',
402
+ rules: {
403
+ '0': numberRule
404
+ }
405
+ });
406
+
407
+ const oldValue = '123';
408
+ const newValue = '5123';
409
+ const splitPoint = 1;
410
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
411
+
412
+ expect(value).toEqual('523');
413
+ expect(selection).toEqual(1);
414
+ });
415
+
416
+ it('inserting single invalid char in the begining', () => {
417
+ service.update({
418
+ mask: '000',
419
+ prompt: '_',
420
+ rules: {
421
+ '0': numberRule
422
+ }
423
+ });
424
+
425
+ const oldValue = '123';
426
+ const newValue = 'A123';
427
+ const splitPoint = 1;
428
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
429
+
430
+ expect(value).toEqual('123');
431
+ expect(selection).toEqual(0);
432
+ });
433
+
434
+ it('inserting multiple valid chars in the begining, not exceeding mask length', () => {
435
+ service.update({
436
+ mask: '000',
437
+ prompt: '_',
438
+ rules: {
439
+ '0': numberRule
440
+ }
441
+ });
442
+
443
+ const oldValue = '123';
444
+ const newValue = '56123';
445
+ const splitPoint = 2;
446
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
447
+
448
+ expect(value).toEqual('563');
449
+ expect(selection).toEqual(2);
450
+ });
451
+
452
+ it('inserting multiple valid chars in the begining, exceeding mask length', () => {
453
+ service.update({
454
+ mask: '000',
455
+ prompt: '_',
456
+ rules: {
457
+ '0': numberRule
458
+ }
459
+ });
460
+
461
+ const oldValue = '123';
462
+ const newValue = '56789123';
463
+ const splitPoint = 5;
464
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
465
+
466
+ expect(value).toEqual('567');
467
+ expect(selection).toEqual(3);
468
+ });
469
+
470
+ it('inserting multiple invalid chars in the begining, not exceeding mask length', () => {
471
+ service.update({
472
+ mask: '000',
473
+ prompt: '_',
474
+ rules: {
475
+ '0': numberRule
476
+ }
477
+ });
478
+
479
+ const oldValue = '123';
480
+ const newValue = 'AB123';
481
+ const splitPoint = 2;
482
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
483
+
484
+ expect(value).toEqual('123');
485
+ expect(selection).toEqual(0);
486
+ });
487
+
488
+ it('inserting multiple invalid chars in the begining, exceeding mask length', () => {
489
+ service.update({
490
+ mask: '000',
491
+ prompt: '_',
492
+ rules: {
493
+ '0': numberRule
494
+ }
495
+ });
496
+
497
+ const oldValue = '123';
498
+ const newValue = 'ABCD123';
499
+ const splitPoint = 4;
500
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
501
+
502
+ expect(value).toEqual('123');
503
+ expect(selection).toEqual(0);
504
+ });
505
+
506
+ it('inserting valid and invalid chars in the begining, not exceeding mask length', () => {
507
+ service.update({
508
+ mask: '000',
509
+ prompt: '_',
510
+ rules: {
511
+ '0': numberRule
512
+ }
513
+ });
514
+
515
+ const oldValue = '123';
516
+ const newValue = '5A123';
517
+ const splitPoint = 2;
518
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
519
+
520
+ expect(value).toEqual('523');
521
+ expect(selection).toEqual(1);
522
+ });
523
+
524
+ it('inserting invalid and valid chars in the begining, not exceeding mask length', () => {
525
+ service.update({
526
+ mask: '000',
527
+ prompt: '_',
528
+ rules: {
529
+ '0': numberRule
530
+ }
531
+ });
532
+
533
+ const oldValue = '123';
534
+ const newValue = 'A5123';
535
+ const splitPoint = 2;
536
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
537
+
538
+ expect(value).toEqual('523');
539
+ expect(selection).toEqual(1);
540
+ });
541
+
542
+ it('inserting valid and invalid chars in the begining, exceeding mask length', () => {
543
+ service.update({
544
+ mask: '000',
545
+ prompt: '_',
546
+ rules: {
547
+ '0': numberRule
548
+ }
549
+ });
550
+
551
+ const oldValue = '123';
552
+ const newValue = '5A6B123';
553
+ const splitPoint = 4;
554
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
555
+
556
+ expect(value).toEqual('563');
557
+ expect(selection).toEqual(2);
558
+ });
559
+
560
+ it('inserting invalid chars followed with valid in the begining, exceeding mask length', () => {
561
+ service.update({
562
+ mask: '000',
563
+ prompt: '_',
564
+ rules: {
565
+ '0': numberRule
566
+ }
567
+ });
568
+
569
+ const oldValue = '123';
570
+ const newValue = 'ABCD5123';
571
+ const splitPoint = 5;
572
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
573
+
574
+ expect(value).toEqual('523');
575
+ expect(selection).toEqual(1);
576
+ });
577
+
578
+ it('inserting valid chars before the unfilled mask', () => {
579
+ service.update({
580
+ mask: '0000',
581
+ prompt: '_',
582
+ rules: {
583
+ '0': numberRule
584
+ }
585
+ });
586
+
587
+ const oldValue = '___3';
588
+ const newValue = '12___3';
589
+ const splitPoint = 2;
590
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
591
+
592
+ expect(value).toEqual('12_3');
593
+ expect(selection).toEqual(2);
594
+ });
595
+
596
+ it('inserting valid and invalid chars before the unfilled mask', () => {
597
+ service.update({
598
+ mask: '0000',
599
+ prompt: '_',
600
+ rules: {
601
+ '0': numberRule
602
+ }
603
+ });
604
+
605
+ const oldValue = '___3';
606
+ const newValue = 'A2B___3';
607
+ const splitPoint = 3;
608
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
609
+
610
+ expect(value).toEqual('2__3');
611
+ expect(selection).toEqual(1);
612
+ });
613
+
614
+ it('inserting valid chars at the end', () => {
615
+ service.update({
616
+ mask: '0000',
617
+ prompt: '_',
618
+ rules: {
619
+ '0': numberRule
620
+ }
621
+ });
622
+
623
+ const oldValue = '____';
624
+ const newValue = '___3_';
625
+ const splitPoint = 4;
626
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
627
+
628
+ expect(value).toEqual('___3');
629
+ expect(selection).toEqual(4);
630
+ });
631
+
632
+ it('inserting invalid chars at the end', () => {
633
+ service.update({
634
+ mask: '0000',
635
+ prompt: '_',
636
+ rules: {
637
+ '0': numberRule
638
+ }
639
+ });
640
+
641
+ const oldValue = '123_';
642
+ const newValue = '123A_';
643
+ const splitPoint = 4;
644
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
645
+
646
+ expect(value).toEqual('123_');
647
+ expect(selection).toEqual(3);
648
+ });
649
+
650
+ it('inserting before literal', () => {
651
+ service.update({
652
+ mask: '00A0',
653
+ prompt: '_',
654
+ rules: {
655
+ '0': numberRule
656
+ }
657
+ });
658
+
659
+ const oldValue = '12A_';
660
+ const newValue = '123A_';
661
+ const splitPoint = 3;
662
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
663
+
664
+ expect(value).toEqual('12A3');
665
+ expect(selection).toEqual(4);
666
+ });
667
+
668
+ it('inserting before literal when mask is empty', () => {
669
+ service.update({
670
+ mask: '00A0',
671
+ prompt: '_',
672
+ rules: {
673
+ '0': numberRule
674
+ }
675
+ });
676
+
677
+ const oldValue = '__A_';
678
+ const newValue = '123A_';
679
+ const splitPoint = 3;
680
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
681
+
682
+ expect(value).toEqual('12A3');
683
+ expect(selection).toEqual(4);
684
+ });
685
+
686
+ it('inserting before literal with multiple matching literals on the right position', () => {
687
+ service.update({
688
+ mask: '00A0',
689
+ prompt: '_',
690
+ rules: {
691
+ '0': numberRule
692
+ }
693
+ });
694
+
695
+ const oldValue = '__A_';
696
+ const newValue = '12A3A_';
697
+ const splitPoint = 4;
698
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
699
+
700
+ expect(value).toEqual('12A3');
701
+ expect(selection).toEqual(4);
702
+ });
703
+
704
+ it('inserting with matching literals on position after the original position', () => {
705
+ service.update({
706
+ mask: '00A0',
707
+ prompt: '_',
708
+ rules: {
709
+ '0': numberRule
710
+ }
711
+ });
712
+
713
+ const oldValue = '__A_';
714
+ const newValue = '123A4_';
715
+ const splitPoint = 5;
716
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
717
+
718
+ expect(value).toEqual('12A3');
719
+ expect(selection).toEqual(4);
720
+ });
721
+
722
+ it('inserting after literal', () => {
723
+ service.update({
724
+ mask: '00A0',
725
+ prompt: '_',
726
+ rules: {
727
+ '0': numberRule
728
+ }
729
+ });
730
+
731
+ const oldValue = '12A_';
732
+ const newValue = '12A34_';
733
+ const splitPoint = 5;
734
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
735
+
736
+ expect(value).toEqual('12A3');
737
+ expect(selection).toEqual(4);
738
+ });
739
+
740
+ it('inserting with prompt in the new value', () => {
741
+ service.update({
742
+ mask: '00A0',
743
+ prompt: '_',
744
+ rules: {
745
+ '0': numberRule
746
+ }
747
+ });
748
+
749
+ const oldValue = '__A_';
750
+ const newValue = '1_3A4_';
751
+ const splitPoint = 5;
752
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
753
+
754
+ expect(value).toEqual('1_A3');
755
+ expect(selection).toEqual(4);
756
+ });
757
+
758
+ it('overriding with invalid char', () => {
759
+ service.update({
760
+ mask: '000',
761
+ prompt: '_',
762
+ rules: {
763
+ '0': numberRule
764
+ }
765
+ });
766
+
767
+ const oldValue = '123';
768
+ const newValue = '1A3';
769
+ const splitPoint = 2;
770
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
771
+
772
+ expect(value).toEqual('123');
773
+ expect(selection).toEqual(1);
774
+ });
775
+
776
+ it('inserting prompt at the begining', () => {
777
+ service.update({
778
+ mask: '000',
779
+ prompt: '_',
780
+ rules: {
781
+ '0': numberRule
782
+ }
783
+ });
784
+
785
+ const oldValue = '123';
786
+ const newValue = '_123';
787
+ const splitPoint = 1;
788
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
789
+
790
+ expect(value).toEqual('123');
791
+ expect(selection).toEqual(0);
792
+ });
793
+
794
+ it('inserting prompt at the begining when prompt in the old value', () => {
795
+ service.update({
796
+ mask: '000',
797
+ prompt: '_',
798
+ rules: {
799
+ '0': numberRule
800
+ }
801
+ });
802
+
803
+ const oldValue = '_23';
804
+ const newValue = '__23';
805
+ const splitPoint = 1;
806
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
807
+
808
+ expect(value).toEqual('_23');
809
+ expect(selection).toEqual(1);
810
+ });
811
+
812
+ it('inserting invalid letter at the begining with literal in the mask', () => {
813
+ service.update({
814
+ mask: '00B00',
815
+ prompt: '_',
816
+ rules: {
817
+ '0': numberRule
818
+ }
819
+ });
820
+
821
+ const oldValue = '12B34';
822
+ const newValue = 'a12B34';
823
+ const splitPoint = 1;
824
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
825
+
826
+ expect(value).toEqual('12B34');
827
+ expect(selection).toEqual(0);
828
+ });
829
+
830
+ it('inserting multiple invalid literals', () => {
831
+ service.update({
832
+ mask: '00B00',
833
+ prompt: '_',
834
+ rules: {
835
+ '0': numberRule
836
+ }
837
+ });
838
+
839
+ const oldValue = '12B34';
840
+ const newValue = '67CC912B34';
841
+ const splitPoint = 5;
842
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
843
+
844
+ expect(value).toEqual('67B94');
845
+ expect(selection).toEqual(4);
846
+ });
847
+
848
+ it('removing after literal', () => {
849
+ service.update({
850
+ mask: '00B00',
851
+ prompt: '_',
852
+ rules: {
853
+ '0': numberRule
854
+ }
855
+ });
856
+
857
+ const oldValue = '12B34';
858
+ const newValue = '12B4';
859
+ const splitPoint = 3;
860
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
861
+
862
+ expect(value).toEqual('12B_4');
863
+ expect(selection).toEqual(3);
864
+ });
865
+
866
+ it('removing before literal', () => {
867
+ service.update({
868
+ mask: '00B00',
869
+ prompt: '_',
870
+ rules: {
871
+ '0': numberRule
872
+ }
873
+ });
874
+
875
+ const oldValue = '12B34';
876
+ const newValue = '1B34';
877
+ const splitPoint = 1;
878
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
879
+
880
+ expect(value).toEqual('1_B34');
881
+ expect(selection).toEqual(1);
882
+ });
883
+
884
+ it('removing literal', () => {
885
+ service.update({
886
+ mask: '00B00',
887
+ prompt: '_',
888
+ rules: {
889
+ '0': numberRule
890
+ }
891
+ });
892
+
893
+ const oldValue = '12B34';
894
+ const newValue = '1234';
895
+ const splitPoint = 2;
896
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
897
+
898
+ expect(value).toEqual('12B34');
899
+ expect(selection).toEqual(2);
900
+ });
901
+
902
+ it('removing multiple before literal', () => {
903
+ service.update({
904
+ mask: '00B00',
905
+ prompt: '_',
906
+ rules: {
907
+ '0': numberRule
908
+ }
909
+ });
910
+
911
+ const oldValue = '12B34';
912
+ const newValue = 'B34';
913
+ const splitPoint = 0;
914
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
915
+
916
+ expect(value).toEqual('__B34');
917
+ expect(selection).toEqual(0);
918
+ });
919
+
920
+ it('removing multiple after literal', () => {
921
+ service.update({
922
+ mask: '00B00',
923
+ prompt: '_',
924
+ rules: {
925
+ '0': numberRule
926
+ }
927
+ });
928
+
929
+ const oldValue = '12B34';
930
+ const newValue = '12B';
931
+ const splitPoint = 3;
932
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
933
+
934
+ expect(value).toEqual('12B__');
935
+ expect(selection).toEqual(3);
936
+ });
937
+
938
+ it('removing multiple chars with multiple literals', () => {
939
+ service.update({
940
+ mask: '00B0C0',
941
+ prompt: '_',
942
+ rules: {
943
+ '0': numberRule
944
+ }
945
+ });
946
+
947
+ const oldValue = '12B3C4';
948
+ const newValue = '124';
949
+ const splitPoint = 2;
950
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
951
+
952
+ expect(value).toEqual('12B_C4');
953
+ expect(selection).toEqual(2);
954
+ });
955
+
956
+ it('removing multiple chars with multiple literals, without trailing chars', () => {
957
+ service.update({
958
+ mask: '00B0C0',
959
+ prompt: '_',
960
+ rules: {
961
+ '0': numberRule
962
+ }
963
+ });
964
+
965
+ const oldValue = '12B3C4';
966
+ const newValue = '12';
967
+ const splitPoint = 2;
968
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
969
+
970
+ expect(value).toEqual('12B_C_');
971
+ expect(selection).toEqual(2);
972
+ });
973
+
974
+ it('removing starting from literal', () => {
975
+ service.update({
976
+ mask: 'B00',
977
+ prompt: '_',
978
+ rules: {
979
+ '0': numberRule
980
+ }
981
+ });
982
+
983
+ const oldValue = 'B12';
984
+ const newValue = '32';
985
+ const splitPoint = 1;
986
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
987
+
988
+ expect(value).toEqual('B32');
989
+ expect(selection).toEqual(2);
990
+ });
991
+
992
+ it('removing starting including the literal', () => {
993
+ service.update({
994
+ mask: '0B00',
995
+ prompt: '_',
996
+ rules: {
997
+ '0': numberRule
998
+ }
999
+ });
1000
+
1001
+ const oldValue = '1B23';
1002
+ const newValue = '43';
1003
+ const splitPoint = 1;
1004
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1005
+
1006
+ expect(value).toEqual('4B_3');
1007
+ expect(selection).toEqual(1);
1008
+ });
1009
+
1010
+ it('removing ending at the literal', () => {
1011
+ service.update({
1012
+ mask: '0B0',
1013
+ prompt: '_',
1014
+ rules: {
1015
+ '0': numberRule
1016
+ }
1017
+ });
1018
+
1019
+ const oldValue = '1B2';
1020
+ const newValue = '42';
1021
+ const splitPoint = 1;
1022
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1023
+
1024
+ expect(value).toEqual('4B2');
1025
+ expect(selection).toEqual(1);
1026
+ });
1027
+
1028
+ it('removing prompt char', () => {
1029
+ service.update({
1030
+ mask: '00B00',
1031
+ prompt: '_',
1032
+ rules: {
1033
+ '0': numberRule
1034
+ }
1035
+ });
1036
+
1037
+ const oldValue = '1_B34';
1038
+ const newValue = '1B34';
1039
+ const splitPoint = 1;
1040
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1041
+
1042
+ expect(value).toEqual('1_B34');
1043
+ expect(selection).toEqual(1);
1044
+ });
1045
+
1046
+ it('replacing all the content', () => {
1047
+ service.update({
1048
+ mask: '00B00',
1049
+ prompt: '_',
1050
+ rules: {
1051
+ '0': numberRule
1052
+ }
1053
+ });
1054
+
1055
+ const oldValue = '12B34';
1056
+ const newValue = '6';
1057
+ const splitPoint = 1;
1058
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1059
+
1060
+ expect(value).toEqual('6_B__');
1061
+ expect(selection).toEqual(1);
1062
+ });
1063
+
1064
+ it('replacing the content with matching literal', () => {
1065
+ service.update({
1066
+ mask: '00B00',
1067
+ prompt: '_',
1068
+ rules: {
1069
+ '0': numberRule
1070
+ }
1071
+ });
1072
+
1073
+ const oldValue = '12B34';
1074
+ const newValue = '67B8';
1075
+ const splitPoint = 4;
1076
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1077
+
1078
+ expect(value).toEqual('67B8_');
1079
+ expect(selection).toEqual(4);
1080
+ });
1081
+
1082
+ it('replacing with invalid chars, new text bigger than replaced', () => {
1083
+ service.update({
1084
+ mask: '00000',
1085
+ prompt: '_',
1086
+ rules: {
1087
+ '0': numberRule
1088
+ }
1089
+ });
1090
+
1091
+ const oldValue = '12345';
1092
+ const newValue = 'CC65';
1093
+ const splitPoint = 3;
1094
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1095
+
1096
+ expect(value).toEqual('6___5');
1097
+ expect(selection).toEqual(3);
1098
+ });
1099
+
1100
+ it('replacing multiple characters with literal in the begining', () => {
1101
+ service.update({
1102
+ mask: 'B000',
1103
+ prompt: '_',
1104
+ rules: {
1105
+ '0': numberRule
1106
+ }
1107
+ });
1108
+
1109
+ const oldValue = 'B123';
1110
+ const newValue = '6';
1111
+ const splitPoint = 1;
1112
+ const { value, selection } = service.maskInput(newValue, oldValue, splitPoint);
1113
+
1114
+ expect(value).toEqual('B6__');
1115
+ expect(selection).toEqual(2);
1116
+ });
1117
+
1118
+ it('pasting content without literal', () => {
1119
+ service.update({
1120
+ mask: '00B00',
1121
+ prompt: '_',
1122
+ rules: {
1123
+ '0': numberRule
1124
+ }
1125
+ });
1126
+
1127
+ const oldValue = '12B34';
1128
+ const newValue = '67C8';
1129
+ const start = 0;
1130
+ const end = 5;
1131
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1132
+
1133
+ expect(value).toEqual('67B8_');
1134
+ expect(selection).toEqual(5);
1135
+ });
1136
+
1137
+ it('replacing the content with literal with range selection', () => {
1138
+ service.update({
1139
+ mask: '00B00',
1140
+ prompt: '_',
1141
+ rules: {
1142
+ '0': numberRule
1143
+ }
1144
+ });
1145
+
1146
+ const oldValue = '12B34';
1147
+ const newValue = '678';
1148
+ const start = 0;
1149
+ const end = 5;
1150
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1151
+
1152
+ expect(value).toEqual('67B8_');
1153
+ expect(selection).toEqual(5);
1154
+ });
1155
+
1156
+ it('replacing with invalid chars, new text equal to replaced and range selection', () => {
1157
+ service.update({
1158
+ mask: '00000',
1159
+ prompt: '_',
1160
+ rules: {
1161
+ '0': numberRule
1162
+ }
1163
+ });
1164
+
1165
+ const oldValue = '12345';
1166
+ const newValue = 'CC6';
1167
+ const start = 0;
1168
+ const end = 3;
1169
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1170
+
1171
+ expect(value).toEqual('6__45');
1172
+ expect(selection).toEqual(3);
1173
+ });
1174
+
1175
+ it('replacing single character should update only that character and range selection', () => {
1176
+ service.update({
1177
+ mask: '00000',
1178
+ prompt: '_',
1179
+ rules: {
1180
+ '0': numberRule
1181
+ }
1182
+ });
1183
+
1184
+ const oldValue = '12345';
1185
+ const newValue = 'c6';
1186
+ const start = 1;
1187
+ const end = 2;
1188
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1189
+
1190
+ expect(value).toEqual('16345');
1191
+ expect(selection).toEqual(2);
1192
+ });
1193
+
1194
+ it('inserting with prompt in the new value and multiple selection', () => {
1195
+ service.update({
1196
+ mask: '00A0',
1197
+ prompt: '_',
1198
+ rules: {
1199
+ '0': numberRule
1200
+ }
1201
+ });
1202
+
1203
+ const oldValue = '__A_';
1204
+ const newValue = '1_3';
1205
+ const start = 0;
1206
+ const end = 2;
1207
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1208
+
1209
+ expect(value).toEqual('13A_');
1210
+ expect(selection).toEqual(2);
1211
+ });
1212
+
1213
+ it('pasting less characters then selected', () => {
1214
+ service.update({
1215
+ mask: '00A0',
1216
+ prompt: '_',
1217
+ rules: {
1218
+ '0': numberRule
1219
+ }
1220
+ });
1221
+
1222
+ const oldValue = '12A3';
1223
+ const newValue = '9a';
1224
+ const start = 0;
1225
+ const end = 3;
1226
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1227
+
1228
+ expect(value).toEqual('9_A3');
1229
+ expect(selection).toEqual(3);
1230
+ });
1231
+
1232
+ it('pasting less characters across multiple literals', () => {
1233
+ service.update({
1234
+ mask: '(00)-00',
1235
+ prompt: '_',
1236
+ rules: {
1237
+ '0': numberRule
1238
+ }
1239
+ });
1240
+
1241
+ const oldValue = '(12)-34';
1242
+ const newValue = '9a';
1243
+ const start = 3;
1244
+ const end = 6;
1245
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1246
+
1247
+ expect(value).toEqual('(12)-94');
1248
+ expect(selection).toEqual(6);
1249
+ });
1250
+
1251
+ it('pasting less characters across multiple literals with selection on boths sides of the literals', () => {
1252
+ service.update({
1253
+ mask: '(000)-00',
1254
+ prompt: '_',
1255
+ rules: {
1256
+ '0': numberRule
1257
+ }
1258
+ });
1259
+
1260
+ const oldValue = '(123)-45';
1261
+ const newValue = '9a';
1262
+ const start = 3;
1263
+ const end = 7;
1264
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1265
+
1266
+ expect(value).toEqual('(129)-_5');
1267
+ expect(selection).toEqual(7);
1268
+ });
1269
+
1270
+ it('pasting content with mask applied equal to the mask length', () => {
1271
+ service.update({
1272
+ mask: '(000)-00',
1273
+ prompt: '_',
1274
+ rules: {
1275
+ '0': numberRule
1276
+ }
1277
+ });
1278
+
1279
+ const oldValue = '(123)-45';
1280
+ const newValue = '(789)-12';
1281
+ const start = 0;
1282
+ const end = 8;
1283
+ const { value, selection } = service.maskInRange(newValue, oldValue, start, end);
1284
+
1285
+ expect(value).toEqual('(789)-12');
1286
+ expect(selection).toEqual(8);
1287
+ });
1288
+ });
1289
+
1290
+ describe('building raw value from masked', () => {
1291
+ let service: MaskingService;
1292
+
1293
+ beforeEach(() => {
1294
+ service = new MaskingService();
1295
+ });
1296
+
1297
+ it('returns raw value for rules', () => {
1298
+ service.update({
1299
+ mask: '(000)-00',
1300
+ prompt: '_',
1301
+ rules: {
1302
+ '0': numberRule
1303
+ }
1304
+ });
1305
+
1306
+ const maskedValue = '(123)-45';
1307
+ const rawValue = service.rawValue(maskedValue);
1308
+
1309
+ expect(rawValue).toEqual('12345');
1310
+ });
1311
+
1312
+ it('returns promptPlaceholder for prompt', () => {
1313
+ service.update({
1314
+ mask: '(000)-00',
1315
+ prompt: '_',
1316
+ promptPlaceholder: '!',
1317
+ rules: {
1318
+ '0': numberRule
1319
+ }
1320
+ });
1321
+
1322
+ const maskedValue = '(___)-45';
1323
+ const rawValue = service.rawValue(maskedValue);
1324
+
1325
+ expect(rawValue).toEqual('!!!45');
1326
+ });
1327
+
1328
+ it('returns literals', () => {
1329
+ service.update({
1330
+ includeLiterals: true,
1331
+ mask: '(000)-00',
1332
+ prompt: '_',
1333
+ promptPlaceholder: '!',
1334
+ rules: {
1335
+ '0': numberRule
1336
+ }
1337
+ });
1338
+
1339
+ const maskedValue = '(___)-45';
1340
+ const rawValue = service.rawValue(maskedValue);
1341
+
1342
+ expect(rawValue).toEqual('(!!!)-45');
1343
+ });
1344
+ });
1345
+ });