@bravura/ui 3.8.1 → 5.0.0

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 +585 -565
  2. package/LICENSE +6 -6
  3. package/README.md +3 -1
  4. package/alert/alert-container.component.d.ts +1 -1
  5. package/alert/alert-message.component.d.ts +1 -1
  6. package/behavior/await.directive.d.ts +1 -1
  7. package/behavior/observe-content-class.directive.d.ts +1 -1
  8. package/behavior/sizing.directive.d.ts +1 -1
  9. package/clip-note/clip-note.directive.d.ts +1 -1
  10. package/currency-input/currency-input.directive.d.ts +1 -1
  11. package/decimal-input/decimal-input.directive.d.ts +1 -1
  12. package/discrete-input/discrete-input.component.d.ts +1 -1
  13. package/esm2022/alert/alert-container.component.mjs +207 -0
  14. package/esm2022/alert/alert-message.component.mjs +101 -0
  15. package/esm2022/alert/alert.module.mjs +22 -0
  16. package/{esm2020 → esm2022}/alert/public-api.mjs +1 -1
  17. package/esm2022/alert/testing/test-api.mjs +44 -0
  18. package/esm2022/behavior/await.directive.mjs +133 -0
  19. package/esm2022/behavior/behavior.module.mjs +37 -0
  20. package/esm2022/behavior/observe-content-class.directive.mjs +63 -0
  21. package/{esm2020 → esm2022}/behavior/public-api.mjs +1 -1
  22. package/esm2022/behavior/sizing-monitor.directive.mjs +31 -0
  23. package/esm2022/behavior/sizing.directive.mjs +256 -0
  24. package/esm2022/clip-note/clip-note.component.mjs +216 -0
  25. package/esm2022/clip-note/clip-note.directive.mjs +141 -0
  26. package/esm2022/clip-note/clip-note.module.mjs +32 -0
  27. package/{esm2020 → esm2022}/clip-note/public-api.mjs +1 -1
  28. package/{esm2020 → esm2022}/common/common-utils.mjs +1 -1
  29. package/esm2022/common/common.module.mjs +53 -0
  30. package/{esm2020 → esm2022}/common/public-api.mjs +1 -1
  31. package/esm2022/currency-input/currency-input.directive.mjs +276 -0
  32. package/esm2022/currency-input/currency-input.module.mjs +19 -0
  33. package/{esm2020 → esm2022}/currency-input/public-api.mjs +1 -1
  34. package/esm2022/decimal-input/decimal-input.directive.mjs +122 -0
  35. package/{esm2020 → esm2022}/decimal-input/decimal-input.module.mjs +5 -5
  36. package/esm2022/discrete-input/discrete-input.component.mjs +337 -0
  37. package/esm2022/discrete-input/discrete-input.module.mjs +21 -0
  38. package/{esm2020 → esm2022}/discrete-input/public-api.mjs +1 -1
  39. package/esm2022/file-upload/file-upload.component.mjs +400 -0
  40. package/esm2022/file-upload/file-upload.module.mjs +44 -0
  41. package/esm2022/file-upload/file-upload.service.mjs +29 -0
  42. package/{esm2020 → esm2022}/file-upload/public-api.mjs +1 -1
  43. package/esm2022/form-field/form-field.component.mjs +82 -0
  44. package/esm2022/form-field/form-field.module.mjs +33 -0
  45. package/{esm2020 → esm2022}/form-field/public-api.mjs +1 -1
  46. package/esm2022/icon-font/icon-font.module.mjs +22 -0
  47. package/esm2022/icon-font/icon.directive.mjs +102 -0
  48. package/{esm2020 → esm2022}/icon-font/public-api.mjs +1 -1
  49. package/esm2022/icon-font/utilities.mjs +51 -0
  50. package/esm2022/panel/panel-section.component.mjs +41 -0
  51. package/esm2022/panel/panel.component.mjs +87 -0
  52. package/esm2022/panel/panel.module.mjs +23 -0
  53. package/{esm2020 → esm2022}/panel/public-api.mjs +1 -1
  54. package/esm2022/panel/tinted.directive.mjs +60 -0
  55. package/esm2022/phone-number/phone-number.directive.mjs +188 -0
  56. package/{esm2020 → esm2022}/phone-number/phone-number.module.mjs +5 -5
  57. package/esm2022/phone-number/phone-number.pipe.mjs +47 -0
  58. package/esm2022/phone-number/phone-number.validator.mjs +64 -0
  59. package/{esm2020 → esm2022}/phone-number/public-api.mjs +1 -1
  60. package/{esm2020 → esm2022}/public-api.mjs +1 -1
  61. package/esm2022/radio-panel/radio-panel-item.component.mjs +93 -0
  62. package/esm2022/radio-panel/radio-panel.component.mjs +81 -0
  63. package/{esm2020 → esm2022}/radio-panel/radio-panel.module.mjs +5 -5
  64. package/esm2022/radio-panel/testing/test-api.mjs +46 -0
  65. package/{esm2020 → esm2022}/selection-panel/public-api.mjs +1 -1
  66. package/esm2022/selection-panel/selection-panel-item.component.mjs +166 -0
  67. package/esm2022/selection-panel/selection-panel.directive.mjs +119 -0
  68. package/esm2022/selection-panel/selection-panel.module.mjs +23 -0
  69. package/{esm2020 → esm2022}/skeletons/public-api.mjs +1 -1
  70. package/esm2022/skeletons/skeleton-loader-presets.directive.mjs +83 -0
  71. package/esm2022/skeletons/skeleton-loader.component.mjs +76 -0
  72. package/esm2022/skeletons/skeletons.module.mjs +35 -0
  73. package/{esm2020 → esm2022}/stepper/public-api.mjs +1 -1
  74. package/{esm2020 → esm2022}/stepper/stepper-animation.mjs +1 -1
  75. package/esm2022/stepper/stepper.component.mjs +176 -0
  76. package/esm2022/stepper/stepper.module.mjs +52 -0
  77. package/{esm2020 → esm2022}/tooltip/public-api.mjs +1 -1
  78. package/esm2022/tooltip/tooltip.component.mjs +63 -0
  79. package/esm2022/tooltip/tooltip.directive.mjs +148 -0
  80. package/esm2022/tooltip/tooltip.module.mjs +25 -0
  81. package/{fesm2020 → fesm2022}/bravura-ui-alert-testing.mjs +2 -2
  82. package/fesm2022/bravura-ui-alert-testing.mjs.map +1 -0
  83. package/fesm2022/bravura-ui-alert.mjs +327 -0
  84. package/fesm2022/bravura-ui-alert.mjs.map +1 -0
  85. package/{fesm2020 → fesm2022}/bravura-ui-behavior.mjs +45 -45
  86. package/fesm2022/bravura-ui-behavior.mjs.map +1 -0
  87. package/{fesm2020 → fesm2022}/bravura-ui-clip-note.mjs +70 -70
  88. package/fesm2022/bravura-ui-clip-note.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/bravura-ui-common.mjs +6 -6
  90. package/fesm2022/bravura-ui-common.mjs.map +1 -0
  91. package/{fesm2020 → fesm2022}/bravura-ui-currency-input.mjs +11 -11
  92. package/fesm2022/bravura-ui-currency-input.mjs.map +1 -0
  93. package/{fesm2020 → fesm2022}/bravura-ui-decimal-input.mjs +12 -12
  94. package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -0
  95. package/{fesm2020 → fesm2022}/bravura-ui-discrete-input.mjs +48 -48
  96. package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -0
  97. package/fesm2022/bravura-ui-file-upload.mjs +474 -0
  98. package/fesm2022/bravura-ui-file-upload.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/bravura-ui-form-field.mjs +19 -19
  100. package/fesm2022/bravura-ui-form-field.mjs.map +1 -0
  101. package/{fesm2020 → fesm2022}/bravura-ui-icon-font.mjs +8 -8
  102. package/fesm2022/bravura-ui-icon-font.mjs.map +1 -0
  103. package/fesm2022/bravura-ui-panel.mjs +206 -0
  104. package/fesm2022/bravura-ui-panel.mjs.map +1 -0
  105. package/{fesm2020 → fesm2022}/bravura-ui-phone-number.mjs +30 -30
  106. package/fesm2022/bravura-ui-phone-number.mjs.map +1 -0
  107. package/{fesm2020 → fesm2022}/bravura-ui-radio-panel-testing.mjs +5 -6
  108. package/fesm2022/bravura-ui-radio-panel-testing.mjs.map +1 -0
  109. package/{fesm2020 → fesm2022}/bravura-ui-radio-panel.mjs +32 -32
  110. package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -0
  111. package/fesm2022/bravura-ui-selection-panel.mjs +306 -0
  112. package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -0
  113. package/{fesm2020 → fesm2022}/bravura-ui-skeletons.mjs +43 -43
  114. package/fesm2022/bravura-ui-skeletons.mjs.map +1 -0
  115. package/fesm2022/bravura-ui-stepper.mjs +251 -0
  116. package/fesm2022/bravura-ui-stepper.mjs.map +1 -0
  117. package/{fesm2020 → fesm2022}/bravura-ui-tooltip.mjs +32 -24
  118. package/fesm2022/bravura-ui-tooltip.mjs.map +1 -0
  119. package/fesm2022/bravura-ui.mjs.map +1 -0
  120. package/file-upload/file-upload.component.d.ts +1 -1
  121. package/form-field/form-field.component.d.ts +1 -1
  122. package/icon-font/icon.directive.d.ts +1 -1
  123. package/package.json +88 -132
  124. package/panel/panel.component.d.ts +1 -1
  125. package/panel/tinted.directive.d.ts +1 -1
  126. package/phone-number/phone-number.directive.d.ts +1 -1
  127. package/phone-number/phone-number.validator.d.ts +2 -2
  128. package/radio-panel/radio-panel-item.component.d.ts +1 -1
  129. package/radio-panel/radio-panel.component.d.ts +1 -1
  130. package/radio-panel/testing/test-api.d.ts +2 -3
  131. package/selection-panel/selection-panel-item.component.d.ts +1 -1
  132. package/selection-panel/selection-panel.directive.d.ts +1 -1
  133. package/skeletons/skeleton-loader-presets.directive.d.ts +3 -3
  134. package/stepper/stepper.component.d.ts +1 -1
  135. package/theme/_bui-card.scss +56 -56
  136. package/theme/_ui-theme.scss +3 -3
  137. package/theme/global-style-by-bootstrap.scss +3 -3
  138. package/theme/global-style-by-tailwind.scss +3 -3
  139. package/theme/scrollbar.scss +40 -40
  140. package/tooltip/tooltip.component.d.ts +2 -0
  141. package/tooltip/tooltip.directive.d.ts +3 -5
  142. package/esm2020/alert/alert-container.component.mjs +0 -207
  143. package/esm2020/alert/alert-message.component.mjs +0 -102
  144. package/esm2020/alert/alert.module.mjs +0 -22
  145. package/esm2020/alert/testing/test-api.mjs +0 -44
  146. package/esm2020/behavior/await.directive.mjs +0 -133
  147. package/esm2020/behavior/behavior.module.mjs +0 -37
  148. package/esm2020/behavior/observe-content-class.directive.mjs +0 -63
  149. package/esm2020/behavior/sizing-monitor.directive.mjs +0 -31
  150. package/esm2020/behavior/sizing.directive.mjs +0 -256
  151. package/esm2020/clip-note/clip-note.component.mjs +0 -216
  152. package/esm2020/clip-note/clip-note.directive.mjs +0 -141
  153. package/esm2020/clip-note/clip-note.module.mjs +0 -32
  154. package/esm2020/common/common.module.mjs +0 -53
  155. package/esm2020/currency-input/currency-input.directive.mjs +0 -276
  156. package/esm2020/currency-input/currency-input.module.mjs +0 -19
  157. package/esm2020/decimal-input/decimal-input.directive.mjs +0 -122
  158. package/esm2020/discrete-input/discrete-input.component.mjs +0 -337
  159. package/esm2020/discrete-input/discrete-input.module.mjs +0 -21
  160. package/esm2020/file-upload/file-upload.component.mjs +0 -400
  161. package/esm2020/file-upload/file-upload.module.mjs +0 -44
  162. package/esm2020/file-upload/file-upload.service.mjs +0 -29
  163. package/esm2020/form-field/form-field.component.mjs +0 -82
  164. package/esm2020/form-field/form-field.module.mjs +0 -33
  165. package/esm2020/icon-font/icon-font.module.mjs +0 -22
  166. package/esm2020/icon-font/icon.directive.mjs +0 -102
  167. package/esm2020/icon-font/utilities.mjs +0 -51
  168. package/esm2020/panel/panel-section.component.mjs +0 -41
  169. package/esm2020/panel/panel.component.mjs +0 -87
  170. package/esm2020/panel/panel.module.mjs +0 -23
  171. package/esm2020/panel/tinted.directive.mjs +0 -60
  172. package/esm2020/phone-number/phone-number.directive.mjs +0 -188
  173. package/esm2020/phone-number/phone-number.pipe.mjs +0 -47
  174. package/esm2020/phone-number/phone-number.validator.mjs +0 -64
  175. package/esm2020/radio-panel/radio-panel-item.component.mjs +0 -93
  176. package/esm2020/radio-panel/radio-panel.component.mjs +0 -81
  177. package/esm2020/radio-panel/testing/test-api.mjs +0 -47
  178. package/esm2020/selection-panel/selection-panel-item.component.mjs +0 -166
  179. package/esm2020/selection-panel/selection-panel.directive.mjs +0 -119
  180. package/esm2020/selection-panel/selection-panel.module.mjs +0 -23
  181. package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +0 -83
  182. package/esm2020/skeletons/skeleton-loader.component.mjs +0 -76
  183. package/esm2020/skeletons/skeletons.module.mjs +0 -35
  184. package/esm2020/stepper/stepper.component.mjs +0 -176
  185. package/esm2020/stepper/stepper.module.mjs +0 -52
  186. package/esm2020/tooltip/tooltip.component.mjs +0 -54
  187. package/esm2020/tooltip/tooltip.directive.mjs +0 -149
  188. package/esm2020/tooltip/tooltip.module.mjs +0 -25
  189. package/fesm2015/bravura-ui-alert-testing.mjs +0 -64
  190. package/fesm2015/bravura-ui-alert-testing.mjs.map +0 -1
  191. package/fesm2015/bravura-ui-alert.mjs +0 -340
  192. package/fesm2015/bravura-ui-alert.mjs.map +0 -1
  193. package/fesm2015/bravura-ui-behavior.mjs +0 -515
  194. package/fesm2015/bravura-ui-behavior.mjs.map +0 -1
  195. package/fesm2015/bravura-ui-clip-note.mjs +0 -393
  196. package/fesm2015/bravura-ui-clip-note.mjs.map +0 -1
  197. package/fesm2015/bravura-ui-common.mjs +0 -96
  198. package/fesm2015/bravura-ui-common.mjs.map +0 -1
  199. package/fesm2015/bravura-ui-currency-input.mjs +0 -300
  200. package/fesm2015/bravura-ui-currency-input.mjs.map +0 -1
  201. package/fesm2015/bravura-ui-decimal-input.mjs +0 -145
  202. package/fesm2015/bravura-ui-decimal-input.mjs.map +0 -1
  203. package/fesm2015/bravura-ui-discrete-input.mjs +0 -365
  204. package/fesm2015/bravura-ui-discrete-input.mjs.map +0 -1
  205. package/fesm2015/bravura-ui-file-upload.mjs +0 -478
  206. package/fesm2015/bravura-ui-file-upload.mjs.map +0 -1
  207. package/fesm2015/bravura-ui-form-field.mjs +0 -120
  208. package/fesm2015/bravura-ui-form-field.mjs.map +0 -1
  209. package/fesm2015/bravura-ui-icon-font.mjs +0 -178
  210. package/fesm2015/bravura-ui-icon-font.mjs.map +0 -1
  211. package/fesm2015/bravura-ui-panel.mjs +0 -210
  212. package/fesm2015/bravura-ui-panel.mjs.map +0 -1
  213. package/fesm2015/bravura-ui-phone-number.mjs +0 -327
  214. package/fesm2015/bravura-ui-phone-number.mjs.map +0 -1
  215. package/fesm2015/bravura-ui-radio-panel-testing.mjs +0 -63
  216. package/fesm2015/bravura-ui-radio-panel-testing.mjs.map +0 -1
  217. package/fesm2015/bravura-ui-radio-panel.mjs +0 -200
  218. package/fesm2015/bravura-ui-radio-panel.mjs.map +0 -1
  219. package/fesm2015/bravura-ui-selection-panel.mjs +0 -311
  220. package/fesm2015/bravura-ui-selection-panel.mjs.map +0 -1
  221. package/fesm2015/bravura-ui-skeletons.mjs +0 -195
  222. package/fesm2015/bravura-ui-skeletons.mjs.map +0 -1
  223. package/fesm2015/bravura-ui-stepper.mjs +0 -253
  224. package/fesm2015/bravura-ui-stepper.mjs.map +0 -1
  225. package/fesm2015/bravura-ui-tooltip.mjs +0 -229
  226. package/fesm2015/bravura-ui-tooltip.mjs.map +0 -1
  227. package/fesm2015/bravura-ui.mjs.map +0 -1
  228. package/fesm2020/bravura-ui-alert-testing.mjs.map +0 -1
  229. package/fesm2020/bravura-ui-alert.mjs +0 -328
  230. package/fesm2020/bravura-ui-alert.mjs.map +0 -1
  231. package/fesm2020/bravura-ui-behavior.mjs.map +0 -1
  232. package/fesm2020/bravura-ui-clip-note.mjs.map +0 -1
  233. package/fesm2020/bravura-ui-common.mjs.map +0 -1
  234. package/fesm2020/bravura-ui-currency-input.mjs.map +0 -1
  235. package/fesm2020/bravura-ui-decimal-input.mjs.map +0 -1
  236. package/fesm2020/bravura-ui-discrete-input.mjs.map +0 -1
  237. package/fesm2020/bravura-ui-file-upload.mjs +0 -474
  238. package/fesm2020/bravura-ui-file-upload.mjs.map +0 -1
  239. package/fesm2020/bravura-ui-form-field.mjs.map +0 -1
  240. package/fesm2020/bravura-ui-icon-font.mjs.map +0 -1
  241. package/fesm2020/bravura-ui-panel.mjs +0 -206
  242. package/fesm2020/bravura-ui-panel.mjs.map +0 -1
  243. package/fesm2020/bravura-ui-phone-number.mjs.map +0 -1
  244. package/fesm2020/bravura-ui-radio-panel-testing.mjs.map +0 -1
  245. package/fesm2020/bravura-ui-radio-panel.mjs.map +0 -1
  246. package/fesm2020/bravura-ui-selection-panel.mjs +0 -306
  247. package/fesm2020/bravura-ui-selection-panel.mjs.map +0 -1
  248. package/fesm2020/bravura-ui-skeletons.mjs.map +0 -1
  249. package/fesm2020/bravura-ui-stepper.mjs +0 -251
  250. package/fesm2020/bravura-ui-stepper.mjs.map +0 -1
  251. package/fesm2020/bravura-ui-tooltip.mjs.map +0 -1
  252. package/fesm2020/bravura-ui.mjs +0 -8
  253. package/fesm2020/bravura-ui.mjs.map +0 -1
  254. /package/{esm2020 → esm2022}/alert/bravura-ui-alert.mjs +0 -0
  255. /package/{esm2020 → esm2022}/alert/testing/bravura-ui-alert-testing.mjs +0 -0
  256. /package/{esm2020 → esm2022}/behavior/bravura-ui-behavior.mjs +0 -0
  257. /package/{esm2020 → esm2022}/bravura-ui.mjs +0 -0
  258. /package/{esm2020 → esm2022}/clip-note/bravura-ui-clip-note.mjs +0 -0
  259. /package/{esm2020 → esm2022}/common/bravura-ui-common.mjs +0 -0
  260. /package/{esm2020 → esm2022}/currency-input/bravura-ui-currency-input.mjs +0 -0
  261. /package/{esm2020 → esm2022}/decimal-input/bravura-ui-decimal-input.mjs +0 -0
  262. /package/{esm2020 → esm2022}/decimal-input/public-api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/discrete-input/bravura-ui-discrete-input.mjs +0 -0
  264. /package/{esm2020 → esm2022}/file-upload/bravura-ui-file-upload.mjs +0 -0
  265. /package/{esm2020 → esm2022}/form-field/bravura-ui-form-field.mjs +0 -0
  266. /package/{esm2020 → esm2022}/icon-font/bravura-ui-icon-font.mjs +0 -0
  267. /package/{esm2020 → esm2022}/panel/bravura-ui-panel.mjs +0 -0
  268. /package/{esm2020 → esm2022}/phone-number/bravura-ui-phone-number.mjs +0 -0
  269. /package/{esm2020 → esm2022}/radio-panel/bravura-ui-radio-panel.mjs +0 -0
  270. /package/{esm2020 → esm2022}/radio-panel/public-api.mjs +0 -0
  271. /package/{esm2020 → esm2022}/radio-panel/testing/bravura-ui-radio-panel-testing.mjs +0 -0
  272. /package/{esm2020 → esm2022}/selection-panel/bravura-ui-selection-panel.mjs +0 -0
  273. /package/{esm2020 → esm2022}/skeletons/bravura-ui-skeletons.mjs +0 -0
  274. /package/{esm2020 → esm2022}/stepper/bravura-ui-stepper.mjs +0 -0
  275. /package/{esm2020 → esm2022}/tooltip/bravura-ui-tooltip.mjs +0 -0
  276. /package/{fesm2015 → fesm2022}/bravura-ui.mjs +0 -0
