@bravura/ui 1.21.6 → 2.0.1

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 (276) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -0
  3. package/alert/alert-container.component.d.ts +1 -1
  4. package/alert/alert-message.component.d.ts +1 -1
  5. package/alert/{bravura-ui-alert.d.ts → index.d.ts} +0 -0
  6. package/behavior/await.directive.d.ts +1 -1
  7. package/behavior/{bravura-ui-behavior.d.ts → index.d.ts} +0 -0
  8. package/behavior/sizing-monitor.directive.d.ts +1 -1
  9. package/behavior/sizing.directive.d.ts +1 -1
  10. package/common/{bravura-ui-common.d.ts → index.d.ts} +0 -0
  11. package/currency-input/currency-input.directive.d.ts +1 -1
  12. package/currency-input/{bravura-ui-currency-input.d.ts → index.d.ts} +0 -0
  13. package/decimal-input/decimal-input.directive.d.ts +1 -1
  14. package/decimal-input/{bravura-ui-decimal-input.d.ts → index.d.ts} +0 -0
  15. package/discrete-input/discrete-input.component.d.ts +6 -5
  16. package/discrete-input/{bravura-ui-discrete-input.d.ts → index.d.ts} +0 -0
  17. package/esm2020/alert/alert-container.component.mjs +201 -0
  18. package/esm2020/alert/alert-message.component.mjs +92 -0
  19. package/esm2020/alert/alert.module.mjs +22 -0
  20. package/{esm2015/alert/bravura-ui-alert.js → esm2020/alert/bravura-ui-alert.mjs} +0 -0
  21. package/{esm2015/alert/public-api.js → esm2020/alert/public-api.mjs} +0 -0
  22. package/{esm2015/behavior/await.directive.js → esm2020/behavior/await.directive.mjs} +4 -4
  23. package/esm2020/behavior/behavior.module.mjs +25 -0
  24. package/{esm2015/behavior/bravura-ui-behavior.js → esm2020/behavior/bravura-ui-behavior.mjs} +0 -0
  25. package/{esm2015/behavior/public-api.js → esm2020/behavior/public-api.mjs} +0 -0
  26. package/{esm2015/behavior/sizing-monitor.directive.js → esm2020/behavior/sizing-monitor.directive.mjs} +4 -4
  27. package/{esm2015/behavior/sizing.directive.js → esm2020/behavior/sizing.directive.mjs} +4 -4
  28. package/{esm2015/bravura-ui.js → esm2020/bravura-ui.mjs} +0 -0
  29. package/{esm2015/common/bravura-ui-common.js → esm2020/common/bravura-ui-common.mjs} +0 -0
  30. package/{esm2015/common/common-utils.js → esm2020/common/common-utils.mjs} +0 -0
  31. package/esm2020/common/common.module.mjs +52 -0
  32. package/{esm2015/common/public-api.js → esm2020/common/public-api.mjs} +0 -0
  33. package/{esm2015/currency-input/bravura-ui-currency-input.js → esm2020/currency-input/bravura-ui-currency-input.mjs} +0 -0
  34. package/esm2020/currency-input/currency-input.directive.mjs +279 -0
  35. package/esm2020/currency-input/currency-input.module.mjs +19 -0
  36. package/{esm2015/currency-input/public-api.js → esm2020/currency-input/public-api.mjs} +0 -0
  37. package/{esm2015/decimal-input/bravura-ui-decimal-input.js → esm2020/decimal-input/bravura-ui-decimal-input.mjs} +0 -0
  38. package/esm2020/decimal-input/decimal-input.directive.mjs +125 -0
  39. package/esm2020/decimal-input/decimal-input.module.mjs +19 -0
  40. package/{esm2015/decimal-input/public-api.js → esm2020/decimal-input/public-api.mjs} +0 -0
  41. package/{esm2015/discrete-input/bravura-ui-discrete-input.js → esm2020/discrete-input/bravura-ui-discrete-input.mjs} +0 -0
  42. package/esm2020/discrete-input/discrete-input.component.mjs +326 -0
  43. package/esm2020/discrete-input/discrete-input.module.mjs +21 -0
  44. package/{esm2015/discrete-input/public-api.js → esm2020/discrete-input/public-api.mjs} +0 -0
  45. package/{esm2015/file-upload/bravura-ui-file-upload.js → esm2020/file-upload/bravura-ui-file-upload.mjs} +0 -0
  46. package/esm2020/file-upload/file-upload.component.mjs +356 -0
  47. package/{esm2015/file-upload/file-upload.module.js → esm2020/file-upload/file-upload.module.mjs} +11 -13
  48. package/{esm2015/file-upload/file-upload.service.js → esm2020/file-upload/file-upload.service.mjs} +4 -4
  49. package/{esm2015/file-upload/public-api.js → esm2020/file-upload/public-api.mjs} +0 -0
  50. package/{esm2015/form-field/bravura-ui-form-field.js → esm2020/form-field/bravura-ui-form-field.mjs} +0 -0
  51. package/esm2020/form-field/form-field.component.mjs +96 -0
  52. package/esm2020/form-field/form-field.module.mjs +20 -0
  53. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  54. package/{esm2015/icon-font/bravura-ui-icon-font.js → esm2020/icon-font/bravura-ui-icon-font.mjs} +0 -0
  55. package/esm2020/icon-font/icon-font.module.mjs +22 -0
  56. package/{esm2015/icon-font/icon.directive.js → esm2020/icon-font/icon.directive.mjs} +4 -4
  57. package/{esm2015/icon-font/public-api.js → esm2020/icon-font/public-api.mjs} +0 -0
  58. package/{esm2015/icon-font/utilities.js → esm2020/icon-font/utilities.mjs} +0 -0
  59. package/{esm2015/phone-number/bravura-ui-phone-number.js → esm2020/phone-number/bravura-ui-phone-number.mjs} +0 -0
  60. package/esm2020/phone-number/phone-number.directive.mjs +187 -0
  61. package/esm2020/phone-number/phone-number.module.mjs +24 -0
  62. package/{esm2015/phone-number/phone-number.pipe.js → esm2020/phone-number/phone-number.pipe.mjs} +4 -4
  63. package/{esm2015/phone-number/phone-number.validator.js → esm2020/phone-number/phone-number.validator.mjs} +4 -4
  64. package/{esm2015/phone-number/public-api.js → esm2020/phone-number/public-api.mjs} +0 -0
  65. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  66. package/{esm2015/radio-panel/bravura-ui-radio-panel.js → esm2020/radio-panel/bravura-ui-radio-panel.mjs} +0 -0
  67. package/{esm2015/radio-panel/public-api.js → esm2020/radio-panel/public-api.mjs} +0 -0
  68. package/esm2020/radio-panel/radio-panel-item.component.mjs +97 -0
  69. package/esm2020/radio-panel/radio-panel.component.mjs +89 -0
  70. package/esm2020/radio-panel/radio-panel.module.mjs +25 -0
  71. package/{esm2015/selection-panel/bravura-ui-selection-panel.js → esm2020/selection-panel/bravura-ui-selection-panel.mjs} +0 -0
  72. package/{esm2015/selection-panel/public-api.js → esm2020/selection-panel/public-api.mjs} +0 -0
  73. package/esm2020/selection-panel/selection-panel-item.component.mjs +166 -0
  74. package/esm2020/selection-panel/selection-panel.directive.mjs +119 -0
  75. package/esm2020/selection-panel/selection-panel.module.mjs +23 -0
  76. package/{esm2015/skeletons/bravura-ui-skeletons.js → esm2020/skeletons/bravura-ui-skeletons.mjs} +0 -0
  77. package/{esm2015/skeletons/public-api.js → esm2020/skeletons/public-api.mjs} +0 -0
  78. package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +83 -0
  79. package/{esm2015/skeletons/skeleton-loader.component.js → esm2020/skeletons/skeleton-loader.component.mjs} +4 -4
  80. package/esm2020/skeletons/skeletons.module.mjs +35 -0
  81. package/{esm2015/stepper/bravura-ui-stepper.js → esm2020/stepper/bravura-ui-stepper.mjs} +0 -0
  82. package/{esm2015/stepper/public-api.js → esm2020/stepper/public-api.mjs} +0 -0
  83. package/esm2020/stepper/stepper-animation.mjs +23 -0
  84. package/esm2020/stepper/stepper.component.mjs +166 -0
  85. package/{esm2015/stepper/stepper.module.js → esm2020/stepper/stepper.module.mjs} +13 -15
  86. package/{esm2015/tooltip/bravura-ui-tooltip.js → esm2020/tooltip/bravura-ui-tooltip.mjs} +0 -0
  87. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  88. package/esm2020/tooltip/tooltip.component.mjs +51 -0
  89. package/{esm2015/tooltip/tooltip.directive.js → esm2020/tooltip/tooltip.directive.mjs} +4 -4
  90. package/esm2020/tooltip/tooltip.module.mjs +25 -0
  91. package/fesm2015/bravura-ui-alert.mjs +324 -0
  92. package/fesm2015/bravura-ui-alert.mjs.map +1 -0
  93. package/fesm2015/bravura-ui-behavior.mjs +407 -0
  94. package/fesm2015/bravura-ui-behavior.mjs.map +1 -0
  95. package/fesm2015/bravura-ui-common.mjs +74 -0
  96. package/fesm2015/bravura-ui-common.mjs.map +1 -0
  97. package/fesm2015/bravura-ui-currency-input.mjs +303 -0
  98. package/fesm2015/bravura-ui-currency-input.mjs.map +1 -0
  99. package/fesm2015/bravura-ui-decimal-input.mjs +148 -0
  100. package/fesm2015/bravura-ui-decimal-input.mjs.map +1 -0
  101. package/fesm2015/bravura-ui-discrete-input.mjs +354 -0
  102. package/fesm2015/bravura-ui-discrete-input.mjs.map +1 -0
  103. package/fesm2015/bravura-ui-file-upload.mjs +434 -0
  104. package/fesm2015/bravura-ui-file-upload.mjs.map +1 -0
  105. package/fesm2015/{bravura-ui-form-field.js → bravura-ui-form-field.mjs} +12 -23
  106. package/fesm2015/bravura-ui-form-field.mjs.map +1 -0
  107. package/fesm2015/{bravura-ui-icon-font.js → bravura-ui-icon-font.mjs} +8 -8
  108. package/fesm2015/bravura-ui-icon-font.mjs.map +1 -0
  109. package/fesm2015/{bravura-ui-phone-number.js → bravura-ui-phone-number.mjs} +34 -30
  110. package/fesm2015/bravura-ui-phone-number.mjs.map +1 -0
  111. package/fesm2015/bravura-ui-radio-panel.mjs +212 -0
  112. package/fesm2015/bravura-ui-radio-panel.mjs.map +1 -0
  113. package/fesm2015/{bravura-ui-selection-panel.js → bravura-ui-selection-panel.mjs} +24 -28
  114. package/fesm2015/bravura-ui-selection-panel.mjs.map +1 -0
  115. package/fesm2015/bravura-ui-skeletons.mjs +195 -0
  116. package/fesm2015/bravura-ui-skeletons.mjs.map +1 -0
  117. package/fesm2015/bravura-ui-stepper.mjs +243 -0
  118. package/fesm2015/bravura-ui-stepper.mjs.map +1 -0
  119. package/fesm2015/bravura-ui-tooltip.mjs +195 -0
  120. package/fesm2015/bravura-ui-tooltip.mjs.map +1 -0
  121. package/fesm2015/{bravura-ui.js → bravura-ui.mjs} +1 -1
  122. package/fesm2015/bravura-ui.mjs.map +1 -0
  123. package/fesm2020/bravura-ui-alert.mjs +312 -0
  124. package/fesm2020/bravura-ui-alert.mjs.map +1 -0
  125. package/{fesm2015/bravura-ui-behavior.js → fesm2020/bravura-ui-behavior.mjs} +14 -14
  126. package/fesm2020/bravura-ui-behavior.mjs.map +1 -0
  127. package/{fesm2015/bravura-ui-common.js → fesm2020/bravura-ui-common.mjs} +7 -7
  128. package/fesm2020/bravura-ui-common.mjs.map +1 -0
  129. package/{fesm2015/bravura-ui-currency-input.js → fesm2020/bravura-ui-currency-input.mjs} +10 -11
  130. package/fesm2020/bravura-ui-currency-input.mjs.map +1 -0
  131. package/{fesm2015/bravura-ui-decimal-input.js → fesm2020/bravura-ui-decimal-input.mjs} +9 -8
  132. package/fesm2020/bravura-ui-decimal-input.mjs.map +1 -0
  133. package/{fesm2015/bravura-ui-discrete-input.js → fesm2020/bravura-ui-discrete-input.mjs} +18 -26
  134. package/fesm2020/bravura-ui-discrete-input.mjs.map +1 -0
  135. package/fesm2020/bravura-ui-file-upload.mjs +430 -0
  136. package/fesm2020/bravura-ui-file-upload.mjs.map +1 -0
  137. package/fesm2020/bravura-ui-form-field.mjs +119 -0
  138. package/fesm2020/bravura-ui-form-field.mjs.map +1 -0
  139. package/fesm2020/bravura-ui-icon-font.mjs +178 -0
  140. package/fesm2020/bravura-ui-icon-font.mjs.map +1 -0
  141. package/fesm2020/bravura-ui-phone-number.mjs +317 -0
  142. package/fesm2020/bravura-ui-phone-number.mjs.map +1 -0
  143. package/fesm2020/bravura-ui-radio-panel.mjs +209 -0
  144. package/fesm2020/bravura-ui-radio-panel.mjs.map +1 -0
  145. package/fesm2020/bravura-ui-selection-panel.mjs +306 -0
  146. package/fesm2020/bravura-ui-selection-panel.mjs.map +1 -0
  147. package/{fesm2015/bravura-ui-skeletons.js → fesm2020/bravura-ui-skeletons.mjs} +13 -13
  148. package/fesm2020/bravura-ui-skeletons.mjs.map +1 -0
  149. package/{fesm2015/bravura-ui-stepper.js → fesm2020/bravura-ui-stepper.mjs} +27 -44
  150. package/fesm2020/bravura-ui-stepper.mjs.map +1 -0
  151. package/{fesm2015/bravura-ui-tooltip.js → fesm2020/bravura-ui-tooltip.mjs} +13 -22
  152. package/fesm2020/bravura-ui-tooltip.mjs.map +1 -0
  153. package/fesm2020/bravura-ui.mjs +8 -0
  154. package/fesm2020/bravura-ui.mjs.map +1 -0
  155. package/file-upload/file-upload.component.d.ts +1 -1
  156. package/file-upload/{bravura-ui-file-upload.d.ts → index.d.ts} +0 -0
  157. package/form-field/form-field.component.d.ts +1 -1
  158. package/form-field/{bravura-ui-form-field.d.ts → index.d.ts} +0 -0
  159. package/icon-font/icon.directive.d.ts +1 -1
  160. package/icon-font/{bravura-ui-icon-font.d.ts → index.d.ts} +0 -0
  161. package/{bravura-ui.d.ts → index.d.ts} +0 -0
  162. package/package.json +149 -14
  163. package/phone-number/{bravura-ui-phone-number.d.ts → index.d.ts} +0 -0
  164. package/phone-number/phone-number.directive.d.ts +1 -1
  165. package/phone-number/phone-number.pipe.d.ts +1 -1
  166. package/phone-number/phone-number.validator.d.ts +1 -1
  167. package/radio-panel/{bravura-ui-radio-panel.d.ts → index.d.ts} +0 -0
  168. package/radio-panel/radio-panel-item.component.d.ts +1 -1
  169. package/radio-panel/radio-panel.component.d.ts +1 -1
  170. package/selection-panel/{bravura-ui-selection-panel.d.ts → index.d.ts} +0 -0
  171. package/selection-panel/selection-panel-item.component.d.ts +1 -1
  172. package/selection-panel/selection-panel.directive.d.ts +1 -1
  173. package/skeletons/{bravura-ui-skeletons.d.ts → index.d.ts} +0 -0
  174. package/skeletons/skeleton-loader-presets.directive.d.ts +1 -1
  175. package/skeletons/skeleton-loader.component.d.ts +1 -1
  176. package/stepper/{bravura-ui-stepper.d.ts → index.d.ts} +0 -0
  177. package/stepper/stepper.component.d.ts +1 -1
  178. package/theme/_ui-theme.scss +1 -1
  179. package/tooltip/{bravura-ui-tooltip.d.ts → index.d.ts} +0 -0
  180. package/tooltip/tooltip.component.d.ts +1 -1
  181. package/tooltip/tooltip.directive.d.ts +1 -1
  182. package/alert/package.json +0 -10
  183. package/behavior/package.json +0 -10
  184. package/bundles/bravura-ui-alert.umd.js +0 -745
  185. package/bundles/bravura-ui-alert.umd.js.map +0 -1
  186. package/bundles/bravura-ui-behavior.umd.js +0 -788
  187. package/bundles/bravura-ui-behavior.umd.js.map +0 -1
  188. package/bundles/bravura-ui-common.umd.js +0 -103
  189. package/bundles/bravura-ui-common.umd.js.map +0 -1
  190. package/bundles/bravura-ui-currency-input.umd.js +0 -335
  191. package/bundles/bravura-ui-currency-input.umd.js.map +0 -1
  192. package/bundles/bravura-ui-decimal-input.umd.js +0 -176
  193. package/bundles/bravura-ui-decimal-input.umd.js.map +0 -1
  194. package/bundles/bravura-ui-discrete-input.umd.js +0 -747
  195. package/bundles/bravura-ui-discrete-input.umd.js.map +0 -1
  196. package/bundles/bravura-ui-file-upload.umd.js +0 -845
  197. package/bundles/bravura-ui-file-upload.umd.js.map +0 -1
  198. package/bundles/bravura-ui-form-field.umd.js +0 -494
  199. package/bundles/bravura-ui-form-field.umd.js.map +0 -1
  200. package/bundles/bravura-ui-icon-font.umd.js +0 -539
  201. package/bundles/bravura-ui-icon-font.umd.js.map +0 -1
  202. package/bundles/bravura-ui-phone-number.umd.js +0 -690
  203. package/bundles/bravura-ui-phone-number.umd.js.map +0 -1
  204. package/bundles/bravura-ui-radio-panel.umd.js +0 -595
  205. package/bundles/bravura-ui-radio-panel.umd.js.map +0 -1
  206. package/bundles/bravura-ui-selection-panel.umd.js +0 -699
  207. package/bundles/bravura-ui-selection-panel.umd.js.map +0 -1
  208. package/bundles/bravura-ui-skeletons.umd.js +0 -525
  209. package/bundles/bravura-ui-skeletons.umd.js.map +0 -1
  210. package/bundles/bravura-ui-stepper.umd.js +0 -613
  211. package/bundles/bravura-ui-stepper.umd.js.map +0 -1
  212. package/bundles/bravura-ui-tooltip.umd.js +0 -586
  213. package/bundles/bravura-ui-tooltip.umd.js.map +0 -1
  214. package/bundles/bravura-ui.umd.js +0 -18
  215. package/bundles/bravura-ui.umd.js.map +0 -1
  216. package/common/package.json +0 -10
  217. package/currency-input/package.json +0 -10
  218. package/decimal-input/package.json +0 -10
  219. package/discrete-input/package.json +0 -10
  220. package/esm2015/alert/alert-container.component.js +0 -220
  221. package/esm2015/alert/alert-message.component.js +0 -98
  222. package/esm2015/alert/alert.module.js +0 -22
  223. package/esm2015/behavior/behavior.module.js +0 -25
  224. package/esm2015/common/common.module.js +0 -52
  225. package/esm2015/currency-input/currency-input.directive.js +0 -280
  226. package/esm2015/currency-input/currency-input.module.js +0 -19
  227. package/esm2015/decimal-input/decimal-input.directive.js +0 -124
  228. package/esm2015/decimal-input/decimal-input.module.js +0 -19
  229. package/esm2015/discrete-input/discrete-input.component.js +0 -334
  230. package/esm2015/discrete-input/discrete-input.module.js +0 -21
  231. package/esm2015/file-upload/file-upload.component.js +0 -367
  232. package/esm2015/form-field/form-field.component.js +0 -107
  233. package/esm2015/form-field/form-field.module.js +0 -20
  234. package/esm2015/icon-font/icon-font.module.js +0 -22
  235. package/esm2015/phone-number/phone-number.directive.js +0 -192
  236. package/esm2015/phone-number/phone-number.module.js +0 -24
  237. package/esm2015/radio-panel/radio-panel-item.component.js +0 -109
  238. package/esm2015/radio-panel/radio-panel.component.js +0 -98
  239. package/esm2015/radio-panel/radio-panel.module.js +0 -25
  240. package/esm2015/selection-panel/selection-panel-item.component.js +0 -174
  241. package/esm2015/selection-panel/selection-panel.directive.js +0 -120
  242. package/esm2015/selection-panel/selection-panel.module.js +0 -23
  243. package/esm2015/skeletons/skeleton-loader-presets.directive.js +0 -83
  244. package/esm2015/skeletons/skeletons.module.js +0 -35
  245. package/esm2015/stepper/stepper-animation.js +0 -23
  246. package/esm2015/stepper/stepper.component.js +0 -181
  247. package/esm2015/tooltip/tooltip.component.js +0 -59
  248. package/esm2015/tooltip/tooltip.module.js +0 -26
  249. package/fesm2015/bravura-ui-alert.js +0 -337
  250. package/fesm2015/bravura-ui-alert.js.map +0 -1
  251. package/fesm2015/bravura-ui-behavior.js.map +0 -1
  252. package/fesm2015/bravura-ui-common.js.map +0 -1
  253. package/fesm2015/bravura-ui-currency-input.js.map +0 -1
  254. package/fesm2015/bravura-ui-decimal-input.js.map +0 -1
  255. package/fesm2015/bravura-ui-discrete-input.js.map +0 -1
  256. package/fesm2015/bravura-ui-file-upload.js +0 -443
  257. package/fesm2015/bravura-ui-file-upload.js.map +0 -1
  258. package/fesm2015/bravura-ui-form-field.js.map +0 -1
  259. package/fesm2015/bravura-ui-icon-font.js.map +0 -1
  260. package/fesm2015/bravura-ui-phone-number.js.map +0 -1
  261. package/fesm2015/bravura-ui-radio-panel.js +0 -230
  262. package/fesm2015/bravura-ui-radio-panel.js.map +0 -1
  263. package/fesm2015/bravura-ui-selection-panel.js.map +0 -1
  264. package/fesm2015/bravura-ui-skeletons.js.map +0 -1
  265. package/fesm2015/bravura-ui-stepper.js.map +0 -1
  266. package/fesm2015/bravura-ui-tooltip.js.map +0 -1
  267. package/fesm2015/bravura-ui.js.map +0 -1
  268. package/file-upload/package.json +0 -10
  269. package/form-field/package.json +0 -10
  270. package/icon-font/package.json +0 -10
  271. package/phone-number/package.json +0 -10
  272. package/radio-panel/package.json +0 -10
  273. package/selection-panel/package.json +0 -10
  274. package/skeletons/package.json +0 -10
  275. package/stepper/package.json +0 -10
  276. package/tooltip/package.json +0 -10
