@elliemae/ds-form 3.15.0 → 3.16.0-next.10

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 (421) hide show
  1. package/dist/cjs/CheckboxGroup/DSCheckboxGroup.js +6 -6
  2. package/dist/cjs/CheckboxGroup/DSCheckboxGroup.js.map +2 -2
  3. package/dist/cjs/CheckboxGroup/index.js +1 -1
  4. package/dist/cjs/CheckboxGroup/index.js.map +2 -2
  5. package/dist/cjs/CheckboxGroup/props.js +13 -13
  6. package/dist/cjs/CheckboxGroup/props.js.map +2 -2
  7. package/dist/cjs/ComboBoxFreeSolo/ComboBoxFreeSolo.js +5 -5
  8. package/dist/cjs/ComboBoxFreeSolo/ComboBoxFreeSolo.js.map +1 -1
  9. package/dist/cjs/ComboBoxFreeSolo/components/SingleValue.js +2 -2
  10. package/dist/cjs/ComboBoxFreeSolo/components/SingleValue.js.map +1 -1
  11. package/dist/cjs/ComboBoxFreeSolo/index.js +1 -1
  12. package/dist/cjs/ComboBoxFreeSolo/index.js.map +2 -2
  13. package/dist/cjs/DateInput/DSDateInput.js +6 -5
  14. package/dist/cjs/DateInput/DSDateInput.js.map +2 -2
  15. package/dist/cjs/DateInput/components/DateInputImpl.js +1 -1
  16. package/dist/cjs/DateInput/components/DateInputImpl.js.map +1 -1
  17. package/dist/cjs/DateInput/components/DateInputs.js +1 -1
  18. package/dist/cjs/DateInput/components/DateInputs.js.map +1 -1
  19. package/dist/cjs/DateInput/index.js +1 -1
  20. package/dist/cjs/DateInput/index.js.map +2 -2
  21. package/dist/cjs/DateInput/props.js +17 -17
  22. package/dist/cjs/DateInput/props.js.map +2 -2
  23. package/dist/cjs/DateInputV2/components/DSDateInput.js +5 -5
  24. package/dist/cjs/DateInputV2/components/DSDateInput.js.map +2 -2
  25. package/dist/cjs/DateInputV2/components/DateInputs.js +6 -4
  26. package/dist/cjs/DateInputV2/components/DateInputs.js.map +2 -2
  27. package/dist/cjs/DateInputV2/components/helpers.js +1 -1
  28. package/dist/cjs/DateInputV2/components/helpers.js.map +1 -1
  29. package/dist/cjs/DateInputV2/components/props.js +11 -11
  30. package/dist/cjs/DateInputV2/components/props.js.map +2 -2
  31. package/dist/cjs/DateInputV2/index.js +2 -2
  32. package/dist/cjs/DateInputV2/index.js.map +2 -2
  33. package/dist/cjs/ExpandableInput/DSExpandableInput.js +1 -1
  34. package/dist/cjs/ExpandableInput/DSExpandableInput.js.map +1 -1
  35. package/dist/cjs/ExpandableInput/ExpandableInputImpl.js +1 -1
  36. package/dist/cjs/ExpandableInput/ExpandableInputImpl.js.map +1 -1
  37. package/dist/cjs/ExpandableInput/index.js +1 -1
  38. package/dist/cjs/ExpandableInput/index.js.map +2 -2
  39. package/dist/cjs/FloatingLabelInput/DSFloatingLabelInput.js +3 -3
  40. package/dist/cjs/FloatingLabelInput/DSFloatingLabelInput.js.map +1 -1
  41. package/dist/cjs/FloatingLabelInput/FloatingLabelInputImpl.js +2 -2
  42. package/dist/cjs/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
  43. package/dist/cjs/FloatingLabelInput/index.js +1 -1
  44. package/dist/cjs/FloatingLabelInput/index.js.map +2 -2
  45. package/dist/cjs/FormItem/DSFormItemLayout.js +10 -8
  46. package/dist/cjs/FormItem/DSFormItemLayout.js.map +2 -2
  47. package/dist/cjs/FormItem/Error/DSError.js +4 -4
  48. package/dist/cjs/FormItem/Error/DSError.js.map +2 -2
  49. package/dist/cjs/FormItem/Label/DSLabel.js +1 -1
  50. package/dist/cjs/FormItem/Label/DSLabel.js.map +1 -1
  51. package/dist/cjs/FormItem/defaultProps.js +4 -4
  52. package/dist/cjs/FormItem/defaultProps.js.map +1 -1
  53. package/dist/cjs/FormItem/index.js +2 -2
  54. package/dist/cjs/FormItem/index.js.map +1 -1
  55. package/dist/cjs/FormItem/props.js +45 -45
  56. package/dist/cjs/FormItem/props.js.map +2 -2
  57. package/dist/cjs/InputGroup/DSInputGroup.js +20 -16
  58. package/dist/cjs/InputGroup/DSInputGroup.js.map +2 -2
  59. package/dist/cjs/InputGroup/index.js +1 -1
  60. package/dist/cjs/InputGroup/index.js.map +1 -1
  61. package/dist/cjs/InputGroup/props.js +8 -8
  62. package/dist/cjs/InputGroup/props.js.map +2 -2
  63. package/dist/cjs/InputMask/DSInputMask.js +9 -7
  64. package/dist/cjs/InputMask/DSInputMask.js.map +2 -2
  65. package/dist/cjs/InputMask/DSInputMaskDeprecated.js +2 -2
  66. package/dist/cjs/InputMask/DSInputMaskDeprecated.js.map +1 -1
  67. package/dist/cjs/InputMask/InputMaskContext.js.map +1 -1
  68. package/dist/cjs/InputMask/MaskPipes.js +1 -1
  69. package/dist/cjs/InputMask/MaskPipes.js.map +1 -1
  70. package/dist/cjs/InputMask/defaultProps.js +1 -1
  71. package/dist/cjs/InputMask/defaultProps.js.map +1 -1
  72. package/dist/cjs/InputMask/index.js +1 -1
  73. package/dist/cjs/InputMask/index.js.map +2 -2
  74. package/dist/cjs/InputMask/mask_types/DateInputMask.js +2 -2
  75. package/dist/cjs/InputMask/mask_types/DateInputMask.js.map +1 -1
  76. package/dist/cjs/InputMask/mask_types/DateTimeInputMask.js +2 -2
  77. package/dist/cjs/InputMask/mask_types/DateTimeInputMask.js.map +1 -1
  78. package/dist/cjs/InputMask/mask_types/DictionaryInputMask.js +2 -2
  79. package/dist/cjs/InputMask/mask_types/DictionaryInputMask.js.map +1 -1
  80. package/dist/cjs/InputMask/mask_types/NumberInputMask.js +2 -2
  81. package/dist/cjs/InputMask/mask_types/NumberInputMask.js.map +1 -1
  82. package/dist/cjs/InputMask/mask_types/PhoneInputMask.js +2 -2
  83. package/dist/cjs/InputMask/mask_types/PhoneInputMask.js.map +2 -2
  84. package/dist/cjs/InputMask/mask_types/PhoneInternationalInputMask.js +2 -2
  85. package/dist/cjs/InputMask/mask_types/PhoneInternationalInputMask.js.map +1 -1
  86. package/dist/cjs/InputMask/mask_types/SsnInputMask.js +2 -2
  87. package/dist/cjs/InputMask/mask_types/SsnInputMask.js.map +1 -1
  88. package/dist/cjs/InputMask/mask_types/UsZipCodeInputMask.js +2 -2
  89. package/dist/cjs/InputMask/mask_types/UsZipCodeInputMask.js.map +1 -1
  90. package/dist/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js +2 -2
  91. package/dist/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js.map +1 -1
  92. package/dist/cjs/InputMask/mask_types/index.js +9 -9
  93. package/dist/cjs/InputMask/mask_types/index.js.map +1 -1
  94. package/dist/cjs/InputMask/props.js +31 -31
  95. package/dist/cjs/InputMask/props.js.map +2 -2
  96. package/dist/cjs/InputProtected/DSInputProtected.js +8 -6
  97. package/dist/cjs/InputProtected/DSInputProtected.js.map +2 -2
  98. package/dist/cjs/InputProtected/defaultProps.js +1 -1
  99. package/dist/cjs/InputProtected/defaultProps.js.map +1 -1
  100. package/dist/cjs/InputProtected/index.js +2 -2
  101. package/dist/cjs/InputProtected/index.js.map +2 -2
  102. package/dist/cjs/InputProtected/props.js +10 -10
  103. package/dist/cjs/InputProtected/props.js.map +2 -2
  104. package/dist/cjs/LargeInputText/DSLargeInputText.js +5 -3
  105. package/dist/cjs/LargeInputText/DSLargeInputText.js.map +2 -2
  106. package/dist/cjs/LargeInputText/index.js +1 -1
  107. package/dist/cjs/LargeInputText/index.js.map +1 -1
  108. package/dist/cjs/LargeInputText/props.js +28 -28
  109. package/dist/cjs/LargeInputText/props.js.map +2 -2
  110. package/dist/cjs/Radio/DSRadio.js +18 -16
  111. package/dist/cjs/Radio/DSRadio.js.map +2 -2
  112. package/dist/cjs/Radio/index.js +1 -1
  113. package/dist/cjs/Radio/index.js.map +2 -2
  114. package/dist/cjs/RadioGroup/DSRadioGroup.js +6 -6
  115. package/dist/cjs/RadioGroup/DSRadioGroup.js.map +2 -2
  116. package/dist/cjs/RadioGroup/index.js +1 -1
  117. package/dist/cjs/RadioGroup/index.js.map +2 -2
  118. package/dist/cjs/RadioGroup/props.js +11 -11
  119. package/dist/cjs/RadioGroup/props.js.map +2 -2
  120. package/dist/cjs/RequiredMark/index.js +1 -1
  121. package/dist/cjs/RequiredMark/index.js.map +2 -2
  122. package/dist/cjs/TimeInput/DSTimeInput.js +15 -15
  123. package/dist/cjs/TimeInput/DSTimeInput.js.map +2 -2
  124. package/dist/cjs/TimeInput/TimeInputImpl.js +1 -1
  125. package/dist/cjs/TimeInput/TimeInputImpl.js.map +1 -1
  126. package/dist/cjs/TimeInput/TimeInputs.js +1 -1
  127. package/dist/cjs/TimeInput/TimeInputs.js.map +1 -1
  128. package/dist/cjs/TimeInput/index.js +1 -1
  129. package/dist/cjs/TimeInput/index.js.map +2 -2
  130. package/dist/cjs/Toggle/DSToggle.js +33 -29
  131. package/dist/cjs/Toggle/DSToggle.js.map +2 -2
  132. package/dist/cjs/Toggle/DSToggleImpl.js +3 -3
  133. package/dist/cjs/Toggle/DSToggleImpl.js.map +1 -1
  134. package/dist/cjs/Toggle/index.js +1 -1
  135. package/dist/cjs/Toggle/index.js.map +1 -1
  136. package/dist/cjs/index.js +21 -21
  137. package/dist/cjs/index.js.map +2 -2
  138. package/dist/cjs/package.json +7 -0
  139. package/dist/esm/CheckboxGroup/DSCheckboxGroup.js +5 -5
  140. package/dist/esm/CheckboxGroup/DSCheckboxGroup.js.map +1 -1
  141. package/dist/esm/CheckboxGroup/index.js +1 -1
  142. package/dist/esm/CheckboxGroup/index.js.map +1 -1
  143. package/dist/esm/CheckboxGroup/props.js +2 -2
  144. package/dist/esm/CheckboxGroup/props.js.map +1 -1
  145. package/dist/esm/ComboBoxFreeSolo/ComboBoxFreeSolo.js +5 -5
  146. package/dist/esm/ComboBoxFreeSolo/ComboBoxFreeSolo.js.map +1 -1
  147. package/dist/esm/ComboBoxFreeSolo/components/SingleValue.js +2 -2
  148. package/dist/esm/ComboBoxFreeSolo/components/SingleValue.js.map +1 -1
  149. package/dist/esm/ComboBoxFreeSolo/index.js +1 -1
  150. package/dist/esm/ComboBoxFreeSolo/index.js.map +1 -1
  151. package/dist/esm/DateInput/DSDateInput.js +6 -5
  152. package/dist/esm/DateInput/DSDateInput.js.map +2 -2
  153. package/dist/esm/DateInput/components/DateInputImpl.js +1 -1
  154. package/dist/esm/DateInput/components/DateInputImpl.js.map +1 -1
  155. package/dist/esm/DateInput/components/DateInputs.js +1 -1
  156. package/dist/esm/DateInput/components/DateInputs.js.map +1 -1
  157. package/dist/esm/DateInput/index.js +1 -1
  158. package/dist/esm/DateInput/index.js.map +1 -1
  159. package/dist/esm/DateInput/props.js +1 -1
  160. package/dist/esm/DateInput/props.js.map +1 -1
  161. package/dist/esm/DateInputV2/components/DSDateInput.js +4 -4
  162. package/dist/esm/DateInputV2/components/DSDateInput.js.map +1 -1
  163. package/dist/esm/DateInputV2/components/DateInputs.js +6 -4
  164. package/dist/esm/DateInputV2/components/DateInputs.js.map +2 -2
  165. package/dist/esm/DateInputV2/components/helpers.js +1 -1
  166. package/dist/esm/DateInputV2/components/helpers.js.map +1 -1
  167. package/dist/esm/DateInputV2/components/props.js +1 -1
  168. package/dist/esm/DateInputV2/components/props.js.map +1 -1
  169. package/dist/esm/DateInputV2/index.js +2 -2
  170. package/dist/esm/DateInputV2/index.js.map +1 -1
  171. package/dist/esm/ExpandableInput/DSExpandableInput.js +1 -1
  172. package/dist/esm/ExpandableInput/DSExpandableInput.js.map +1 -1
  173. package/dist/esm/ExpandableInput/ExpandableInputImpl.js +1 -1
  174. package/dist/esm/ExpandableInput/ExpandableInputImpl.js.map +1 -1
  175. package/dist/esm/ExpandableInput/index.js +1 -1
  176. package/dist/esm/ExpandableInput/index.js.map +1 -1
  177. package/dist/esm/FloatingLabelInput/DSFloatingLabelInput.js +3 -3
  178. package/dist/esm/FloatingLabelInput/DSFloatingLabelInput.js.map +1 -1
  179. package/dist/esm/FloatingLabelInput/FloatingLabelInputImpl.js +2 -2
  180. package/dist/esm/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
  181. package/dist/esm/FloatingLabelInput/index.js +1 -1
  182. package/dist/esm/FloatingLabelInput/index.js.map +1 -1
  183. package/dist/esm/FormItem/DSFormItemLayout.js +10 -8
  184. package/dist/esm/FormItem/DSFormItemLayout.js.map +2 -2
  185. package/dist/esm/FormItem/Error/DSError.js +1 -1
  186. package/dist/esm/FormItem/Error/DSError.js.map +1 -1
  187. package/dist/esm/FormItem/Label/DSLabel.js +1 -1
  188. package/dist/esm/FormItem/Label/DSLabel.js.map +1 -1
  189. package/dist/esm/FormItem/defaultProps.js +4 -4
  190. package/dist/esm/FormItem/defaultProps.js.map +1 -1
  191. package/dist/esm/FormItem/index.js +2 -2
  192. package/dist/esm/FormItem/index.js.map +1 -1
  193. package/dist/esm/FormItem/props.js +2 -2
  194. package/dist/esm/FormItem/props.js.map +1 -1
  195. package/dist/esm/InputGroup/DSInputGroup.js +20 -16
  196. package/dist/esm/InputGroup/DSInputGroup.js.map +2 -2
  197. package/dist/esm/InputGroup/index.js +1 -1
  198. package/dist/esm/InputGroup/index.js.map +1 -1
  199. package/dist/esm/InputGroup/props.js +1 -1
  200. package/dist/esm/InputGroup/props.js.map +1 -1
  201. package/dist/esm/InputMask/DSInputMask.js +9 -7
  202. package/dist/esm/InputMask/DSInputMask.js.map +2 -2
  203. package/dist/esm/InputMask/DSInputMaskDeprecated.js +2 -2
  204. package/dist/esm/InputMask/DSInputMaskDeprecated.js.map +1 -1
  205. package/dist/esm/InputMask/InputMaskContext.js.map +1 -1
  206. package/dist/esm/InputMask/MaskPipes.js +1 -1
  207. package/dist/esm/InputMask/MaskPipes.js.map +1 -1
  208. package/dist/esm/InputMask/defaultProps.js +1 -1
  209. package/dist/esm/InputMask/defaultProps.js.map +1 -1
  210. package/dist/esm/InputMask/index.js +1 -1
  211. package/dist/esm/InputMask/index.js.map +1 -1
  212. package/dist/esm/InputMask/mask_types/DateInputMask.js +2 -2
  213. package/dist/esm/InputMask/mask_types/DateInputMask.js.map +1 -1
  214. package/dist/esm/InputMask/mask_types/DateTimeInputMask.js +2 -2
  215. package/dist/esm/InputMask/mask_types/DateTimeInputMask.js.map +1 -1
  216. package/dist/esm/InputMask/mask_types/DictionaryInputMask.js +2 -2
  217. package/dist/esm/InputMask/mask_types/DictionaryInputMask.js.map +1 -1
  218. package/dist/esm/InputMask/mask_types/NumberInputMask.js +2 -2
  219. package/dist/esm/InputMask/mask_types/NumberInputMask.js.map +1 -1
  220. package/dist/esm/InputMask/mask_types/PhoneInputMask.js +2 -2
  221. package/dist/esm/InputMask/mask_types/PhoneInputMask.js.map +2 -2
  222. package/dist/esm/InputMask/mask_types/PhoneInternationalInputMask.js +2 -2
  223. package/dist/esm/InputMask/mask_types/PhoneInternationalInputMask.js.map +1 -1
  224. package/dist/esm/InputMask/mask_types/SsnInputMask.js +2 -2
  225. package/dist/esm/InputMask/mask_types/SsnInputMask.js.map +1 -1
  226. package/dist/esm/InputMask/mask_types/UsZipCodeInputMask.js +2 -2
  227. package/dist/esm/InputMask/mask_types/UsZipCodeInputMask.js.map +1 -1
  228. package/dist/esm/InputMask/mask_types/ZipCodeSearchInputMask.js +2 -2
  229. package/dist/esm/InputMask/mask_types/ZipCodeSearchInputMask.js.map +1 -1
  230. package/dist/esm/InputMask/mask_types/index.js +9 -9
  231. package/dist/esm/InputMask/mask_types/index.js.map +1 -1
  232. package/dist/esm/InputMask/props.js +1 -1
  233. package/dist/esm/InputMask/props.js.map +1 -1
  234. package/dist/esm/InputProtected/DSInputProtected.js +8 -6
  235. package/dist/esm/InputProtected/DSInputProtected.js.map +2 -2
  236. package/dist/esm/InputProtected/defaultProps.js +1 -1
  237. package/dist/esm/InputProtected/defaultProps.js.map +1 -1
  238. package/dist/esm/InputProtected/index.js +2 -2
  239. package/dist/esm/InputProtected/index.js.map +1 -1
  240. package/dist/esm/InputProtected/props.js +2 -2
  241. package/dist/esm/InputProtected/props.js.map +1 -1
  242. package/dist/esm/LargeInputText/DSLargeInputText.js +5 -3
  243. package/dist/esm/LargeInputText/DSLargeInputText.js.map +2 -2
  244. package/dist/esm/LargeInputText/index.js +1 -1
  245. package/dist/esm/LargeInputText/index.js.map +1 -1
  246. package/dist/esm/LargeInputText/props.js +1 -1
  247. package/dist/esm/LargeInputText/props.js.map +1 -1
  248. package/dist/esm/Radio/DSRadio.js +4 -2
  249. package/dist/esm/Radio/DSRadio.js.map +2 -2
  250. package/dist/esm/Radio/index.js +1 -1
  251. package/dist/esm/Radio/index.js.map +1 -1
  252. package/dist/esm/RadioGroup/DSRadioGroup.js +5 -5
  253. package/dist/esm/RadioGroup/DSRadioGroup.js.map +1 -1
  254. package/dist/esm/RadioGroup/index.js +1 -1
  255. package/dist/esm/RadioGroup/index.js.map +1 -1
  256. package/dist/esm/RadioGroup/props.js +1 -1
  257. package/dist/esm/RadioGroup/props.js.map +1 -1
  258. package/dist/esm/RequiredMark/index.js +1 -1
  259. package/dist/esm/RequiredMark/index.js.map +1 -1
  260. package/dist/esm/TimeInput/DSTimeInput.js +3 -3
  261. package/dist/esm/TimeInput/DSTimeInput.js.map +1 -1
  262. package/dist/esm/TimeInput/TimeInputImpl.js +1 -1
  263. package/dist/esm/TimeInput/TimeInputImpl.js.map +1 -1
  264. package/dist/esm/TimeInput/TimeInputs.js +1 -1
  265. package/dist/esm/TimeInput/TimeInputs.js.map +1 -1
  266. package/dist/esm/TimeInput/index.js +1 -1
  267. package/dist/esm/TimeInput/index.js.map +1 -1
  268. package/dist/esm/Toggle/DSToggle.js +22 -18
  269. package/dist/esm/Toggle/DSToggle.js.map +2 -2
  270. package/dist/esm/Toggle/DSToggleImpl.js +3 -3
  271. package/dist/esm/Toggle/DSToggleImpl.js.map +1 -1
  272. package/dist/esm/Toggle/index.js +1 -1
  273. package/dist/esm/Toggle/index.js.map +1 -1
  274. package/dist/esm/index.js +21 -21
  275. package/dist/esm/index.js.map +1 -1
  276. package/dist/esm/package.json +7 -0
  277. package/package.json +16 -15
  278. package/dist/types/Checkbox/index.d.ts +0 -1
  279. package/dist/types/CheckboxGroup/DSCheckboxGroup.d.ts +0 -46
  280. package/dist/types/CheckboxGroup/defaultProps.d.ts +0 -14
  281. package/dist/types/CheckboxGroup/index.d.ts +0 -1
  282. package/dist/types/CheckboxGroup/props.d.ts +0 -26
  283. package/dist/types/CheckboxGroup/tests/DSCheckboxGroup.events.test.d.ts +0 -1
  284. package/dist/types/ComboBox/index.d.ts +0 -1
  285. package/dist/types/ComboBoxFreeSolo/ComboBoxFreeSolo.d.ts +0 -78
  286. package/dist/types/ComboBoxFreeSolo/components/MultiValueLabel.d.ts +0 -5
  287. package/dist/types/ComboBoxFreeSolo/components/MultiValueRemove.d.ts +0 -5
  288. package/dist/types/ComboBoxFreeSolo/components/SingleValue.d.ts +0 -2
  289. package/dist/types/ComboBoxFreeSolo/components/SingleValueRemove.d.ts +0 -5
  290. package/dist/types/ComboBoxFreeSolo/index.d.ts +0 -1
  291. package/dist/types/DateInput/DSDateInput.d.ts +0 -62
  292. package/dist/types/DateInput/components/DateInputImpl.d.ts +0 -40
  293. package/dist/types/DateInput/components/DateInputs.d.ts +0 -40
  294. package/dist/types/DateInput/components/utils.d.ts +0 -40
  295. package/dist/types/DateInput/defaultProps.d.ts +0 -18
  296. package/dist/types/DateInput/index.d.ts +0 -1
  297. package/dist/types/DateInput/props.d.ts +0 -60
  298. package/dist/types/DateInput/tests/DSDateInput.events.test.d.ts +0 -1
  299. package/dist/types/DateInputV2/components/DSDateInput.d.ts +0 -54
  300. package/dist/types/DateInputV2/components/DateInputs.d.ts +0 -32
  301. package/dist/types/DateInputV2/components/helpers.d.ts +0 -1
  302. package/dist/types/DateInputV2/components/props.d.ts +0 -53
  303. package/dist/types/DateInputV2/components/propsTypes.d.ts +0 -21
  304. package/dist/types/DateInputV2/components/styled.d.ts +0 -5
  305. package/dist/types/DateInputV2/components/utils.d.ts +0 -42
  306. package/dist/types/DateInputV2/index.d.ts +0 -2
  307. package/dist/types/DateInputV2/tests/DateInput.test.d.ts +0 -1
  308. package/dist/types/ExpandableInput/DSExpandableInput.d.ts +0 -15
  309. package/dist/types/ExpandableInput/ExpandableInputImpl.d.ts +0 -7
  310. package/dist/types/ExpandableInput/index.d.ts +0 -1
  311. package/dist/types/FloatingLabelInput/DSFloatingLabelInput.d.ts +0 -47
  312. package/dist/types/FloatingLabelInput/FloatingLabelInputImpl.d.ts +0 -27
  313. package/dist/types/FloatingLabelInput/getSvgPath.d.ts +0 -10
  314. package/dist/types/FloatingLabelInput/index.d.ts +0 -1
  315. package/dist/types/FormItem/DSFormItemLayout.d.ts +0 -180
  316. package/dist/types/FormItem/Error/DSError.d.ts +0 -19
  317. package/dist/types/FormItem/Feedback.d.ts +0 -6
  318. package/dist/types/FormItem/Label/DSLabel.d.ts +0 -23
  319. package/dist/types/FormItem/Suffix/Suffix.d.ts +0 -4
  320. package/dist/types/FormItem/ValidationFieldWrapper.d.ts +0 -19
  321. package/dist/types/FormItem/defaultProps.d.ts +0 -51
  322. package/dist/types/FormItem/index.d.ts +0 -2
  323. package/dist/types/FormItem/props.d.ts +0 -80
  324. package/dist/types/FormItem/tests/DSFormItem.events.test.d.ts +0 -1
  325. package/dist/types/FormItem/variants.d.ts +0 -8
  326. package/dist/types/Input/DSInput.d.ts +0 -0
  327. package/dist/types/Input/InputAddonWrapper.d.ts +0 -0
  328. package/dist/types/Input/InputImpl.d.ts +0 -0
  329. package/dist/types/Input/index.d.ts +0 -1
  330. package/dist/types/Input/tests/Input.test.d.ts +0 -0
  331. package/dist/types/InputGroup/AddonWrapper.d.ts +0 -8
  332. package/dist/types/InputGroup/DSInputGroup.d.ts +0 -40
  333. package/dist/types/InputGroup/defaultProps.d.ts +0 -8
  334. package/dist/types/InputGroup/index.d.ts +0 -1
  335. package/dist/types/InputGroup/props.d.ts +0 -24
  336. package/dist/types/InputGroup/tests/DSInputGroup.events.test.d.ts +0 -1
  337. package/dist/types/InputMask/DSInputMask.d.ts +0 -85
  338. package/dist/types/InputMask/DSInputMaskDeprecated.d.ts +0 -18
  339. package/dist/types/InputMask/InputMaskContext.d.ts +0 -18
  340. package/dist/types/InputMask/MaskPipes.d.ts +0 -18
  341. package/dist/types/InputMask/MaskTypes.d.ts +0 -15
  342. package/dist/types/InputMask/addons/AutoCorrectedDatePipe.d.ts +0 -8
  343. package/dist/types/InputMask/defaultProps.d.ts +0 -28
  344. package/dist/types/InputMask/index.d.ts +0 -1
  345. package/dist/types/InputMask/mask_types/DateInputMask.d.ts +0 -36
  346. package/dist/types/InputMask/mask_types/DateTimeInputMask.d.ts +0 -36
  347. package/dist/types/InputMask/mask_types/DictionaryInputMask.d.ts +0 -39
  348. package/dist/types/InputMask/mask_types/NumberInputMask.d.ts +0 -48
  349. package/dist/types/InputMask/mask_types/PhoneInputMask.d.ts +0 -36
  350. package/dist/types/InputMask/mask_types/PhoneInternationalInputMask.d.ts +0 -36
  351. package/dist/types/InputMask/mask_types/SsnInputMask.d.ts +0 -36
  352. package/dist/types/InputMask/mask_types/UsZipCodeInputMask.d.ts +0 -36
  353. package/dist/types/InputMask/mask_types/ZipCodeSearchInputMask.d.ts +0 -36
  354. package/dist/types/InputMask/mask_types/index.d.ts +0 -41
  355. package/dist/types/InputMask/props.d.ts +0 -112
  356. package/dist/types/InputMask/tests/DSInputMask.test.d.ts +0 -1
  357. package/dist/types/InputMask/tests/NumberInputMask.test.d.ts +0 -1
  358. package/dist/types/InputMask/tests/events/DateInputMask.events.test.d.ts +0 -1
  359. package/dist/types/InputMask/tests/events/DateTimeInputMask.events.test.d.ts +0 -1
  360. package/dist/types/InputMask/tests/events/NumberInputMask.events.test.d.ts +0 -1
  361. package/dist/types/InputMask/tests/events/PercentInputMask.events.test.d.ts +0 -1
  362. package/dist/types/InputMask/tests/events/PhoneInputMask.events.test.d.ts +0 -1
  363. package/dist/types/InputMask/tests/events/PhoneInternationalInputMask.events.test.d.ts +0 -1
  364. package/dist/types/InputMask/tests/events/SsnInputMask.events.test.d.ts +0 -1
  365. package/dist/types/InputMask/tests/events/UsZipCodeInputMask.events.test.d.ts +0 -1
  366. package/dist/types/InputMask/tests/events/ZipCodeSearchInputMask.events.test.d.ts +0 -1
  367. package/dist/types/InputMask/types/index.d.ts +0 -5
  368. package/dist/types/InputMask/utils/setCaretPosition.d.ts +0 -3
  369. package/dist/types/InputProtected/DSInputProtected.d.ts +0 -41
  370. package/dist/types/InputProtected/defaultProps.d.ts +0 -4
  371. package/dist/types/InputProtected/index.d.ts +0 -2
  372. package/dist/types/InputProtected/options.d.ts +0 -8
  373. package/dist/types/InputProtected/props.d.ts +0 -14
  374. package/dist/types/InputProtected/tests/DSInputProtected.events.test.d.ts +0 -1
  375. package/dist/types/InputProtected/tests/DSInputProtected.test.d.ts +0 -1
  376. package/dist/types/LargeInputText/DSLargeInputText.d.ts +0 -127
  377. package/dist/types/LargeInputText/defaultProps.d.ts +0 -31
  378. package/dist/types/LargeInputText/index.d.ts +0 -1
  379. package/dist/types/LargeInputText/props.d.ts +0 -95
  380. package/dist/types/LargeInputText/tests/DSLargeInputText.events.test.d.ts +0 -1
  381. package/dist/types/LargeInputText/tests/DSLargeInputText.test.d.ts +0 -1
  382. package/dist/types/MenuItem/components/MenuItem/index.d.ts +0 -0
  383. package/dist/types/MenuItem/components/MenuItem/styled.d.ts +0 -0
  384. package/dist/types/MenuItem/components/MultiMenuItem/MultiMenuItem.d.ts +0 -0
  385. package/dist/types/MenuItem/components/MultiMenuItem/styled.d.ts +0 -0
  386. package/dist/types/MenuItem/components/Section/index.d.ts +0 -0
  387. package/dist/types/MenuItem/components/Section/props.d.ts +0 -0
  388. package/dist/types/MenuItem/components/Section/styled.d.ts +0 -0
  389. package/dist/types/MenuItem/components/Separator/index.d.ts +0 -0
  390. package/dist/types/MenuItem/components/Separator/styled.d.ts +0 -0
  391. package/dist/types/MenuItem/components/SingleMenuItem/SingleMenuItem.d.ts +0 -0
  392. package/dist/types/MenuItem/components/SubmenuItem/index.d.ts +0 -0
  393. package/dist/types/MenuItem/components/SubmenuItem/styled.d.ts +0 -0
  394. package/dist/types/MenuItem/components/index.d.ts +0 -0
  395. package/dist/types/MenuItem/components/styled.d.ts +0 -0
  396. package/dist/types/MenuItem/index.d.ts +0 -0
  397. package/dist/types/MenuItem/props.d.ts +0 -0
  398. package/dist/types/Radio/Circle.d.ts +0 -8
  399. package/dist/types/Radio/DSRadio.d.ts +0 -87
  400. package/dist/types/Radio/index.d.ts +0 -1
  401. package/dist/types/RadioGroup/DSRadioGroup.d.ts +0 -46
  402. package/dist/types/RadioGroup/defaultProps.d.ts +0 -12
  403. package/dist/types/RadioGroup/index.d.ts +0 -1
  404. package/dist/types/RadioGroup/props.d.ts +0 -25
  405. package/dist/types/RadioGroup/tests/DSRadioGroup.events.test.d.ts +0 -1
  406. package/dist/types/RequiredMark/RequiredMark.d.ts +0 -6
  407. package/dist/types/RequiredMark/index.d.ts +0 -1
  408. package/dist/types/SearchBox/index.d.ts +0 -1
  409. package/dist/types/TextBox/index.d.ts +0 -1
  410. package/dist/types/TimeInput/DSTimeInput.d.ts +0 -71
  411. package/dist/types/TimeInput/TimeInputImpl.d.ts +0 -55
  412. package/dist/types/TimeInput/TimeInputs.d.ts +0 -17
  413. package/dist/types/TimeInput/index.d.ts +0 -1
  414. package/dist/types/TimeInput/utils.d.ts +0 -39
  415. package/dist/types/Toggle/DSToggle.d.ts +0 -86
  416. package/dist/types/Toggle/DSToggleImpl.d.ts +0 -61
  417. package/dist/types/Toggle/DSToggleRender.d.ts +0 -32
  418. package/dist/types/Toggle/index.d.ts +0 -1
  419. package/dist/types/Toggle/props.d.ts +0 -47
  420. package/dist/types/Toggle/toggleHelper.d.ts +0 -24
  421. package/dist/types/index.d.ts +0 -21
@@ -1,9 +1,10 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { describe } from "@elliemae/ds-utilities";
4
- import { AddonWrapper } from "./AddonWrapper";
5
- import { props } from "./props";
6
- import { defaultProps } from "./defaultProps";
3
+ import { useDeprecateComponent } from "@elliemae/ds-utilities";
4
+ import { describe } from "@elliemae/ds-props-helpers";
5
+ import { AddonWrapper } from "./AddonWrapper.js";
6
+ import { props } from "./props.js";
7
+ import { defaultProps } from "./defaultProps.js";
7
8
  const DSInputGroup = ({
8
9
  containerProps,
9
10
  innerRef,
@@ -12,18 +13,21 @@ const DSInputGroup = ({
12
13
  leftAddon,
13
14
  rightAddon,
14
15
  children: InputComponents
15
- }) => /* @__PURE__ */ jsx(
16
- AddonWrapper,
17
- {
18
- ref: innerRef,
19
- className,
20
- containerProps,
21
- leftAddon,
22
- rightAddon,
23
- style,
24
- children: InputComponents
25
- }
26
- );
16
+ }) => {
17
+ useDeprecateComponent({ componentName: "ds-form/InputGroup", version: "3.x Date: 2023 Q1" });
18
+ return /* @__PURE__ */ jsx(
19
+ AddonWrapper,
20
+ {
21
+ ref: innerRef,
22
+ className,
23
+ containerProps,
24
+ leftAddon,
25
+ rightAddon,
26
+ style,
27
+ children: InputComponents
28
+ }
29
+ );
30
+ };
27
31
  DSInputGroup.propTypes = props;
28
32
  DSInputGroup.defaultProps = defaultProps;
29
33
  DSInputGroup.displayName = "DSInputGroup";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputGroup/DSInputGroup.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { describe } from '@elliemae/ds-utilities';\nimport { AddonWrapper } from './AddonWrapper';\nimport { props } from './props';\nimport { defaultProps } from './defaultProps';\n\nconst DSInputGroup = ({\n containerProps,\n innerRef,\n className,\n style,\n leftAddon,\n rightAddon,\n children: InputComponents, // as InputComponents,\n}) => (\n <AddonWrapper\n ref={innerRef}\n className={className}\n containerProps={containerProps}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n style={style}\n >\n {InputComponents}\n </AddonWrapper>\n);\n\nDSInputGroup.propTypes = props;\nDSInputGroup.defaultProps = defaultProps;\nDSInputGroup.displayName = 'DSInputGroup';\nconst DSInputGroupWithSchema = describe(DSInputGroup);\n\nDSInputGroupWithSchema.propTypes = props;\n\nexport default DSInputGroup;\nexport { DSInputGroupWithSchema, DSInputGroup };\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACerB;AAdF,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,oBAAoB;AAE7B,MAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,MACE;AAAA,EAAC;AAAA;AAAA,IACC,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEC;AAAA;AACH;AAGF,aAAa,YAAY;AACzB,aAAa,eAAe;AAC5B,aAAa,cAAc;AAC3B,MAAM,yBAAyB,SAAS,YAAY;AAEpD,uBAAuB,YAAY;AAEnC,IAAO,uBAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useDeprecateComponent } from '@elliemae/ds-utilities';\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { AddonWrapper } from './AddonWrapper.js';\nimport { props } from './props.js';\nimport { defaultProps } from './defaultProps.js';\n\nconst DSInputGroup = ({\n containerProps,\n innerRef,\n className,\n style,\n leftAddon,\n rightAddon,\n children: InputComponents, // as InputComponents,\n}) => {\n useDeprecateComponent({ componentName: 'ds-form/InputGroup', version: '3.x Date: 2023 Q1' });\n\n return (\n <AddonWrapper\n ref={innerRef}\n className={className}\n containerProps={containerProps}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n style={style}\n >\n {InputComponents}\n </AddonWrapper>\n );\n};\n\nDSInputGroup.propTypes = props;\nDSInputGroup.defaultProps = defaultProps;\nDSInputGroup.displayName = 'DSInputGroup';\nconst DSInputGroupWithSchema = describe(DSInputGroup);\n\nDSInputGroupWithSchema.propTypes = props;\n\nexport default DSInputGroup;\nexport { DSInputGroupWithSchema, DSInputGroup };\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACmBnB;AAlBJ,SAAS,6BAA6B;AACtC,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,oBAAoB;AAE7B,MAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,MAAM;AACJ,wBAAsB,EAAE,eAAe,sBAAsB,SAAS,oBAAoB,CAAC;AAE3F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,aAAa,YAAY;AACzB,aAAa,eAAe;AAC5B,aAAa,cAAc;AAC3B,MAAM,yBAAyB,SAAS,YAAY;AAEpD,uBAAuB,YAAY;AAEnC,IAAO,uBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { default as default2, DSInputGroupWithSchema, DSInputGroup } from "./DSInputGroup";
2
+ import { default as default2, DSInputGroupWithSchema, DSInputGroup } from "./DSInputGroup.js";
3
3
  export {
4
4
  DSInputGroup,
5
5
  DSInputGroupWithSchema,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputGroup/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default, DSInputGroupWithSchema, DSInputGroup } from './DSInputGroup';\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default, DSInputGroupWithSchema, DSInputGroup } from './DSInputGroup.js';\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAAA,UAAS,wBAAwB,oBAAoB;",
6
6
  "names": ["default"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { PropTypes } from "@elliemae/ds-utilities";
2
+ import { PropTypes } from "@elliemae/ds-props-helpers";
3
3
  const props = {
4
4
  containerProps: PropTypes.shape({}).description("props injected to wrapper of page header"),
5
5
  innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputGroup/props.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes } from '@elliemae/ds-utilities';\n\nexport const props = {\n /** props injected to wrapper of page header */\n containerProps: PropTypes.shape({}).description('props injected to wrapper of page header'),\n /** inner ref for input group wrapper */\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'inner ref for input group wrapper',\n ),\n /** class for input group wrapper */\n className: PropTypes.string.description('class for input group wrapper'),\n /**\n * Set style for the input group\n */\n style: PropTypes.object.description('Set style for the input group'),\n /**\n * Component to be added at the left side of the input\n */\n leftAddon: PropTypes.element.description('Component to be added at the left side of the input'),\n /**\n * Component to be added at the right side of the input\n */\n rightAddon: PropTypes.element.description('Component to be added at the right side of the input'),\n /**\n * Input components to show\n */\n children: PropTypes.element.description('Input components to show'),\n};\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes } from '@elliemae/ds-props-helpers';\n\nexport const props = {\n /** props injected to wrapper of page header */\n containerProps: PropTypes.shape({}).description('props injected to wrapper of page header'),\n /** inner ref for input group wrapper */\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'inner ref for input group wrapper',\n ),\n /** class for input group wrapper */\n className: PropTypes.string.description('class for input group wrapper'),\n /**\n * Set style for the input group\n */\n style: PropTypes.object.description('Set style for the input group'),\n /**\n * Component to be added at the left side of the input\n */\n leftAddon: PropTypes.element.description('Component to be added at the left side of the input'),\n /**\n * Component to be added at the right side of the input\n */\n rightAddon: PropTypes.element.description('Component to be added at the right side of the input'),\n /**\n * Input components to show\n */\n children: PropTypes.element.description('Input components to show'),\n};\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,iBAAiB;AAEnB,MAAM,QAAQ;AAAA,EAEnB,gBAAgB,UAAU,MAAM,CAAC,CAAC,EAAE,YAAY,0CAA0C;AAAA,EAE1F,UAAU,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,EAAE,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;AAAA,IAC3F;AAAA,EACF;AAAA,EAEA,WAAW,UAAU,OAAO,YAAY,+BAA+B;AAAA,EAIvE,OAAO,UAAU,OAAO,YAAY,+BAA+B;AAAA,EAInE,WAAW,UAAU,QAAQ,YAAY,qDAAqD;AAAA,EAI9F,YAAY,UAAU,QAAQ,YAAY,sDAAsD;AAAA,EAIhG,UAAU,UAAU,QAAQ,YAAY,0BAA0B;AACpE;",
6
6
  "names": []
7
7
  }
@@ -1,13 +1,14 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useEffect, useState } from "react";
4
- import { describe } from "@elliemae/ds-utilities";
5
- import { MASK_TYPES } from "./MaskTypes";
6
- import { MASK_PIPES } from "./MaskPipes";
7
- import { DSInputMaskDeprecated } from "./DSInputMaskDeprecated";
8
- import { inputProps } from "./props";
9
- import { defaultProps } from "./defaultProps";
10
- import { OutOfTheBoxMaskTypes } from "./mask_types";
4
+ import { useDeprecateComponent } from "@elliemae/ds-utilities";
5
+ import { describe } from "@elliemae/ds-props-helpers";
6
+ import { MASK_TYPES } from "./MaskTypes.js";
7
+ import { MASK_PIPES } from "./MaskPipes.js";
8
+ import { DSInputMaskDeprecated } from "./DSInputMaskDeprecated.js";
9
+ import { inputProps } from "./props.js";
10
+ import { defaultProps } from "./defaultProps.js";
11
+ import { OutOfTheBoxMaskTypes } from "./mask_types/index.js";
11
12
  const isStringMask = (mask) => typeof mask === "string";
12
13
  const isObjectMask = (mask) => typeof mask === "object" && mask.type;
13
14
  const getRawMask = (mask, rawValue) => typeof mask === "function" ? mask(rawValue) : mask;
@@ -30,6 +31,7 @@ const DSInputMask = ({
30
31
  value: valueOrEvent,
31
32
  ...rest
32
33
  }) => {
34
+ useDeprecateComponent({ componentName: "ds-form/InputMask", version: "3.x Date: 2023 Q1" });
33
35
  const [rawValue, setRawValue] = useState(getValueFromEventOrString(valueOrEvent));
34
36
  useEffect(() => {
35
37
  setRawValue(getValueFromEventOrString(valueOrEvent));
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputMask/DSInputMask.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { describe } from '@elliemae/ds-utilities';\nimport { MASK_TYPES } from './MaskTypes';\nimport { MASK_PIPES } from './MaskPipes';\nimport { DSInputMaskDeprecated } from './DSInputMaskDeprecated';\nimport { inputProps } from './props';\nimport { defaultProps } from './defaultProps';\nimport { OutOfTheBoxMaskTypes } from './mask_types';\n\nconst isStringMask = (mask: any) => typeof mask === 'string';\n\nconst isObjectMask = (mask: any) => typeof mask === 'object' && mask.type;\n\nconst getRawMask = (mask: any, rawValue: string) => (typeof mask === 'function' ? mask(rawValue) : mask);\n\nconst getValueFromEventOrString = (e: any): string => {\n let value = e;\n if (e && e.target) {\n const {\n target: { value: eValue },\n } = e;\n value = eValue;\n }\n return value;\n};\n\nconst DSInputMask = ({\n 'aria-label': ariaLabel = 'Input Mask',\n autoFocus,\n innerRef,\n mask,\n pipe,\n value: valueOrEvent,\n ...rest\n}) => {\n const [rawValue, setRawValue] = useState(getValueFromEventOrString(valueOrEvent));\n\n useEffect(() => {\n setRawValue(getValueFromEventOrString(valueOrEvent));\n }, [valueOrEvent]);\n\n const [rawMask, setRawMask] = useState<any>(getRawMask(mask, rawValue));\n\n const [focus, setFocus] = useState(autoFocus);\n\n const [lastkey, setLastkey] = useState<{ code: number; key: string }>({\n code: null,\n key: null,\n });\n\n const [cursorPosition, setCursorPosition] = useState({ current: 0 });\n\n const handleSetMask = useCallback(\n (newValue) => {\n setRawMask(getRawMask(mask, newValue));\n },\n [mask],\n );\n\n if (!pipe && isStringMask(rawMask)) {\n return OutOfTheBoxMaskTypes[rawMask]({\n ...rest,\n 'aria-label': ariaLabel,\n innerRef,\n value: rawValue,\n focus,\n setFocus,\n setRawMask: handleSetMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n });\n }\n\n if (!pipe && isObjectMask(rawMask)) {\n // we should change rawMask.type to rawMask.maskType\n // to avoid override standard props\n return OutOfTheBoxMaskTypes[rawMask.type]({\n ...rawMask,\n ...rest,\n 'aria-label': ariaLabel,\n innerRef,\n value: rawValue,\n focus,\n setFocus,\n setRawMask: handleSetMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n });\n }\n\n const getDeprecatedMask = () => {\n if (mask === MASK_TYPES.DATE) return MASK_TYPES.DATE_DEPRECATED;\n if (mask === MASK_TYPES.DATE_TIME) return MASK_TYPES.DATE_TIME_DEPRECATED;\n return mask;\n };\n return (\n <DSInputMaskDeprecated\n {...rest}\n aria-label={ariaLabel}\n autoFocus={autoFocus}\n innerRef={innerRef}\n mask={getDeprecatedMask()}\n pipe={pipe}\n value={rawValue}\n />\n );\n};\n\nDSInputMask.propTypes = inputProps;\nDSInputMask.defaultProps = defaultProps;\nDSInputMask.displayName = 'DSInputMask';\nconst DSInputMaskWithSchema = describe(DSInputMask).description('Masking input for custom formats');\nDSInputMaskWithSchema.propTypes = inputProps;\n\nexport { MASK_TYPES, MASK_PIPES, DSInputMaskWithSchema, DSInputMask };\nexport default DSInputMask;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACuGnB;AAtGJ,SAAgB,aAAa,WAAW,gBAAgB;AACxD,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,6BAA6B;AACtC,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AAErC,MAAM,eAAe,CAAC,SAAc,OAAO,SAAS;AAEpD,MAAM,eAAe,CAAC,SAAc,OAAO,SAAS,YAAY,KAAK;AAErE,MAAM,aAAa,CAAC,MAAW,aAAsB,OAAO,SAAS,aAAa,KAAK,QAAQ,IAAI;AAEnG,MAAM,4BAA4B,CAAC,MAAmB;AACpD,MAAI,QAAQ;AACZ,MAAI,KAAK,EAAE,QAAQ;AACjB,UAAM;AAAA,MACJ,QAAQ,EAAE,OAAO,OAAO;AAAA,IAC1B,IAAI;AACJ,YAAQ;AAAA,EACV;AACA,SAAO;AACT;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB,cAAc,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,KACJ;AACL,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,0BAA0B,YAAY,CAAC;AAEhF,YAAU,MAAM;AACd,gBAAY,0BAA0B,YAAY,CAAC;AAAA,EACrD,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAc,WAAW,MAAM,QAAQ,CAAC;AAEtE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,SAAS;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAwC;AAAA,IACpE,MAAM;AAAA,IACN,KAAK;AAAA,EACP,CAAC;AAED,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC;AAEnE,QAAM,gBAAgB;AAAA,IACpB,CAAC,aAAa;AACZ,iBAAW,WAAW,MAAM,QAAQ,CAAC;AAAA,IACvC;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AAEA,MAAI,CAAC,QAAQ,aAAa,OAAO,GAAG;AAClC,WAAO,qBAAqB,SAAS;AAAA,MACnC,GAAG;AAAA,MACH,cAAc;AAAA,MACd;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,QAAQ,aAAa,OAAO,GAAG;AAGlC,WAAO,qBAAqB,QAAQ,MAAM;AAAA,MACxC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,cAAc;AAAA,MACd;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,oBAAoB,MAAM;AAC9B,QAAI,SAAS,WAAW;AAAM,aAAO,WAAW;AAChD,QAAI,SAAS,WAAW;AAAW,aAAO,WAAW;AACrD,WAAO;AAAA,EACT;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,cAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,MAAM,kBAAkB;AAAA,MACxB;AAAA,MACA,OAAO;AAAA;AAAA,EACT;AAEJ;AAEA,YAAY,YAAY;AACxB,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,MAAM,wBAAwB,SAAS,WAAW,EAAE,YAAY,kCAAkC;AAClG,sBAAsB,YAAY;AAGlC,IAAO,sBAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useDeprecateComponent } from '@elliemae/ds-utilities';\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { MASK_TYPES } from './MaskTypes.js';\nimport { MASK_PIPES } from './MaskPipes.js';\nimport { DSInputMaskDeprecated } from './DSInputMaskDeprecated.js';\nimport { inputProps } from './props.js';\nimport { defaultProps } from './defaultProps.js';\nimport { OutOfTheBoxMaskTypes } from './mask_types/index.js';\n\nconst isStringMask = (mask: any) => typeof mask === 'string';\n\nconst isObjectMask = (mask: any) => typeof mask === 'object' && mask.type;\n\nconst getRawMask = (mask: any, rawValue: string) => (typeof mask === 'function' ? mask(rawValue) : mask);\n\nconst getValueFromEventOrString = (e: any): string => {\n let value = e;\n if (e && e.target) {\n const {\n target: { value: eValue },\n } = e;\n value = eValue;\n }\n return value;\n};\n\nconst DSInputMask = ({\n 'aria-label': ariaLabel = 'Input Mask',\n autoFocus,\n innerRef,\n mask,\n pipe,\n value: valueOrEvent,\n ...rest\n}) => {\n useDeprecateComponent({ componentName: 'ds-form/InputMask', version: '3.x Date: 2023 Q1' });\n\n const [rawValue, setRawValue] = useState(getValueFromEventOrString(valueOrEvent));\n\n useEffect(() => {\n setRawValue(getValueFromEventOrString(valueOrEvent));\n }, [valueOrEvent]);\n\n const [rawMask, setRawMask] = useState<any>(getRawMask(mask, rawValue));\n\n const [focus, setFocus] = useState(autoFocus);\n\n const [lastkey, setLastkey] = useState<{ code: number; key: string }>({\n code: null,\n key: null,\n });\n\n const [cursorPosition, setCursorPosition] = useState({ current: 0 });\n\n const handleSetMask = useCallback(\n (newValue) => {\n setRawMask(getRawMask(mask, newValue));\n },\n [mask],\n );\n\n if (!pipe && isStringMask(rawMask)) {\n return OutOfTheBoxMaskTypes[rawMask]({\n ...rest,\n 'aria-label': ariaLabel,\n innerRef,\n value: rawValue,\n focus,\n setFocus,\n setRawMask: handleSetMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n });\n }\n\n if (!pipe && isObjectMask(rawMask)) {\n // we should change rawMask.type to rawMask.maskType\n // to avoid override standard props\n return OutOfTheBoxMaskTypes[rawMask.type]({\n ...rawMask,\n ...rest,\n 'aria-label': ariaLabel,\n innerRef,\n value: rawValue,\n focus,\n setFocus,\n setRawMask: handleSetMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n });\n }\n\n const getDeprecatedMask = () => {\n if (mask === MASK_TYPES.DATE) return MASK_TYPES.DATE_DEPRECATED;\n if (mask === MASK_TYPES.DATE_TIME) return MASK_TYPES.DATE_TIME_DEPRECATED;\n return mask;\n };\n return (\n <DSInputMaskDeprecated\n {...rest}\n aria-label={ariaLabel}\n autoFocus={autoFocus}\n innerRef={innerRef}\n mask={getDeprecatedMask()}\n pipe={pipe}\n value={rawValue}\n />\n );\n};\n\nDSInputMask.propTypes = inputProps;\nDSInputMask.defaultProps = defaultProps;\nDSInputMask.displayName = 'DSInputMask';\nconst DSInputMaskWithSchema = describe(DSInputMask).description('Masking input for custom formats');\nDSInputMaskWithSchema.propTypes = inputProps;\n\nexport { MASK_TYPES, MASK_PIPES, DSInputMaskWithSchema, DSInputMask };\nexport default DSInputMask;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC0GnB;AAzGJ,SAAgB,aAAa,WAAW,gBAAgB;AACxD,SAAS,6BAA6B;AACtC,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,6BAA6B;AACtC,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AAErC,MAAM,eAAe,CAAC,SAAc,OAAO,SAAS;AAEpD,MAAM,eAAe,CAAC,SAAc,OAAO,SAAS,YAAY,KAAK;AAErE,MAAM,aAAa,CAAC,MAAW,aAAsB,OAAO,SAAS,aAAa,KAAK,QAAQ,IAAI;AAEnG,MAAM,4BAA4B,CAAC,MAAmB;AACpD,MAAI,QAAQ;AACZ,MAAI,KAAK,EAAE,QAAQ;AACjB,UAAM;AAAA,MACJ,QAAQ,EAAE,OAAO,OAAO;AAAA,IAC1B,IAAI;AACJ,YAAQ;AAAA,EACV;AACA,SAAO;AACT;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB,cAAc,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,KACJ;AACL,MAAM;AACJ,wBAAsB,EAAE,eAAe,qBAAqB,SAAS,oBAAoB,CAAC;AAE1F,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,0BAA0B,YAAY,CAAC;AAEhF,YAAU,MAAM;AACd,gBAAY,0BAA0B,YAAY,CAAC;AAAA,EACrD,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAc,WAAW,MAAM,QAAQ,CAAC;AAEtE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,SAAS;AAE5C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAwC;AAAA,IACpE,MAAM;AAAA,IACN,KAAK;AAAA,EACP,CAAC;AAED,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC;AAEnE,QAAM,gBAAgB;AAAA,IACpB,CAAC,aAAa;AACZ,iBAAW,WAAW,MAAM,QAAQ,CAAC;AAAA,IACvC;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AAEA,MAAI,CAAC,QAAQ,aAAa,OAAO,GAAG;AAClC,WAAO,qBAAqB,SAAS;AAAA,MACnC,GAAG;AAAA,MACH,cAAc;AAAA,MACd;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,QAAQ,aAAa,OAAO,GAAG;AAGlC,WAAO,qBAAqB,QAAQ,MAAM;AAAA,MACxC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,cAAc;AAAA,MACd;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,oBAAoB,MAAM;AAC9B,QAAI,SAAS,WAAW;AAAM,aAAO,WAAW;AAChD,QAAI,SAAS,WAAW;AAAW,aAAO,WAAW;AACrD,WAAO;AAAA,EACT;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,cAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,MAAM,kBAAkB;AAAA,MACxB;AAAA,MACA,OAAO;AAAA;AAAA,EACT;AAEJ;AAEA,YAAY,YAAY;AACxB,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,MAAM,wBAAwB,SAAS,WAAW,EAAE,YAAY,kCAAkC;AAClG,sBAAsB,YAAY;AAGlC,IAAO,sBAAQ;",
6
6
  "names": []
7
7
  }
@@ -4,8 +4,8 @@ import React2, { Component } from "react";
4
4
  import { isEqual } from "lodash";
5
5
  import PropTypes from "prop-types";
6
6
  import { adjustCaretPosition, conformToMask } from "text-mask-core";
7
- import { setCaretPosition } from "./utils/setCaretPosition";
8
- import { DSTextBox } from "../TextBox";
7
+ import { setCaretPosition } from "./utils/setCaretPosition.js";
8
+ import { DSTextBox } from "../TextBox/index.js";
9
9
  const getValueFromEventOrString = (e) => {
10
10
  let value = e;
11
11
  if (e && e.target) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputMask/DSInputMaskDeprecated.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable react/prop-types */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { isEqual } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { adjustCaretPosition, conformToMask } from 'text-mask-core';\nimport { setCaretPosition } from './utils/setCaretPosition';\nimport { DSTextBox } from '../TextBox';\n\nconst getValueFromEventOrString = (e) => {\n let value = e;\n if (e && e.target) {\n const {\n target: { value: eValue },\n } = e;\n value = eValue;\n }\n return value;\n};\n\nconst getRawMask = (mask, rawValue = '') => (typeof mask === 'function' ? mask(rawValue) : mask);\n\n// this is not safe because we don't take in consideration a lot of cases\n// just a monkeypatch untill we get the v2 going,\n// this work with \"internal\" masks...\nconst UNSAFEGetRawValue = (value, mask) => {\n const safeValue = getValueFromEventOrString(value);\n if (!safeValue) return '';\n const rawMask = getRawMask(mask, value);\n const characterToStrip = rawMask.filter((char) => typeof char === 'string');\n\n return safeValue\n ?.split('')\n ?.filter((char) => {\n const indexCharToStrip = characterToStrip.findIndex((strip) => strip === char);\n if (indexCharToStrip >= 0) {\n characterToStrip.splice(indexCharToStrip, 1);\n return false;\n }\n return true;\n })\n ?.join('');\n};\n\n// this is not safe because we don't take in consideration a lot of cases\n// just a monkeypatch untill we get the v2 going,\n// this work with \"internal\" masks...\nconst UNSAFEIsRawValue = (value, mask) => {\n const safeValue = getValueFromEventOrString(value);\n if (!safeValue) return false;\n const rawMask = getRawMask(mask, safeValue);\n const characterToStrip = rawMask.filter((char) => typeof char === 'string');\n if (safeValue)\n safeValue?.split('')?.forEach((char) => {\n const indexCharToStrip = characterToStrip.findIndex((strip) => strip === char);\n if (indexCharToStrip >= 0) {\n characterToStrip.splice(indexCharToStrip, 1);\n }\n });\n // if we matched all the character to strip, this is not a raw value\n // unsafe, but \"good enough\" for most masks...\n return characterToStrip.length !== 0;\n};\n\nclass DSInputMaskDeprecated extends Component {\n lastkey = null;\n\n lastkeycode = null;\n\n constructor(props) {\n super(props);\n this.inputref = React.createRef();\n\n this.state = {\n maskedValue: '',\n previousConformedValue: '',\n };\n this.conformValue = this.conformValue.bind(this);\n }\n\n conformValue = (\n rawValueOrEvent,\n currentCaretPosition,\n { skipCaretPositioning = false, skipOnChangeCallback = false } = {},\n ) => {\n const { previousConformedValue } = this.state;\n const { onChange, mask, placeholderChar = '_', pipe } = this.props;\n const rawValue = getValueFromEventOrString(rawValueOrEvent);\n\n // short-circuit logic if user cleared the input\n if (rawValue.length === 0) {\n this.setState(\n {\n maskedValue: rawValue,\n previousConformedValue: rawValue,\n focus: true,\n },\n () => {\n const event = {\n target: {\n value: rawValue,\n originalValue: rawValue,\n },\n lastkey: this.lastkey,\n };\n onChange(event);\n },\n );\n return;\n }\n const rawMaskWithTraps = getRawMask(mask, rawValue);\n const rawMask = rawMaskWithTraps.filter((val) => val !== '[]');\n\n // generate the final result we want to put in the state and in the input box\n const conformToMaskResults = conformToMask(rawValue, rawMask, {\n guide: false,\n placeholderChar,\n ...(previousConformedValue && { previousConformedValue }),\n });\n\n const { conformedValue: pipelessConformed } = conformToMaskResults;\n // when the last character must be always preserved we need to manually ensure it\n // because\n // conformToMask -> guide: false will interpeter the last character\n // will remove the last character if it's part of the mask\n // we may want to add a prop for this in the future?\n // this is used for example with \"decimal\" and \"percentage\" masks\n let conformedValueEnsureLastMaskChar = pipelessConformed;\n const lastMaskChar = rawMask[rawMask.length - 1];\n const lastValueChar = pipelessConformed.charAt(pipelessConformed.length - 1);\n if (typeof lastMaskChar === 'string' && lastMaskChar !== lastValueChar) {\n conformedValueEnsureLastMaskChar = pipelessConformed + lastMaskChar;\n }\n\n let pipeResult = {\n indexesOfPipedChars: [],\n value: conformedValueEnsureLastMaskChar,\n valid: true,\n };\n if (typeof pipe === 'function') pipeResult = pipe()(conformedValueEnsureLastMaskChar);\n\n // if the pipe results in an invalid value, we don't allow the change\n // meaning the final result will be like the user never tried to change the input\n // this is because the user will have to inject the validation in his pipe\n // probably pipe is never used, because this never worked before...\n // we will deprecate the \"pipe\" props in the future\n const conformedValue = pipeResult.valid ? pipeResult.value : previousConformedValue;\n\n // generate the \"placeholder\" used in calculating new caret position\n // this means we need\n // empty string as a value\n // guide:true\n // we can ignore \"previousConformedValue\" parameter\n const generatedPlaceHolder = conformToMask('', rawMask, {\n guide: true,\n placeholderChar,\n });\n const { indexesOfPipedChars } = pipeResult;\n const adjustCaretPositionOpts = {\n previousConformedValue,\n conformedValue,\n currentCaretPosition,\n rawValue,\n placeholderChar,\n placeholder: generatedPlaceHolder.conformedValue,\n indexesOfPipedChars,\n caretTrapIndexes: [],\n };\n const caretPos = adjustCaretPosition(adjustCaretPositionOpts);\n\n this.setState(\n {\n maskedValue: conformedValue,\n previousConformedValue: conformedValue,\n focus: true,\n },\n () => {\n const event = {\n target: {\n value: conformedValue,\n originalValue: rawValue,\n },\n lastkey: this.lastkey,\n };\n if (!skipOnChangeCallback) onChange(event);\n if (!skipCaretPositioning) setTimeout(() => setCaretPosition(this.inputref, caretPos));\n },\n );\n };\n\n // eslint-disable-next-line max-statements\n handleOnChange = (e) => {\n const rawValue = e?.target?.value || '';\n const { selectionEnd } = e.target;\n const currentCaretPosition = selectionEnd;\n this.conformValue(rawValue, currentCaretPosition);\n };\n\n handleKeyDown = (e) => {\n e.stopPropagation();\n const { onKeyDown } = this.props;\n this.lastkey = e.key;\n this.lastkeycode = e.keyCode;\n onKeyDown(e);\n };\n\n handleBlur = (e) => {\n const { onBlur } = this.props;\n this.setState({ focus: false });\n onBlur(e);\n };\n\n componentDidMount() {\n const { value, mask } = this.props;\n const isAlreadyRaw = UNSAFEIsRawValue(value, mask);\n const rawVal = isAlreadyRaw ? value : UNSAFEGetRawValue(value, mask);\n if (rawVal === '') return;\n // if value from props is raw, we invoke onChange\n // not invoking onChange on a raw value breaks the internal components depending on this...\n const shouldSkipOnChange = !isAlreadyRaw;\n\n this.conformValue(rawVal, rawVal.length, {\n skipCaretPositioning: true,\n skipOnChangeCallback: shouldSkipOnChange,\n });\n }\n\n componentDidUpdate(prevProps) {\n // ensure the mask is re-applied when value/mask props changes.\n // this is required by internal implementations like DSDateRangePicker\n const { value: prevValOrEvent, mask: prevMask } = prevProps;\n const { value: valOrEvent, mask } = this.props;\n const value = getValueFromEventOrString(valOrEvent);\n const isAlreadyRaw = UNSAFEIsRawValue(value, mask);\n const rawVal = isAlreadyRaw ? value : UNSAFEGetRawValue(value, mask);\n if (rawVal === '') return;\n const rawMask = getRawMask(mask, rawVal);\n\n const prevVal = getValueFromEventOrString(prevValOrEvent);\n const prevIsAlreadyRaw = UNSAFEIsRawValue(prevVal, prevMask);\n const prevRawVal = prevIsAlreadyRaw ? prevVal : UNSAFEGetRawValue(prevVal, prevMask);\n const prevRawMask = getRawMask(prevMask, prevRawVal);\n\n // we need to compare \"raw\" masks, because mask sometimes are functions\n // and if we don't compare raw mask, isEqual will produce unexpected result\n // which would lead to infinite loops\n if (prevVal !== value || !isEqual(prevRawMask, rawMask)) {\n // if value from props is raw, we invoke onChange\n // not invoking onChange on a raw value breaks the internal components depending on this...\n const shouldSkipOnChange = !isAlreadyRaw;\n this.conformValue(rawVal, rawVal.length, {\n skipCaretPositioning: true,\n skipOnChangeCallback: shouldSkipOnChange,\n });\n }\n }\n\n render() {\n const {\n autoFocus,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n } = this.props;\n const { maskedValue, focus } = this.state;\n // if component is \"controlled\" we print the value from the props\n // if it's not controlled we use the internal state\n // handleOnChange has the logic to invoke the onChange with the mask applied\n // if the dev controls the component but pass down a value not conformed to the mask\n // it's a problem to be fixed on the dev side.\n // this means no \"get derived state from props\" mumbo-jumbos\n const propsValue = getValueFromEventOrString(value);\n const finalValue = typeof propsValue === 'string' || typeof propsValue === 'number' ? propsValue : maskedValue;\n\n return (\n <DSTextBox\n {...rest}\n aria-label={rest['aria-label']}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={this.handleBlur}\n onChange={this.handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={this.handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={finalValue}\n />\n );\n }\n}\n\nDSInputMaskDeprecated.propTypes = {\n autoFocus: PropTypes.bool,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n name: PropTypes.string,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n fluidWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n leftComponent: PropTypes.element,\n rightComponent: PropTypes.element,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onPaste: PropTypes.func,\n onKeyUp: PropTypes.func,\n hasError: PropTypes.bool,\n readOnly: PropTypes.bool,\n onClick: PropTypes.func,\n clearable: PropTypes.bool,\n type: PropTypes.string,\n /**\n * Ref for the component\n */\n innerRef: PropTypes.any,\n /**\n * Mask type\n */\n mask: PropTypes.any,\n placeholderChar: PropTypes.string,\n};\n\nexport { DSInputMaskDeprecated };\nexport default DSInputMaskDeprecated;\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable react/prop-types */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { isEqual } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { adjustCaretPosition, conformToMask } from 'text-mask-core';\nimport { setCaretPosition } from './utils/setCaretPosition.js';\nimport { DSTextBox } from '../TextBox/index.js';\n\nconst getValueFromEventOrString = (e) => {\n let value = e;\n if (e && e.target) {\n const {\n target: { value: eValue },\n } = e;\n value = eValue;\n }\n return value;\n};\n\nconst getRawMask = (mask, rawValue = '') => (typeof mask === 'function' ? mask(rawValue) : mask);\n\n// this is not safe because we don't take in consideration a lot of cases\n// just a monkeypatch untill we get the v2 going,\n// this work with \"internal\" masks...\nconst UNSAFEGetRawValue = (value, mask) => {\n const safeValue = getValueFromEventOrString(value);\n if (!safeValue) return '';\n const rawMask = getRawMask(mask, value);\n const characterToStrip = rawMask.filter((char) => typeof char === 'string');\n\n return safeValue\n ?.split('')\n ?.filter((char) => {\n const indexCharToStrip = characterToStrip.findIndex((strip) => strip === char);\n if (indexCharToStrip >= 0) {\n characterToStrip.splice(indexCharToStrip, 1);\n return false;\n }\n return true;\n })\n ?.join('');\n};\n\n// this is not safe because we don't take in consideration a lot of cases\n// just a monkeypatch untill we get the v2 going,\n// this work with \"internal\" masks...\nconst UNSAFEIsRawValue = (value, mask) => {\n const safeValue = getValueFromEventOrString(value);\n if (!safeValue) return false;\n const rawMask = getRawMask(mask, safeValue);\n const characterToStrip = rawMask.filter((char) => typeof char === 'string');\n if (safeValue)\n safeValue?.split('')?.forEach((char) => {\n const indexCharToStrip = characterToStrip.findIndex((strip) => strip === char);\n if (indexCharToStrip >= 0) {\n characterToStrip.splice(indexCharToStrip, 1);\n }\n });\n // if we matched all the character to strip, this is not a raw value\n // unsafe, but \"good enough\" for most masks...\n return characterToStrip.length !== 0;\n};\n\nclass DSInputMaskDeprecated extends Component {\n lastkey = null;\n\n lastkeycode = null;\n\n constructor(props) {\n super(props);\n this.inputref = React.createRef();\n\n this.state = {\n maskedValue: '',\n previousConformedValue: '',\n };\n this.conformValue = this.conformValue.bind(this);\n }\n\n conformValue = (\n rawValueOrEvent,\n currentCaretPosition,\n { skipCaretPositioning = false, skipOnChangeCallback = false } = {},\n ) => {\n const { previousConformedValue } = this.state;\n const { onChange, mask, placeholderChar = '_', pipe } = this.props;\n const rawValue = getValueFromEventOrString(rawValueOrEvent);\n\n // short-circuit logic if user cleared the input\n if (rawValue.length === 0) {\n this.setState(\n {\n maskedValue: rawValue,\n previousConformedValue: rawValue,\n focus: true,\n },\n () => {\n const event = {\n target: {\n value: rawValue,\n originalValue: rawValue,\n },\n lastkey: this.lastkey,\n };\n onChange(event);\n },\n );\n return;\n }\n const rawMaskWithTraps = getRawMask(mask, rawValue);\n const rawMask = rawMaskWithTraps.filter((val) => val !== '[]');\n\n // generate the final result we want to put in the state and in the input box\n const conformToMaskResults = conformToMask(rawValue, rawMask, {\n guide: false,\n placeholderChar,\n ...(previousConformedValue && { previousConformedValue }),\n });\n\n const { conformedValue: pipelessConformed } = conformToMaskResults;\n // when the last character must be always preserved we need to manually ensure it\n // because\n // conformToMask -> guide: false will interpeter the last character\n // will remove the last character if it's part of the mask\n // we may want to add a prop for this in the future?\n // this is used for example with \"decimal\" and \"percentage\" masks\n let conformedValueEnsureLastMaskChar = pipelessConformed;\n const lastMaskChar = rawMask[rawMask.length - 1];\n const lastValueChar = pipelessConformed.charAt(pipelessConformed.length - 1);\n if (typeof lastMaskChar === 'string' && lastMaskChar !== lastValueChar) {\n conformedValueEnsureLastMaskChar = pipelessConformed + lastMaskChar;\n }\n\n let pipeResult = {\n indexesOfPipedChars: [],\n value: conformedValueEnsureLastMaskChar,\n valid: true,\n };\n if (typeof pipe === 'function') pipeResult = pipe()(conformedValueEnsureLastMaskChar);\n\n // if the pipe results in an invalid value, we don't allow the change\n // meaning the final result will be like the user never tried to change the input\n // this is because the user will have to inject the validation in his pipe\n // probably pipe is never used, because this never worked before...\n // we will deprecate the \"pipe\" props in the future\n const conformedValue = pipeResult.valid ? pipeResult.value : previousConformedValue;\n\n // generate the \"placeholder\" used in calculating new caret position\n // this means we need\n // empty string as a value\n // guide:true\n // we can ignore \"previousConformedValue\" parameter\n const generatedPlaceHolder = conformToMask('', rawMask, {\n guide: true,\n placeholderChar,\n });\n const { indexesOfPipedChars } = pipeResult;\n const adjustCaretPositionOpts = {\n previousConformedValue,\n conformedValue,\n currentCaretPosition,\n rawValue,\n placeholderChar,\n placeholder: generatedPlaceHolder.conformedValue,\n indexesOfPipedChars,\n caretTrapIndexes: [],\n };\n const caretPos = adjustCaretPosition(adjustCaretPositionOpts);\n\n this.setState(\n {\n maskedValue: conformedValue,\n previousConformedValue: conformedValue,\n focus: true,\n },\n () => {\n const event = {\n target: {\n value: conformedValue,\n originalValue: rawValue,\n },\n lastkey: this.lastkey,\n };\n if (!skipOnChangeCallback) onChange(event);\n if (!skipCaretPositioning) setTimeout(() => setCaretPosition(this.inputref, caretPos));\n },\n );\n };\n\n // eslint-disable-next-line max-statements\n handleOnChange = (e) => {\n const rawValue = e?.target?.value || '';\n const { selectionEnd } = e.target;\n const currentCaretPosition = selectionEnd;\n this.conformValue(rawValue, currentCaretPosition);\n };\n\n handleKeyDown = (e) => {\n e.stopPropagation();\n const { onKeyDown } = this.props;\n this.lastkey = e.key;\n this.lastkeycode = e.keyCode;\n onKeyDown(e);\n };\n\n handleBlur = (e) => {\n const { onBlur } = this.props;\n this.setState({ focus: false });\n onBlur(e);\n };\n\n componentDidMount() {\n const { value, mask } = this.props;\n const isAlreadyRaw = UNSAFEIsRawValue(value, mask);\n const rawVal = isAlreadyRaw ? value : UNSAFEGetRawValue(value, mask);\n if (rawVal === '') return;\n // if value from props is raw, we invoke onChange\n // not invoking onChange on a raw value breaks the internal components depending on this...\n const shouldSkipOnChange = !isAlreadyRaw;\n\n this.conformValue(rawVal, rawVal.length, {\n skipCaretPositioning: true,\n skipOnChangeCallback: shouldSkipOnChange,\n });\n }\n\n componentDidUpdate(prevProps) {\n // ensure the mask is re-applied when value/mask props changes.\n // this is required by internal implementations like DSDateRangePicker\n const { value: prevValOrEvent, mask: prevMask } = prevProps;\n const { value: valOrEvent, mask } = this.props;\n const value = getValueFromEventOrString(valOrEvent);\n const isAlreadyRaw = UNSAFEIsRawValue(value, mask);\n const rawVal = isAlreadyRaw ? value : UNSAFEGetRawValue(value, mask);\n if (rawVal === '') return;\n const rawMask = getRawMask(mask, rawVal);\n\n const prevVal = getValueFromEventOrString(prevValOrEvent);\n const prevIsAlreadyRaw = UNSAFEIsRawValue(prevVal, prevMask);\n const prevRawVal = prevIsAlreadyRaw ? prevVal : UNSAFEGetRawValue(prevVal, prevMask);\n const prevRawMask = getRawMask(prevMask, prevRawVal);\n\n // we need to compare \"raw\" masks, because mask sometimes are functions\n // and if we don't compare raw mask, isEqual will produce unexpected result\n // which would lead to infinite loops\n if (prevVal !== value || !isEqual(prevRawMask, rawMask)) {\n // if value from props is raw, we invoke onChange\n // not invoking onChange on a raw value breaks the internal components depending on this...\n const shouldSkipOnChange = !isAlreadyRaw;\n this.conformValue(rawVal, rawVal.length, {\n skipCaretPositioning: true,\n skipOnChangeCallback: shouldSkipOnChange,\n });\n }\n }\n\n render() {\n const {\n autoFocus,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n } = this.props;\n const { maskedValue, focus } = this.state;\n // if component is \"controlled\" we print the value from the props\n // if it's not controlled we use the internal state\n // handleOnChange has the logic to invoke the onChange with the mask applied\n // if the dev controls the component but pass down a value not conformed to the mask\n // it's a problem to be fixed on the dev side.\n // this means no \"get derived state from props\" mumbo-jumbos\n const propsValue = getValueFromEventOrString(value);\n const finalValue = typeof propsValue === 'string' || typeof propsValue === 'number' ? propsValue : maskedValue;\n\n return (\n <DSTextBox\n {...rest}\n aria-label={rest['aria-label']}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={this.handleBlur}\n onChange={this.handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={this.handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={finalValue}\n />\n );\n }\n}\n\nDSInputMaskDeprecated.propTypes = {\n autoFocus: PropTypes.bool,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n name: PropTypes.string,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n fluidWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n leftComponent: PropTypes.element,\n rightComponent: PropTypes.element,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onPaste: PropTypes.func,\n onKeyUp: PropTypes.func,\n hasError: PropTypes.bool,\n readOnly: PropTypes.bool,\n onClick: PropTypes.func,\n clearable: PropTypes.bool,\n type: PropTypes.string,\n /**\n * Ref for the component\n */\n innerRef: PropTypes.any,\n /**\n * Mask type\n */\n mask: PropTypes.any,\n placeholderChar: PropTypes.string,\n};\n\nexport { DSInputMaskDeprecated };\nexport default DSInputMaskDeprecated;\n"],
5
5
  "mappings": "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",
6
6
  "names": ["React"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputMask/InputMaskContext.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport type { TLastkey } from './types';\n\nexport const InputMaskContext = React.createContext<{\n rawValue: string;\n setRawValue: React.Dispatch<string>;\n rawMask: any;\n setRawMask: React.Dispatch<any>;\n focus: boolean;\n setFocus: React.Dispatch<boolean>;\n lastkey: TLastkey;\n setLastkey: React.Dispatch<TLastkey>;\n cursorPosition: { current: number };\n setCursorPosition: React.Dispatch<{ current: number }>;\n}>({\n rawValue: '',\n setRawValue: () => null,\n rawMask: null,\n setRawMask: () => null,\n focus: false,\n setFocus: () => null,\n lastkey: { code: null, key: null },\n setLastkey: () => null,\n cursorPosition: { current: 0 },\n setCursorPosition: () => null,\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport type { TLastkey } from './types/index.js';\n\nexport const InputMaskContext = React.createContext<{\n rawValue: string;\n setRawValue: React.Dispatch<string>;\n rawMask: any;\n setRawMask: React.Dispatch<any>;\n focus: boolean;\n setFocus: React.Dispatch<boolean>;\n lastkey: TLastkey;\n setLastkey: React.Dispatch<TLastkey>;\n cursorPosition: { current: number };\n setCursorPosition: React.Dispatch<{ current: number }>;\n}>({\n rawValue: '',\n setRawValue: () => null,\n rawMask: null,\n setRawMask: () => null,\n focus: false,\n setFocus: () => null,\n lastkey: { code: null, key: null },\n setLastkey: () => null,\n cursorPosition: { current: 0 },\n setCursorPosition: () => null,\n});\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAGX,MAAM,mBAAmBA,OAAM,cAWnC;AAAA,EACD,UAAU;AAAA,EACV,aAAa,MAAM;AAAA,EACnB,SAAS;AAAA,EACT,YAAY,MAAM;AAAA,EAClB,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAChB,SAAS,EAAE,MAAM,MAAM,KAAK,KAAK;AAAA,EACjC,YAAY,MAAM;AAAA,EAClB,gBAAgB,EAAE,SAAS,EAAE;AAAA,EAC7B,mBAAmB,MAAM;AAC3B,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { autoCorrectedDatePipe } from "./addons/AutoCorrectedDatePipe";
2
+ import { autoCorrectedDatePipe } from "./addons/AutoCorrectedDatePipe.js";
3
3
  const MASK_PIPES = {
4
4
  AUTO_CORRECT_DATE: autoCorrectedDatePipe
5
5
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputMask/MaskPipes.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { autoCorrectedDatePipe } from './addons/AutoCorrectedDatePipe';\n\nexport const MASK_PIPES = {\n AUTO_CORRECT_DATE: autoCorrectedDatePipe,\n};\n\nexport const maskPipes = [MASK_PIPES.AUTO_CORRECT_DATE];\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { autoCorrectedDatePipe } from './addons/AutoCorrectedDatePipe.js';\n\nexport const MASK_PIPES = {\n AUTO_CORRECT_DATE: autoCorrectedDatePipe,\n};\n\nexport const maskPipes = [MASK_PIPES.AUTO_CORRECT_DATE];\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,6BAA6B;AAE/B,MAAM,aAAa;AAAA,EACxB,mBAAmB;AACrB;AAEO,MAAM,YAAY,CAAC,WAAW,iBAAiB;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { MASK_TYPES } from "./MaskTypes";
2
+ import { MASK_TYPES } from "./MaskTypes.js";
3
3
  const defaultProps = {
4
4
  autoFocus: false,
5
5
  style: {},
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputMask/defaultProps.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { MASK_TYPES } from './MaskTypes';\n\nexport const defaultProps = {\n autoFocus: false,\n style: {},\n disabled: false,\n className: '',\n name: '',\n maxLength: 255,\n minLength: 0,\n fluidWidth: false,\n onKeyDown: () => null,\n onClick: () => null,\n onChange: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onPaste: () => null,\n onKeyUp: () => null,\n value: '',\n hasError: false,\n readOnly: false,\n innerRef: null,\n type: 'text',\n clearable: false,\n leftComponent: null,\n rightComponent: null,\n mask: MASK_TYPES.DATE,\n pipe: null,\n useSubfix: '',\n};\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { MASK_TYPES } from './MaskTypes.js';\n\nexport const defaultProps = {\n autoFocus: false,\n style: {},\n disabled: false,\n className: '',\n name: '',\n maxLength: 255,\n minLength: 0,\n fluidWidth: false,\n onKeyDown: () => null,\n onClick: () => null,\n onChange: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onPaste: () => null,\n onKeyUp: () => null,\n value: '',\n hasError: false,\n readOnly: false,\n innerRef: null,\n type: 'text',\n clearable: false,\n leftComponent: null,\n rightComponent: null,\n mask: MASK_TYPES.DATE,\n pipe: null,\n useSubfix: '',\n};\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,kBAAkB;AAEpB,MAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,OAAO,CAAC;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW,MAAM;AAAA,EACjB,SAAS,MAAM;AAAA,EACf,UAAU,MAAM;AAAA,EAChB,SAAS,MAAM;AAAA,EACf,QAAQ,MAAM;AAAA,EACd,SAAS,MAAM;AAAA,EACf,SAAS,MAAM;AAAA,EACf,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,MAAM,WAAW;AAAA,EACjB,MAAM;AAAA,EACN,WAAW;AACb;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- export * from "./DSInputMask";
2
+ export * from "./DSInputMask.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InputMask/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './DSInputMask';\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './DSInputMask.js';\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
- import { DSTextBox } from "../../TextBox";
5
- import { setCaretPosition } from "../utils/setCaretPosition";
4
+ import { DSTextBox } from "../../TextBox/index.js";
5
+ import { setCaretPosition } from "../utils/setCaretPosition.js";
6
6
  const conformValue = (rawValue, cursorPos, lastkeycode) => {
7
7
  const nextMaskedValue = rawValue.split("").filter((char) => char >= "0" && char <= "9").slice(0, 8);
8
8
  let maskedPos = 0;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/InputMask/mask_types/DateInputMask.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport type { TCharsToAdd } from '../types';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue: string, cursorPos: number, lastkeycode: number) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 8);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode);\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DateInputMask };\nexport default DateInputMask;\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-props-helpers';\nimport { DSTextBox } from '../../TextBox/index.js';\nimport type { TCharsToAdd } from '../types/index.js';\nimport { setCaretPosition } from '../utils/setCaretPosition.js';\n\nconst conformValue = (rawValue: string, cursorPos: number, lastkeycode: number) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 8);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode);\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DateInputMask };\nexport default DateInputMask;\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
- import { DSTextBox } from "../../TextBox";
5
- import { setCaretPosition } from "../utils/setCaretPosition";
4
+ import { DSTextBox } from "../../TextBox/index.js";
5
+ import { setCaretPosition } from "../utils/setCaretPosition.js";
6
6
  const conformValue = (rawValue, cursorPos, lastkeycode) => {
7
7
  const nextMaskedValue = rawValue.split("").filter((char) => char >= "0" && char <= "9").slice(0, 12);
8
8
  while (nextMaskedValue.length > 8 && !nextMaskedValue[8].match(/[0-2]/))
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/InputMask/mask_types/DateTimeInputMask.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport type { TCharsToAdd } from '../types';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue: string, cursorPos: number, lastkeycode: number) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 12);\n\n while (nextMaskedValue.length > 8 && !nextMaskedValue[8].match(/[0-2]/)) nextMaskedValue.splice(8, 1);\n while (nextMaskedValue.length > 10 && !nextMaskedValue[10].match(/[0-5]/)) nextMaskedValue.splice(10, 1);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n [' ', 10],\n [':', 13],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateTimeInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode);\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DateTimeInputMask };\nexport default DateTimeInputMask;\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-props-helpers';\nimport { DSTextBox } from '../../TextBox/index.js';\nimport type { TCharsToAdd } from '../types/index.js';\nimport { setCaretPosition } from '../utils/setCaretPosition.js';\n\nconst conformValue = (rawValue: string, cursorPos: number, lastkeycode: number) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 12);\n\n while (nextMaskedValue.length > 8 && !nextMaskedValue[8].match(/[0-2]/)) nextMaskedValue.splice(8, 1);\n while (nextMaskedValue.length > 10 && !nextMaskedValue[10].match(/[0-5]/)) nextMaskedValue.splice(10, 1);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n [' ', 10],\n [':', 13],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateTimeInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode);\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DateTimeInputMask };\nexport default DateTimeInputMask;\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
- import { DSTextBox } from "../../TextBox";
5
- import { setCaretPosition } from "../utils/setCaretPosition";
4
+ import { DSTextBox } from "../../TextBox/index.js";
5
+ import { setCaretPosition } from "../utils/setCaretPosition.js";
6
6
  const startsWith = (a, b, ignoreCase) => {
7
7
  if (ignoreCase) {
8
8
  a = a.toLowerCase();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/InputMask/mask_types/DictionaryInputMask.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-loop-func */\n/* eslint-disable max-params */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst startsWith = (a: string, b: string, ignoreCase: boolean): boolean => {\n if (ignoreCase) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n return a.startsWith(b);\n};\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n allowedWords: string[],\n ignoreCase: boolean,\n) => {\n let nextMaskedValue = '';\n let currentPosibleWords = allowedWords;\n for (let i = 0; i < rawValue.length; i += 1) {\n const matchingWords = currentPosibleWords.filter((word) =>\n startsWith(word, nextMaskedValue + rawValue[i], ignoreCase),\n );\n if (matchingWords.length) {\n nextMaskedValue += rawValue[i];\n currentPosibleWords = matchingWords;\n }\n }\n\n return { nextMaskedValue, maskedPos: cursorPos };\n};\n\nconst DictionaryInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowedWords,\n ignoreCase = true,\n autoFocus,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode, allowedWords, ignoreCase);\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DictionaryInputMask };\nexport default DictionaryInputMask;\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-loop-func */\n/* eslint-disable max-params */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-props-helpers';\nimport { DSTextBox } from '../../TextBox/index.js';\nimport { setCaretPosition } from '../utils/setCaretPosition.js';\n\nconst startsWith = (a: string, b: string, ignoreCase: boolean): boolean => {\n if (ignoreCase) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n return a.startsWith(b);\n};\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n allowedWords: string[],\n ignoreCase: boolean,\n) => {\n let nextMaskedValue = '';\n let currentPosibleWords = allowedWords;\n for (let i = 0; i < rawValue.length; i += 1) {\n const matchingWords = currentPosibleWords.filter((word) =>\n startsWith(word, nextMaskedValue + rawValue[i], ignoreCase),\n );\n if (matchingWords.length) {\n nextMaskedValue += rawValue[i];\n currentPosibleWords = matchingWords;\n }\n }\n\n return { nextMaskedValue, maskedPos: cursorPos };\n};\n\nconst DictionaryInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowedWords,\n ignoreCase = true,\n autoFocus,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode, allowedWords, ignoreCase);\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DictionaryInputMask };\nexport default DictionaryInputMask;\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
- import { DSTextBox } from "../../TextBox";
5
- import { setCaretPosition } from "../utils/setCaretPosition";
4
+ import { DSTextBox } from "../../TextBox/index.js";
5
+ import { setCaretPosition } from "../utils/setCaretPosition.js";
6
6
  const addThousandsSeparator = (n, thousandsSeparatorSymbol) => n.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparatorSymbol);
7
7
  const conformValue = (prevRawValue, prevCursorPos, lastkeycode, {
8
8
  prefix,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/InputMask/mask_types/NumberInputMask.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-params */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\n// http://stackoverflow.com/a/10899795/604296\nconst addThousandsSeparator = (n, thousandsSeparatorSymbol) =>\n n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n\nconst conformValue = (\n prevRawValue,\n prevCursorPos,\n lastkeycode,\n {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n },\n) => {\n const prefixIndex = prevRawValue.indexOf(prefix);\n const suffixIndex = prevRawValue.lastIndexOf(suffix);\n const negativeIndex = prevRawValue.indexOf('-');\n\n const cursorPos = prevCursorPos - (prefixIndex === -1 ? 0 : prefixIndex + prefix.length);\n\n const rawValue = prevRawValue.substring(\n prefixIndex === -1 ? 0 : prefixIndex + prefix.length,\n suffixIndex === -1 ? prevRawValue.length : suffixIndex,\n );\n\n const filteredRawValue = rawValue\n .split('')\n .filter((char) => (char >= '0' && char <= '9') || char === decimalSymbol || char === '-');\n\n let isNegative = allowNegative && negativeIndex !== -1 && (prefixIndex === -1 || negativeIndex < prefixIndex);\n\n let integer = '';\n let decimal = '';\n let foundDecimalSymbol = false;\n\n const integerFits = () => integerLimit === null || integer.length < integerLimit;\n const decimalFits = () => decimalLimit === null || decimal.length < decimalLimit;\n\n filteredRawValue.forEach((char) => {\n if (allowDecimal && !foundDecimalSymbol && char === decimalSymbol) {\n foundDecimalSymbol = true;\n } else if (allowNegative && !integer.length && !foundDecimalSymbol && char === '-') {\n isNegative = true;\n } else if (char >= '0' && char <= '9') {\n if (!foundDecimalSymbol && integerFits()) {\n integer += char;\n } else if (foundDecimalSymbol && decimalFits()) {\n decimal += char;\n }\n }\n });\n\n if (requireDecimal) foundDecimalSymbol = true;\n if (!requireDecimal && !decimal?.length && lastkeycode === 8) {\n foundDecimalSymbol = false;\n }\n if (!integer && !decimal) foundDecimalSymbol = false;\n\n if (foundDecimalSymbol && !integer && decimal) {\n integer = '0';\n }\n\n if (!allowLeadingZeroes) {\n while (integer.length > 1 && integer[0] === '0') integer = integer.substring(1);\n }\n\n let nextMaskedValue = includeThousandsSeparator ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer;\n nextMaskedValue += foundDecimalSymbol ? decimalSymbol : '';\n\n if (shouldCompleteDecimals) while (decimal.length !== decimalLimit) decimal += '0';\n\n nextMaskedValue += decimal;\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) maskedPos += 1;\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n if (nextMaskedValue.length || isNegative) {\n nextMaskedValue = prefix + nextMaskedValue;\n maskedPos += prefix.length;\n\n if (isNegative) {\n if (lastkeycode !== 8 || nextMaskedValue !== prefix) nextMaskedValue = `-${nextMaskedValue}`;\n maskedPos += 1;\n }\n\n nextMaskedValue += suffix;\n }\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n if (nextMaskedValue[maskedPos] === decimalSymbol && integer.length === integerLimit) {\n maskedPos += 1;\n } else if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) {\n maskedPos += 1;\n }\n }\n\n return {\n nextMaskedValue,\n maskedPos: Math.min(maskedPos, nextMaskedValue.length - suffix.length),\n };\n};\n\nconst NumberInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowDecimal,\n allowLeadingZeroes,\n allowNegative,\n autoFocus,\n className,\n clearable = false,\n decimalLimit,\n decimalSymbol,\n disabled,\n fluidWidth,\n hasError,\n includeThousandsSeparator,\n innerRef,\n integerLimit,\n leftComponent,\n maxLength,\n minLength,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n onPaste,\n placeholder,\n prefix,\n readOnly,\n requireDecimal,\n rightComponent,\n style,\n suffix,\n thousandsSeparatorSymbol,\n type,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true, shouldCompleteDecimals = false }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode, {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n });\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n if (requireDecimal && maskedValue !== '') {\n conform({\n rawValue: maskedValue,\n cursorPos: 0,\n lastkey: 0,\n shouldUpdateCursorPos: 0,\n shouldCompleteDecimals: true,\n });\n }\n },\n [maskedValue, requireDecimal, suffix, decimalLimit, onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { NumberInputMask };\nexport default NumberInputMask;\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-params */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-props-helpers';\nimport { DSTextBox } from '../../TextBox/index.js';\nimport { setCaretPosition } from '../utils/setCaretPosition.js';\n\n// http://stackoverflow.com/a/10899795/604296\nconst addThousandsSeparator = (n, thousandsSeparatorSymbol) =>\n n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n\nconst conformValue = (\n prevRawValue,\n prevCursorPos,\n lastkeycode,\n {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n },\n) => {\n const prefixIndex = prevRawValue.indexOf(prefix);\n const suffixIndex = prevRawValue.lastIndexOf(suffix);\n const negativeIndex = prevRawValue.indexOf('-');\n\n const cursorPos = prevCursorPos - (prefixIndex === -1 ? 0 : prefixIndex + prefix.length);\n\n const rawValue = prevRawValue.substring(\n prefixIndex === -1 ? 0 : prefixIndex + prefix.length,\n suffixIndex === -1 ? prevRawValue.length : suffixIndex,\n );\n\n const filteredRawValue = rawValue\n .split('')\n .filter((char) => (char >= '0' && char <= '9') || char === decimalSymbol || char === '-');\n\n let isNegative = allowNegative && negativeIndex !== -1 && (prefixIndex === -1 || negativeIndex < prefixIndex);\n\n let integer = '';\n let decimal = '';\n let foundDecimalSymbol = false;\n\n const integerFits = () => integerLimit === null || integer.length < integerLimit;\n const decimalFits = () => decimalLimit === null || decimal.length < decimalLimit;\n\n filteredRawValue.forEach((char) => {\n if (allowDecimal && !foundDecimalSymbol && char === decimalSymbol) {\n foundDecimalSymbol = true;\n } else if (allowNegative && !integer.length && !foundDecimalSymbol && char === '-') {\n isNegative = true;\n } else if (char >= '0' && char <= '9') {\n if (!foundDecimalSymbol && integerFits()) {\n integer += char;\n } else if (foundDecimalSymbol && decimalFits()) {\n decimal += char;\n }\n }\n });\n\n if (requireDecimal) foundDecimalSymbol = true;\n if (!requireDecimal && !decimal?.length && lastkeycode === 8) {\n foundDecimalSymbol = false;\n }\n if (!integer && !decimal) foundDecimalSymbol = false;\n\n if (foundDecimalSymbol && !integer && decimal) {\n integer = '0';\n }\n\n if (!allowLeadingZeroes) {\n while (integer.length > 1 && integer[0] === '0') integer = integer.substring(1);\n }\n\n let nextMaskedValue = includeThousandsSeparator ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer;\n nextMaskedValue += foundDecimalSymbol ? decimalSymbol : '';\n\n if (shouldCompleteDecimals) while (decimal.length !== decimalLimit) decimal += '0';\n\n nextMaskedValue += decimal;\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) maskedPos += 1;\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n if (nextMaskedValue.length || isNegative) {\n nextMaskedValue = prefix + nextMaskedValue;\n maskedPos += prefix.length;\n\n if (isNegative) {\n if (lastkeycode !== 8 || nextMaskedValue !== prefix) nextMaskedValue = `-${nextMaskedValue}`;\n maskedPos += 1;\n }\n\n nextMaskedValue += suffix;\n }\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n if (nextMaskedValue[maskedPos] === decimalSymbol && integer.length === integerLimit) {\n maskedPos += 1;\n } else if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) {\n maskedPos += 1;\n }\n }\n\n return {\n nextMaskedValue,\n maskedPos: Math.min(maskedPos, nextMaskedValue.length - suffix.length),\n };\n};\n\nconst NumberInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowDecimal,\n allowLeadingZeroes,\n allowNegative,\n autoFocus,\n className,\n clearable = false,\n decimalLimit,\n decimalSymbol,\n disabled,\n fluidWidth,\n hasError,\n includeThousandsSeparator,\n innerRef,\n integerLimit,\n leftComponent,\n maxLength,\n minLength,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n onPaste,\n placeholder,\n prefix,\n readOnly,\n requireDecimal,\n rightComponent,\n style,\n suffix,\n thousandsSeparatorSymbol,\n type,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true, shouldCompleteDecimals = false }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode, {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n });\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n if (requireDecimal && maskedValue !== '') {\n conform({\n rawValue: maskedValue,\n cursorPos: 0,\n lastkey: 0,\n shouldUpdateCursorPos: 0,\n shouldCompleteDecimals: true,\n });\n }\n },\n [maskedValue, requireDecimal, suffix, decimalLimit, onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { NumberInputMask };\nexport default NumberInputMask;\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
- import { DSTextBox } from "../../TextBox";
5
- import { setCaretPosition } from "../utils/setCaretPosition";
4
+ import { DSTextBox } from "../../TextBox/index.js";
5
+ import { setCaretPosition } from "../utils/setCaretPosition.js";
6
6
  const conformValue = (rawValue, cursorPos, lastkeycode) => {
7
7
  let nextMaskedValue = String(rawValue).split("").filter((char) => char >= "0" && char <= "9");
8
8
  while (nextMaskedValue.length && nextMaskedValue[0] === "0")