@@ -0,0 +1,276 @@
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
+ const val = input
215
+ .replace(this._ds, 'd')
216
+ .replace(/[^0-9d-]/g, '')
217
+ .replace('d', '.');
218
+ return parseFloat(val);
219
+ }
220
+ get _0Text() {
221
+ const decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;
222
+ return this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;
223
+ }
224
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", 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 }); }
225
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", 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 }); }
226
+ }
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CurrencyInputDirective, decorators: [{
228
+ type: Directive,
229
+ args: [{
230
+ selector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',
231
+ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }]
232
+ }]
233
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
234
+ type: Self
235
+ }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
236
+ type: Inject,
237
+ args: [LOCALE_ID]
238
+ }] }, { type: undefined, decorators: [{
239
+ type: Inject,
240
+ args: [DEFAULT_CURRENCY_CODE]
241
+ }] }, { type: i1.MatFormField, decorators: [{
242
+ type: Optional
243
+ }, {
244
+ type: Inject,
245
+ args: [MAT_FORM_FIELD]
246
+ }] }], propDecorators: { allowNegative: [{
247
+ type: Input
248
+ }], currencyCode: [{
249
+ type: Input
250
+ }], baseUnitOnly: [{
251
+ type: Input
252
+ }], format: [{
253
+ type: Input
254
+ }], placeholder: [{
255
+ type: HostBinding,
256
+ args: ['placeholder']
257
+ }], autocomplete: [{
258
+ type: HostBinding,
259
+ args: ['autocomplete']
260
+ }], type: [{
261
+ type: HostBinding,
262
+ args: ['type']
263
+ }], inputMode: [{
264
+ type: HostBinding,
265
+ args: ['attr.inputmode']
266
+ }], onInput: [{
267
+ type: HostListener,
268
+ args: ['input']
269
+ }], onFocus: [{
270
+ type: HostListener,
271
+ args: ['focus']
272
+ }], onblur: [{
273
+ type: HostListener,
274
+ args: ['blur']
275
+ }] } });
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQjs7O1dBR0c7UUFFSCxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUUxQjs7O1dBR0c7UUFFSCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQjs7V0FFRztRQUVILFdBQU0sR0FBc0IsTUFBTSxDQUFDO1FBRzNCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLFNBQUksR0FBRyxNQUFNLENBQUM7UUFHZCxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBRXRCLFdBQU0sR0FBRyxhQUFhLENBQUM7UUFDdkIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLFlBQU8sR0FBVyxHQUFHLENBQUM7UUFHdEIsUUFBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQjtRQUMvQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBU3pCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLFdBQVc7UUFDVixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUdELE9BQU87UUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFHRCxPQUFPO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBR0QsTUFBTTtRQUNMLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sa0JBQWtCO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLFlBQVksUUFBUSxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckQsQ0FBQztJQUNGLENBQUM7SUFFTyxnQkFBZ0I7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3RGLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQVcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFtQyxFQUFFLElBQWEsRUFBRSxLQUFjO1FBQ3pGLDZDQUE2QztRQUM3QywwQ0FBMEM7UUFDMUMsa0JBQWtCO1FBQ2xCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRTFDLDZCQUE2QjtRQUM3QixJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLE9BQU87UUFDUixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFNUMsOEVBQThFO1FBQzlFLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLElBQUksYUFBYSxLQUFLLEVBQUUsSUFBSSxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0QsT0FBTztRQUNSLENBQUM7YUFBTSxJQUNOLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUQsYUFBYSxLQUFLLEdBQUc7WUFDckIsYUFBYSxLQUFLLElBQUksRUFDckIsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsT0FBTztRQUNSLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5FLGtCQUFrQjtRQUNsQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRXRDLHlCQUF5QjtRQUN6QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUVuRCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakcsb0JBQW9CO1FBQ3BCLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEMsZ0NBQWdDO1lBQ2hDLHVDQUF1QztZQUN2QyxnQkFBZ0I7WUFDaEIsSUFBSSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFOUMsZ0NBQWdDO1lBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3BELElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFbEQsb0NBQW9DO1lBQ3BDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFdEQsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLFNBQVMsR0FBRyxHQUFHLENBQUM7WUFDakIsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3hCLHNCQUFzQjtnQkFDdEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUUzQyxpQ0FBaUM7Z0JBQ2pDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ1AsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxVQUFVLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO2dCQUVELDRDQUE0QztnQkFDNUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDVixVQUFVLElBQUksSUFBSSxDQUFDO2dCQUNwQixDQUFDO2dCQUVELFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFeEMsbUJBQW1CO2dCQUNuQixTQUFTLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDO1lBQy9DLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLENBQUM7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVoRCxtQkFBbUI7WUFDbkIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2hDLFNBQVMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDO1FBQ0YsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN6Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsU0FBUyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLENBQUM7UUFDRixDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLHFFQUFxRTtZQUNyRSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUUxRCw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QixJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekIsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRSx1Q0FBdUM7UUFDdkMsSUFBSSxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2YsU0FBUyxHQUFHLFdBQVcsR0FBRyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQ25ELElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDN0YsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNGLENBQUM7SUFFRCx5Q0FBeUM7SUFDakMsYUFBYSxDQUFDLENBQVMsRUFBRSxPQUFnQixLQUFLO1FBQ3JELHFDQUFxQztRQUNyQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNWLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFXLENBQUM7SUFDMUQsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFhO1FBQzdCLE1BQU0sR0FBRyxHQUFHLEtBQUs7YUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7YUFDdEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7YUFDeEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUM1RixDQUFDOzhHQTdRVyxzQkFBc0IsaUZBb0R6QixTQUFTLGFBQ1QscUJBQXFCLGFBQ1QsY0FBYztrR0F0RHZCLHNCQUFzQixvY0FGdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzsyRkFFbkcsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx1RUFBdUU7b0JBQ2pGLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUMvRzs7MEJBbURFLElBQUk7OzBCQUVKLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMscUJBQXFCOzswQkFDNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjO3lDQWhEbkMsYUFBYTtzQkFEWixLQUFLO2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQUlFLFdBQVc7c0JBRGxCLFdBQVc7dUJBQUMsYUFBYTtnQkFJbEIsWUFBWTtzQkFEbkIsV0FBVzt1QkFBQyxjQUFjO2dCQUluQixJQUFJO3NCQURYLFdBQVc7dUJBQUMsTUFBTTtnQkFJWCxTQUFTO3NCQURoQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFnQzdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSwgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG5cdERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSxcclxuXHREaXJlY3RpdmUsXHJcblx0RWxlbWVudFJlZixcclxuXHRmb3J3YXJkUmVmLFxyXG5cdEhvc3RCaW5kaW5nLFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRJbmplY3QsXHJcblx0SW5wdXQsXHJcblx0TE9DQUxFX0lELFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPbkluaXQsXHJcblx0T3B0aW9uYWwsXHJcblx0UmVuZGVyZXIyLFxyXG5cdFNlbGYsXHJcblx0ybVmaW5kTG9jYWxlRGF0YVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTUFUX0ZPUk1fRklFTEQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOm5vLWVtcHR5ICovXHJcbmV4cG9ydCBjb25zdCBub29wX2NvbnN1bWVyID0gKF86IGFueSkgPT4ge307XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgd2lsbCBlbmhhbmNlIGFuIGlucHV0IGVsZW1lbnQgdG8gZm9ybWF0IHRoZSBudW1iZXJzIGVudGVyZWQgdG8gYSBjdXJyZW5jeSBhbW91bnQuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ2lucHV0W2J1aUN1cnJlbmN5SW5wdXRdLGlucHV0W2N1cnJlbmN5Q29kZV0saW5wdXRbZGF0YS10eXBlPWN1cnJlbmN5XScsXHJcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHQvKipcclxuXHQgKiB0cnVlIHRvIGFsbG93IG5lZ2F0aXZlIGlucHV0LCBvdGhlcndpc2UgZmFsc2VcclxuXHQgKiBEZWZhdWx0IHRvIGZhbHNlLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0YWxsb3dOZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBQcm92aWRlIHRoZSBjdXJyZW5jeSBjb2RlIHRvIGZvcm1hdCB0aGUgZW50ZXJlZCBhbW91bnQuXHJcblx0ICogVXNlcyBhbmd1bGFyIHRva2VuIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSBieSBkZWZhdWx0LlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Y3VycmVuY3lDb2RlOiBzdHJpbmcgPSAnJztcclxuXHJcblx0LyoqXHJcblx0ICogdHJ1ZSBpZiBubyBkZWNpbWFsIGRpZ2l0cyBhbGxvd2VkLCBvdGhlcndpc2UgZmFsc2UuXHJcblx0ICogRGVmYXVsdCB0byBmYWxzZS5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGJhc2VVbml0T25seSA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgZm9ybWF0IHRoZSBvZiB0aGUgYW1vdW50IGVpdGhlciBpbiB3aWRlIG9yIG5hcnJvdy5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGZvcm1hdDogJ25hcnJvdycgfCAnd2lkZScgPSAnd2lkZSc7XHJcblxyXG5cdEBIb3N0QmluZGluZygncGxhY2Vob2xkZXInKVxyXG5cdHByaXZhdGUgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuXHRASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpXHJcblx0cHJpdmF0ZSBhdXRvY29tcGxldGUgPSAnb2ZmJztcclxuXHJcblx0QEhvc3RCaW5kaW5nKCd0eXBlJylcclxuXHRwcml2YXRlIHR5cGUgPSAndGV4dCc7XHJcblxyXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxyXG5cdHByaXZhdGUgaW5wdXRNb2RlID0gJ2RlY2ltYWwnO1xyXG5cclxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XHJcblx0cHJpdmF0ZSBvblRvdWNoID0gbm9vcDtcclxuXHRwcml2YXRlIF9zYWZhcmk6IGJvb2xlYW47XHJcblx0cHJpdmF0ZSBfc3ltYm9sOiBzdHJpbmcgPSAnJCc7XHJcblx0cHJpdmF0ZSBfZGVjaW1hbFBpcGUhOiBEZWNpbWFsUGlwZTtcclxuXHJcblx0cHJpdmF0ZSBfZHMgPSAnLic7IC8vIGRlY2ltYWwgc2VwYXJhdG9yXHJcblx0cHJpdmF0ZSBfdHJhaWxpbmcgPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRAU2VsZigpIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxyXG5cdFx0cHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcclxuXHRcdEBJbmplY3QoREVGQVVMVF9DVVJSRU5DWV9DT0RFKSBwcml2YXRlIF9kZWZhdWx0Q3VycmVuY3lDb2RlOiBzdHJpbmcsXHJcblx0XHRAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwcml2YXRlIF9maWVsZD86IE1hdEZvcm1GaWVsZFxyXG5cdCkge1xyXG5cdFx0Y29uc3QgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuXHRcdHRoaXMuX3NhZmFyaSA9ICF1c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvaSkgJiYgIXVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lL2kpICYmICEhdXNlckFnZW50Lm1hdGNoKC9zYWZhcmkvaSk7XHJcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge31cclxuXHJcblx0bmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcclxuXHRcdHRoaXMub25JbnB1dCgpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignaW5wdXQnKVxyXG5cdG9uSW5wdXQoKSB7XHJcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxyXG5cdG9uRm9jdXMoKSB7XHJcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXHJcblx0b25ibHVyKCkge1xyXG5cdFx0dGhpcy5vblRvdWNoKCk7XHJcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgdHJ1ZSwgZmFsc2UpO1xyXG5cdH1cclxuXHJcblx0d3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcblx0XHR2YWx1ZSA9IHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XHJcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgdHJ1ZSwgZmFsc2UpO1xyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcblx0XHR0aGlzLmNoYW5nZSA9IGZuO1xyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG5cdFx0dGhpcy5vblRvdWNoID0gZm47XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF91cGRhdGVQbGFjZWhvbGRlcigpIHtcclxuXHRcdHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMuXzBUZXh0O1xyXG5cdFx0aWYgKHRoaXMuX2ZpZWxkPy5fY29udHJvbCBpbnN0YW5jZW9mIE1hdElucHV0KSB7XHJcblx0XHRcdHRoaXMuX2ZpZWxkLl9jb250cm9sLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2N1cnJlbmN5VXBkYXRlZCgpIHtcclxuXHRcdHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5jdXJyZW5jeUNvZGUgfHwgdGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTtcclxuXHRcdHRoaXMuX3N5bWJvbCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuY3VycmVuY3lDb2RlLCB0aGlzLmZvcm1hdCwgdGhpcy5fbG9jYWxlKSB8fCAnJCc7XHJcblx0XHRjb25zdCBsb2NhbGVEYXRhID0gybVmaW5kTG9jYWxlRGF0YSh0aGlzLl9sb2NhbGUpO1xyXG5cdFx0dGhpcy5fZHMgPSBsb2NhbGVEYXRhWzEzXVswXTtcclxuXHRcdHRoaXMuX2RlY2ltYWxQaXBlID0gbmV3IERlY2ltYWxQaXBlKHRoaXMuX2xvY2FsZSk7XHJcblx0XHRjb25zdCBjdXJGb3JtYXQ6IHN0cmluZyA9IGxvY2FsZURhdGFbMTRdWzJdO1xyXG5cdFx0dGhpcy5fdHJhaWxpbmcgPSBjdXJGb3JtYXQuaW5kZXhPZignwqQnKSA+IDA7XHJcblx0XHR0aGlzLl91cGRhdGVQbGFjZWhvbGRlcigpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZm9ybWF0Q3VycmVuY3koaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sIGJsdXI6IGJvb2xlYW4sIGZvY3VzOiBib29sZWFuKSB7XHJcblx0XHQvLyBhcHBlbmRzICQgdG8gdmFsdWUsIHZhbGlkYXRlcyBkZWNpbWFsIHNpZGVcclxuXHRcdC8vIGFuZCBwdXRzIGN1cnNvciBiYWNrIGluIHJpZ2h0IHBvc2l0aW9uLlxyXG5cdFx0Ly8gZ2V0IGlucHV0IHZhbHVlXHJcblx0XHRsZXQgaW5wdXRfdmFsID0gaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuXHJcblx0XHQvLyBkb24ndCB2YWxpZGF0ZSBlbXB0eSBpbnB1dFxyXG5cdFx0aWYgKGlucHV0X3ZhbCA9PT0gJycpIHtcclxuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBtaW51cyA9IHRoaXMuYWxsb3dOZWdhdGl2ZSA/ICctJyA6ICcnO1xyXG5cclxuXHRcdC8vIHJlbW92ZSBub24gZGlnaXQgdmFsdWVzIGV4Y2VwdCBjdXJyZW5jeSBzeW1ib2wsIGRlY2ltYWwgc2VwYXJhdG9yIGFuZCBoeXBlblxyXG5cdFx0Y29uc3QgcmVnID0gbmV3IFJlZ0V4cChgW14wLTkke21pbnVzfSR7dGhpcy5fc3ltYm9sfSR7dGhpcy5fZHN9XWAsICdnJyk7XHJcblxyXG5cdFx0bGV0IHNhbml0aXNlVmFsdWUgPSBpbnB1dF92YWwucmVwbGFjZShyZWcsICcnKTtcclxuXHJcblx0XHRpZiAoc2FuaXRpc2VWYWx1ZSA9PT0gJycgfHwgc2FuaXRpc2VWYWx1ZSA9PT0gdGhpcy5fc3ltYm9sKSB7XHJcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xyXG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCAnJyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH0gZWxzZSBpZiAoXHJcblx0XHRcdCh0aGlzLmFsbG93TmVnYXRpdmUgJiYgc2FuaXRpc2VWYWx1ZSA9PT0gYC0ke3RoaXMuX3N5bWJvbH1gKSB8fFxyXG5cdFx0XHRzYW5pdGlzZVZhbHVlID09PSAnLScgfHxcclxuXHRcdFx0c2FuaXRpc2VWYWx1ZSA9PT0gJy0tJ1xyXG5cdFx0KSB7XHJcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xyXG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCAnLScpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgbmVnYXRpdmUgPSB0aGlzLmFsbG93TmVnYXRpdmUgJiYgaW5wdXRfdmFsLmluZGV4T2YoJy0nKSA+PSAwO1xyXG5cclxuXHRcdC8vIG9yaWdpbmFsIGxlbmd0aFxyXG5cdFx0Y29uc3Qgb3JpZ2luYWxfbGVuID0gaW5wdXRfdmFsLmxlbmd0aDtcclxuXHJcblx0XHQvLyBpbml0aWFsIGNhcmV0IHBvc2l0aW9uXHJcblx0XHRsZXQgY2FyZXRfcG9zID0gaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuXHJcblx0XHRpbnB1dF92YWwgPSBpbnB1dF92YWwucmVwbGFjZShSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX2RzfV1gLCAnZycpLCAnJykucmVwbGFjZSgvXlxcLlxcLi8sICcnKTtcclxuXHRcdC8vIGNoZWNrIGZvciBkZWNpbWFsXHJcblx0XHRpZiAoaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpID49IDApIHtcclxuXHRcdFx0Ly8gZ2V0IHBvc2l0aW9uIG9mIGZpcnN0IGRlY2ltYWxcclxuXHRcdFx0Ly8gdGhpcyBwcmV2ZW50cyBtdWx0aXBsZSBkZWNpbWFscyBmcm9tXHJcblx0XHRcdC8vIGJlaW5nIGVudGVyZWRcclxuXHRcdFx0bGV0IGRlY2ltYWxfcG9zID0gaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpO1xyXG5cclxuXHRcdFx0Ly8gc3BsaXQgbnVtYmVyIGJ5IGRlY2ltYWwgcG9pbnRcclxuXHRcdFx0bGV0IGxlZnRfc2lkZSA9IGlucHV0X3ZhbC5zdWJzdHJpbmcoMCwgZGVjaW1hbF9wb3MpO1xyXG5cdFx0XHRsZXQgcmlnaHRfc2lkZSA9IGlucHV0X3ZhbC5zdWJzdHJpbmcoZGVjaW1hbF9wb3MpO1xyXG5cclxuXHRcdFx0Ly8gYWRkIGNvbW1hcyB0byBsZWZ0IHNpZGUgb2YgbnVtYmVyXHJcblx0XHRcdGxlZnRfc2lkZSA9IHRoaXMuX2Zvcm1hdE51bWJlcihsZWZ0X3NpZGUsIGJsdXIpIHx8ICcnO1xyXG5cclxuXHRcdFx0Ly8gbm8gdmFsdWUgYXBwZW5kIGEgemVybyBmb3IgZGVjaW1hbCB2YWx1ZXNcclxuXHRcdFx0aWYgKCFsZWZ0X3NpZGUubGVuZ3RoKSB7XHJcblx0XHRcdFx0bGVmdF9zaWRlID0gJzAnO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMuYmFzZVVuaXRPbmx5KSB7XHJcblx0XHRcdFx0Ly8gdmFsaWRhdGUgcmlnaHQgc2lkZVxyXG5cdFx0XHRcdHJpZ2h0X3NpZGUgPSByaWdodF9zaWRlLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcblxyXG5cdFx0XHRcdC8vIExpbWl0IGRlY2ltYWwgdG8gb25seSAyIGRpZ2l0c1xyXG5cdFx0XHRcdGxldCB2ID0gTnVtYmVyKGAwLiR7cmlnaHRfc2lkZX1gKTtcclxuXHRcdFx0XHRpZiAodikge1xyXG5cdFx0XHRcdFx0Y29uc3QgbGVuZ3RoID0gcmlnaHRfc2lkZS5sZW5ndGggPiAxID8gMiA6IDE7XHJcblx0XHRcdFx0XHRyaWdodF9zaWRlID0gdi50b0ZpeGVkKGxlbmd0aCkuc3Vic3RyaW5nKDIsIDQpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gT24gYmx1ciBtYWtlIHN1cmUgMiBudW1iZXJzIGFmdGVyIGRlY2ltYWxcclxuXHRcdFx0XHRpZiAoYmx1cikge1xyXG5cdFx0XHRcdFx0cmlnaHRfc2lkZSArPSAnMDAnO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUuc3Vic3RyaW5nKDAsIDIpO1xyXG5cclxuXHRcdFx0XHQvLyBqb2luIG51bWJlciBieSAuXHJcblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlICsgdGhpcy5fZHMgKyByaWdodF9zaWRlO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fZm9ybWF0TnVtYmVyKGlucHV0X3ZhbCwgYmx1cik7XHJcblxyXG5cdFx0XHQvLyBmaW5hbCBmb3JtYXR0aW5nXHJcblx0XHRcdGlmIChibHVyICYmICF0aGlzLmJhc2VVbml0T25seSkge1xyXG5cdFx0XHRcdGlucHV0X3ZhbCArPSBgJHt0aGlzLl9kc30wMGA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBudW1TdHIgPSBpbnB1dF92YWw7XHJcblx0XHQvLyBhcHBlbmQgdGhlIGN1cnJlbmN5IHN5bWJvbFxyXG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkgfHwgIWZvY3VzKSB7XHJcblx0XHRcdGlmICh0aGlzLl90cmFpbGluZykge1xyXG5cdFx0XHRcdGlucHV0X3ZhbCA9IGlucHV0X3ZhbCArICcgJyArIHRoaXMuX3N5bWJvbDtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRpbnB1dF92YWwgPSB0aGlzLl9zeW1ib2wgKyBpbnB1dF92YWw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAobmVnYXRpdmUpIHtcclxuXHRcdFx0Ly8gYXBwZW5kIHRoZSBoeXBlbiBiYWNrIHRvIHRoZSB2YWx1ZSBpZiBhIG5lZ2F0aXZlIHZhbHVlIHdhcyBlbnRlcmVkXHJcblx0XHRcdGlucHV0X3ZhbCA9IGAtJHtpbnB1dF92YWx9YDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBudW0gPSB0aGlzLl9jb252ZXJ0KChuZWdhdGl2ZSA/ICctJyA6ICcnKSArIG51bVN0cik7XHJcblxyXG5cdFx0Ly8gdXBkYXRlIGNvbnRyb2wgdmFsdWUgZmlyc3Qgd2l0aCB0aGUgbnVtYmVyXHJcblx0XHR0aGlzLmNoYW5nZShOdW1iZXIobnVtKSk7XHJcblxyXG5cdFx0aWYgKGJsdXIgJiYgbnVtID09PSAwKSB7XHJcblx0XHRcdGlucHV0X3ZhbCA9IHRoaXMuXzBUZXh0O1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIHVwZGF0ZSBkb20gd2l0aCB0aGUgZm9ybWF0dGVkIHZhbHVlXHJcblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBpbnB1dF92YWwpO1xyXG5cdFx0Ly8gcHV0IGNhcmV0IGJhY2sgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uXHJcblx0XHRsZXQgdXBkYXRlZF9sZW4gPSBpbnB1dF92YWwubGVuZ3RoO1xyXG5cdFx0aWYgKGNhcmV0X3Bvcykge1xyXG5cdFx0XHRjYXJldF9wb3MgPSB1cGRhdGVkX2xlbiAtIG9yaWdpbmFsX2xlbiArIGNhcmV0X3BvcztcclxuXHRcdFx0aWYgKGlucHV0X3ZhbC5zdWJzdHJpbmcoY2FyZXRfcG9zIC0gdGhpcy5fc3ltYm9sLmxlbmd0aCkgPT09IHRoaXMuX3N5bWJvbCAmJiB0aGlzLl90cmFpbGluZykge1xyXG5cdFx0XHRcdGNhcmV0X3BvcyAtPSB0aGlzLl9zeW1ib2wubGVuZ3RoICsgMTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkpIHtcclxuXHRcdFx0aW5wdXQubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjYXJldF9wb3MsIGNhcmV0X3Bvcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBmb3JtYXQgdGhlIG51bWJlciBpbnRvIGN1cnJlbmN5IGZvcm1hdFxyXG5cdHByaXZhdGUgX2Zvcm1hdE51bWJlcihuOiBzdHJpbmcsIGJsdXI6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cdFx0Ly8gZm9ybWF0IG51bWJlciAxMDAwMDAwIHRvIDEsMjM0LDU2N1xyXG5cdFx0biA9IG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuXHRcdGlmIChibHVyKSB7XHJcblx0XHRcdG4gPSBuLnJlcGxhY2UoL14wKy8sICcnKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0obiwgJzEuMC0wJykgYXMgc3RyaW5nO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfY29udmVydChpbnB1dDogc3RyaW5nKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IHZhbCA9IGlucHV0XHJcblx0XHRcdC5yZXBsYWNlKHRoaXMuX2RzLCAnZCcpXHJcblx0XHRcdC5yZXBsYWNlKC9bXjAtOWQtXS9nLCAnJylcclxuXHRcdFx0LnJlcGxhY2UoJ2QnLCAnLicpO1xyXG5cdFx0cmV0dXJuIHBhcnNlRmxvYXQodmFsKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0IF8wVGV4dCgpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgZGVjaW1hbFN0ciA9IHRoaXMuYmFzZVVuaXRPbmx5ID8gJycgOiBgJHt0aGlzLl9kc30wMGA7XHJcblx0XHRyZXR1cm4gdGhpcy5fdHJhaWxpbmcgPyBgMCR7ZGVjaW1hbFN0cn0gJHt0aGlzLl9zeW1ib2x9YCA6IGAke3RoaXMuX3N5bWJvbH0wJHtkZWNpbWFsU3RyfWA7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CurrencyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: CurrencyInputModule, declarations: [CurrencyInputDirective], imports: [CommonModule], exports: [CurrencyInputDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CurrencyInputModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixpQkFKaEIsc0JBQXNCLGFBQzNCLFlBQVksYUFDWixzQkFBc0I7K0dBRXBCLG1CQUFtQixZQUhyQixZQUFZOzsyRkFHVixtQkFBbUI7a0JBTC9CLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOztBQUdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0ZGVjbGFyYXRpb25zOiBbQ3VycmVuY3lJbnB1dERpcmVjdGl2ZV0sXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcblx0ZXhwb3J0czogW0N1cnJlbmN5SW5wdXREaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0TW9kdWxlIHt9XHJcblxyXG5leHBvcnQgeyBDdXJyZW5jeUlucHV0RGlyZWN0aXZlIH07XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export * from './currency-input.module';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2N1cnJlbmN5LWlucHV0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3ktaW5wdXQubW9kdWxlJztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2N1cnJlbmN5LWlucHV0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3ktaW5wdXQubW9kdWxlJztcclxuIl19
@@ -0,0 +1,122 @@
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
+ const resolvedValue = this._el.nativeElement.value;
39
+ this.change(resolvedValue === '' || resolvedValue === null || resolvedValue === undefined ? null : Number(resolvedValue));
40
+ }
41
+ onKeypress(evt) {
42
+ const target = evt.target;
43
+ const value = target.value;
44
+ const isSpace = evt.key === ' ';
45
+ if (isSpace ||
46
+ (!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||
47
+ (evt.key === '.' && value.indexOf('.') > 0)) {
48
+ evt.preventDefault();
49
+ }
50
+ }
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: DecimalInputDirective, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
83
+ DecimalPipe,
84
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
85
+ ], usesOnChanges: true, ngImport: i0 }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", 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: () => [{ 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
+ }], onblur: [{
119
+ type: HostListener,
120
+ args: ['blur']
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ04sU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFzQmpDLFlBQTRCLEdBQWlDLEVBQVUsU0FBb0I7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBckIzRjs7V0FFRztRQUVILG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBR3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFHaEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixXQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFFdUUsQ0FBQztJQUUvRixXQUFXO1FBQ1YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJ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LGFBQWE7Z0JBSWxCLFlBQVk7c0JBRG5CLFdBQVc7dUJBQUMsY0FBYztnQkFJbkIsSUFBSTtzQkFEWCxXQUFXO3VCQUFDLE1BQU07Z0JBSVgsU0FBUztzQkFEaEIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBYzdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQWtCckIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQnBDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG5cdERpcmVjdGl2ZSxcclxuXHRFbGVtZW50UmVmLFxyXG5cdGZvcndhcmRSZWYsXHJcblx0SG9zdEJpbmRpbmcsXHJcblx0SG9zdExpc3RlbmVyLFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRSZW5kZXJlcjIsXHJcblx0U2VsZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOm5vLWVtcHR5ICovXHJcbmV4cG9ydCBjb25zdCBub29wX2NvbnN1bWVyID0gKF86IGFueSkgPT4ge307XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgd2lsbCBlbmhhbmNlIGFuIGlucHV0IGVsZW1lbnQgdG8gZm9ybWF0IHRoZSBudW1iZXJzIGVudGVyZWQgdG8gYSBkZWNpbWFsIGFtb3VudC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpRGVjaW1hbElucHV0XScsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHREZWNpbWFsUGlwZSxcclxuXHRcdHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERlY2ltYWxJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1cclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHQvKipcclxuXHQgKiBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgYWxsb3dlZFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0YnVpRGVjaW1hbElucHV0OiBudW1iZXIgPSAyO1xyXG5cclxuXHRASG9zdEJpbmRpbmcoJ3BsYWNlaG9sZGVyJylcclxuXHRwcml2YXRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcblx0QEhvc3RCaW5kaW5nKCdhdXRvY29tcGxldGUnKVxyXG5cdHByaXZhdGUgYXV0b2NvbXBsZXRlID0gJ29mZic7XHJcblxyXG5cdEBIb3N0QmluZGluZygndHlwZScpXHJcblx0cHJpdmF0ZSB0eXBlID0gJ251bWJlcic7XHJcblxyXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxyXG5cdHByaXZhdGUgaW5wdXRNb2RlID0gJ2RlY2ltYWwnO1xyXG5cclxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XHJcblx0cHJpdmF0ZSBvblRvdWNoID0gbm9vcDtcclxuXHJcblx0Y29uc3RydWN0b3IoQFNlbGYoKSBwcml2YXRlIF9lbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcblx0bmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLmJ1aURlY2ltYWxJbnB1dCA9IHRoaXMuYnVpRGVjaW1hbElucHV0IHx8IDI7XHJcblx0XHR0aGlzLm9uSW5wdXQoKTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcclxuXHRvbklucHV0KCkge1xyXG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG5cclxuXHRcdGNvbnN0IGRlY2ltYWxQYXJ0ID0gdmFsdWUuc3BsaXQoJy4nKVsxXTtcclxuXHJcblx0XHRpZiAoZGVjaW1hbFBhcnQgJiYgZGVjaW1hbFBhcnQubGVuZ3RoID4gdGhpcy5idWlEZWNpbWFsSW5wdXQpIHtcclxuXHRcdFx0Y29uc3QgaW5kZXhPZlBlcmlvZCA9IHZhbHVlLmluZGV4T2YoJy4nKTtcclxuXHRcdFx0Y29uc3QgbmV3VmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgaW5kZXhPZlBlcmlvZCArIHRoaXMuYnVpRGVjaW1hbElucHV0ICsgMSk7XHJcblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5ld1ZhbHVlKTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG5cdFx0dGhpcy5jaGFuZ2UoXHJcblx0XHRcdHJlc29sdmVkVmFsdWUgPT09ICcnIHx8IHJlc29sdmVkVmFsdWUgPT09IG51bGwgfHwgcmVzb2x2ZWRWYWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IE51bWJlcihyZXNvbHZlZFZhbHVlKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcclxuXHRvbktleXByZXNzKGV2dDogS2V5Ym9hcmRFdmVudCkge1xyXG5cdFx0Y29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cdFx0Y29uc3QgdmFsdWUgPSB0YXJnZXQudmFsdWU7XHJcblx0XHRjb25zdCBpc1NwYWNlID0gZXZ0LmtleSA9PT0gJyAnO1xyXG5cclxuXHRcdGlmIChcclxuXHRcdFx0aXNTcGFjZSB8fFxyXG5cdFx0XHQoIVsnLicsICctJ10uaW5jbHVkZXMoZXZ0LmtleSkgJiYgaXNOYU4oTnVtYmVyKGV2dC5rZXkpKSkgfHxcclxuXHRcdFx0KGV2dC5rZXkgPT09ICcuJyAmJiB2YWx1ZS5pbmRleE9mKCcuJykgPiAwKVxyXG5cdFx0KSB7XHJcblx0XHRcdGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXHJcblx0b25ibHVyKCkge1xyXG5cdFx0dGhpcy5vblRvdWNoKCk7XHJcblx0XHR0aGlzLl9yZXNldERlY2ltYWxQbGFjZXMoKTtcclxuXHR9XHJcblxyXG5cdHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xyXG5cdFx0dGhpcy5fcmVzZXREZWNpbWFsUGxhY2VzKCk7XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMuY2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3Jlc2V0RGVjaW1hbFBsYWNlcygpIHtcclxuXHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBzcGxpdFZhbHVlcyA9IHZhbHVlLnNwbGl0KCcuJyk7XHJcblx0XHRsZXQgbmV3VmFsdWUgPSAnJztcclxuXHRcdGlmIChzcGxpdFZhbHVlc1sxXSAmJiBzcGxpdFZhbHVlc1sxXS5sZW5ndGggPiB0aGlzLmJ1aURlY2ltYWxJbnB1dCkge1xyXG5cdFx0XHRuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzcGxpdFZhbHVlc1swXS5sZW5ndGggKyAxICsgdGhpcy5idWlEZWNpbWFsSW5wdXQpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5idWlEZWNpbWFsSW5wdXQgPSB0aGlzLmJ1aURlY2ltYWxJbnB1dCA8IDAgPyAwIDogdGhpcy5idWlEZWNpbWFsSW5wdXQ7XHJcblx0XHRcdG5ld1ZhbHVlID0gTnVtYmVyKHZhbHVlKS50b0ZpeGVkKHRoaXMuYnVpRGVjaW1hbElucHV0KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5ld1ZhbHVlKTtcclxuXHR9XHJcbn1cclxuIl19
@@ -3,11 +3,11 @@ import { NgModule } from '@angular/core';
3
3
  import { DecimalInputDirective } from './decimal-input.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export class DecimalInputModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] }); }
6
9
  }
7
- DecimalInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- DecimalInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] });
9
- DecimalInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DecimalInputModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DecimalInputModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [DecimalInputDirective],
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
16
16
  }]