@@ -0,0 +1,279 @@
1
+ import { DecimalPipe, getCurrencySymbol } from '@angular/common';
2
+ import { DEFAULT_CURRENCY_CODE, Directive, forwardRef, HostBinding, HostListener, Inject, Input, LOCALE_ID, Optional, Self, ɵfindLocaleData } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { MAT_FORM_FIELD } from '@angular/material/form-field';
5
+ import { MatInput } from '@angular/material/input';
6
+ import { noop } from 'rxjs';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/form-field";
9
+ /* tslint:disable:no-empty */
10
+ export const noop_consumer = (_) => { };
11
+ /**
12
+ * This directive will enhance an input element to format the numbers entered to a currency amount.
13
+ */
14
+ export class CurrencyInputDirective {
15
+ constructor(_el, _renderer, _locale, _defaultCurrencyCode, _field) {
16
+ this._el = _el;
17
+ this._renderer = _renderer;
18
+ this._locale = _locale;
19
+ this._defaultCurrencyCode = _defaultCurrencyCode;
20
+ this._field = _field;
21
+ /**
22
+ * true to allow negative input, otherwise false
23
+ * Default to false.
24
+ */
25
+ this.allowNegative = false;
26
+ /**
27
+ * Provide the currency code to format the entered amount.
28
+ * Uses angular token DEFAULT_CURRENCY_CODE by default.
29
+ */
30
+ this.currencyCode = '';
31
+ /**
32
+ * true if no decimal digits allowed, otherwise false.
33
+ * Default to false.
34
+ */
35
+ this.baseUnitOnly = false;
36
+ /**
37
+ * The format the of the amount either in wide or narrow.
38
+ */
39
+ this.format = 'wide';
40
+ this.placeholder = '';
41
+ this.autocomplete = 'off';
42
+ this.type = 'text';
43
+ this.inputMode = 'decimal';
44
+ this.change = noop_consumer;
45
+ this.onTouch = noop;
46
+ this._symbol = '$';
47
+ this._ds = '.'; // decimal separator
48
+ this._trailing = false;
49
+ const userAgent = navigator.userAgent;
50
+ this._safari = !userAgent.match(/Firefox/i) && !userAgent.match(/Chrome/i) && !!userAgent.match(/safari/i);
51
+ this._currencyUpdated();
52
+ }
53
+ ngOnInit() { }
54
+ ngOnChanges() {
55
+ this._currencyUpdated();
56
+ this.onInput();
57
+ }
58
+ onInput() {
59
+ this._formatCurrency(this._el, false, true);
60
+ }
61
+ onFocus() {
62
+ this._formatCurrency(this._el, false, true);
63
+ }
64
+ onblur() {
65
+ this.onTouch();
66
+ this._formatCurrency(this._el, true, false);
67
+ }
68
+ writeValue(value) {
69
+ value = this._decimalPipe.transform(value);
70
+ this._renderer.setProperty(this._el.nativeElement, 'value', value);
71
+ this._formatCurrency(this._el, true, false);
72
+ }
73
+ registerOnChange(fn) {
74
+ this.change = fn;
75
+ }
76
+ registerOnTouched(fn) {
77
+ this.onTouch = fn;
78
+ }
79
+ _updatePlaceholder() {
80
+ this.placeholder = this.placeholder || this._0Text;
81
+ if (this._field?._control instanceof MatInput) {
82
+ this._field._control.placeholder = this.placeholder;
83
+ }
84
+ }
85
+ _currencyUpdated() {
86
+ this.currencyCode = this.currencyCode || this._defaultCurrencyCode;
87
+ this._symbol = getCurrencySymbol(this.currencyCode, this.format, this._locale) || '$';
88
+ const localeData = ɵfindLocaleData(this._locale);
89
+ this._ds = localeData[13][0];
90
+ this._decimalPipe = new DecimalPipe(this._locale);
91
+ const curFormat = localeData[14][2];
92
+ this._trailing = curFormat.indexOf('¤') > 0;
93
+ this._updatePlaceholder();
94
+ }
95
+ _formatCurrency(input, blur, focus) {
96
+ // appends $ to value, validates decimal side
97
+ // and puts cursor back in right position.
98
+ // get input value
99
+ let input_val = input.nativeElement.value;
100
+ // don't validate empty input
101
+ if (input_val === '') {
102
+ this.change(null);
103
+ return;
104
+ }
105
+ const minus = this.allowNegative ? '-' : '';
106
+ // remove non digit values except currency symbol, decimal separator and hypen
107
+ const reg = new RegExp(`[^0-9${minus}${this._symbol}${this._ds}]`, 'g');
108
+ let sanitiseValue = input_val.replace(reg, '');
109
+ if (sanitiseValue === '' || sanitiseValue === this._symbol) {
110
+ this.change(null);
111
+ this._renderer.setProperty(input.nativeElement, 'value', '');
112
+ return;
113
+ }
114
+ else if ((this.allowNegative && sanitiseValue === `-${this._symbol}`) ||
115
+ sanitiseValue === '-' ||
116
+ sanitiseValue === '--') {
117
+ this.change(null);
118
+ this._renderer.setProperty(input.nativeElement, 'value', '-');
119
+ return;
120
+ }
121
+ const negative = this.allowNegative && input_val.indexOf('-') >= 0;
122
+ // original length
123
+ const original_len = input_val.length;
124
+ // initial caret position
125
+ let caret_pos = input.nativeElement.selectionStart;
126
+ input_val = input_val.replace(RegExp(`[^0-9${minus}${this._ds}]`, 'g'), '').replace(/^\.\./, '');
127
+ // check for decimal
128
+ if (input_val.indexOf(this._ds) >= 0) {
129
+ // get position of first decimal
130
+ // this prevents multiple decimals from
131
+ // being entered
132
+ let decimal_pos = input_val.indexOf(this._ds);
133
+ // split number by decimal point
134
+ let left_side = input_val.substring(0, decimal_pos);
135
+ let right_side = input_val.substring(decimal_pos);
136
+ // add commas to left side of number
137
+ left_side = this._formatNumber(left_side, blur) || '';
138
+ // no value append a zero for decimal values
139
+ if (!left_side.length) {
140
+ left_side = '0';
141
+ }
142
+ if (!this.baseUnitOnly) {
143
+ // validate right side
144
+ right_side = right_side.replace(/\D/g, '');
145
+ // Limit decimal to only 2 digits
146
+ let v = Number(`0.${right_side}`);
147
+ if (v) {
148
+ const length = right_side.length > 1 ? 2 : 1;
149
+ right_side = v.toFixed(length).substring(2, 4);
150
+ }
151
+ // On blur make sure 2 numbers after decimal
152
+ if (blur) {
153
+ right_side += '00';
154
+ }
155
+ right_side = right_side.substring(0, 2);
156
+ // join number by .
157
+ input_val = left_side + this._ds + right_side;
158
+ }
159
+ else {
160
+ input_val = left_side;
161
+ }
162
+ }
163
+ else {
164
+ input_val = this._formatNumber(input_val, blur);
165
+ // final formatting
166
+ if (blur && !this.baseUnitOnly) {
167
+ input_val += `${this._ds}00`;
168
+ }
169
+ }
170
+ const numStr = input_val;
171
+ // append the currency symbol
172
+ if (!this._safari || !focus) {
173
+ if (this._trailing) {
174
+ input_val = input_val + ' ' + this._symbol;
175
+ }
176
+ else {
177
+ input_val = this._symbol + input_val;
178
+ }
179
+ }
180
+ if (negative) {
181
+ // append the hypen back to the value if a negative value was entered
182
+ input_val = `-${input_val}`;
183
+ }
184
+ const num = this._convert((negative ? '-' : '') + numStr);
185
+ // update control value first with the number
186
+ this.change(Number(num));
187
+ if (blur && num === 0) {
188
+ input_val = this._0Text;
189
+ }
190
+ // update dom with the formatted value
191
+ this._renderer.setProperty(input.nativeElement, 'value', input_val);
192
+ // put caret back in the right position
193
+ let updated_len = input_val.length;
194
+ if (caret_pos) {
195
+ caret_pos = updated_len - original_len + caret_pos;
196
+ if (input_val.substring(caret_pos - this._symbol.length) === this._symbol && this._trailing) {
197
+ caret_pos -= this._symbol.length + 1;
198
+ }
199
+ }
200
+ if (!this._safari) {
201
+ input.nativeElement.setSelectionRange(caret_pos, caret_pos);
202
+ }
203
+ }
204
+ // format the number into currency format
205
+ _formatNumber(n, blur = false) {
206
+ // format number 1000000 to 1,234,567
207
+ n = n.replace(/\D/g, '');
208
+ if (blur) {
209
+ n = n.replace(/^0+/, '');
210
+ }
211
+ return this._decimalPipe.transform(n, '1.0-0');
212
+ }
213
+ _convert(input) {
214
+ if (!input) {
215
+ return NaN;
216
+ }
217
+ const val = input
218
+ .replace(this._ds, 'd')
219
+ .replace(/[^0-9d-]/g, '')
220
+ .replace('d', '.');
221
+ return parseFloat(val);
222
+ }
223
+ get _0Text() {
224
+ const decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;
225
+ return this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;
226
+ }
227
+ }
228
+ CurrencyInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CurrencyInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }, { token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
229
+ CurrencyInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: CurrencyInputDirective, selector: "input[buiCurrencyInput],input[currencyCode],input[data-type=currency]", inputs: { allowNegative: "allowNegative", currencyCode: "currencyCode", baseUnitOnly: "baseUnitOnly", format: "format" }, host: { listeners: { "input": "onInput()", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }], usesOnChanges: true, ngImport: i0 });
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CurrencyInputDirective, decorators: [{
231
+ type: Directive,
232
+ args: [{
233
+ selector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',
234
+ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }]
235
+ }]
236
+ }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
237
+ type: Self
238
+ }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
239
+ type: Inject,
240
+ args: [LOCALE_ID]
241
+ }] }, { type: undefined, decorators: [{
242
+ type: Inject,
243
+ args: [DEFAULT_CURRENCY_CODE]
244
+ }] }, { type: i1.MatFormField, decorators: [{
245
+ type: Optional
246
+ }, {
247
+ type: Inject,
248
+ args: [MAT_FORM_FIELD]
249
+ }] }]; }, propDecorators: { allowNegative: [{
250
+ type: Input
251
+ }], currencyCode: [{
252
+ type: Input
253
+ }], baseUnitOnly: [{
254
+ type: Input
255
+ }], format: [{
256
+ type: Input
257
+ }], placeholder: [{
258
+ type: HostBinding,
259
+ args: ['placeholder']
260
+ }], autocomplete: [{
261
+ type: HostBinding,
262
+ args: ['autocomplete']
263
+ }], type: [{
264
+ type: HostBinding,
265
+ args: ['type']
266
+ }], inputMode: [{
267
+ type: HostBinding,
268
+ args: ['attr.inputmode']
269
+ }], onInput: [{
270
+ type: HostListener,
271
+ args: ['input']
272
+ }], onFocus: [{
273
+ type: HostListener,
274
+ args: ['focus']
275
+ }], onblur: [{
276
+ type: HostListener,
277
+ args: ['blur']
278
+ }] } });
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUv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O2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBSUUsV0FBVztzQkFEbEIsV0FBVzt1QkFBQyxhQUFhO2dCQUlsQixZQUFZO3NCQURuQixXQUFXO3VCQUFDLGNBQWM7Z0JBSW5CLElBQUk7c0JBRFgsV0FBVzt1QkFBQyxNQUFNO2dCQUlYLFNBQVM7c0JBRGhCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWdDN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBTXJCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBnZXRDdXJyZW5jeVN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRERUZBVUxUX0NVUlJFTkNZX0NPREUsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0TE9DQUxFX0lELFxuXHRPbkNoYW5nZXMsXG5cdE9uSW5pdCxcblx0T3B0aW9uYWwsXG5cdFJlbmRlcmVyMixcblx0U2VsZixcblx0ybVmaW5kTG9jYWxlRGF0YVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTUFUX0ZPUk1fRklFTEQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1lbXB0eSAqL1xuZXhwb3J0IGNvbnN0IG5vb3BfY29uc3VtZXIgPSAoXzogYW55KSA9PiB7fTtcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSB3aWxsIGVuaGFuY2UgYW4gaW5wdXQgZWxlbWVudCB0byBmb3JtYXQgdGhlIG51bWJlcnMgZW50ZXJlZCB0byBhIGN1cnJlbmN5IGFtb3VudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpQ3VycmVuY3lJbnB1dF0saW5wdXRbY3VycmVuY3lDb2RlXSxpbnB1dFtkYXRhLXR5cGU9Y3VycmVuY3ldJyxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5SW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXHQvKipcblx0ICogdHJ1ZSB0byBhbGxvdyBuZWdhdGl2ZSBpbnB1dCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRhbGxvd05lZ2F0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFByb3ZpZGUgdGhlIGN1cnJlbmN5IGNvZGUgdG8gZm9ybWF0IHRoZSBlbnRlcmVkIGFtb3VudC5cblx0ICogVXNlcyBhbmd1bGFyIHRva2VuIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSBieSBkZWZhdWx0LlxuXHQgKi9cblx0QElucHV0KClcblx0Y3VycmVuY3lDb2RlOiBzdHJpbmcgPSAnJztcblxuXHQvKipcblx0ICogdHJ1ZSBpZiBubyBkZWNpbWFsIGRpZ2l0cyBhbGxvd2VkLCBvdGhlcndpc2UgZmFsc2UuXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRiYXNlVW5pdE9ubHkgPSBmYWxzZTtcblxuXHQvKipcblx0ICogVGhlIGZvcm1hdCB0aGUgb2YgdGhlIGFtb3VudCBlaXRoZXIgaW4gd2lkZSBvciBuYXJyb3cuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRmb3JtYXQ6ICduYXJyb3cnIHwgJ3dpZGUnID0gJ3dpZGUnO1xuXG5cdEBIb3N0QmluZGluZygncGxhY2Vob2xkZXInKVxuXHRwcml2YXRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuXHRASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpXG5cdHByaXZhdGUgYXV0b2NvbXBsZXRlID0gJ29mZic7XG5cblx0QEhvc3RCaW5kaW5nKCd0eXBlJylcblx0cHJpdmF0ZSB0eXBlID0gJ3RleHQnO1xuXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxuXHRwcml2YXRlIGlucHV0TW9kZSA9ICdkZWNpbWFsJztcblxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XG5cdHByaXZhdGUgb25Ub3VjaCA9IG5vb3A7XG5cdHByaXZhdGUgX3NhZmFyaTogYm9vbGVhbjtcblx0cHJpdmF0ZSBfc3ltYm9sOiBzdHJpbmcgPSAnJCc7XG5cdHByaXZhdGUgX2RlY2ltYWxQaXBlITogRGVjaW1hbFBpcGU7XG5cblx0cHJpdmF0ZSBfZHMgPSAnLic7IC8vIGRlY2ltYWwgc2VwYXJhdG9yXG5cdHByaXZhdGUgX3RyYWlsaW5nID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QFNlbGYoKSBwcml2YXRlIF9lbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pixcblx0XHRwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcblx0XHRASW5qZWN0KERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSkgcHJpdmF0ZSBfZGVmYXVsdEN1cnJlbmN5Q29kZTogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHByaXZhdGUgX2ZpZWxkPzogTWF0Rm9ybUZpZWxkXG5cdCkge1xuXHRcdGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cdFx0dGhpcy5fc2FmYXJpID0gIXVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveC9pKSAmJiAhdXNlckFnZW50Lm1hdGNoKC9DaHJvbWUvaSkgJiYgISF1c2VyQWdlbnQubWF0Y2goL3NhZmFyaS9pKTtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge31cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0XHR0aGlzLm9uSW5wdXQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0Jylcblx0b25JbnB1dCgpIHtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCBmYWxzZSwgdHJ1ZSk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25ibHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaCgpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcblx0XHR2YWx1ZSA9IHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcblx0XHR0aGlzLmNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaCA9IGZuO1xuXHR9XG5cblx0cHJpdmF0ZSBfdXBkYXRlUGxhY2Vob2xkZXIoKSB7XG5cdFx0dGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgdGhpcy5fMFRleHQ7XG5cdFx0aWYgKHRoaXMuX2ZpZWxkPy5fY29udHJvbCBpbnN0YW5jZW9mIE1hdElucHV0KSB7XG5cdFx0XHR0aGlzLl9maWVsZC5fY29udHJvbC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfY3VycmVuY3lVcGRhdGVkKCkge1xuXHRcdHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5jdXJyZW5jeUNvZGUgfHwgdGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTtcblx0XHR0aGlzLl9zeW1ib2wgPSBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgdGhpcy5mb3JtYXQsIHRoaXMuX2xvY2FsZSkgfHwgJyQnO1xuXHRcdGNvbnN0IGxvY2FsZURhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKHRoaXMuX2xvY2FsZSk7XG5cdFx0dGhpcy5fZHMgPSBsb2NhbGVEYXRhWzEzXVswXTtcblx0XHR0aGlzLl9kZWNpbWFsUGlwZSA9IG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpO1xuXHRcdGNvbnN0IGN1ckZvcm1hdDogc3RyaW5nID0gbG9jYWxlRGF0YVsxNF1bMl07XG5cdFx0dGhpcy5fdHJhaWxpbmcgPSBjdXJGb3JtYXQuaW5kZXhPZignwqQnKSA+IDA7XG5cdFx0dGhpcy5fdXBkYXRlUGxhY2Vob2xkZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgX2Zvcm1hdEN1cnJlbmN5KGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LCBibHVyOiBib29sZWFuLCBmb2N1czogYm9vbGVhbikge1xuXHRcdC8vIGFwcGVuZHMgJCB0byB2YWx1ZSwgdmFsaWRhdGVzIGRlY2ltYWwgc2lkZVxuXHRcdC8vIGFuZCBwdXRzIGN1cnNvciBiYWNrIGluIHJpZ2h0IHBvc2l0aW9uLlxuXHRcdC8vIGdldCBpbnB1dCB2YWx1ZVxuXHRcdGxldCBpbnB1dF92YWwgPSBpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG5cdFx0Ly8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgaW5wdXRcblx0XHRpZiAoaW5wdXRfdmFsID09PSAnJykge1xuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWludXMgPSB0aGlzLmFsbG93TmVnYXRpdmUgPyAnLScgOiAnJztcblxuXHRcdC8vIHJlbW92ZSBub24gZGlnaXQgdmFsdWVzIGV4Y2VwdCBjdXJyZW5jeSBzeW1ib2wsIGRlY2ltYWwgc2VwYXJhdG9yIGFuZCBoeXBlblxuXHRcdGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX3N5bWJvbH0ke3RoaXMuX2RzfV1gLCAnZycpO1xuXG5cdFx0bGV0IHNhbml0aXNlVmFsdWUgPSBpbnB1dF92YWwucmVwbGFjZShyZWcsICcnKTtcblxuXHRcdGlmIChzYW5pdGlzZVZhbHVlID09PSAnJyB8fCBzYW5pdGlzZVZhbHVlID09PSB0aGlzLl9zeW1ib2wpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJycpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHQodGhpcy5hbGxvd05lZ2F0aXZlICYmIHNhbml0aXNlVmFsdWUgPT09IGAtJHt0aGlzLl9zeW1ib2x9YCkgfHxcblx0XHRcdHNhbml0aXNlVmFsdWUgPT09ICctJyB8fFxuXHRcdFx0c2FuaXRpc2VWYWx1ZSA9PT0gJy0tJ1xuXHRcdCkge1xuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCAnLScpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG5lZ2F0aXZlID0gdGhpcy5hbGxvd05lZ2F0aXZlICYmIGlucHV0X3ZhbC5pbmRleE9mKCctJykgPj0gMDtcblxuXHRcdC8vIG9yaWdpbmFsIGxlbmd0aFxuXHRcdGNvbnN0IG9yaWdpbmFsX2xlbiA9IGlucHV0X3ZhbC5sZW5ndGg7XG5cblx0XHQvLyBpbml0aWFsIGNhcmV0IHBvc2l0aW9uXG5cdFx0bGV0IGNhcmV0X3BvcyA9IGlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG5cblx0XHRpbnB1dF92YWwgPSBpbnB1dF92YWwucmVwbGFjZShSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX2RzfV1gLCAnZycpLCAnJykucmVwbGFjZSgvXlxcLlxcLi8sICcnKTtcblx0XHQvLyBjaGVjayBmb3IgZGVjaW1hbFxuXHRcdGlmIChpbnB1dF92YWwuaW5kZXhPZih0aGlzLl9kcykgPj0gMCkge1xuXHRcdFx0Ly8gZ2V0IHBvc2l0aW9uIG9mIGZpcnN0IGRlY2ltYWxcblx0XHRcdC8vIHRoaXMgcHJldmVudHMgbXVsdGlwbGUgZGVjaW1hbHMgZnJvbVxuXHRcdFx0Ly8gYmVpbmcgZW50ZXJlZFxuXHRcdFx0bGV0IGRlY2ltYWxfcG9zID0gaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpO1xuXG5cdFx0XHQvLyBzcGxpdCBudW1iZXIgYnkgZGVjaW1hbCBwb2ludFxuXHRcdFx0bGV0IGxlZnRfc2lkZSA9IGlucHV0X3ZhbC5zdWJzdHJpbmcoMCwgZGVjaW1hbF9wb3MpO1xuXHRcdFx0bGV0IHJpZ2h0X3NpZGUgPSBpbnB1dF92YWwuc3Vic3RyaW5nKGRlY2ltYWxfcG9zKTtcblxuXHRcdFx0Ly8gYWRkIGNvbW1hcyB0byBsZWZ0IHNpZGUgb2YgbnVtYmVyXG5cdFx0XHRsZWZ0X3NpZGUgPSB0aGlzLl9mb3JtYXROdW1iZXIobGVmdF9zaWRlLCBibHVyKSB8fCAnJztcblxuXHRcdFx0Ly8gbm8gdmFsdWUgYXBwZW5kIGEgemVybyBmb3IgZGVjaW1hbCB2YWx1ZXNcblx0XHRcdGlmICghbGVmdF9zaWRlLmxlbmd0aCkge1xuXHRcdFx0XHRsZWZ0X3NpZGUgPSAnMCc7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghdGhpcy5iYXNlVW5pdE9ubHkpIHtcblx0XHRcdFx0Ly8gdmFsaWRhdGUgcmlnaHQgc2lkZVxuXHRcdFx0XHRyaWdodF9zaWRlID0gcmlnaHRfc2lkZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG5cdFx0XHRcdC8vIExpbWl0IGRlY2ltYWwgdG8gb25seSAyIGRpZ2l0c1xuXHRcdFx0XHRsZXQgdiA9IE51bWJlcihgMC4ke3JpZ2h0X3NpZGV9YCk7XG5cdFx0XHRcdGlmICh2KSB7XG5cdFx0XHRcdFx0Y29uc3QgbGVuZ3RoID0gcmlnaHRfc2lkZS5sZW5ndGggPiAxID8gMiA6IDE7XG5cdFx0XHRcdFx0cmlnaHRfc2lkZSA9IHYudG9GaXhlZChsZW5ndGgpLnN1YnN0cmluZygyLCA0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE9uIGJsdXIgbWFrZSBzdXJlIDIgbnVtYmVycyBhZnRlciBkZWNpbWFsXG5cdFx0XHRcdGlmIChibHVyKSB7XG5cdFx0XHRcdFx0cmlnaHRfc2lkZSArPSAnMDAnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUuc3Vic3RyaW5nKDAsIDIpO1xuXG5cdFx0XHRcdC8vIGpvaW4gbnVtYmVyIGJ5IC5cblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlICsgdGhpcy5fZHMgKyByaWdodF9zaWRlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpbnB1dF92YWwgPSB0aGlzLl9mb3JtYXROdW1iZXIoaW5wdXRfdmFsLCBibHVyKTtcblxuXHRcdFx0Ly8gZmluYWwgZm9ybWF0dGluZ1xuXHRcdFx0aWYgKGJsdXIgJiYgIXRoaXMuYmFzZVVuaXRPbmx5KSB7XG5cdFx0XHRcdGlucHV0X3ZhbCArPSBgJHt0aGlzLl9kc30wMGA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgbnVtU3RyID0gaW5wdXRfdmFsO1xuXHRcdC8vIGFwcGVuZCB0aGUgY3VycmVuY3kgc3ltYm9sXG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkgfHwgIWZvY3VzKSB7XG5cdFx0XHRpZiAodGhpcy5fdHJhaWxpbmcpIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gaW5wdXRfdmFsICsgJyAnICsgdGhpcy5fc3ltYm9sO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fc3ltYm9sICsgaW5wdXRfdmFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChuZWdhdGl2ZSkge1xuXHRcdFx0Ly8gYXBwZW5kIHRoZSBoeXBlbiBiYWNrIHRvIHRoZSB2YWx1ZSBpZiBhIG5lZ2F0aXZlIHZhbHVlIHdhcyBlbnRlcmVkXG5cdFx0XHRpbnB1dF92YWwgPSBgLSR7aW5wdXRfdmFsfWA7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbnVtID0gdGhpcy5fY29udmVydCgobmVnYXRpdmUgPyAnLScgOiAnJykgKyBudW1TdHIpO1xuXG5cdFx0Ly8gdXBkYXRlIGNvbnRyb2wgdmFsdWUgZmlyc3Qgd2l0aCB0aGUgbnVtYmVyXG5cdFx0dGhpcy5jaGFuZ2UoTnVtYmVyKG51bSkpO1xuXG5cdFx0aWYgKGJsdXIgJiYgbnVtID09PSAwKSB7XG5cdFx0XHRpbnB1dF92YWwgPSB0aGlzLl8wVGV4dDtcblx0XHR9XG5cblx0XHQvLyB1cGRhdGUgZG9tIHdpdGggdGhlIGZvcm1hdHRlZCB2YWx1ZVxuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIGlucHV0X3ZhbCk7XG5cdFx0Ly8gcHV0IGNhcmV0IGJhY2sgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uXG5cdFx0bGV0IHVwZGF0ZWRfbGVuID0gaW5wdXRfdmFsLmxlbmd0aDtcblx0XHRpZiAoY2FyZXRfcG9zKSB7XG5cdFx0XHRjYXJldF9wb3MgPSB1cGRhdGVkX2xlbiAtIG9yaWdpbmFsX2xlbiArIGNhcmV0X3Bvcztcblx0XHRcdGlmIChpbnB1dF92YWwuc3Vic3RyaW5nKGNhcmV0X3BvcyAtIHRoaXMuX3N5bWJvbC5sZW5ndGgpID09PSB0aGlzLl9zeW1ib2wgJiYgdGhpcy5fdHJhaWxpbmcpIHtcblx0XHRcdFx0Y2FyZXRfcG9zIC09IHRoaXMuX3N5bWJvbC5sZW5ndGggKyAxO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIXRoaXMuX3NhZmFyaSkge1xuXHRcdFx0aW5wdXQubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjYXJldF9wb3MsIGNhcmV0X3Bvcyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZm9ybWF0IHRoZSBudW1iZXIgaW50byBjdXJyZW5jeSBmb3JtYXRcblx0cHJpdmF0ZSBfZm9ybWF0TnVtYmVyKG46IHN0cmluZywgYmx1cjogYm9vbGVhbiA9IGZhbHNlKSB7XG5cdFx0Ly8gZm9ybWF0IG51bWJlciAxMDAwMDAwIHRvIDEsMjM0LDU2N1xuXHRcdG4gPSBuLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG5cdFx0aWYgKGJsdXIpIHtcblx0XHRcdG4gPSBuLnJlcGxhY2UoL14wKy8sICcnKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybShuLCAnMS4wLTAnKSBhcyBzdHJpbmc7XG5cdH1cblxuXHRwcml2YXRlIF9jb252ZXJ0KGlucHV0OiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGlmICghaW5wdXQpIHtcblx0XHRcdHJldHVybiBOYU47XG5cdFx0fVxuXHRcdGNvbnN0IHZhbCA9IGlucHV0XG5cdFx0XHQucmVwbGFjZSh0aGlzLl9kcywgJ2QnKVxuXHRcdFx0LnJlcGxhY2UoL1teMC05ZC1dL2csICcnKVxuXHRcdFx0LnJlcGxhY2UoJ2QnLCAnLicpO1xuXHRcdHJldHVybiBwYXJzZUZsb2F0KHZhbCk7XG5cdH1cblxuXHRwcml2YXRlIGdldCBfMFRleHQoKTogc3RyaW5nIHtcblx0XHRjb25zdCBkZWNpbWFsU3RyID0gdGhpcy5iYXNlVW5pdE9ubHkgPyAnJyA6IGAke3RoaXMuX2RzfTAwYDtcblx0XHRyZXR1cm4gdGhpcy5fdHJhaWxpbmcgPyBgMCR7ZGVjaW1hbFN0cn0gJHt0aGlzLl9zeW1ib2x9YCA6IGAke3RoaXMuX3N5bWJvbH0wJHtkZWNpbWFsU3RyfWA7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { CurrencyInputDirective } from './currency-input.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class CurrencyInputModule {
6
+ }
7
+ CurrencyInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CurrencyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ CurrencyInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: CurrencyInputModule, declarations: [CurrencyInputDirective], imports: [CommonModule], exports: [CurrencyInputDirective] });
9
+ CurrencyInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CurrencyInputModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CurrencyInputModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [CurrencyInputDirective],
14
+ imports: [CommonModule],
15
+ exports: [CurrencyInputDirective]
16
+ }]
17
+ }] });
18
+ export { CurrencyInputDirective };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBSmhCLHNCQUFzQixhQUMzQixZQUFZLGFBQ1osc0JBQXNCO2lIQUVwQixtQkFBbUIsWUFIckIsWUFBWTsyRkFHVixtQkFBbUI7a0JBTC9CLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOztBQUdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJyZW5jeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9jdXJyZW5jeS1pbnB1dC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuXHRkZWNsYXJhdGlvbnM6IFtDdXJyZW5jeUlucHV0RGlyZWN0aXZlXSxcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG5cdGV4cG9ydHM6IFtDdXJyZW5jeUlucHV0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0TW9kdWxlIHt9XG5cbmV4cG9ydCB7IEN1cnJlbmN5SW5wdXREaXJlY3RpdmUgfTtcbiJdfQ==
@@ -0,0 +1,125 @@
1
+ import { DecimalPipe } from '@angular/common';
2
+ import { Directive, forwardRef, HostBinding, HostListener, Input, Self } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { noop } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ /* tslint:disable:no-empty */
7
+ export const noop_consumer = (_) => { };
8
+ /**
9
+ * This directive will enhance an input element to format the numbers entered to a decimal amount.
10
+ */
11
+ export class DecimalInputDirective {
12
+ constructor(_el, _renderer) {
13
+ this._el = _el;
14
+ this._renderer = _renderer;
15
+ /**
16
+ * number of decimal places allowed
17
+ */
18
+ this.buiDecimalInput = 2;
19
+ this.placeholder = '';
20
+ this.autocomplete = 'off';
21
+ this.type = 'number';
22
+ this.inputMode = 'decimal';
23
+ this.change = noop_consumer;
24
+ this.onTouch = noop;
25
+ }
26
+ ngOnChanges() {
27
+ this.buiDecimalInput = this.buiDecimalInput || 2;
28
+ this.onInput();
29
+ }
30
+ onInput() {
31
+ const value = this._el.nativeElement.value;
32
+ const decimalPart = value.split('.')[1];
33
+ if (decimalPart && decimalPart.length > this.buiDecimalInput) {
34
+ const indexOfPeriod = value.indexOf('.');
35
+ const newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput + 1);
36
+ this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
37
+ }
38
+ this.change(Number(this._el.nativeElement.value));
39
+ }
40
+ onKeypress(evt) {
41
+ const target = evt.target;
42
+ const value = target.value;
43
+ const isSpace = evt.key === ' ';
44
+ if (isSpace ||
45
+ (!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||
46
+ (evt.key === '.' && value.indexOf('.') > 0)) {
47
+ evt.preventDefault();
48
+ }
49
+ }
50
+ onFocus() { }
51
+ onblur() {
52
+ this.onTouch();
53
+ this._resetDecimalPlaces();
54
+ }
55
+ writeValue(value) {
56
+ this._renderer.setProperty(this._el.nativeElement, 'value', value);
57
+ this._resetDecimalPlaces();
58
+ }
59
+ registerOnChange(fn) {
60
+ this.change = fn;
61
+ }
62
+ registerOnTouched(fn) {
63
+ this.onTouch = fn;
64
+ }
65
+ _resetDecimalPlaces() {
66
+ const value = this._el.nativeElement.value;
67
+ if (value === '' || value === null || value === undefined) {
68
+ return;
69
+ }
70
+ const splitValues = value.split('.');
71
+ let newValue = '';
72
+ if (splitValues[1] && splitValues[1].length > this.buiDecimalInput) {
73
+ newValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput);
74
+ }
75
+ else {
76
+ this.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;
77
+ newValue = Number(value).toFixed(this.buiDecimalInput);
78
+ }
79
+ this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
80
+ }
81
+ }
82
+ DecimalInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
83
+ DecimalInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: DecimalInputDirective, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
84
+ DecimalPipe,
85
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
86
+ ], usesOnChanges: true, ngImport: i0 });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputDirective, decorators: [{
88
+ type: Directive,
89
+ args: [{
90
+ selector: 'input[buiDecimalInput]',
91
+ providers: [
92
+ DecimalPipe,
93
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
94
+ ]
95
+ }]
96
+ }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
97
+ type: Self
98
+ }] }, { type: i0.Renderer2 }]; }, propDecorators: { buiDecimalInput: [{
99
+ type: Input
100
+ }], placeholder: [{
101
+ type: HostBinding,
102
+ args: ['placeholder']
103
+ }], autocomplete: [{
104
+ type: HostBinding,
105
+ args: ['autocomplete']
106
+ }], type: [{
107
+ type: HostBinding,
108
+ args: ['type']
109
+ }], inputMode: [{
110
+ type: HostBinding,
111
+ args: ['attr.inputmode']
112
+ }], onInput: [{
113
+ type: HostListener,
114
+ args: ['input']
115
+ }], onKeypress: [{
116
+ type: HostListener,
117
+ args: ['keypress', ['$event']]
118
+ }], onFocus: [{
119
+ type: HostListener,
120
+ args: ['focus']
121
+ }], onblur: [{
122
+ type: HostListener,
123
+ args: ['blur']
124
+ }] } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ04sU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFzQmpDLFlBQTRCLEdBQWlDLEVBQVUsU0FBb0I7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBckIzRjs7V0FFRztRQUVILG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBR3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFHaEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixXQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFFdUUsQ0FBQztJQUUvRixXQUFXO1FBQ1YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJ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LFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0JwQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFJckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGZvcndhcmRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdFJlbmRlcmVyMixcblx0U2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcblxuLyogdHNsaW50OmRpc2FibGU6bm8tZW1wdHkgKi9cbmV4cG9ydCBjb25zdCBub29wX2NvbnN1bWVyID0gKF86IGFueSkgPT4ge307XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgd2lsbCBlbmhhbmNlIGFuIGlucHV0IGVsZW1lbnQgdG8gZm9ybWF0IHRoZSBudW1iZXJzIGVudGVyZWQgdG8gYSBkZWNpbWFsIGFtb3VudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpRGVjaW1hbElucHV0XScsXG5cdHByb3ZpZGVyczogW1xuXHRcdERlY2ltYWxQaXBlLFxuXHRcdHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERlY2ltYWxJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0LyoqXG5cdCAqIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRidWlEZWNpbWFsSW5wdXQ6IG51bWJlciA9IDI7XG5cblx0QEhvc3RCaW5kaW5nKCdwbGFjZWhvbGRlcicpXG5cdHByaXZhdGUgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG5cdEBIb3N0QmluZGluZygnYXV0b2NvbXBsZXRlJylcblx0cHJpdmF0ZSBhdXRvY29tcGxldGUgPSAnb2ZmJztcblxuXHRASG9zdEJpbmRpbmcoJ3R5cGUnKVxuXHRwcml2YXRlIHR5cGUgPSAnbnVtYmVyJztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaW5wdXRtb2RlJylcblx0cHJpdmF0ZSBpbnB1dE1vZGUgPSAnZGVjaW1hbCc7XG5cblx0cHJpdmF0ZSBjaGFuZ2UgPSBub29wX2NvbnN1bWVyO1xuXHRwcml2YXRlIG9uVG91Y2ggPSBub29wO1xuXG5cdGNvbnN0cnVjdG9yKEBTZWxmKCkgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cblx0bmdPbkNoYW5nZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5idWlEZWNpbWFsSW5wdXQgPSB0aGlzLmJ1aURlY2ltYWxJbnB1dCB8fCAyO1xuXHRcdHRoaXMub25JbnB1dCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignaW5wdXQnKVxuXHRvbklucHV0KCkge1xuXHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcblx0XHRjb25zdCBkZWNpbWFsUGFydCA9IHZhbHVlLnNwbGl0KCcuJylbMV07XG5cblx0XHRpZiAoZGVjaW1hbFBhcnQgJiYgZGVjaW1hbFBhcnQubGVuZ3RoID4gdGhpcy5idWlEZWNpbWFsSW5wdXQpIHtcblx0XHRcdGNvbnN0IGluZGV4T2ZQZXJpb2QgPSB2YWx1ZS5pbmRleE9mKCcuJyk7XG5cdFx0XHRjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBpbmRleE9mUGVyaW9kICsgdGhpcy5idWlEZWNpbWFsSW5wdXQgKyAxKTtcblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5ld1ZhbHVlKTtcblx0XHR9XG5cdFx0dGhpcy5jaGFuZ2UoTnVtYmVyKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQudmFsdWUpKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcblx0b25LZXlwcmVzcyhldnQ6IEtleWJvYXJkRXZlbnQpIHtcblx0XHRjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cdFx0Y29uc3QgdmFsdWUgPSB0YXJnZXQudmFsdWU7XG5cdFx0Y29uc3QgaXNTcGFjZSA9IGV2dC5rZXkgPT09ICcgJztcblxuXHRcdGlmIChcblx0XHRcdGlzU3BhY2UgfHxcblx0XHRcdCghWycuJywgJy0nXS5pbmNsdWRlcyhldnQua2V5KSAmJiBpc05hTihOdW1iZXIoZXZ0LmtleSkpKSB8fFxuXHRcdFx0KGV2dC5rZXkgPT09ICcuJyAmJiB2YWx1ZS5pbmRleE9mKCcuJykgPiAwKVxuXHRcdCkge1xuXHRcdFx0ZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge31cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25ibHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaCgpO1xuXHRcdHRoaXMuX3Jlc2V0RGVjaW1hbFBsYWNlcygpO1xuXHR9XG5cblx0d3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuXHRcdHRoaXMuX3Jlc2V0RGVjaW1hbFBsYWNlcygpO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5jaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcblx0fVxuXG5cdHByaXZhdGUgX3Jlc2V0RGVjaW1hbFBsYWNlcygpIHtcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0aWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHNwbGl0VmFsdWVzID0gdmFsdWUuc3BsaXQoJy4nKTtcblx0XHRsZXQgbmV3VmFsdWUgPSAnJztcblx0XHRpZiAoc3BsaXRWYWx1ZXNbMV0gJiYgc3BsaXRWYWx1ZXNbMV0ubGVuZ3RoID4gdGhpcy5idWlEZWNpbWFsSW5wdXQpIHtcblx0XHRcdG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIHNwbGl0VmFsdWVzWzBdLmxlbmd0aCArIDEgKyB0aGlzLmJ1aURlY2ltYWxJbnB1dCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuYnVpRGVjaW1hbElucHV0ID0gdGhpcy5idWlEZWNpbWFsSW5wdXQgPCAwID8gMCA6IHRoaXMuYnVpRGVjaW1hbElucHV0O1xuXHRcdFx0bmV3VmFsdWUgPSBOdW1iZXIodmFsdWUpLnRvRml4ZWQodGhpcy5idWlEZWNpbWFsSW5wdXQpO1xuXHRcdH1cblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBuZXdWYWx1ZSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { DecimalInputDirective } from './decimal-input.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class DecimalInputModule {
6
+ }
7
+ DecimalInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ DecimalInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] });
9
+ DecimalInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [DecimalInputDirective],
14
+ imports: [CommonModule],
15
+ exports: [DecimalInputDirective]
16
+ }]
17
+ }] });
18
+ export { DecimalInputDirective };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBSmYscUJBQXFCLGFBQzFCLFlBQVksYUFDWixxQkFBcUI7Z0hBRW5CLGtCQUFrQixZQUhwQixZQUFZOzJGQUdWLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDaEM7O0FBRUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY2ltYWxJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuXHRkZWNsYXJhdGlvbnM6IFtEZWNpbWFsSW5wdXREaXJlY3RpdmVdLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcblx0ZXhwb3J0czogW0RlY2ltYWxJbnB1dERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGVjaW1hbElucHV0TW9kdWxlIHt9XG5leHBvcnQgeyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgfTtcbiJdfQ==