monkey-style-guide 2.0.165 → 2.0.167

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 (543) hide show
  1. package/README.md +1266 -1260
  2. package/assets/data/country-codes.json +1466 -1466
  3. package/assets/icons/add-plus.svg +5 -5
  4. package/assets/icons/arrow-down.svg +3 -3
  5. package/assets/icons/arrow-left.svg +3 -3
  6. package/assets/icons/arrow-line-right.svg +5 -5
  7. package/assets/icons/arrow-right.svg +3 -3
  8. package/assets/icons/arrow-up.svg +3 -3
  9. package/assets/icons/arrows.svg +6 -6
  10. package/assets/icons/auction.svg +7 -7
  11. package/assets/icons/average-tax.svg +6 -0
  12. package/assets/icons/bank-account.svg +12 -12
  13. package/assets/icons/bank-agency.svg +8 -0
  14. package/assets/icons/bank.svg +3 -3
  15. package/assets/icons/banknote-search.svg +8 -8
  16. package/assets/icons/bell.svg +4 -4
  17. package/assets/icons/block.svg +4 -4
  18. package/assets/icons/book-open-text.svg +10 -10
  19. package/assets/icons/book.svg +4 -4
  20. package/assets/icons/box.svg +6 -6
  21. package/assets/icons/build-person.svg +9 -9
  22. package/assets/icons/calendar.svg +6 -6
  23. package/assets/icons/camera.svg +4 -4
  24. package/assets/icons/card-machine.svg +14 -14
  25. package/assets/icons/card.svg +4 -4
  26. package/assets/icons/cash-banknote-invoice.svg +8 -8
  27. package/assets/icons/chat.svg +4 -4
  28. package/assets/icons/check-circle-out.svg +4 -4
  29. package/assets/icons/check-circle.svg +4 -4
  30. package/assets/icons/check-grey.svg +3 -3
  31. package/assets/icons/check-white.svg +4 -4
  32. package/assets/icons/check.svg +3 -3
  33. package/assets/icons/clipboard.svg +4 -4
  34. package/assets/icons/clock-closed.svg +6 -6
  35. package/assets/icons/clock.svg +4 -4
  36. package/assets/icons/close-circle.svg +5 -5
  37. package/assets/icons/close.svg +4 -4
  38. package/assets/icons/cnpj.svg +9 -9
  39. package/assets/icons/codepen.svg +7 -7
  40. package/assets/icons/company-name.svg +12 -12
  41. package/assets/icons/contract-pen.svg +7 -7
  42. package/assets/icons/contract.svg +14 -14
  43. package/assets/icons/delete.svg +5 -5
  44. package/assets/icons/document.svg +7 -7
  45. package/assets/icons/dollar-sign-circle.svg +7 -7
  46. package/assets/icons/dollar-sign.svg +5 -5
  47. package/assets/icons/domain.svg +9 -9
  48. package/assets/icons/dots-menu.svg +5 -5
  49. package/assets/icons/double-arrow-left.svg +4 -4
  50. package/assets/icons/double-arrow-right.svg +4 -4
  51. package/assets/icons/download.svg +5 -5
  52. package/assets/icons/edit-square.svg +4 -4
  53. package/assets/icons/edit.svg +3 -3
  54. package/assets/icons/email.svg +4 -4
  55. package/assets/icons/empty-doc.svg +4 -4
  56. package/assets/icons/error.svg +5 -5
  57. package/assets/icons/eye-closed.svg +11 -11
  58. package/assets/icons/eye-open.svg +4 -4
  59. package/assets/icons/filter-add.svg +6 -6
  60. package/assets/icons/filter.svg +3 -3
  61. package/assets/icons/grid.svg +6 -6
  62. package/assets/icons/help.svg +5 -5
  63. package/assets/icons/hexagon.svg +3 -3
  64. package/assets/icons/home.svg +4 -4
  65. package/assets/icons/image.svg +5 -5
  66. package/assets/icons/info.svg +6 -6
  67. package/assets/icons/invoice.svg +5 -5
  68. package/assets/icons/invoices-anticipated.svg +8 -8
  69. package/assets/icons/invoices-approval.svg +8 -8
  70. package/assets/icons/invoices-refused.svg +8 -8
  71. package/assets/icons/list.svg +8 -8
  72. package/assets/icons/location-pin.svg +4 -4
  73. package/assets/icons/login.svg +5 -5
  74. package/assets/icons/logout.svg +5 -5
  75. package/assets/icons/medal.svg +12 -12
  76. package/assets/icons/menu.svg +5 -5
  77. package/assets/icons/money-cedule.svg +6 -6
  78. package/assets/icons/money-discount.svg +8 -0
  79. package/assets/icons/money-hand.svg +6 -6
  80. package/assets/icons/money-net.svg +8 -0
  81. package/assets/icons/money-new.svg +7 -0
  82. package/assets/icons/money-sign.svg +4 -4
  83. package/assets/icons/money.svg +6 -6
  84. package/assets/icons/more-circle.svg +5 -5
  85. package/assets/icons/more.svg +4 -4
  86. package/assets/icons/new-company.svg +10 -10
  87. package/assets/icons/offered.svg +5 -5
  88. package/assets/icons/office-work.svg +10 -0
  89. package/assets/icons/open-external.svg +5 -5
  90. package/assets/icons/password.svg +4 -4
  91. package/assets/icons/people.svg +6 -6
  92. package/assets/icons/percent.svg +5 -5
  93. package/assets/icons/person-document.svg +10 -10
  94. package/assets/icons/person-sad.svg +6 -6
  95. package/assets/icons/phone.svg +3 -3
  96. package/assets/icons/pork.svg +5 -5
  97. package/assets/icons/radio.svg +4 -4
  98. package/assets/icons/refresh.svg +5 -5
  99. package/assets/icons/registration.svg +8 -0
  100. package/assets/icons/repeat.svg +4 -4
  101. package/assets/icons/search.svg +4 -4
  102. package/assets/icons/second-warning.svg +5 -5
  103. package/assets/icons/settings.svg +4 -4
  104. package/assets/icons/shield-chekmark.svg +3 -3
  105. package/assets/icons/star.svg +3 -3
  106. package/assets/icons/store.svg +8 -8
  107. package/assets/icons/today.svg +9 -9
  108. package/assets/icons/trash.svg +6 -6
  109. package/assets/icons/trophy.svg +8 -8
  110. package/assets/icons/unfold-more.svg +4 -4
  111. package/assets/icons/upload.svg +5 -5
  112. package/assets/icons/user.svg +4 -4
  113. package/assets/icons/waiting.svg +17 -17
  114. package/assets/icons/wallet.svg +5 -5
  115. package/assets/icons/warning.svg +5 -5
  116. package/assets/scss/partials/_forms.scss +350 -350
  117. package/assets/scss/partials/_index.scss +11 -11
  118. package/assets/scss/partials/_radio-button.scss +35 -35
  119. package/assets/scss/partials/_style-reset.scss +185 -185
  120. package/assets/scss/partials/_typography.scss +149 -149
  121. package/assets/scss/partials/_variables.scss +184 -184
  122. package/assets/scss/partials/components/_buttons.scss +831 -831
  123. package/assets/scss/partials/components/_checkbox.scss +69 -69
  124. package/assets/scss/partials/components/_date-range-picker.scss +265 -265
  125. package/assets/scss/partials/components/_expansion.scss +96 -96
  126. package/assets/scss/partials/components/_image-crop.scss +305 -305
  127. package/assets/scss/partials/components/_index.scss +23 -23
  128. package/assets/scss/partials/components/_input-phone.scss +36 -36
  129. package/assets/scss/partials/components/_input.scss +65 -65
  130. package/assets/scss/partials/components/_progressbar.scss +112 -112
  131. package/assets/scss/partials/components/_radiobutton.scss +66 -66
  132. package/assets/scss/partials/components/_select.scss +356 -356
  133. package/assets/scss/partials/components/_snackbar.scss +204 -204
  134. package/assets/scss/partials/components/_stepper.scss +86 -86
  135. package/assets/scss/partials/components/_table.scss +148 -148
  136. package/assets/scss/partials/components/_wizard.scss +112 -112
  137. package/esm2020/lib/components/badge/badge.component.mjs +43 -43
  138. package/esm2020/lib/components/badge/badge.module.mjs +18 -18
  139. package/esm2020/lib/components/badge/index.mjs +2 -2
  140. package/esm2020/lib/components/button/button-avatar.component.mjs +53 -53
  141. package/esm2020/lib/components/button/button-dropdown.component.mjs +121 -121
  142. package/esm2020/lib/components/button/button.component.mjs +154 -154
  143. package/esm2020/lib/components/button/button.module.mjs +23 -23
  144. package/esm2020/lib/components/button/index.mjs +5 -5
  145. package/esm2020/lib/components/checkbox/checkbox.component.mjs +165 -165
  146. package/esm2020/lib/components/checkbox/checkbox.module.mjs +20 -20
  147. package/esm2020/lib/components/checkbox/index.mjs +3 -3
  148. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +660 -660
  149. package/esm2020/lib/components/date-range-picker/date-range-picker.module.mjs +22 -22
  150. package/esm2020/lib/components/date-range-picker/index.mjs +3 -3
  151. package/esm2020/lib/components/expansion/expansion.component.mjs +115 -115
  152. package/esm2020/lib/components/expansion/expansion.module.mjs +19 -19
  153. package/esm2020/lib/components/expansion/index.mjs +2 -2
  154. package/esm2020/lib/components/file-upload/file-upload.component.mjs +294 -294
  155. package/esm2020/lib/components/file-upload/file-upload.module.mjs +37 -37
  156. package/esm2020/lib/components/file-upload/index.mjs +3 -3
  157. package/esm2020/lib/components/icon/icon-add-plus.component.mjs +15 -15
  158. package/esm2020/lib/components/icon/icon-arrow-down.component.mjs +15 -15
  159. package/esm2020/lib/components/icon/icon-arrow-left.component.mjs +15 -15
  160. package/esm2020/lib/components/icon/icon-arrow-line-right.component.mjs +15 -15
  161. package/esm2020/lib/components/icon/icon-arrow-right.component.mjs +15 -15
  162. package/esm2020/lib/components/icon/icon-arrow-up.component.mjs +15 -15
  163. package/esm2020/lib/components/icon/icon-arrows.component.mjs +15 -15
  164. package/esm2020/lib/components/icon/icon-auction.component.mjs +15 -15
  165. package/esm2020/lib/components/icon/icon-average-tax.mjs +15 -0
  166. package/esm2020/lib/components/icon/icon-bank-account.component.mjs +15 -15
  167. package/esm2020/lib/components/icon/icon-bank-agency.mjs +15 -0
  168. package/esm2020/lib/components/icon/icon-bank.component.mjs +15 -15
  169. package/esm2020/lib/components/icon/icon-banknote-search.component.mjs +15 -15
  170. package/esm2020/lib/components/icon/icon-bell.component.mjs +15 -15
  171. package/esm2020/lib/components/icon/icon-block.component.mjs +15 -15
  172. package/esm2020/lib/components/icon/icon-book-open-text.component.mjs +15 -15
  173. package/esm2020/lib/components/icon/icon-book.component.mjs +15 -15
  174. package/esm2020/lib/components/icon/icon-box.component.mjs +15 -15
  175. package/esm2020/lib/components/icon/icon-build-person.component.mjs +15 -15
  176. package/esm2020/lib/components/icon/icon-calendar.component.mjs +15 -15
  177. package/esm2020/lib/components/icon/icon-camera.component.mjs +15 -15
  178. package/esm2020/lib/components/icon/icon-card-machine.component.mjs +15 -15
  179. package/esm2020/lib/components/icon/icon-card.component.mjs +15 -15
  180. package/esm2020/lib/components/icon/icon-cash-banknote-invoice.mjs +15 -15
  181. package/esm2020/lib/components/icon/icon-chat.component.mjs +15 -15
  182. package/esm2020/lib/components/icon/icon-check-circle-out.component.mjs +15 -15
  183. package/esm2020/lib/components/icon/icon-check-circle.component.mjs +15 -15
  184. package/esm2020/lib/components/icon/icon-check-grey.component.mjs +15 -15
  185. package/esm2020/lib/components/icon/icon-check-white.component.mjs +15 -15
  186. package/esm2020/lib/components/icon/icon-check.component.mjs +15 -15
  187. package/esm2020/lib/components/icon/icon-clipboard.component.mjs +15 -15
  188. package/esm2020/lib/components/icon/icon-clock-closed.component.mjs +15 -15
  189. package/esm2020/lib/components/icon/icon-clock.component.mjs +15 -15
  190. package/esm2020/lib/components/icon/icon-close-circle.component.mjs +15 -15
  191. package/esm2020/lib/components/icon/icon-close.component.mjs +15 -15
  192. package/esm2020/lib/components/icon/icon-cnpj.component.mjs +15 -15
  193. package/esm2020/lib/components/icon/icon-codepen.component.mjs +15 -15
  194. package/esm2020/lib/components/icon/icon-company-name.component.mjs +15 -15
  195. package/esm2020/lib/components/icon/icon-contract-pen.component.mjs +15 -15
  196. package/esm2020/lib/components/icon/icon-contract.component.mjs +15 -15
  197. package/esm2020/lib/components/icon/icon-delete.component.mjs +15 -15
  198. package/esm2020/lib/components/icon/icon-document.component.mjs +15 -15
  199. package/esm2020/lib/components/icon/icon-dollar-sign-circle.component.mjs +15 -15
  200. package/esm2020/lib/components/icon/icon-dollar-sign.component.mjs +15 -15
  201. package/esm2020/lib/components/icon/icon-domain.component.mjs +15 -15
  202. package/esm2020/lib/components/icon/icon-dots-menu.component.mjs +15 -15
  203. package/esm2020/lib/components/icon/icon-double-arrow-left.component.mjs +15 -15
  204. package/esm2020/lib/components/icon/icon-double-arrow-right.component.mjs +15 -15
  205. package/esm2020/lib/components/icon/icon-download.component.mjs +15 -15
  206. package/esm2020/lib/components/icon/icon-edit-square.component.mjs +15 -15
  207. package/esm2020/lib/components/icon/icon-edit.component.mjs +15 -15
  208. package/esm2020/lib/components/icon/icon-email.component.mjs +15 -15
  209. package/esm2020/lib/components/icon/icon-empty-doc.component.mjs +15 -15
  210. package/esm2020/lib/components/icon/icon-error.component.mjs +15 -15
  211. package/esm2020/lib/components/icon/icon-eye-closed.component.mjs +15 -15
  212. package/esm2020/lib/components/icon/icon-eye-open.component.mjs +15 -15
  213. package/esm2020/lib/components/icon/icon-filter-add.component.mjs +15 -15
  214. package/esm2020/lib/components/icon/icon-filter.component.mjs +15 -15
  215. package/esm2020/lib/components/icon/icon-grid.component.mjs +15 -15
  216. package/esm2020/lib/components/icon/icon-hands-clap.component.mjs +15 -15
  217. package/esm2020/lib/components/icon/icon-help.component.mjs +15 -15
  218. package/esm2020/lib/components/icon/icon-hexagon.component.mjs +15 -15
  219. package/esm2020/lib/components/icon/icon-home.component.mjs +15 -15
  220. package/esm2020/lib/components/icon/icon-image.component.mjs +15 -15
  221. package/esm2020/lib/components/icon/icon-info.component.mjs +15 -15
  222. package/esm2020/lib/components/icon/icon-invoice.component.mjs +15 -15
  223. package/esm2020/lib/components/icon/icon-invoices-anticipated.component.mjs +15 -15
  224. package/esm2020/lib/components/icon/icon-invoices-approval.component.mjs +15 -15
  225. package/esm2020/lib/components/icon/icon-invoices-refused.component.mjs +15 -15
  226. package/esm2020/lib/components/icon/icon-list.component.mjs +15 -15
  227. package/esm2020/lib/components/icon/icon-location-pin.component.mjs +15 -15
  228. package/esm2020/lib/components/icon/icon-login.component.mjs +15 -15
  229. package/esm2020/lib/components/icon/icon-logout.component.mjs +15 -15
  230. package/esm2020/lib/components/icon/icon-medal.component.mjs +15 -15
  231. package/esm2020/lib/components/icon/icon-menu.component.mjs +15 -15
  232. package/esm2020/lib/components/icon/icon-money-cedule.component.mjs +15 -15
  233. package/esm2020/lib/components/icon/icon-money-discount.mjs +15 -0
  234. package/esm2020/lib/components/icon/icon-money-hand.component.mjs +15 -15
  235. package/esm2020/lib/components/icon/icon-money-net.mjs +15 -0
  236. package/esm2020/lib/components/icon/icon-money-new.mjs +15 -0
  237. package/esm2020/lib/components/icon/icon-money-sign.component.mjs +15 -15
  238. package/esm2020/lib/components/icon/icon-money.component.mjs +15 -15
  239. package/esm2020/lib/components/icon/icon-more-circle.component.mjs +15 -15
  240. package/esm2020/lib/components/icon/icon-more.component.mjs +15 -15
  241. package/esm2020/lib/components/icon/icon-new-company.component.mjs +15 -15
  242. package/esm2020/lib/components/icon/icon-offered.component.mjs +15 -15
  243. package/esm2020/lib/components/icon/icon-open-external.component.mjs +15 -15
  244. package/esm2020/lib/components/icon/icon-password.component.mjs +15 -15
  245. package/esm2020/lib/components/icon/icon-people.component.mjs +15 -15
  246. package/esm2020/lib/components/icon/icon-percent.component.mjs +15 -15
  247. package/esm2020/lib/components/icon/icon-person-document.component.mjs +15 -15
  248. package/esm2020/lib/components/icon/icon-person-sad.component.mjs +15 -15
  249. package/esm2020/lib/components/icon/icon-phone-call.component.mjs +15 -15
  250. package/esm2020/lib/components/icon/icon-phone.component.mjs +15 -15
  251. package/esm2020/lib/components/icon/icon-pin-navigation.component.mjs +15 -15
  252. package/esm2020/lib/components/icon/icon-pork.component.mjs +15 -15
  253. package/esm2020/lib/components/icon/icon-radio.component.mjs +15 -15
  254. package/esm2020/lib/components/icon/icon-refresh.component.mjs +15 -15
  255. package/esm2020/lib/components/icon/icon-registration.mjs +15 -0
  256. package/esm2020/lib/components/icon/icon-repeat.component.mjs +15 -15
  257. package/esm2020/lib/components/icon/icon-search.component.mjs +15 -15
  258. package/esm2020/lib/components/icon/icon-second-warning.component.mjs +15 -15
  259. package/esm2020/lib/components/icon/icon-settings.component.mjs +15 -15
  260. package/esm2020/lib/components/icon/icon-shield-chekmark.component.mjs +15 -15
  261. package/esm2020/lib/components/icon/icon-star.component.mjs +15 -15
  262. package/esm2020/lib/components/icon/icon-store.component.mjs +15 -15
  263. package/esm2020/lib/components/icon/icon-today.component.mjs +15 -15
  264. package/esm2020/lib/components/icon/icon-trash.component.mjs +15 -15
  265. package/esm2020/lib/components/icon/icon-trophy.component.mjs +15 -15
  266. package/esm2020/lib/components/icon/icon-unfold-more.component.mjs +15 -15
  267. package/esm2020/lib/components/icon/icon-upload.component.mjs +15 -15
  268. package/esm2020/lib/components/icon/icon-user-group.component.mjs +15 -15
  269. package/esm2020/lib/components/icon/icon-user.component.mjs +15 -15
  270. package/esm2020/lib/components/icon/icon-waiting.component.mjs +15 -15
  271. package/esm2020/lib/components/icon/icon-wallet.component.mjs +15 -15
  272. package/esm2020/lib/components/icon/icon-warning.component.mjs +15 -15
  273. package/esm2020/lib/components/icon/icon.component.mjs +1601 -1523
  274. package/esm2020/lib/components/icon/icon.module.mjs +369 -351
  275. package/esm2020/lib/components/icon/index.mjs +108 -102
  276. package/esm2020/lib/components/image-crop/image-crop.component.mjs +516 -516
  277. package/esm2020/lib/components/image-crop/image-crop.module.mjs +41 -41
  278. package/esm2020/lib/components/image-crop/index.mjs +3 -3
  279. package/esm2020/lib/components/index.mjs +20 -20
  280. package/esm2020/lib/components/input/index.mjs +4 -4
  281. package/esm2020/lib/components/input/input-filter.component.mjs +286 -286
  282. package/esm2020/lib/components/input/input.component.mjs +384 -384
  283. package/esm2020/lib/components/input/input.module.mjs +38 -38
  284. package/esm2020/lib/components/input-phone/index.mjs +3 -3
  285. package/esm2020/lib/components/input-phone/input-phone.component.mjs +307 -307
  286. package/esm2020/lib/components/input-phone/input-phone.module.mjs +45 -45
  287. package/esm2020/lib/components/modal/index.mjs +3 -3
  288. package/esm2020/lib/components/modal/modal.component.mjs +236 -236
  289. package/esm2020/lib/components/modal/modal.module.mjs +21 -21
  290. package/esm2020/lib/components/option/index.mjs +3 -3
  291. package/esm2020/lib/components/option/option.component.mjs +131 -131
  292. package/esm2020/lib/components/option/option.module.mjs +29 -29
  293. package/esm2020/lib/components/radiobutton/index.mjs +3 -3
  294. package/esm2020/lib/components/radiobutton/radiobutton.component.mjs +165 -165
  295. package/esm2020/lib/components/radiobutton/radiobutton.module.mjs +36 -36
  296. package/esm2020/lib/components/select/index.mjs +6 -6
  297. package/esm2020/lib/components/select/select-filter.component.mjs +197 -197
  298. package/esm2020/lib/components/select/select-multiple.component.mjs +304 -304
  299. package/esm2020/lib/components/select/select-search.component.mjs +306 -306
  300. package/esm2020/lib/components/select/select.component.mjs +245 -245
  301. package/esm2020/lib/components/select/select.module.mjs +61 -61
  302. package/esm2020/lib/components/stepper/index.mjs +3 -3
  303. package/esm2020/lib/components/stepper/stepper.component.mjs +57 -57
  304. package/esm2020/lib/components/stepper/stepper.module.mjs +20 -20
  305. package/esm2020/lib/components/tab/index.mjs +2 -2
  306. package/esm2020/lib/components/tab/tab.component.mjs +91 -91
  307. package/esm2020/lib/components/tab/tab.module.mjs +20 -20
  308. package/esm2020/lib/components/table/index.mjs +4 -4
  309. package/esm2020/lib/components/table/table-column.component.mjs +34 -34
  310. package/esm2020/lib/components/table/table.component.mjs +267 -267
  311. package/esm2020/lib/components/table/table.module.mjs +23 -23
  312. package/esm2020/lib/components/toggle/index.mjs +2 -2
  313. package/esm2020/lib/components/toggle/toggle.component.mjs +56 -56
  314. package/esm2020/lib/components/toggle/toggle.module.mjs +18 -18
  315. package/esm2020/lib/components/wizard/index.mjs +3 -3
  316. package/esm2020/lib/components/wizard/wizard.component.mjs +61 -61
  317. package/esm2020/lib/components/wizard/wizard.module.mjs +33 -33
  318. package/esm2020/lib/core/index.mjs +4 -4
  319. package/esm2020/lib/core/interfaces/index.mjs +2 -2
  320. package/esm2020/lib/core/interfaces/monkey-modal-settings.mjs +1 -1
  321. package/esm2020/lib/core/interfaces/monkey-style-settings.mjs +2 -2
  322. package/esm2020/lib/core/services/index.mjs +4 -4
  323. package/esm2020/lib/core/services/modal/index.mjs +2 -2
  324. package/esm2020/lib/core/services/modal/monkey-style-guide-modal-fixed.service.mjs +51 -51
  325. package/esm2020/lib/core/services/modal/monkey-style-guide-modal.service.mjs +54 -54
  326. package/esm2020/lib/core/services/monkey-style-guide.service.mjs +17 -17
  327. package/esm2020/lib/core/services/settings/index.mjs +1 -1
  328. package/esm2020/lib/core/services/settings/monkey-style-guide-settings.service.mjs +41 -41
  329. package/esm2020/lib/core/services/settings/monkey-style-guide-theme-settings.service.mjs +80 -80
  330. package/esm2020/lib/core/services/snackbar/index.mjs +1 -1
  331. package/esm2020/lib/core/services/snackbar/mokey-style-guide-snackbar.service.mjs +226 -226
  332. package/esm2020/lib/core/utils/index.mjs +1 -1
  333. package/esm2020/lib/core/utils/utils.mjs +240 -240
  334. package/esm2020/lib/monkey-style-guide.module.mjs +31 -31
  335. package/esm2020/monkey-style-guide.mjs +4 -4
  336. package/esm2020/public-api.mjs +9 -9
  337. package/fesm2015/monkey-style-guide.mjs +9418 -9256
  338. package/fesm2015/monkey-style-guide.mjs.map +1 -1
  339. package/fesm2020/monkey-style-guide.mjs +9407 -9245
  340. package/fesm2020/monkey-style-guide.mjs.map +1 -1
  341. package/lib/components/badge/badge.component.d.ts +8 -8
  342. package/lib/components/badge/badge.module.d.ts +8 -8
  343. package/lib/components/badge/index.d.ts +2 -2
  344. package/lib/components/button/button-avatar.component.d.ts +19 -19
  345. package/lib/components/button/button-dropdown.component.d.ts +23 -23
  346. package/lib/components/button/button.component.d.ts +22 -22
  347. package/lib/components/button/button.module.d.ts +12 -12
  348. package/lib/components/button/index.d.ts +4 -4
  349. package/lib/components/checkbox/checkbox.component.d.ts +32 -32
  350. package/lib/components/checkbox/checkbox.module.d.ts +9 -9
  351. package/lib/components/checkbox/index.d.ts +2 -2
  352. package/lib/components/date-range-picker/date-range-picker.component.d.ts +69 -69
  353. package/lib/components/date-range-picker/date-range-picker.module.d.ts +11 -11
  354. package/lib/components/date-range-picker/index.d.ts +2 -2
  355. package/lib/components/expansion/expansion.component.d.ts +20 -20
  356. package/lib/components/expansion/expansion.module.d.ts +9 -9
  357. package/lib/components/expansion/index.d.ts +2 -2
  358. package/lib/components/file-upload/file-upload.component.d.ts +51 -51
  359. package/lib/components/file-upload/file-upload.module.d.ts +11 -11
  360. package/lib/components/file-upload/index.d.ts +2 -2
  361. package/lib/components/icon/icon-add-plus.component.d.ts +7 -7
  362. package/lib/components/icon/icon-arrow-down.component.d.ts +7 -7
  363. package/lib/components/icon/icon-arrow-left.component.d.ts +7 -7
  364. package/lib/components/icon/icon-arrow-line-right.component.d.ts +7 -7
  365. package/lib/components/icon/icon-arrow-right.component.d.ts +7 -7
  366. package/lib/components/icon/icon-arrow-up.component.d.ts +7 -7
  367. package/lib/components/icon/icon-arrows.component.d.ts +7 -7
  368. package/lib/components/icon/icon-auction.component.d.ts +7 -7
  369. package/lib/components/icon/icon-average-tax.d.ts +7 -0
  370. package/lib/components/icon/icon-bank-account.component.d.ts +7 -7
  371. package/lib/components/icon/icon-bank-agency.d.ts +7 -0
  372. package/lib/components/icon/icon-bank.component.d.ts +7 -7
  373. package/lib/components/icon/icon-banknote-search.component.d.ts +7 -7
  374. package/lib/components/icon/icon-bell.component.d.ts +7 -7
  375. package/lib/components/icon/icon-block.component.d.ts +7 -7
  376. package/lib/components/icon/icon-book-open-text.component.d.ts +7 -7
  377. package/lib/components/icon/icon-book.component.d.ts +7 -7
  378. package/lib/components/icon/icon-box.component.d.ts +7 -7
  379. package/lib/components/icon/icon-build-person.component.d.ts +7 -7
  380. package/lib/components/icon/icon-calendar.component.d.ts +7 -7
  381. package/lib/components/icon/icon-camera.component.d.ts +7 -7
  382. package/lib/components/icon/icon-card-machine.component.d.ts +7 -7
  383. package/lib/components/icon/icon-card.component.d.ts +7 -7
  384. package/lib/components/icon/icon-cash-banknote-invoice.d.ts +7 -7
  385. package/lib/components/icon/icon-chat.component.d.ts +7 -7
  386. package/lib/components/icon/icon-check-circle-out.component.d.ts +7 -7
  387. package/lib/components/icon/icon-check-circle.component.d.ts +7 -7
  388. package/lib/components/icon/icon-check-grey.component.d.ts +7 -7
  389. package/lib/components/icon/icon-check-white.component.d.ts +7 -7
  390. package/lib/components/icon/icon-check.component.d.ts +7 -7
  391. package/lib/components/icon/icon-clipboard.component.d.ts +7 -7
  392. package/lib/components/icon/icon-clock-closed.component.d.ts +7 -7
  393. package/lib/components/icon/icon-clock.component.d.ts +7 -7
  394. package/lib/components/icon/icon-close-circle.component.d.ts +7 -7
  395. package/lib/components/icon/icon-close.component.d.ts +7 -7
  396. package/lib/components/icon/icon-cnpj.component.d.ts +7 -7
  397. package/lib/components/icon/icon-codepen.component.d.ts +7 -7
  398. package/lib/components/icon/icon-company-name.component.d.ts +7 -7
  399. package/lib/components/icon/icon-contract-pen.component.d.ts +7 -7
  400. package/lib/components/icon/icon-contract.component.d.ts +7 -7
  401. package/lib/components/icon/icon-delete.component.d.ts +7 -7
  402. package/lib/components/icon/icon-document.component.d.ts +7 -7
  403. package/lib/components/icon/icon-dollar-sign-circle.component.d.ts +7 -7
  404. package/lib/components/icon/icon-dollar-sign.component.d.ts +7 -7
  405. package/lib/components/icon/icon-domain.component.d.ts +7 -7
  406. package/lib/components/icon/icon-dots-menu.component.d.ts +7 -7
  407. package/lib/components/icon/icon-double-arrow-left.component.d.ts +7 -7
  408. package/lib/components/icon/icon-double-arrow-right.component.d.ts +7 -7
  409. package/lib/components/icon/icon-download.component.d.ts +7 -7
  410. package/lib/components/icon/icon-edit-square.component.d.ts +7 -7
  411. package/lib/components/icon/icon-edit.component.d.ts +7 -7
  412. package/lib/components/icon/icon-email.component.d.ts +7 -7
  413. package/lib/components/icon/icon-empty-doc.component.d.ts +7 -7
  414. package/lib/components/icon/icon-error.component.d.ts +7 -7
  415. package/lib/components/icon/icon-eye-closed.component.d.ts +7 -7
  416. package/lib/components/icon/icon-eye-open.component.d.ts +7 -7
  417. package/lib/components/icon/icon-filter-add.component.d.ts +7 -7
  418. package/lib/components/icon/icon-filter.component.d.ts +7 -7
  419. package/lib/components/icon/icon-grid.component.d.ts +7 -7
  420. package/lib/components/icon/icon-hands-clap.component.d.ts +7 -7
  421. package/lib/components/icon/icon-help.component.d.ts +7 -7
  422. package/lib/components/icon/icon-hexagon.component.d.ts +7 -7
  423. package/lib/components/icon/icon-home.component.d.ts +7 -7
  424. package/lib/components/icon/icon-image.component.d.ts +7 -7
  425. package/lib/components/icon/icon-info.component.d.ts +7 -7
  426. package/lib/components/icon/icon-invoice.component.d.ts +7 -7
  427. package/lib/components/icon/icon-invoices-anticipated.component.d.ts +7 -7
  428. package/lib/components/icon/icon-invoices-approval.component.d.ts +7 -7
  429. package/lib/components/icon/icon-invoices-refused.component.d.ts +7 -7
  430. package/lib/components/icon/icon-list.component.d.ts +7 -7
  431. package/lib/components/icon/icon-location-pin.component.d.ts +7 -7
  432. package/lib/components/icon/icon-login.component.d.ts +7 -7
  433. package/lib/components/icon/icon-logout.component.d.ts +7 -7
  434. package/lib/components/icon/icon-medal.component.d.ts +7 -7
  435. package/lib/components/icon/icon-menu.component.d.ts +7 -7
  436. package/lib/components/icon/icon-money-cedule.component.d.ts +7 -7
  437. package/lib/components/icon/icon-money-discount.d.ts +7 -0
  438. package/lib/components/icon/icon-money-hand.component.d.ts +7 -7
  439. package/lib/components/icon/icon-money-net.d.ts +7 -0
  440. package/lib/components/icon/icon-money-new.d.ts +7 -0
  441. package/lib/components/icon/icon-money-sign.component.d.ts +7 -7
  442. package/lib/components/icon/icon-money.component.d.ts +7 -7
  443. package/lib/components/icon/icon-more-circle.component.d.ts +7 -7
  444. package/lib/components/icon/icon-more.component.d.ts +7 -7
  445. package/lib/components/icon/icon-new-company.component.d.ts +7 -7
  446. package/lib/components/icon/icon-offered.component.d.ts +7 -7
  447. package/lib/components/icon/icon-open-external.component.d.ts +7 -7
  448. package/lib/components/icon/icon-password.component.d.ts +7 -7
  449. package/lib/components/icon/icon-people.component.d.ts +7 -7
  450. package/lib/components/icon/icon-percent.component.d.ts +7 -7
  451. package/lib/components/icon/icon-person-document.component.d.ts +7 -7
  452. package/lib/components/icon/icon-person-sad.component.d.ts +7 -7
  453. package/lib/components/icon/icon-phone-call.component.d.ts +7 -7
  454. package/lib/components/icon/icon-phone.component.d.ts +7 -7
  455. package/lib/components/icon/icon-pin-navigation.component.d.ts +7 -7
  456. package/lib/components/icon/icon-pork.component.d.ts +7 -7
  457. package/lib/components/icon/icon-radio.component.d.ts +7 -7
  458. package/lib/components/icon/icon-refresh.component.d.ts +7 -7
  459. package/lib/components/icon/icon-registration.d.ts +7 -0
  460. package/lib/components/icon/icon-repeat.component.d.ts +7 -7
  461. package/lib/components/icon/icon-search.component.d.ts +7 -7
  462. package/lib/components/icon/icon-second-warning.component.d.ts +7 -7
  463. package/lib/components/icon/icon-settings.component.d.ts +7 -7
  464. package/lib/components/icon/icon-shield-chekmark.component.d.ts +7 -7
  465. package/lib/components/icon/icon-star.component.d.ts +7 -7
  466. package/lib/components/icon/icon-store.component.d.ts +7 -7
  467. package/lib/components/icon/icon-today.component.d.ts +7 -7
  468. package/lib/components/icon/icon-trash.component.d.ts +7 -7
  469. package/lib/components/icon/icon-trophy.component.d.ts +7 -7
  470. package/lib/components/icon/icon-unfold-more.component.d.ts +7 -7
  471. package/lib/components/icon/icon-upload.component.d.ts +7 -7
  472. package/lib/components/icon/icon-user-group.component.d.ts +7 -7
  473. package/lib/components/icon/icon-user.component.d.ts +7 -7
  474. package/lib/components/icon/icon-waiting.component.d.ts +7 -7
  475. package/lib/components/icon/icon-wallet.component.d.ts +7 -7
  476. package/lib/components/icon/icon-warning.component.d.ts +7 -7
  477. package/lib/components/icon/icon.component.d.ts +27 -27
  478. package/lib/components/icon/icon.module.d.ts +124 -118
  479. package/lib/components/icon/index.d.ts +107 -101
  480. package/lib/components/image-crop/image-crop.component.d.ts +77 -77
  481. package/lib/components/image-crop/image-crop.module.d.ts +12 -12
  482. package/lib/components/image-crop/index.d.ts +2 -2
  483. package/lib/components/index.d.ts +19 -19
  484. package/lib/components/input/index.d.ts +3 -3
  485. package/lib/components/input/input-filter.component.d.ts +55 -55
  486. package/lib/components/input/input.component.d.ts +64 -64
  487. package/lib/components/input/input.module.d.ts +12 -12
  488. package/lib/components/input-phone/index.d.ts +2 -2
  489. package/lib/components/input-phone/input-phone.component.d.ts +62 -62
  490. package/lib/components/input-phone/input-phone.module.d.ts +13 -13
  491. package/lib/components/modal/index.d.ts +2 -2
  492. package/lib/components/modal/modal.component.d.ts +24 -24
  493. package/lib/components/modal/modal.module.d.ts +10 -10
  494. package/lib/components/option/index.d.ts +2 -2
  495. package/lib/components/option/option.component.d.ts +22 -22
  496. package/lib/components/option/option.module.d.ts +8 -8
  497. package/lib/components/radiobutton/index.d.ts +2 -2
  498. package/lib/components/radiobutton/radiobutton.component.d.ts +39 -39
  499. package/lib/components/radiobutton/radiobutton.module.d.ts +9 -9
  500. package/lib/components/select/index.d.ts +5 -5
  501. package/lib/components/select/select-filter.component.d.ts +41 -41
  502. package/lib/components/select/select-multiple.component.d.ts +48 -48
  503. package/lib/components/select/select-search.component.d.ts +56 -56
  504. package/lib/components/select/select.component.d.ts +48 -48
  505. package/lib/components/select/select.module.d.ts +15 -15
  506. package/lib/components/stepper/index.d.ts +2 -2
  507. package/lib/components/stepper/stepper.component.d.ts +18 -18
  508. package/lib/components/stepper/stepper.module.d.ts +9 -9
  509. package/lib/components/tab/index.d.ts +2 -2
  510. package/lib/components/tab/tab.component.d.ts +24 -24
  511. package/lib/components/tab/tab.module.d.ts +10 -10
  512. package/lib/components/table/index.d.ts +3 -3
  513. package/lib/components/table/table-column.component.d.ts +5 -5
  514. package/lib/components/table/table.component.d.ts +59 -59
  515. package/lib/components/table/table.module.d.ts +12 -12
  516. package/lib/components/toggle/index.d.ts +2 -2
  517. package/lib/components/toggle/toggle.component.d.ts +18 -18
  518. package/lib/components/toggle/toggle.module.d.ts +8 -8
  519. package/lib/components/wizard/index.d.ts +2 -2
  520. package/lib/components/wizard/wizard.component.d.ts +18 -18
  521. package/lib/components/wizard/wizard.module.d.ts +9 -9
  522. package/lib/core/index.d.ts +3 -3
  523. package/lib/core/interfaces/index.d.ts +2 -2
  524. package/lib/core/interfaces/monkey-modal-settings.d.ts +58 -58
  525. package/lib/core/interfaces/monkey-style-settings.d.ts +59 -59
  526. package/lib/core/services/index.d.ts +3 -3
  527. package/lib/core/services/modal/index.d.ts +2 -2
  528. package/lib/core/services/modal/monkey-style-guide-modal-fixed.service.d.ts +16 -16
  529. package/lib/core/services/modal/monkey-style-guide-modal.service.d.ts +18 -18
  530. package/lib/core/services/monkey-style-guide.service.d.ts +10 -10
  531. package/lib/core/services/settings/index.d.ts +1 -1
  532. package/lib/core/services/settings/monkey-style-guide-settings.service.d.ts +15 -15
  533. package/lib/core/services/settings/monkey-style-guide-theme-settings.service.d.ts +12 -12
  534. package/lib/core/services/snackbar/index.d.ts +1 -1
  535. package/lib/core/services/snackbar/mokey-style-guide-snackbar.service.d.ts +58 -58
  536. package/lib/core/utils/index.d.ts +1 -1
  537. package/lib/core/utils/utils.d.ts +29 -29
  538. package/lib/monkey-style-guide.module.d.ts +8 -8
  539. package/monkey-style-guide-2.0.167.tgz +0 -0
  540. package/monkey-style-guide.d.ts +5 -5
  541. package/package.json +1 -1
  542. package/public-api.d.ts +8 -8
  543. package/monkey-style-guide-2.0.165.tgz +0 -0
@@ -1,384 +1,384 @@
1
- /**************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- **************************/
6
- import { CurrencyPipe } from '@angular/common';
7
- import { Component, ViewEncapsulation, Input, forwardRef, HostListener, Output, EventEmitter, ViewChild, } from '@angular/core';
8
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
9
- import { MonkeyUtils } from '../../core/utils';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "../../core";
13
- import * as i3 from "../icon/icon.component";
14
- import * as i4 from "@angular/forms";
15
- import * as i5 from "ngx-mask";
16
- export class MonkeyInputComponent {
17
- constructor(currencyPipe, settingsService, cdr) {
18
- this.currencyPipe = currencyPipe;
19
- this.settingsService = settingsService;
20
- this.cdr = cdr;
21
- this.name = `mecx-input-${MonkeyUtils.getRandomString(10)}`;
22
- this.helperMessage = '';
23
- this.placeholder = '';
24
- this.maxLength = 255;
25
- this.maxDateToday = false;
26
- this.onChange = new EventEmitter();
27
- this.onModelChange = (value) => { };
28
- this.onModelTouched = (value) => { };
29
- this._id = `mecx-input-${MonkeyUtils.getRandomString(10)}`;
30
- this._disabled = false;
31
- this._maxDateToday = new Date().toISOString().split('T')[0];
32
- this._symbol = '';
33
- }
34
- handleValue(value, apply = false) {
35
- if (this.onlyNumber) {
36
- return MonkeyUtils.handleOnlyNumbers(`${value}`);
37
- }
38
- else if (this.onlyAlphaNumeric)
39
- return MonkeyUtils.handleOnlyAlphaNumeric(`${value}`);
40
- else if (this.upperCase)
41
- return `${value}`.toUpperCase();
42
- else if (this.lowerCase)
43
- return `${value}`.toLowerCase();
44
- else if (this.capitalize)
45
- return MonkeyUtils.capitalize(`${value}`.toUpperCase());
46
- else if (this.currency || this.percent) {
47
- const handled = MonkeyUtils.handleOnlyNumbers(`${value}`);
48
- const result = handled / 100;
49
- if (!result)
50
- return '';
51
- return result.toFixed(2);
52
- }
53
- return value;
54
- }
55
- replaceZero(value) {
56
- return `${value}`.replace(new RegExp(/0/, 'g'), '');
57
- }
58
- formatValue(value) {
59
- const { settings } = this;
60
- if (this.currency) {
61
- if (!value || !this.replaceZero(value))
62
- return '';
63
- return this.currencyPipe.transform(value, settings?.currency?.code || 'BRL', '', '1.2-2', settings?.currency?.locale || 'pt-BR');
64
- }
65
- else if (this.percent) {
66
- return `${value}`;
67
- }
68
- return value;
69
- }
70
- handleSymbol() {
71
- const { settings } = this;
72
- if (this.currency) {
73
- this._symbol = {
74
- BRL: 'R$',
75
- CLP: 'CLP',
76
- }[settings?.currency?.code || 'BRL'];
77
- }
78
- else if (this.percent) {
79
- this._symbol = '%';
80
- }
81
- }
82
- ngOnInit() {
83
- const { settingsService } = this;
84
- this._oldType = this.type;
85
- settingsService.settings().subscribe((val) => {
86
- this.settings = val;
87
- this.handleSymbol();
88
- });
89
- }
90
- registerOnChange(fn) {
91
- this.onModelChange = fn;
92
- }
93
- registerOnTouched(fn) {
94
- this.onModelTouched = fn;
95
- }
96
- setDisabledState(isDisabled) {
97
- this._disabled = isDisabled;
98
- }
99
- set value(value) {
100
- this.handledValue = value;
101
- this._formatedValue = this.formatValue(value);
102
- this.cdr.detectChanges();
103
- this.onModelChange(this.handledValue);
104
- this.onModelTouched(this.handledValue);
105
- }
106
- get value() {
107
- return this.handledValue;
108
- }
109
- writeValue(value) {
110
- this.value = value;
111
- }
112
- onChangeValue(event) {
113
- const value = this._formatedValue;
114
- event?.preventDefault();
115
- event?.stopPropagation();
116
- const handled = this.handleValue(value, true);
117
- this.writeValue(handled);
118
- this.onChange.next(handled);
119
- }
120
- onShowAndHidePassword() {
121
- this.type = this.type === 'password' ? 'text' : 'password';
122
- }
123
- onClick() {
124
- document?.getElementById(this._id)?.getElementsByTagName('input')?.[0]?.focus();
125
- }
126
- onKeyPress(event) {
127
- let pattern = null;
128
- const cmp = event?.target?.value;
129
- const inputChar = String.fromCharCode(event.charCode);
130
- if (this.currency || this.onlyNumber || this.percent) {
131
- pattern = /[0-9]/;
132
- if (!this.onlyNumber && inputChar === '0' && !this.replaceZero(cmp)) {
133
- event.preventDefault();
134
- return;
135
- }
136
- }
137
- else if (this.onlyAlphaNumeric) {
138
- pattern = /[^0-9A-Za-z]/;
139
- }
140
- if (pattern && !pattern.test(inputChar)) {
141
- event.preventDefault();
142
- }
143
- }
144
- }
145
- MonkeyInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MonkeyInputComponent, deps: [{ token: i1.CurrencyPipe }, { token: i2.MonkeyStyleGuideSettingsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
146
- MonkeyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MonkeyInputComponent, selector: "monkey-input", inputs: { name: "name", label: "label", helperMessage: "helperMessage", placeholder: "placeholder", icon: "icon", type: "type", infoMessage: "infoMessage", errorMessage: "errorMessage", mask: "mask", prefix: "prefix", maxLength: "maxLength", onlyNumber: "onlyNumber", onlyAlphaNumeric: "onlyAlphaNumeric", upperCase: "upperCase", lowerCase: "lowerCase", capitalize: "capitalize", currency: "currency", percent: "percent", maxDateToday: "maxDateToday", value: "value" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick()" } }, providers: [
147
- {
148
- provide: NG_VALUE_ACCESSOR,
149
- useExisting: forwardRef(() => MonkeyInputComponent),
150
- multi: true,
151
- },
152
- CurrencyPipe,
153
- ], viewQueries: [{ propertyName: "monkeyInput", first: true, predicate: ["monkeyInput"], descendants: true, static: true }], ngImport: i0, template: `
154
- <mecx-form-field [ngClass]="{ disabled: _disabled }" [id]="_id">
155
- <mecx-form-field-header>
156
- <label>
157
- {{ label }}
158
- </label>
159
- <helper>
160
- {{ helperMessage }}
161
- </helper>
162
- </mecx-form-field-header>
163
- <mecx-form-field-body [class.error]="errorMessage?.trim()">
164
- <monkey-icon
165
- [icon]="icon"
166
- [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
167
- *ngIf="icon"
168
- ></monkey-icon>
169
- <symbol>
170
- {{ _symbol }}
171
- </symbol>
172
- <input
173
- [name]="name"
174
- [type]="type"
175
- [placeholder]="placeholder"
176
- (input)="onChangeValue($event)"
177
- (keypress)="onKeyPress($event)"
178
- [id]="name"
179
- [(ngModel)]="_formatedValue"
180
- [disabled]="_disabled"
181
- [mask]="mask"
182
- [prefix]="prefix"
183
- *ngIf="mask && prefix"
184
- #monkeyInput
185
- />
186
- <input
187
- [name]="name"
188
- [type]="type"
189
- [placeholder]="placeholder"
190
- (input)="onChangeValue($event)"
191
- [id]="name"
192
- [(ngModel)]="_formatedValue"
193
- (keypress)="onKeyPress($event)"
194
- [disabled]="_disabled"
195
- [mask]="mask"
196
- *ngIf="mask && !prefix"
197
- #monkeyInput
198
- />
199
- <input
200
- [name]="name"
201
- [type]="type"
202
- [placeholder]="placeholder"
203
- (input)="onChangeValue($event)"
204
- [id]="name"
205
- [(ngModel)]="_formatedValue"
206
- (keypress)="onKeyPress($event)"
207
- [disabled]="_disabled"
208
- [maxLength]="maxLength"
209
- *ngIf="!mask && !prefix"
210
- [max]="maxDateToday ? _maxDateToday : null"
211
- #monkeyInput
212
- />
213
- <monkey-icon
214
- icon="eye-open-16"
215
- [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
216
- *ngIf="_oldType === 'password' && type === 'text'"
217
- (click)="onShowAndHidePassword()"
218
- ></monkey-icon>
219
- <monkey-icon
220
- icon="eye-closed-16"
221
- [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
222
- *ngIf="_oldType === 'password' && type === 'password'"
223
- (click)="onShowAndHidePassword()"
224
- ></monkey-icon>
225
- </mecx-form-field-body>
226
- <mecx-form-field-footer>
227
- <info>
228
- {{ infoMessage }}
229
- </info>
230
- <error>
231
- {{ errorMessage }}
232
- </error>
233
- </mecx-form-field-footer>
234
- </mecx-form-field>
235
- `, isInline: true, components: [{ type: i3.MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MonkeyInputComponent, decorators: [{
237
- type: Component,
238
- args: [{
239
- selector: 'monkey-input',
240
- template: `
241
- <mecx-form-field [ngClass]="{ disabled: _disabled }" [id]="_id">
242
- <mecx-form-field-header>
243
- <label>
244
- {{ label }}
245
- </label>
246
- <helper>
247
- {{ helperMessage }}
248
- </helper>
249
- </mecx-form-field-header>
250
- <mecx-form-field-body [class.error]="errorMessage?.trim()">
251
- <monkey-icon
252
- [icon]="icon"
253
- [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
254
- *ngIf="icon"
255
- ></monkey-icon>
256
- <symbol>
257
- {{ _symbol }}
258
- </symbol>
259
- <input
260
- [name]="name"
261
- [type]="type"
262
- [placeholder]="placeholder"
263
- (input)="onChangeValue($event)"
264
- (keypress)="onKeyPress($event)"
265
- [id]="name"
266
- [(ngModel)]="_formatedValue"
267
- [disabled]="_disabled"
268
- [mask]="mask"
269
- [prefix]="prefix"
270
- *ngIf="mask && prefix"
271
- #monkeyInput
272
- />
273
- <input
274
- [name]="name"
275
- [type]="type"
276
- [placeholder]="placeholder"
277
- (input)="onChangeValue($event)"
278
- [id]="name"
279
- [(ngModel)]="_formatedValue"
280
- (keypress)="onKeyPress($event)"
281
- [disabled]="_disabled"
282
- [mask]="mask"
283
- *ngIf="mask && !prefix"
284
- #monkeyInput
285
- />
286
- <input
287
- [name]="name"
288
- [type]="type"
289
- [placeholder]="placeholder"
290
- (input)="onChangeValue($event)"
291
- [id]="name"
292
- [(ngModel)]="_formatedValue"
293
- (keypress)="onKeyPress($event)"
294
- [disabled]="_disabled"
295
- [maxLength]="maxLength"
296
- *ngIf="!mask && !prefix"
297
- [max]="maxDateToday ? _maxDateToday : null"
298
- #monkeyInput
299
- />
300
- <monkey-icon
301
- icon="eye-open-16"
302
- [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
303
- *ngIf="_oldType === 'password' && type === 'text'"
304
- (click)="onShowAndHidePassword()"
305
- ></monkey-icon>
306
- <monkey-icon
307
- icon="eye-closed-16"
308
- [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
309
- *ngIf="_oldType === 'password' && type === 'password'"
310
- (click)="onShowAndHidePassword()"
311
- ></monkey-icon>
312
- </mecx-form-field-body>
313
- <mecx-form-field-footer>
314
- <info>
315
- {{ infoMessage }}
316
- </info>
317
- <error>
318
- {{ errorMessage }}
319
- </error>
320
- </mecx-form-field-footer>
321
- </mecx-form-field>
322
- `,
323
- encapsulation: ViewEncapsulation.None,
324
- providers: [
325
- {
326
- provide: NG_VALUE_ACCESSOR,
327
- useExisting: forwardRef(() => MonkeyInputComponent),
328
- multi: true,
329
- },
330
- CurrencyPipe,
331
- ],
332
- }]
333
- }], ctorParameters: function () { return [{ type: i1.CurrencyPipe }, { type: i2.MonkeyStyleGuideSettingsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
334
- type: Input
335
- }], label: [{
336
- type: Input
337
- }], helperMessage: [{
338
- type: Input
339
- }], placeholder: [{
340
- type: Input
341
- }], icon: [{
342
- type: Input
343
- }], type: [{
344
- type: Input
345
- }], infoMessage: [{
346
- type: Input
347
- }], errorMessage: [{
348
- type: Input
349
- }], mask: [{
350
- type: Input
351
- }], prefix: [{
352
- type: Input
353
- }], maxLength: [{
354
- type: Input
355
- }], onlyNumber: [{
356
- type: Input
357
- }], onlyAlphaNumeric: [{
358
- type: Input
359
- }], upperCase: [{
360
- type: Input
361
- }], lowerCase: [{
362
- type: Input
363
- }], capitalize: [{
364
- type: Input
365
- }], currency: [{
366
- type: Input
367
- }], percent: [{
368
- type: Input
369
- }], maxDateToday: [{
370
- type: Input
371
- }], onChange: [{
372
- type: Output
373
- }], monkeyInput: [{
374
- type: ViewChild,
375
- args: ['monkeyInput', {
376
- static: true,
377
- }]
378
- }], value: [{
379
- type: Input
380
- }], onClick: [{
381
- type: HostListener,
382
- args: ['click']
383
- }] } });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFHWixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBaUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLFlBQTBCLEVBQzFCLGVBQWdELEVBQ2hELEdBQXNCO1FBRnRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpDdkIsU0FBSSxHQUFXLGNBQWMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRS9ELGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBT3pCLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFReEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJckMsa0JBQWEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENB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STtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFpQlAsV0FBVztzQkFIVixTQUFTO3VCQUFDLGFBQWEsRUFBRTt3QkFDeEIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBa0ZHLEtBQUs7c0JBRFIsS0FBSztnQkErQk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBPbkluaXQsXG4gIEVsZW1lbnRSZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsIE1vbmtleVN0eWxlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vbmtleS1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1lY3gtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiIFtpZF09XCJfaWRcIj5cbiAgICAgIDxtZWN4LWZvcm0tZmllbGQtaGVhZGVyPlxuICAgICAgICA8bGFiZWw+XG4gICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGhlbHBlcj5cbiAgICAgICAgICB7eyBoZWxwZXJNZXNzYWdlIH19XG4gICAgICAgIDwvaGVscGVyPlxuICAgICAgPC9tZWN4LWZvcm0tZmllbGQtaGVhZGVyPlxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1ib2R5IFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxuICAgICAgICA8bW9ua2V5LWljb25cbiAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICBbY29sb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKCkgPyAnI2ZhMzgzOCcgOiAnIzRCNEE1MydcIlxuICAgICAgICAgICpuZ0lmPVwiaWNvblwiXG4gICAgICAgID48L21vbmtleS1pY29uPlxuICAgICAgICA8c3ltYm9sPlxuICAgICAgICAgIHt7IF9zeW1ib2wgfX1cbiAgICAgICAgPC9zeW1ib2w+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgW2lkXT1cIm5hbWVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiX2Zvcm1hdGVkVmFsdWVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxuICAgICAgICAgIFttYXNrXT1cIm1hc2tcIlxuICAgICAgICAgIFtwcmVmaXhdPVwicHJlZml4XCJcbiAgICAgICAgICAqbmdJZj1cIm1hc2sgJiYgcHJlZml4XCJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcbiAgICAgICAgLz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICBbaWRdPVwibmFtZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJfZm9ybWF0ZWRWYWx1ZVwiXG4gICAgICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXG4gICAgICAgICAgW21hc2tdPVwibWFza1wiXG4gICAgICAgICAgKm5nSWY9XCJtYXNrICYmICFwcmVmaXhcIlxuICAgICAgICAgICNtb25rZXlJbnB1dFxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZVZhbHVlKCRldmVudClcIlxuICAgICAgICAgIFtpZF09XCJuYW1lXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9mb3JtYXRlZFZhbHVlXCJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICAgICAgKm5nSWY9XCIhbWFzayAmJiAhcHJlZml4XCJcbiAgICAgICAgICBbbWF4XT1cIm1heERhdGVUb2RheSA/IF9tYXhEYXRlVG9kYXkgOiBudWxsXCJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcbiAgICAgICAgLz5cbiAgICAgICAgPG1vbmtleS1pY29uXG4gICAgICAgICAgaWNvbj1cImV5ZS1vcGVuLTE2XCJcbiAgICAgICAgICBbY29sb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKCkgPyAnI2ZhMzgzOCcgOiAnIzRCNEE1MydcIlxuICAgICAgICAgICpuZ0lmPVwiX29sZFR5cGUgPT09ICdwYXNzd29yZCcgJiYgdHlwZSA9PT0gJ3RleHQnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25TaG93QW5kSGlkZVBhc3N3b3JkKClcIlxuICAgICAgICA+PC9tb25rZXktaWNvbj5cbiAgICAgICAgPG1vbmtleS1pY29uXG4gICAgICAgICAgaWNvbj1cImV5ZS1jbG9zZWQtMTZcIlxuICAgICAgICAgIFtjb2xvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKSA/ICcjZmEzODM4JyA6ICcjNEI0QTUzJ1wiXG4gICAgICAgICAgKm5nSWY9XCJfb2xkVHlwZSA9PT0gJ3Bhc3N3b3JkJyAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25TaG93QW5kSGlkZVBhc3N3b3JkKClcIlxuICAgICAgICA+PC9tb25rZXktaWNvbj5cbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWJvZHk+XG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cbiAgICAgICAgPGluZm8+XG4gICAgICAgICAge3sgaW5mb01lc3NhZ2UgfX1cbiAgICAgICAgPC9pbmZvPlxuICAgICAgICA8ZXJyb3I+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvZXJyb3I+XG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1mb290ZXI+XG4gICAgPC9tZWN4LWZvcm0tZmllbGQ+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW9ua2V5SW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICBDdXJyZW5jeVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IGBtZWN4LWlucHV0LSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBoZWxwZXJNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1hc2s6IHN0cmluZztcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyID0gMjU1O1xuICBASW5wdXQoKSBvbmx5TnVtYmVyOiBhbnk7XG4gIEBJbnB1dCgpIG9ubHlBbHBoYU51bWVyaWM6IGFueTtcbiAgQElucHV0KCkgdXBwZXJDYXNlOiBhbnk7XG4gIEBJbnB1dCgpIGxvd2VyQ2FzZTogYW55O1xuICBASW5wdXQoKSBjYXBpdGFsaXplOiBhbnk7XG4gIEBJbnB1dCgpIGN1cnJlbmN5OiBhbnk7XG4gIEBJbnB1dCgpIHBlcmNlbnQ6IGFueTtcbiAgQElucHV0KCkgbWF4RGF0ZVRvZGF5ID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3M7XG4gIHByaXZhdGUgaGFuZGxlZFZhbHVlOiBhbnk7XG4gIHByaXZhdGUgb25Nb2RlbENoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgcHJpdmF0ZSBvbk1vZGVsVG91Y2hlZCA9ICh2YWx1ZTogYW55KSA9PiB7fTtcblxuICBwdWJsaWMgX2lkOiBzdHJpbmcgPSBgbWVjeC1pbnB1dC0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygxMCl9YDtcbiAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgX29sZFR5cGU6IHN0cmluZztcbiAgcHVibGljIF9mb3JtYXRlZFZhbHVlOiBhbnk7XG4gIHB1YmxpYyBfbWF4RGF0ZVRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gIHB1YmxpYyBfc3ltYm9sID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnbW9ua2V5SW5wdXQnLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBtb25rZXlJbnB1dDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxuICAgIHByaXZhdGUgc2V0dGluZ3NTZXJ2aWNlOiBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWYWx1ZSh2YWx1ZTogYW55LCBhcHBseSA9IGZhbHNlKTogYW55IHtcbiAgICBpZiAodGhpcy5vbmx5TnVtYmVyKSB7XG4gICAgICByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seU51bWJlcnMoYCR7dmFsdWV9YCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9ubHlBbHBoYU51bWVyaWMpIHJldHVybiBNb25rZXlVdGlscy5oYW5kbGVPbmx5QWxwaGFOdW1lcmljKGAke3ZhbHVlfWApO1xuICAgIGVsc2UgaWYgKHRoaXMudXBwZXJDYXNlKSByZXR1cm4gYCR7dmFsdWV9YC50b1VwcGVyQ2FzZSgpO1xuICAgIGVsc2UgaWYgKHRoaXMubG93ZXJDYXNlKSByZXR1cm4gYCR7dmFsdWV9YC50b0xvd2VyQ2FzZSgpO1xuICAgIGVsc2UgaWYgKHRoaXMuY2FwaXRhbGl6ZSkgcmV0dXJuIE1vbmtleVV0aWxzLmNhcGl0YWxpemUoYCR7dmFsdWV9YC50b1VwcGVyQ2FzZSgpKTtcbiAgICBlbHNlIGlmICh0aGlzLmN1cnJlbmN5IHx8IHRoaXMucGVyY2VudCkge1xuICAgICAgY29uc3QgaGFuZGxlZCA9IE1vbmtleVV0aWxzLmhhbmRsZU9ubHlOdW1iZXJzKGAke3ZhbHVlfWApO1xuICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlZCAvIDEwMDtcbiAgICAgIGlmKCFyZXN1bHQpIHJldHVybiAnJztcbiAgICAgIHJldHVybiByZXN1bHQudG9GaXhlZCgyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VaZXJvKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gYCR7dmFsdWV9YC5yZXBsYWNlKG5ldyBSZWdFeHAoLzAvLCAnZycpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHRoaXM7XG4gICAgaWYgKHRoaXMuY3VycmVuY3kpIHtcbiAgICAgIGlmICghdmFsdWUgfHwgIXRoaXMucmVwbGFjZVplcm8odmFsdWUpKSByZXR1cm4gJyc7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgc2V0dGluZ3M/LmN1cnJlbmN5Py5jb2RlIHx8ICdCUkwnLFxuICAgICAgICAnJyxcbiAgICAgICAgJzEuMi0yJyxcbiAgICAgICAgc2V0dGluZ3M/LmN1cnJlbmN5Py5sb2NhbGUgfHwgJ3B0LUJSJ1xuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGVyY2VudCkge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTeW1ib2woKSB7XG4gICAgY29uc3QgeyBzZXR0aW5ncyB9ID0gdGhpcztcbiAgICBpZiAodGhpcy5jdXJyZW5jeSkge1xuICAgICAgdGhpcy5fc3ltYm9sID0ge1xuICAgICAgICBCUkw6ICdSJCcsXG4gICAgICAgIENMUDogJ0NMUCcsXG4gICAgICB9W3NldHRpbmdzPy5jdXJyZW5jeT8uY29kZSB8fCAnQlJMJ107XG4gICAgfSBlbHNlIGlmICh0aGlzLnBlcmNlbnQpIHtcbiAgICAgIHRoaXMuX3N5bWJvbCA9ICclJztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB7IHNldHRpbmdzU2VydmljZSB9ID0gdGhpcztcbiAgICB0aGlzLl9vbGRUeXBlID0gdGhpcy50eXBlO1xuICAgIHNldHRpbmdzU2VydmljZS5zZXR0aW5ncygpLnN1YnNjcmliZSgodmFsOiBNb25rZXlTdHlsZVNldHRpbmdzKSA9PiB7XG4gICAgICB0aGlzLnNldHRpbmdzID0gdmFsO1xuICAgICAgdGhpcy5oYW5kbGVTeW1ib2woKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlZFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fZm9ybWF0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5oYW5kbGVkVmFsdWUpO1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQodGhpcy5oYW5kbGVkVmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlZFZhbHVlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgb25DaGFuZ2VWYWx1ZShldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9mb3JtYXRlZFZhbHVlO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBoYW5kbGVkID0gdGhpcy5oYW5kbGVWYWx1ZSh2YWx1ZSwgdHJ1ZSk7XG4gICAgdGhpcy53cml0ZVZhbHVlKGhhbmRsZWQpO1xuICAgIHRoaXMub25DaGFuZ2UubmV4dChoYW5kbGVkKTtcbiAgfVxuXG4gIG9uU2hvd0FuZEhpZGVQYXNzd29yZCgpIHtcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBvbkNsaWNrKCkge1xuICAgIGRvY3VtZW50Py5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCk/LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpPy5bMF0/LmZvY3VzKCk7XG4gIH1cblxuICBvbktleVByZXNzKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgcGF0dGVybiA9IG51bGw7XG4gICAgY29uc3QgY21wID0gZXZlbnQ/LnRhcmdldD8udmFsdWU7XG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XG4gICAgaWYgKHRoaXMuY3VycmVuY3kgfHwgdGhpcy5vbmx5TnVtYmVyIHx8IHRoaXMucGVyY2VudCkge1xuICAgICAgcGF0dGVybiA9IC9bMC05XS87XG4gICAgICBpZiAoIXRoaXMub25seU51bWJlciAmJiBpbnB1dENoYXIgPT09ICcwJyAmJiAhdGhpcy5yZXBsYWNlWmVybyhjbXApKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMub25seUFscGhhTnVtZXJpYykge1xuICAgICAgcGF0dGVybiA9IC9bXjAtOUEtWmEtel0vO1xuICAgIH1cblxuICAgIGlmIChwYXR0ZXJuICYmICFwYXR0ZXJuLnRlc3QoaW5wdXRDaGFyKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
1
+ /**************************
2
+ * Copyright Monkey Exchange. All Rights Reserved
3
+ * This style guide was developed by Monkey Exchange Team
4
+ * MIT Licence
5
+ **************************/
6
+ import { CurrencyPipe } from '@angular/common';
7
+ import { Component, ViewEncapsulation, Input, forwardRef, HostListener, Output, EventEmitter, ViewChild, } from '@angular/core';
8
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
9
+ import { MonkeyUtils } from '../../core/utils';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "../../core";
13
+ import * as i3 from "../icon/icon.component";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "ngx-mask";
16
+ export class MonkeyInputComponent {
17
+ constructor(currencyPipe, settingsService, cdr) {
18
+ this.currencyPipe = currencyPipe;
19
+ this.settingsService = settingsService;
20
+ this.cdr = cdr;
21
+ this.name = `mecx-input-${MonkeyUtils.getRandomString(10)}`;
22
+ this.helperMessage = '';
23
+ this.placeholder = '';
24
+ this.maxLength = 255;
25
+ this.maxDateToday = false;
26
+ this.onChange = new EventEmitter();
27
+ this.onModelChange = (value) => { };
28
+ this.onModelTouched = (value) => { };
29
+ this._id = `mecx-input-${MonkeyUtils.getRandomString(10)}`;
30
+ this._disabled = false;
31
+ this._maxDateToday = new Date().toISOString().split('T')[0];
32
+ this._symbol = '';
33
+ }
34
+ handleValue(value, apply = false) {
35
+ if (this.onlyNumber) {
36
+ return MonkeyUtils.handleOnlyNumbers(`${value}`);
37
+ }
38
+ else if (this.onlyAlphaNumeric)
39
+ return MonkeyUtils.handleOnlyAlphaNumeric(`${value}`);
40
+ else if (this.upperCase)
41
+ return `${value}`.toUpperCase();
42
+ else if (this.lowerCase)
43
+ return `${value}`.toLowerCase();
44
+ else if (this.capitalize)
45
+ return MonkeyUtils.capitalize(`${value}`.toUpperCase());
46
+ else if (this.currency || this.percent) {
47
+ const handled = MonkeyUtils.handleOnlyNumbers(`${value}`);
48
+ const result = handled / 100;
49
+ if (!result)
50
+ return '';
51
+ return result.toFixed(2);
52
+ }
53
+ return value;
54
+ }
55
+ replaceZero(value) {
56
+ return `${value}`.replace(new RegExp(/0/, 'g'), '');
57
+ }
58
+ formatValue(value) {
59
+ const { settings } = this;
60
+ if (this.currency) {
61
+ if (!value || !this.replaceZero(value))
62
+ return '';
63
+ return this.currencyPipe.transform(value, settings?.currency?.code || 'BRL', '', '1.2-2', settings?.currency?.locale || 'pt-BR');
64
+ }
65
+ else if (this.percent) {
66
+ return `${value}`;
67
+ }
68
+ return value;
69
+ }
70
+ handleSymbol() {
71
+ const { settings } = this;
72
+ if (this.currency) {
73
+ this._symbol = {
74
+ BRL: 'R$',
75
+ CLP: 'CLP',
76
+ }[settings?.currency?.code || 'BRL'];
77
+ }
78
+ else if (this.percent) {
79
+ this._symbol = '%';
80
+ }
81
+ }
82
+ ngOnInit() {
83
+ const { settingsService } = this;
84
+ this._oldType = this.type;
85
+ settingsService.settings().subscribe((val) => {
86
+ this.settings = val;
87
+ this.handleSymbol();
88
+ });
89
+ }
90
+ registerOnChange(fn) {
91
+ this.onModelChange = fn;
92
+ }
93
+ registerOnTouched(fn) {
94
+ this.onModelTouched = fn;
95
+ }
96
+ setDisabledState(isDisabled) {
97
+ this._disabled = isDisabled;
98
+ }
99
+ set value(value) {
100
+ this.handledValue = value;
101
+ this._formatedValue = this.formatValue(value);
102
+ this.cdr.detectChanges();
103
+ this.onModelChange(this.handledValue);
104
+ this.onModelTouched(this.handledValue);
105
+ }
106
+ get value() {
107
+ return this.handledValue;
108
+ }
109
+ writeValue(value) {
110
+ this.value = value;
111
+ }
112
+ onChangeValue(event) {
113
+ const value = this._formatedValue;
114
+ event?.preventDefault();
115
+ event?.stopPropagation();
116
+ const handled = this.handleValue(value, true);
117
+ this.writeValue(handled);
118
+ this.onChange.next(handled);
119
+ }
120
+ onShowAndHidePassword() {
121
+ this.type = this.type === 'password' ? 'text' : 'password';
122
+ }
123
+ onClick() {
124
+ document?.getElementById(this._id)?.getElementsByTagName('input')?.[0]?.focus();
125
+ }
126
+ onKeyPress(event) {
127
+ let pattern = null;
128
+ const cmp = event?.target?.value;
129
+ const inputChar = String.fromCharCode(event.charCode);
130
+ if (this.currency || this.onlyNumber || this.percent) {
131
+ pattern = /[0-9]/;
132
+ if (!this.onlyNumber && inputChar === '0' && !this.replaceZero(cmp)) {
133
+ event.preventDefault();
134
+ return;
135
+ }
136
+ }
137
+ else if (this.onlyAlphaNumeric) {
138
+ pattern = /[^0-9A-Za-z]/;
139
+ }
140
+ if (pattern && !pattern.test(inputChar)) {
141
+ event.preventDefault();
142
+ }
143
+ }
144
+ }
145
+ MonkeyInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MonkeyInputComponent, deps: [{ token: i1.CurrencyPipe }, { token: i2.MonkeyStyleGuideSettingsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
146
+ MonkeyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MonkeyInputComponent, selector: "monkey-input", inputs: { name: "name", label: "label", helperMessage: "helperMessage", placeholder: "placeholder", icon: "icon", type: "type", infoMessage: "infoMessage", errorMessage: "errorMessage", mask: "mask", prefix: "prefix", maxLength: "maxLength", onlyNumber: "onlyNumber", onlyAlphaNumeric: "onlyAlphaNumeric", upperCase: "upperCase", lowerCase: "lowerCase", capitalize: "capitalize", currency: "currency", percent: "percent", maxDateToday: "maxDateToday", value: "value" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick()" } }, providers: [
147
+ {
148
+ provide: NG_VALUE_ACCESSOR,
149
+ useExisting: forwardRef(() => MonkeyInputComponent),
150
+ multi: true,
151
+ },
152
+ CurrencyPipe,
153
+ ], viewQueries: [{ propertyName: "monkeyInput", first: true, predicate: ["monkeyInput"], descendants: true, static: true }], ngImport: i0, template: `
154
+ <mecx-form-field [ngClass]="{ disabled: _disabled }" [id]="_id">
155
+ <mecx-form-field-header>
156
+ <label>
157
+ {{ label }}
158
+ </label>
159
+ <helper>
160
+ {{ helperMessage }}
161
+ </helper>
162
+ </mecx-form-field-header>
163
+ <mecx-form-field-body [class.error]="errorMessage?.trim()">
164
+ <monkey-icon
165
+ [icon]="icon"
166
+ [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
167
+ *ngIf="icon"
168
+ ></monkey-icon>
169
+ <symbol>
170
+ {{ _symbol }}
171
+ </symbol>
172
+ <input
173
+ [name]="name"
174
+ [type]="type"
175
+ [placeholder]="placeholder"
176
+ (input)="onChangeValue($event)"
177
+ (keypress)="onKeyPress($event)"
178
+ [id]="name"
179
+ [(ngModel)]="_formatedValue"
180
+ [disabled]="_disabled"
181
+ [mask]="mask"
182
+ [prefix]="prefix"
183
+ *ngIf="mask && prefix"
184
+ #monkeyInput
185
+ />
186
+ <input
187
+ [name]="name"
188
+ [type]="type"
189
+ [placeholder]="placeholder"
190
+ (input)="onChangeValue($event)"
191
+ [id]="name"
192
+ [(ngModel)]="_formatedValue"
193
+ (keypress)="onKeyPress($event)"
194
+ [disabled]="_disabled"
195
+ [mask]="mask"
196
+ *ngIf="mask && !prefix"
197
+ #monkeyInput
198
+ />
199
+ <input
200
+ [name]="name"
201
+ [type]="type"
202
+ [placeholder]="placeholder"
203
+ (input)="onChangeValue($event)"
204
+ [id]="name"
205
+ [(ngModel)]="_formatedValue"
206
+ (keypress)="onKeyPress($event)"
207
+ [disabled]="_disabled"
208
+ [maxLength]="maxLength"
209
+ *ngIf="!mask && !prefix"
210
+ [max]="maxDateToday ? _maxDateToday : null"
211
+ #monkeyInput
212
+ />
213
+ <monkey-icon
214
+ icon="eye-open-16"
215
+ [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
216
+ *ngIf="_oldType === 'password' && type === 'text'"
217
+ (click)="onShowAndHidePassword()"
218
+ ></monkey-icon>
219
+ <monkey-icon
220
+ icon="eye-closed-16"
221
+ [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
222
+ *ngIf="_oldType === 'password' && type === 'password'"
223
+ (click)="onShowAndHidePassword()"
224
+ ></monkey-icon>
225
+ </mecx-form-field-body>
226
+ <mecx-form-field-footer>
227
+ <info>
228
+ {{ infoMessage }}
229
+ </info>
230
+ <error>
231
+ {{ errorMessage }}
232
+ </error>
233
+ </mecx-form-field-footer>
234
+ </mecx-form-field>
235
+ `, isInline: true, components: [{ type: i3.MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MonkeyInputComponent, decorators: [{
237
+ type: Component,
238
+ args: [{
239
+ selector: 'monkey-input',
240
+ template: `
241
+ <mecx-form-field [ngClass]="{ disabled: _disabled }" [id]="_id">
242
+ <mecx-form-field-header>
243
+ <label>
244
+ {{ label }}
245
+ </label>
246
+ <helper>
247
+ {{ helperMessage }}
248
+ </helper>
249
+ </mecx-form-field-header>
250
+ <mecx-form-field-body [class.error]="errorMessage?.trim()">
251
+ <monkey-icon
252
+ [icon]="icon"
253
+ [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
254
+ *ngIf="icon"
255
+ ></monkey-icon>
256
+ <symbol>
257
+ {{ _symbol }}
258
+ </symbol>
259
+ <input
260
+ [name]="name"
261
+ [type]="type"
262
+ [placeholder]="placeholder"
263
+ (input)="onChangeValue($event)"
264
+ (keypress)="onKeyPress($event)"
265
+ [id]="name"
266
+ [(ngModel)]="_formatedValue"
267
+ [disabled]="_disabled"
268
+ [mask]="mask"
269
+ [prefix]="prefix"
270
+ *ngIf="mask && prefix"
271
+ #monkeyInput
272
+ />
273
+ <input
274
+ [name]="name"
275
+ [type]="type"
276
+ [placeholder]="placeholder"
277
+ (input)="onChangeValue($event)"
278
+ [id]="name"
279
+ [(ngModel)]="_formatedValue"
280
+ (keypress)="onKeyPress($event)"
281
+ [disabled]="_disabled"
282
+ [mask]="mask"
283
+ *ngIf="mask && !prefix"
284
+ #monkeyInput
285
+ />
286
+ <input
287
+ [name]="name"
288
+ [type]="type"
289
+ [placeholder]="placeholder"
290
+ (input)="onChangeValue($event)"
291
+ [id]="name"
292
+ [(ngModel)]="_formatedValue"
293
+ (keypress)="onKeyPress($event)"
294
+ [disabled]="_disabled"
295
+ [maxLength]="maxLength"
296
+ *ngIf="!mask && !prefix"
297
+ [max]="maxDateToday ? _maxDateToday : null"
298
+ #monkeyInput
299
+ />
300
+ <monkey-icon
301
+ icon="eye-open-16"
302
+ [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
303
+ *ngIf="_oldType === 'password' && type === 'text'"
304
+ (click)="onShowAndHidePassword()"
305
+ ></monkey-icon>
306
+ <monkey-icon
307
+ icon="eye-closed-16"
308
+ [color]="errorMessage?.trim() ? '#fa3838' : '#4B4A53'"
309
+ *ngIf="_oldType === 'password' && type === 'password'"
310
+ (click)="onShowAndHidePassword()"
311
+ ></monkey-icon>
312
+ </mecx-form-field-body>
313
+ <mecx-form-field-footer>
314
+ <info>
315
+ {{ infoMessage }}
316
+ </info>
317
+ <error>
318
+ {{ errorMessage }}
319
+ </error>
320
+ </mecx-form-field-footer>
321
+ </mecx-form-field>
322
+ `,
323
+ encapsulation: ViewEncapsulation.None,
324
+ providers: [
325
+ {
326
+ provide: NG_VALUE_ACCESSOR,
327
+ useExisting: forwardRef(() => MonkeyInputComponent),
328
+ multi: true,
329
+ },
330
+ CurrencyPipe,
331
+ ],
332
+ }]
333
+ }], ctorParameters: function () { return [{ type: i1.CurrencyPipe }, { type: i2.MonkeyStyleGuideSettingsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
334
+ type: Input
335
+ }], label: [{
336
+ type: Input
337
+ }], helperMessage: [{
338
+ type: Input
339
+ }], placeholder: [{
340
+ type: Input
341
+ }], icon: [{
342
+ type: Input
343
+ }], type: [{
344
+ type: Input
345
+ }], infoMessage: [{
346
+ type: Input
347
+ }], errorMessage: [{
348
+ type: Input
349
+ }], mask: [{
350
+ type: Input
351
+ }], prefix: [{
352
+ type: Input
353
+ }], maxLength: [{
354
+ type: Input
355
+ }], onlyNumber: [{
356
+ type: Input
357
+ }], onlyAlphaNumeric: [{
358
+ type: Input
359
+ }], upperCase: [{
360
+ type: Input
361
+ }], lowerCase: [{
362
+ type: Input
363
+ }], capitalize: [{
364
+ type: Input
365
+ }], currency: [{
366
+ type: Input
367
+ }], percent: [{
368
+ type: Input
369
+ }], maxDateToday: [{
370
+ type: Input
371
+ }], onChange: [{
372
+ type: Output
373
+ }], monkeyInput: [{
374
+ type: ViewChild,
375
+ args: ['monkeyInput', {
376
+ static: true,
377
+ }]
378
+ }], value: [{
379
+ type: Input
380
+ }], onClick: [{
381
+ type: HostListener,
382
+ args: ['click']
383
+ }] } });
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFHWixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBaUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLFlBQTBCLEVBQzFCLGVBQWdELEVBQ2hELEdBQXNCO1FBRnRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpDdkIsU0FBSSxHQUFXLGNBQWMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRS9ELGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBT3pCLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFReEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJckMsa0JBQWEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENB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STtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFpQlAsV0FBVztzQkFIVixTQUFTO3VCQUFDLGFBQWEsRUFBRTt3QkFDeEIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBa0ZHLEtBQUs7c0JBRFIsS0FBSztnQkErQk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxyXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cclxuICogTUlUIExpY2VuY2VcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBJbnB1dCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkluaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlLCBNb25rZXlTdHlsZVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21vbmtleS1pbnB1dCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtZWN4LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogX2Rpc2FibGVkIH1cIiBbaWRdPVwiX2lkXCI+XHJcbiAgICAgIDxtZWN4LWZvcm0tZmllbGQtaGVhZGVyPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIHt7IGxhYmVsIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aGVscGVyPlxyXG4gICAgICAgICAge3sgaGVscGVyTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaGVscGVyPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1oZWFkZXI+XHJcbiAgICAgIDxtZWN4LWZvcm0tZmllbGQtYm9keSBbY2xhc3MuZXJyb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKClcIj5cclxuICAgICAgICA8bW9ua2V5LWljb25cclxuICAgICAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICAgICAgW2NvbG9yXT1cImVycm9yTWVzc2FnZT8udHJpbSgpID8gJyNmYTM4MzgnIDogJyM0QjRBNTMnXCJcclxuICAgICAgICAgICpuZ0lmPVwiaWNvblwiXHJcbiAgICAgICAgPjwvbW9ua2V5LWljb24+XHJcbiAgICAgICAgPHN5bWJvbD5cclxuICAgICAgICAgIHt7IF9zeW1ib2wgfX1cclxuICAgICAgICA8L3N5bWJvbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiX2Zvcm1hdGVkVmFsdWVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbWFza109XCJtYXNrXCJcclxuICAgICAgICAgIFtwcmVmaXhdPVwicHJlZml4XCJcclxuICAgICAgICAgICpuZ0lmPVwibWFzayAmJiBwcmVmaXhcIlxyXG4gICAgICAgICAgI21vbmtleUlucHV0XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9mb3JtYXRlZFZhbHVlXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbWFza109XCJtYXNrXCJcclxuICAgICAgICAgICpuZ0lmPVwibWFzayAmJiAhcHJlZml4XCJcclxuICAgICAgICAgICNtb25rZXlJbnB1dFxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJfZm9ybWF0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxyXG4gICAgICAgICAgKm5nSWY9XCIhbWFzayAmJiAhcHJlZml4XCJcclxuICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVRvZGF5ID8gX21heERhdGVUb2RheSA6IG51bGxcIlxyXG4gICAgICAgICAgI21vbmtleUlucHV0XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8bW9ua2V5LWljb25cclxuICAgICAgICAgIGljb249XCJleWUtb3Blbi0xNlwiXHJcbiAgICAgICAgICBbY29sb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKCkgPyAnI2ZhMzgzOCcgOiAnIzRCNEE1MydcIlxyXG4gICAgICAgICAgKm5nSWY9XCJfb2xkVHlwZSA9PT0gJ3Bhc3N3b3JkJyAmJiB0eXBlID09PSAndGV4dCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0FuZEhpZGVQYXNzd29yZCgpXCJcclxuICAgICAgICA+PC9tb25rZXktaWNvbj5cclxuICAgICAgICA8bW9ua2V5LWljb25cclxuICAgICAgICAgIGljb249XCJleWUtY2xvc2VkLTE2XCJcclxuICAgICAgICAgIFtjb2xvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKSA/ICcjZmEzODM4JyA6ICcjNEI0QTUzJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cIl9vbGRUeXBlID09PSAncGFzc3dvcmQnICYmIHR5cGUgPT09ICdwYXNzd29yZCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0FuZEhpZGVQYXNzd29yZCgpXCJcclxuICAgICAgICA+PC9tb25rZXktaWNvbj5cclxuICAgICAgPC9tZWN4LWZvcm0tZmllbGQtYm9keT5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1mb290ZXI+XHJcbiAgICAgICAgPGluZm8+XHJcbiAgICAgICAgICB7eyBpbmZvTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaW5mbz5cclxuICAgICAgICA8ZXJyb3I+XHJcbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Vycm9yPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1mb290ZXI+XHJcbiAgICA8L21lY3gtZm9ybS1maWVsZD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNb25rZXlJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIEN1cnJlbmN5UGlwZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9ua2V5SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBgbWVjeC1pbnB1dC0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygxMCl9YDtcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGhlbHBlck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWFzazogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyID0gMjU1O1xyXG4gIEBJbnB1dCgpIG9ubHlOdW1iZXI6IGFueTtcclxuICBASW5wdXQoKSBvbmx5QWxwaGFOdW1lcmljOiBhbnk7XHJcbiAgQElucHV0KCkgdXBwZXJDYXNlOiBhbnk7XHJcbiAgQElucHV0KCkgbG93ZXJDYXNlOiBhbnk7XHJcbiAgQElucHV0KCkgY2FwaXRhbGl6ZTogYW55O1xyXG4gIEBJbnB1dCgpIGN1cnJlbmN5OiBhbnk7XHJcbiAgQElucHV0KCkgcGVyY2VudDogYW55O1xyXG4gIEBJbnB1dCgpIG1heERhdGVUb2RheSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIHNldHRpbmdzOiBNb25rZXlTdHlsZVNldHRpbmdzO1xyXG4gIHByaXZhdGUgaGFuZGxlZFZhbHVlOiBhbnk7XHJcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Nb2RlbFRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XHJcblxyXG4gIHB1YmxpYyBfaWQ6IHN0cmluZyA9IGBtZWN4LWlucHV0LSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xyXG4gIHB1YmxpYyBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgX29sZFR5cGU6IHN0cmluZztcclxuICBwdWJsaWMgX2Zvcm1hdGVkVmFsdWU6IGFueTtcclxuICBwdWJsaWMgX21heERhdGVUb2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gIHB1YmxpYyBfc3ltYm9sID0gJyc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21vbmtleUlucHV0Jywge1xyXG4gICAgc3RhdGljOiB0cnVlLFxyXG4gIH0pXHJcbiAgbW9ua2V5SW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcclxuICAgIHByaXZhdGUgc2V0dGluZ3NTZXJ2aWNlOiBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVZhbHVlKHZhbHVlOiBhbnksIGFwcGx5ID0gZmFsc2UpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMub25seU51bWJlcikge1xyXG4gICAgICByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seU51bWJlcnMoYCR7dmFsdWV9YCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub25seUFscGhhTnVtZXJpYykgcmV0dXJuIE1vbmtleVV0aWxzLmhhbmRsZU9ubHlBbHBoYU51bWVyaWMoYCR7dmFsdWV9YCk7XHJcbiAgICBlbHNlIGlmICh0aGlzLnVwcGVyQ2FzZSkgcmV0dXJuIGAke3ZhbHVlfWAudG9VcHBlckNhc2UoKTtcclxuICAgIGVsc2UgaWYgKHRoaXMubG93ZXJDYXNlKSByZXR1cm4gYCR7dmFsdWV9YC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5jYXBpdGFsaXplKSByZXR1cm4gTW9ua2V5VXRpbHMuY2FwaXRhbGl6ZShgJHt2YWx1ZX1gLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5jdXJyZW5jeSB8fCB0aGlzLnBlcmNlbnQpIHtcclxuICAgICAgY29uc3QgaGFuZGxlZCA9IE1vbmtleVV0aWxzLmhhbmRsZU9ubHlOdW1iZXJzKGAke3ZhbHVlfWApO1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVkIC8gMTAwO1xyXG4gICAgICBpZighcmVzdWx0KSByZXR1cm4gJyc7XHJcbiAgICAgIHJldHVybiByZXN1bHQudG9GaXhlZCgyKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlcGxhY2VaZXJvKHZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZX1gLnJlcGxhY2UobmV3IFJlZ0V4cCgvMC8sICdnJyksICcnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCB7IHNldHRpbmdzIH0gPSB0aGlzO1xyXG4gICAgaWYgKHRoaXMuY3VycmVuY3kpIHtcclxuICAgICAgaWYgKCF2YWx1ZSB8fCAhdGhpcy5yZXBsYWNlWmVybyh2YWx1ZSkpIHJldHVybiAnJztcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybShcclxuICAgICAgICB2YWx1ZSxcclxuICAgICAgICBzZXR0aW5ncz8uY3VycmVuY3k/LmNvZGUgfHwgJ0JSTCcsXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgJzEuMi0yJyxcclxuICAgICAgICBzZXR0aW5ncz8uY3VycmVuY3k/LmxvY2FsZSB8fCAncHQtQlInXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucGVyY2VudCkge1xyXG4gICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN5bWJvbCgpIHtcclxuICAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHRoaXM7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeSkge1xyXG4gICAgICB0aGlzLl9zeW1ib2wgPSB7XHJcbiAgICAgICAgQlJMOiAnUiQnLFxyXG4gICAgICAgIENMUDogJ0NMUCcsXHJcbiAgICAgIH1bc2V0dGluZ3M/LmN1cnJlbmN5Py5jb2RlIHx8ICdCUkwnXTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5wZXJjZW50KSB7XHJcbiAgICAgIHRoaXMuX3N5bWJvbCA9ICclJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgeyBzZXR0aW5nc1NlcnZpY2UgfSA9IHRoaXM7XHJcbiAgICB0aGlzLl9vbGRUeXBlID0gdGhpcy50eXBlO1xyXG4gICAgc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzKCkuc3Vic2NyaWJlKCh2YWw6IE1vbmtleVN0eWxlU2V0dGluZ3MpID0+IHtcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IHZhbDtcclxuICAgICAgdGhpcy5oYW5kbGVTeW1ib2woKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuaGFuZGxlZFZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9mb3JtYXRlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5oYW5kbGVkVmFsdWUpO1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh0aGlzLmhhbmRsZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VWYWx1ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2Zvcm1hdGVkVmFsdWU7XHJcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGhhbmRsZWQgPSB0aGlzLmhhbmRsZVZhbHVlKHZhbHVlLCB0cnVlKTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShoYW5kbGVkKTtcclxuICAgIHRoaXMub25DaGFuZ2UubmV4dChoYW5kbGVkKTtcclxuICB9XHJcblxyXG4gIG9uU2hvd0FuZEhpZGVQYXNzd29yZCgpIHtcclxuICAgIHRoaXMudHlwZSA9IHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJyA/ICd0ZXh0JyA6ICdwYXNzd29yZCc7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgb25DbGljaygpIHtcclxuICAgIGRvY3VtZW50Py5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCk/LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpPy5bMF0/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzKGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCBwYXR0ZXJuID0gbnVsbDtcclxuICAgIGNvbnN0IGNtcCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xyXG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeSB8fCB0aGlzLm9ubHlOdW1iZXIgfHwgdGhpcy5wZXJjZW50KSB7XHJcbiAgICAgIHBhdHRlcm4gPSAvWzAtOV0vO1xyXG4gICAgICBpZiAoIXRoaXMub25seU51bWJlciAmJiBpbnB1dENoYXIgPT09ICcwJyAmJiAhdGhpcy5yZXBsYWNlWmVybyhjbXApKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbmx5QWxwaGFOdW1lcmljKSB7XHJcbiAgICAgIHBhdHRlcm4gPSAvW14wLTlBLVphLXpdLztcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGF0dGVybiAmJiAhcGF0dGVybi50ZXN0KGlucHV0Q2hhcikpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19