17
17
  }] });
18
18
  export { DecimalInputDirective };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBSmYscUJBQXFCLGFBQzFCLFlBQVksYUFDWixxQkFBcUI7Z0hBRW5CLGtCQUFrQixZQUhwQixZQUFZOzJGQUdWLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDaEM7O0FBRUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY2ltYWxJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuXHRkZWNsYXJhdGlvbnM6IFtEZWNpbWFsSW5wdXREaXJlY3RpdmVdLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcblx0ZXhwb3J0czogW0RlY2ltYWxJbnB1dERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGVjaW1hbElucHV0TW9kdWxlIHt9XG5leHBvcnQgeyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgfTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixpQkFKZixxQkFBcUIsYUFDMUIsWUFBWSxhQUNaLHFCQUFxQjsrR0FFbkIsa0JBQWtCLFlBSHBCLFlBQVk7OzJGQUdWLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDaEM7O0FBRUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY2ltYWxJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuXHRkZWNsYXJhdGlvbnM6IFtEZWNpbWFsSW5wdXREaXJlY3RpdmVdLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcblx0ZXhwb3J0czogW0RlY2ltYWxJbnB1dERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGVjaW1hbElucHV0TW9kdWxlIHt9XG5leHBvcnQgeyBEZWNpbWFsSW5wdXREaXJlY3RpdmUgfTtcbiJdfQ==