monkey-style-guide 2.0.107 → 2.0.111

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 (245) hide show
  1. package/assets/scss/partials/_breakpoints.scss +35 -35
  2. package/assets/scss/partials/components/_badge.scss +55 -55
  3. package/assets/scss/partials/components/_date-range-picker.scss +1 -0
  4. package/assets/scss/partials/components/_expansion.scss +91 -91
  5. package/assets/scss/partials/components/_modal.scss +282 -282
  6. package/assets/scss/partials/components/_tab.scss +82 -82
  7. package/assets/scss/partials/components/_toggle.scss +103 -103
  8. package/{esm2015/lib/components/badge/badge.component.js → esm2020/lib/components/badge/badge.component.mjs} +4 -4
  9. package/{esm2015/lib/components/badge/badge.module.js → esm2020/lib/components/badge/badge.module.mjs} +5 -5
  10. package/{esm2015/lib/components/badge/index.js → esm2020/lib/components/badge/index.mjs} +1 -1
  11. package/{esm2015/lib/components/button/button-avatar.component.js → esm2020/lib/components/button/button-avatar.component.mjs} +5 -5
  12. package/{esm2015/lib/components/button/button-dropdown.component.js → esm2020/lib/components/button/button-dropdown.component.mjs} +4 -4
  13. package/{esm2015/lib/components/button/button.component.js → esm2020/lib/components/button/button.component.mjs} +4 -4
  14. package/{esm2015/lib/components/button/button.module.js → esm2020/lib/components/button/button.module.mjs} +5 -5
  15. package/{esm2015/lib/components/button/index.js → esm2020/lib/components/button/index.mjs} +0 -0
  16. package/{esm2015/lib/components/checkbox/checkbox.component.js → esm2020/lib/components/checkbox/checkbox.component.mjs} +6 -6
  17. package/{esm2015/lib/components/checkbox/checkbox.module.js → esm2020/lib/components/checkbox/checkbox.module.mjs} +5 -5
  18. package/{esm2015/lib/components/checkbox/index.js → esm2020/lib/components/checkbox/index.mjs} +0 -0
  19. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +569 -0
  20. package/{esm2015/lib/components/date-range-picker/date-range-picker.module.js → esm2020/lib/components/date-range-picker/date-range-picker.module.mjs} +5 -5
  21. package/{esm2015/lib/components/date-range-picker/index.js → esm2020/lib/components/date-range-picker/index.mjs} +0 -0
  22. package/{esm2015/lib/components/expansion/expansion.component.js → esm2020/lib/components/expansion/expansion.component.mjs} +71 -71
  23. package/{esm2015/lib/components/expansion/expansion.module.js → esm2020/lib/components/expansion/expansion.module.mjs} +5 -5
  24. package/{esm2015/lib/components/expansion/index.js → esm2020/lib/components/expansion/index.mjs} +1 -1
  25. package/{esm2015/lib/components/file-upload/file-upload.component.js → esm2020/lib/components/file-upload/file-upload.component.mjs} +6 -6
  26. package/{esm2015/lib/components/file-upload/file-upload.module.js → esm2020/lib/components/file-upload/file-upload.module.mjs} +5 -5
  27. package/{esm2015/lib/components/file-upload/index.js → esm2020/lib/components/file-upload/index.mjs} +0 -0
  28. package/esm2020/lib/components/icon/icon-arrow-down.component.mjs +15 -0
  29. package/esm2020/lib/components/icon/icon-arrow-left.component.mjs +15 -0
  30. package/esm2020/lib/components/icon/icon-arrow-right.component.mjs +15 -0
  31. package/esm2020/lib/components/icon/icon-arrow-up.component.mjs +15 -0
  32. package/esm2020/lib/components/icon/icon-bank.component.mjs +15 -0
  33. package/esm2020/lib/components/icon/icon-bell.component.mjs +15 -0
  34. package/esm2020/lib/components/icon/icon-book.component.mjs +15 -0
  35. package/esm2020/lib/components/icon/icon-box.component.mjs +15 -0
  36. package/esm2020/lib/components/icon/icon-calendar.component.mjs +15 -0
  37. package/esm2020/lib/components/icon/icon-camera.component.mjs +15 -0
  38. package/esm2020/lib/components/icon/icon-chat.component.mjs +15 -0
  39. package/esm2020/lib/components/icon/icon-check-circle-out.component.mjs +15 -0
  40. package/esm2020/lib/components/icon/icon-check-circle.component.mjs +15 -0
  41. package/esm2020/lib/components/icon/icon-check-grey.component.mjs +15 -0
  42. package/esm2020/lib/components/icon/icon-check-white.component.mjs +15 -0
  43. package/esm2020/lib/components/icon/icon-check.component.mjs +15 -0
  44. package/esm2020/lib/components/icon/icon-clipboard.component.mjs +15 -0
  45. package/esm2020/lib/components/icon/icon-clock.component.mjs +15 -0
  46. package/esm2020/lib/components/icon/icon-close.component.mjs +15 -0
  47. package/esm2020/lib/components/icon/icon-cnpj.component.mjs +15 -0
  48. package/esm2020/lib/components/icon/icon-codepen.component.mjs +15 -0
  49. package/esm2020/lib/components/icon/icon-company-name.component.mjs +15 -0
  50. package/esm2020/lib/components/icon/icon-contract.component.mjs +15 -0
  51. package/esm2020/lib/components/icon/icon-delete.component.mjs +15 -0
  52. package/esm2020/lib/components/icon/icon-document.component.mjs +15 -0
  53. package/esm2020/lib/components/icon/icon-dollar-sign.component.mjs +15 -0
  54. package/esm2020/lib/components/icon/icon-domain.component.mjs +15 -0
  55. package/esm2020/lib/components/icon/icon-download.component.mjs +15 -0
  56. package/esm2020/lib/components/icon/icon-edit.component.mjs +15 -0
  57. package/esm2020/lib/components/icon/icon-email.component.mjs +15 -0
  58. package/esm2020/lib/components/icon/icon-empty-doc.component.mjs +15 -0
  59. package/esm2020/lib/components/icon/icon-error.component.mjs +15 -0
  60. package/esm2020/lib/components/icon/icon-eye-closed.component.mjs +15 -0
  61. package/esm2020/lib/components/icon/icon-eye-open.component.mjs +15 -0
  62. package/esm2020/lib/components/icon/icon-filter.component.mjs +15 -0
  63. package/esm2020/lib/components/icon/icon-grid.component.mjs +15 -0
  64. package/esm2020/lib/components/icon/icon-help.component.mjs +15 -0
  65. package/esm2020/lib/components/icon/icon-hexagon.component.mjs +15 -0
  66. package/esm2020/lib/components/icon/icon-home.component.mjs +15 -0
  67. package/esm2020/lib/components/icon/icon-image.component.mjs +15 -0
  68. package/esm2020/lib/components/icon/icon-list.component.mjs +15 -0
  69. package/esm2020/lib/components/icon/icon-location-pin.component.mjs +15 -0
  70. package/esm2020/lib/components/icon/icon-login.component.mjs +15 -0
  71. package/esm2020/lib/components/icon/icon-logout.component.mjs +15 -0
  72. package/esm2020/lib/components/icon/icon-menu.component.mjs +15 -0
  73. package/esm2020/lib/components/icon/icon-money-sign.component.mjs +15 -0
  74. package/esm2020/lib/components/icon/icon-more.component.mjs +15 -0
  75. package/esm2020/lib/components/icon/icon-offered.component.mjs +15 -0
  76. package/esm2020/lib/components/icon/icon-password.component.mjs +15 -0
  77. package/esm2020/lib/components/icon/icon-people.component.mjs +15 -0
  78. package/esm2020/lib/components/icon/icon-percent.component.mjs +15 -0
  79. package/esm2020/lib/components/icon/icon-person-document.component.mjs +15 -0
  80. package/esm2020/lib/components/icon/icon-person-sad.component.mjs +15 -0
  81. package/esm2020/lib/components/icon/icon-phone.component.mjs +15 -0
  82. package/esm2020/lib/components/icon/icon-pork.component.mjs +15 -0
  83. package/esm2020/lib/components/icon/icon-refresh.component.mjs +15 -0
  84. package/esm2020/lib/components/icon/icon-repeat.component.mjs +15 -0
  85. package/esm2020/lib/components/icon/icon-search.component.mjs +15 -0
  86. package/esm2020/lib/components/icon/icon-second-warning.component.mjs +15 -0
  87. package/esm2020/lib/components/icon/icon-settings.component.mjs +15 -0
  88. package/esm2020/lib/components/icon/icon-trash.component.mjs +15 -0
  89. package/esm2020/lib/components/icon/icon-upload.component.mjs +15 -0
  90. package/esm2020/lib/components/icon/icon-user.component.mjs +15 -0
  91. package/esm2020/lib/components/icon/icon-wallet.component.mjs +15 -0
  92. package/esm2020/lib/components/icon/icon-warning.component.mjs +15 -0
  93. package/{esm2015/lib/components/icon/icon.component.js → esm2020/lib/components/icon/icon.component.mjs} +6 -6
  94. package/{esm2015/lib/components/icon/icon.module.js → esm2020/lib/components/icon/icon.module.mjs} +5 -5
  95. package/{esm2015/lib/components/icon/index.js → esm2020/lib/components/icon/index.mjs} +0 -0
  96. package/{esm2015/lib/components/image-crop/image-crop.component.js → esm2020/lib/components/image-crop/image-crop.component.mjs} +12 -5
  97. package/{esm2015/lib/components/image-crop/image-crop.module.js → esm2020/lib/components/image-crop/image-crop.module.mjs} +5 -5
  98. package/{esm2015/lib/components/image-crop/index.js → esm2020/lib/components/image-crop/index.mjs} +0 -0
  99. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  100. package/{esm2015/lib/components/input/index.js → esm2020/lib/components/input/index.mjs} +0 -0
  101. package/esm2020/lib/components/input/input-filter.component.mjs +261 -0
  102. package/esm2020/lib/components/input/input.component.mjs +380 -0
  103. package/{esm2015/lib/components/input/input.module.js → esm2020/lib/components/input/input.module.mjs} +5 -5
  104. package/{esm2015/lib/components/input-phone/index.js → esm2020/lib/components/input-phone/index.mjs} +0 -0
  105. package/esm2020/lib/components/input-phone/input-phone.component.mjs +304 -0
  106. package/{esm2015/lib/components/input-phone/input-phone.module.js → esm2020/lib/components/input-phone/input-phone.module.mjs} +5 -5
  107. package/{esm2015/lib/components/modal/index.js → esm2020/lib/components/modal/index.mjs} +0 -0
  108. package/esm2020/lib/components/modal/modal.component.mjs +236 -0
  109. package/{esm2015/lib/components/modal/modal.module.js → esm2020/lib/components/modal/modal.module.mjs} +5 -5
  110. package/{esm2015/lib/components/option/index.js → esm2020/lib/components/option/index.mjs} +0 -0
  111. package/{esm2015/lib/components/option/option.component.js → esm2020/lib/components/option/option.component.mjs} +4 -4
  112. package/{esm2015/lib/components/option/option.module.js → esm2020/lib/components/option/option.module.mjs} +5 -5
  113. package/{esm2015/lib/components/radiobutton/index.js → esm2020/lib/components/radiobutton/index.mjs} +0 -0
  114. package/{esm2015/lib/components/radiobutton/radiobutton.component.js → esm2020/lib/components/radiobutton/radiobutton.component.mjs} +6 -6
  115. package/{esm2015/lib/components/radiobutton/radiobutton.module.js → esm2020/lib/components/radiobutton/radiobutton.module.mjs} +5 -5
  116. package/{esm2015/lib/components/select/index.js → esm2020/lib/components/select/index.mjs} +0 -0
  117. package/{esm2015/lib/components/select/select-filter.component.js → esm2020/lib/components/select/select-filter.component.mjs} +6 -6
  118. package/esm2020/lib/components/select/select-multiple.component.mjs +304 -0
  119. package/esm2020/lib/components/select/select-search.component.mjs +306 -0
  120. package/{esm2015/lib/components/select/select.component.js → esm2020/lib/components/select/select.component.mjs} +6 -6
  121. package/{esm2015/lib/components/select/select.module.js → esm2020/lib/components/select/select.module.mjs} +5 -5
  122. package/{esm2015/lib/components/stepper/index.js → esm2020/lib/components/stepper/index.mjs} +0 -0
  123. package/{esm2015/lib/components/stepper/stepper.component.js → esm2020/lib/components/stepper/stepper.component.mjs} +4 -4
  124. package/{esm2015/lib/components/stepper/stepper.module.js → esm2020/lib/components/stepper/stepper.module.mjs} +5 -5
  125. package/{esm2015/lib/components/tab/index.js → esm2020/lib/components/tab/index.mjs} +1 -1
  126. package/{esm2015/lib/components/tab/tab.component.js → esm2020/lib/components/tab/tab.component.mjs} +12 -12
  127. package/{esm2015/lib/components/tab/tab.module.js → esm2020/lib/components/tab/tab.module.mjs} +5 -5
  128. package/{esm2015/lib/components/table/index.js → esm2020/lib/components/table/index.mjs} +0 -0
  129. package/{esm2015/lib/components/table/table-column.component.js → esm2020/lib/components/table/table-column.component.mjs} +4 -4
  130. package/esm2020/lib/components/table/table.component.mjs +203 -0
  131. package/{esm2015/lib/components/table/table.module.js → esm2020/lib/components/table/table.module.mjs} +5 -5
  132. package/{esm2015/lib/components/toggle/index.js → esm2020/lib/components/toggle/index.mjs} +1 -1
  133. package/esm2020/lib/components/toggle/toggle.component.mjs +56 -0
  134. package/{esm2015/lib/components/toggle/toggle.module.js → esm2020/lib/components/toggle/toggle.module.mjs} +5 -5
  135. package/{esm2015/lib/components/wizard/index.js → esm2020/lib/components/wizard/index.mjs} +0 -0
  136. package/{esm2015/lib/components/wizard/wizard.component.js → esm2020/lib/components/wizard/wizard.component.mjs} +4 -4
  137. package/{esm2015/lib/components/wizard/wizard.module.js → esm2020/lib/components/wizard/wizard.module.mjs} +5 -5
  138. package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +0 -0
  139. package/{esm2015/lib/core/interfaces/index.js → esm2020/lib/core/interfaces/index.mjs} +1 -1
  140. package/esm2020/lib/core/interfaces/monkey-modal-settings.mjs +2 -0
  141. package/{esm2015/lib/core/interfaces/monkey-style-settings.js → esm2020/lib/core/interfaces/monkey-style-settings.mjs} +0 -0
  142. package/{esm2015/lib/core/services/index.js → esm2020/lib/core/services/index.mjs} +0 -0
  143. package/{esm2015/lib/core/services/modal/index.js → esm2020/lib/core/services/modal/index.mjs} +1 -1
  144. package/{esm2015/lib/core/services/modal/monkey-style-guide-modal-fixed.service.js → esm2020/lib/core/services/modal/monkey-style-guide-modal-fixed.service.mjs} +4 -4
  145. package/{esm2015/lib/core/services/modal/monkey-style-guide-modal.service.js → esm2020/lib/core/services/modal/monkey-style-guide-modal.service.mjs} +4 -4
  146. package/{esm2015/lib/core/services/monkey-style-guide.service.js → esm2020/lib/core/services/monkey-style-guide.service.mjs} +4 -4
  147. package/{esm2015/lib/core/services/settings/index.js → esm2020/lib/core/services/settings/index.mjs} +0 -0
  148. package/{esm2015/lib/core/services/settings/monkey-style-guide-settings.service.js → esm2020/lib/core/services/settings/monkey-style-guide-settings.service.mjs} +4 -4
  149. package/esm2020/lib/core/services/settings/monkey-style-guide-theme-settings.service.mjs +80 -0
  150. package/{esm2015/lib/core/services/snackbar/index.js → esm2020/lib/core/services/snackbar/index.mjs} +0 -0
  151. package/{esm2015/lib/core/services/snackbar/mokey-style-guide-snackbar.service.js → esm2020/lib/core/services/snackbar/mokey-style-guide-snackbar.service.mjs} +5 -5
  152. package/{esm2015/lib/core/utils/index.js → esm2020/lib/core/utils/index.mjs} +0 -0
  153. package/esm2020/lib/core/utils/utils.mjs +235 -0
  154. package/{esm2015/lib/monkey-style-guide.module.js → esm2020/lib/monkey-style-guide.module.mjs} +5 -5
  155. package/{esm2015/monkey-style-guide.js → esm2020/monkey-style-guide.mjs} +0 -0
  156. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  157. package/fesm2015/{monkey-style-guide.js → monkey-style-guide.mjs} +567 -807
  158. package/fesm2015/monkey-style-guide.mjs.map +1 -0
  159. package/fesm2020/monkey-style-guide.mjs +7921 -0
  160. package/fesm2020/monkey-style-guide.mjs.map +1 -0
  161. package/lib/components/date-range-picker/date-range-picker.component.d.ts +6 -5
  162. package/lib/core/utils/utils.d.ts +3 -3
  163. package/monkey-style-guide-2.0.111.tgz +0 -0
  164. package/package.json +22 -9
  165. package/bundles/monkey-style-guide.umd.js +0 -6220
  166. package/bundles/monkey-style-guide.umd.js.map +0 -1
  167. package/esm2015/lib/components/date-range-picker/date-range-picker.component.js +0 -553
  168. package/esm2015/lib/components/icon/icon-arrow-down.component.js +0 -19
  169. package/esm2015/lib/components/icon/icon-arrow-left.component.js +0 -19
  170. package/esm2015/lib/components/icon/icon-arrow-right.component.js +0 -19
  171. package/esm2015/lib/components/icon/icon-arrow-up.component.js +0 -19
  172. package/esm2015/lib/components/icon/icon-bank.component.js +0 -19
  173. package/esm2015/lib/components/icon/icon-bell.component.js +0 -19
  174. package/esm2015/lib/components/icon/icon-book.component.js +0 -19
  175. package/esm2015/lib/components/icon/icon-box.component.js +0 -19
  176. package/esm2015/lib/components/icon/icon-calendar.component.js +0 -19
  177. package/esm2015/lib/components/icon/icon-camera.component.js +0 -19
  178. package/esm2015/lib/components/icon/icon-chat.component.js +0 -19
  179. package/esm2015/lib/components/icon/icon-check-circle-out.component.js +0 -19
  180. package/esm2015/lib/components/icon/icon-check-circle.component.js +0 -19
  181. package/esm2015/lib/components/icon/icon-check-grey.component.js +0 -19
  182. package/esm2015/lib/components/icon/icon-check-white.component.js +0 -19
  183. package/esm2015/lib/components/icon/icon-check.component.js +0 -19
  184. package/esm2015/lib/components/icon/icon-clipboard.component.js +0 -19
  185. package/esm2015/lib/components/icon/icon-clock.component.js +0 -19
  186. package/esm2015/lib/components/icon/icon-close.component.js +0 -19
  187. package/esm2015/lib/components/icon/icon-cnpj.component.js +0 -19
  188. package/esm2015/lib/components/icon/icon-codepen.component.js +0 -19
  189. package/esm2015/lib/components/icon/icon-company-name.component.js +0 -19
  190. package/esm2015/lib/components/icon/icon-contract.component.js +0 -19
  191. package/esm2015/lib/components/icon/icon-delete.component.js +0 -19
  192. package/esm2015/lib/components/icon/icon-document.component.js +0 -19
  193. package/esm2015/lib/components/icon/icon-dollar-sign.component.js +0 -19
  194. package/esm2015/lib/components/icon/icon-domain.component.js +0 -19
  195. package/esm2015/lib/components/icon/icon-download.component.js +0 -19
  196. package/esm2015/lib/components/icon/icon-edit.component.js +0 -19
  197. package/esm2015/lib/components/icon/icon-email.component.js +0 -19
  198. package/esm2015/lib/components/icon/icon-empty-doc.component.js +0 -19
  199. package/esm2015/lib/components/icon/icon-error.component.js +0 -19
  200. package/esm2015/lib/components/icon/icon-eye-closed.component.js +0 -19
  201. package/esm2015/lib/components/icon/icon-eye-open.component.js +0 -19
  202. package/esm2015/lib/components/icon/icon-filter.component.js +0 -19
  203. package/esm2015/lib/components/icon/icon-grid.component.js +0 -19
  204. package/esm2015/lib/components/icon/icon-help.component.js +0 -19
  205. package/esm2015/lib/components/icon/icon-hexagon.component.js +0 -19
  206. package/esm2015/lib/components/icon/icon-home.component.js +0 -19
  207. package/esm2015/lib/components/icon/icon-image.component.js +0 -19
  208. package/esm2015/lib/components/icon/icon-list.component.js +0 -19
  209. package/esm2015/lib/components/icon/icon-location-pin.component.js +0 -19
  210. package/esm2015/lib/components/icon/icon-login.component.js +0 -19
  211. package/esm2015/lib/components/icon/icon-logout.component.js +0 -19
  212. package/esm2015/lib/components/icon/icon-menu.component.js +0 -19
  213. package/esm2015/lib/components/icon/icon-money-sign.component.js +0 -19
  214. package/esm2015/lib/components/icon/icon-more.component.js +0 -19
  215. package/esm2015/lib/components/icon/icon-offered.component.js +0 -19
  216. package/esm2015/lib/components/icon/icon-password.component.js +0 -19
  217. package/esm2015/lib/components/icon/icon-people.component.js +0 -19
  218. package/esm2015/lib/components/icon/icon-percent.component.js +0 -19
  219. package/esm2015/lib/components/icon/icon-person-document.component.js +0 -19
  220. package/esm2015/lib/components/icon/icon-person-sad.component.js +0 -19
  221. package/esm2015/lib/components/icon/icon-phone.component.js +0 -19
  222. package/esm2015/lib/components/icon/icon-pork.component.js +0 -19
  223. package/esm2015/lib/components/icon/icon-refresh.component.js +0 -19
  224. package/esm2015/lib/components/icon/icon-repeat.component.js +0 -19
  225. package/esm2015/lib/components/icon/icon-search.component.js +0 -19
  226. package/esm2015/lib/components/icon/icon-second-warning.component.js +0 -19
  227. package/esm2015/lib/components/icon/icon-settings.component.js +0 -19
  228. package/esm2015/lib/components/icon/icon-trash.component.js +0 -19
  229. package/esm2015/lib/components/icon/icon-upload.component.js +0 -19
  230. package/esm2015/lib/components/icon/icon-user.component.js +0 -19
  231. package/esm2015/lib/components/icon/icon-wallet.component.js +0 -19
  232. package/esm2015/lib/components/icon/icon-warning.component.js +0 -19
  233. package/esm2015/lib/components/input/input-filter.component.js +0 -262
  234. package/esm2015/lib/components/input/input.component.js +0 -384
  235. package/esm2015/lib/components/input-phone/input-phone.component.js +0 -307
  236. package/esm2015/lib/components/modal/modal.component.js +0 -241
  237. package/esm2015/lib/components/select/select-multiple.component.js +0 -308
  238. package/esm2015/lib/components/select/select-search.component.js +0 -308
  239. package/esm2015/lib/components/table/table.component.js +0 -204
  240. package/esm2015/lib/components/toggle/toggle.component.js +0 -56
  241. package/esm2015/lib/core/interfaces/monkey-modal-settings.js +0 -2
  242. package/esm2015/lib/core/services/settings/monkey-style-guide-theme-settings.service.js +0 -70
  243. package/esm2015/lib/core/utils/utils.js +0 -237
  244. package/fesm2015/monkey-style-guide.js.map +0 -1
  245. package/monkey-style-guide-2.0.107.tgz +0 -0
@@ -1,70 +0,0 @@
1
- /**************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- **************************/
6
- import { Injectable, Inject } from '@angular/core';
7
- import { DOCUMENT } from '@angular/common';
8
- import * as i0 from "@angular/core";
9
- export class MonkeyStyleGuideThemeSettingsService {
10
- constructor(doc) {
11
- this.doc = doc;
12
- }
13
- applyColors(settings) {
14
- const colors = settings.colors;
15
- let bucketColors = null;
16
- ['theme', 'error', 'warning', 'success', 'question'].forEach((color) => {
17
- Object.entries(colors[color]).forEach(([paletteKey, paletteValue]) => {
18
- if (paletteKey === 'contrast') {
19
- Object.entries(paletteValue).forEach(([paletteContrastKey, paletteContrastValue]) => {
20
- document.documentElement.style.setProperty(`--mecx-color-${color}-contrast-${paletteContrastKey}`, `${paletteContrastValue}`);
21
- bucketColors = Object.assign(Object.assign({}, bucketColors), { [`--mecx-color-${color}-contrast-${paletteContrastKey}`]: `${paletteContrastValue}` });
22
- });
23
- }
24
- else {
25
- document.documentElement.style.setProperty(`--mecx-color-${color}-${paletteKey}`, `${paletteValue}`);
26
- bucketColors = Object.assign(Object.assign({}, bucketColors), { [`--mecx-color-${color}-${paletteKey}`]: `${paletteValue}` });
27
- }
28
- });
29
- });
30
- return bucketColors;
31
- }
32
- applyFonts(settings) {
33
- const font = Object.assign({ url: 'https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap', name: 'Work Sans' }, settings.font);
34
- document.documentElement.style.setProperty(`--mecx-font-name`, `${font.name}`);
35
- let link = this.doc.createElement('link');
36
- link.setAttribute('rel', 'stylesheet');
37
- link.setAttribute('type', 'text/css');
38
- link.setAttribute('href', `${font.url}`);
39
- this.doc.head.appendChild(link);
40
- }
41
- applyTheme(settings) {
42
- const { theme } = settings;
43
- document.title = `${theme.title}`;
44
- let link = this.doc.createElement('link');
45
- link.setAttribute('rel', 'icon');
46
- link.setAttribute('type', 'image/x-icon');
47
- link.setAttribute('href', `${theme.favicon}`);
48
- this.doc.head.appendChild(link);
49
- }
50
- apply(config, callback) {
51
- const bucketColors = this.applyColors(config);
52
- this.applyFonts(config);
53
- this.applyTheme(config);
54
- setTimeout(() => {
55
- if (callback)
56
- callback({
57
- bucketColors,
58
- });
59
- }, 500);
60
- }
61
- }
62
- MonkeyStyleGuideThemeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyStyleGuideThemeSettingsService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
63
- MonkeyStyleGuideThemeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyStyleGuideThemeSettingsService });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyStyleGuideThemeSettingsService, decorators: [{
65
- type: Injectable
66
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
67
- type: Inject,
68
- args: [DOCUMENT]
69
- }] }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5LXN0eWxlLWd1aWRlLXRoZW1lLXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3NldHRpbmdzL21vbmtleS1zdHlsZS1ndWlkZS10aGVtZS1zZXR0aW5ncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzRCQUk0QjtBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxvQ0FBb0M7SUFDL0MsWUFBc0MsR0FBUTtRQUFSLFFBQUcsR0FBSCxHQUFHLENBQUs7SUFBRyxDQUFDO0lBRTFDLFdBQVcsQ0FBQyxRQUE2QjtRQUMvQyxNQUFNLE1BQU0sR0FBUSxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztRQUV4QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDMUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7b0JBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUNsQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFO3dCQUM3QyxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENB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QUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZVNldHRpbmdzLCBNb25rZXlTdHlsZUZvbnRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlTdHlsZUd1aWRlVGhlbWVTZXR0aW5nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnkpIHt9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlDb2xvcnMoc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3MpOiBhbnkge1xyXG4gICAgY29uc3QgY29sb3JzOiBhbnkgPSBzZXR0aW5ncy5jb2xvcnM7XHJcblxyXG4gICAgbGV0IGJ1Y2tldENvbG9ycyA9IG51bGw7XHJcblxyXG4gICAgWyd0aGVtZScsICdlcnJvcicsICd3YXJuaW5nJywgJ3N1Y2Nlc3MnLCAncXVlc3Rpb24nXS5mb3JFYWNoKChjb2xvcikgPT4ge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhjb2xvcnNbY29sb3JdIGFzIGFueSkuZm9yRWFjaChcclxuICAgICAgICAoW3BhbGV0dGVLZXksIHBhbGV0dGVWYWx1ZV0pID0+IHtcclxuICAgICAgICAgIGlmIChwYWxldHRlS2V5ID09PSAnY29udHJhc3QnKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhbGV0dGVWYWx1ZSkuZm9yRWFjaChcclxuICAgICAgICAgICAgICAoW3BhbGV0dGVDb250cmFzdEtleSwgcGFsZXR0ZUNvbnRyYXN0VmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAgICAgICAgIGAtLW1lY3gtY29sb3ItJHtjb2xvcn0tY29udHJhc3QtJHtwYWxldHRlQ29udHJhc3RLZXl9YCxcclxuICAgICAgICAgICAgICAgICAgYCR7cGFsZXR0ZUNvbnRyYXN0VmFsdWV9YFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGJ1Y2tldENvbG9ycyA9IHtcclxuICAgICAgICAgICAgICAgICAgLi4uYnVja2V0Q29sb3JzLFxyXG4gICAgICAgICAgICAgICAgICBbYC0tbWVjeC1jb2xvci0ke2NvbG9yfS1jb250cmFzdC0ke3BhbGV0dGVDb250cmFzdEtleX1gXTogYCR7cGFsZXR0ZUNvbnRyYXN0VmFsdWV9YCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgIGAtLW1lY3gtY29sb3ItJHtjb2xvcn0tJHtwYWxldHRlS2V5fWAsXHJcbiAgICAgICAgICAgICAgYCR7cGFsZXR0ZVZhbHVlfWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgYnVja2V0Q29sb3JzID0ge1xyXG4gICAgICAgICAgICAgIC4uLmJ1Y2tldENvbG9ycyxcclxuICAgICAgICAgICAgICBbYC0tbWVjeC1jb2xvci0ke2NvbG9yfS0ke3BhbGV0dGVLZXl9YF06IGAke3BhbGV0dGVWYWx1ZX1gLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBidWNrZXRDb2xvcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5Rm9udHMoc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3MpIHtcclxuICAgIGNvbnN0IGZvbnQ6IE1vbmtleVN0eWxlRm9udFNldHRpbmdzID0ge1xyXG4gICAgICB1cmw6XHJcbiAgICAgICAgJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9V29yaytTYW5zOml0YWwsd2dodEAwLDIwMDswLDMwMDswLDQwMDswLDUwMDswLDYwMDswLDcwMDswLDgwMDswLDkwMDsxLDQwMDsxLDUwMDsxLDYwMDsxLDcwMDsxLDgwMDsxLDkwMCZkaXNwbGF5PXN3YXAnLFxyXG4gICAgICBuYW1lOiAnV29yayBTYW5zJyxcclxuICAgICAgLi4uc2V0dGluZ3MuZm9udCxcclxuICAgIH07XHJcblxyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICBgLS1tZWN4LWZvbnQtbmFtZWAsXHJcbiAgICAgIGAke2ZvbnQubmFtZX1gXHJcbiAgICApO1xyXG5cclxuICAgIGxldCBsaW5rOiBIVE1MTGlua0VsZW1lbnQgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJyk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIGAke2ZvbnQudXJsfWApO1xyXG4gICAgdGhpcy5kb2MuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlUaGVtZShzZXR0aW5nczogTW9ua2V5U3R5bGVTZXR0aW5ncykge1xyXG4gICAgY29uc3QgeyB0aGVtZSB9ID0gc2V0dGluZ3M7XHJcbiAgICBkb2N1bWVudC50aXRsZSA9IGAke3RoZW1lLnRpdGxlfWA7XHJcblxyXG4gICAgbGV0IGxpbms6IEhUTUxMaW5rRWxlbWVudCA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCAnaWNvbicpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaW1hZ2UveC1pY29uJyk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIGAke3RoZW1lLmZhdmljb259YCk7XHJcbiAgICB0aGlzLmRvYy5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5KGNvbmZpZzogTW9ua2V5U3R5bGVTZXR0aW5ncywgY2FsbGJhY2s/OiBGdW5jdGlvbikge1xyXG4gICAgY29uc3QgYnVja2V0Q29sb3JzID0gdGhpcy5hcHBseUNvbG9ycyhjb25maWcpO1xyXG4gICAgdGhpcy5hcHBseUZvbnRzKGNvbmZpZyk7XHJcbiAgICB0aGlzLmFwcGx5VGhlbWUoY29uZmlnKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoY2FsbGJhY2spXHJcbiAgICAgICAgY2FsbGJhY2soe1xyXG4gICAgICAgICAgYnVja2V0Q29sb3JzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,237 +0,0 @@
1
- import { PhoneNumberUtil } from 'google-libphonenumber';
2
- const phoneUtil = PhoneNumberUtil.getInstance();
3
- export class MonkeyUtils {
4
- static persistNullEmptyUndefined(tp) {
5
- return tp !== null && tp !== undefined && tp !== '';
6
- }
7
- static getDocumentType(doc) {
8
- if (!doc)
9
- return '';
10
- return doc.length <= 11 ? 'CPF' : 'CNPJ';
11
- }
12
- static getDocumentMask(type) {
13
- if (type === 'CPF')
14
- return '000.000.000-00';
15
- return '00.000.000/0000-00';
16
- }
17
- static formatDocumentWithMask(doc, withType) {
18
- if (!doc)
19
- return doc;
20
- let formated = '';
21
- if (doc.length === 14)
22
- formated = doc
23
- .replace(/^(\d{2})(\d)/, '$1.$2')
24
- .replace(/^(\d{2})\.(\d{3})(\d)/, '$1.$2.$3')
25
- .replace(/\.(\d{3})(\d)/, '.$1/$2')
26
- .replace(/(\d{4})(\d)/, '$1-$2');
27
- else
28
- formated = doc
29
- .replace(/^(\d{3})(\d)/, '$1.$2')
30
- .replace(/^(\d{3})\.(\d{3})(\d)/, '$1.$2.$3')
31
- .replace(/\.(\d{3})(\d)/, '.$1-$2');
32
- return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;
33
- }
34
- static cutFirstLastName(value, tp = 'first') {
35
- var _a, _b;
36
- const split = (_a = value === null || value === void 0 ? void 0 : value.trim()) === null || _a === void 0 ? void 0 : _a.split(' ');
37
- if (tp === 'first')
38
- return split[0];
39
- return (_b = split === null || split === void 0 ? void 0 : split.splice(1, split.length)) === null || _b === void 0 ? void 0 : _b.join(' ');
40
- }
41
- static isCPFCNPJValid(document) {
42
- document = document.replace(/[^\d]/g, '');
43
- if (document.length === 11) {
44
- let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
45
- for (var i = 0, n = 0; i < 9; n += document[i] * base[i++])
46
- ;
47
- if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
48
- return false;
49
- }
50
- base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
51
- for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++])
52
- ;
53
- if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
54
- return false;
55
- }
56
- return true;
57
- }
58
- else if (document.length === 14 || /0{14}/.test(document)) {
59
- let base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
60
- for (var i = 0, n = 0; i < 12; n += document[i] * base[++i])
61
- ;
62
- if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {
63
- return false;
64
- }
65
- for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++])
66
- ;
67
- if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {
68
- return false;
69
- }
70
- return true;
71
- }
72
- else
73
- return false;
74
- }
75
- static isValidUrl(txt) {
76
- const regex = new RegExp(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)+[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,10}(:[0-9]{1,5})?(\/.*)?$/gm);
77
- return regex.test(txt);
78
- }
79
- static isValidZipCode(zipCode) {
80
- return `${this.handleOnlyNumbers(zipCode)}`.length === 8;
81
- }
82
- static getRandomString(len, charSet) {
83
- charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
84
- let randomString = Array.apply(null, Array(len))
85
- .map(function () {
86
- return charSet.charAt(Math.floor(Math.random() * charSet.length));
87
- })
88
- .join('');
89
- return randomString;
90
- }
91
- static handleOnlyNumbers(value) {
92
- if (!value)
93
- return null;
94
- return value.replace(new RegExp(/[^0-9]/g), '');
95
- }
96
- static handleOnlyAlphaNumeric(value) {
97
- if (!value)
98
- return '';
99
- return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');
100
- }
101
- static capitalize(value) {
102
- return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
103
- }
104
- static formatZipCode(zipCode) {
105
- if (!zipCode)
106
- return zipCode;
107
- const formated = zipCode
108
- .replace(/^(\d{5})(\d)/, '$1-$2')
109
- .replace(/\.(\d{3})(\d)/, '.$1-$2');
110
- return `${formated}`;
111
- }
112
- static formatFileSize(size) {
113
- let units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
114
- let l = 0;
115
- while (size >= 1024 && ++l) {
116
- size = size / 1024;
117
- }
118
- return size.toFixed(size < 10 && l > 0 ? 1 : 0) + ' ' + units[l];
119
- }
120
- static sufflue(data) {
121
- for (let i = data.length - 1; i > 0; i--) {
122
- const j = Math.floor(Math.random() * i);
123
- const temp = data[i];
124
- data[i] = data[j];
125
- data[j] = temp;
126
- }
127
- return data;
128
- }
129
- static handleBlobFile(theBlob, fileName, fileType) {
130
- function blobToFile(theBlob, fileName) {
131
- const b = theBlob;
132
- b.lastModifiedDate = new Date();
133
- b.name = fileName;
134
- return b;
135
- }
136
- let file;
137
- if (!navigator.msSaveBlob) {
138
- file = new File([theBlob], fileName, { type: fileType });
139
- }
140
- else {
141
- file = new Blob([theBlob], { type: fileType });
142
- file = blobToFile(file, fileName);
143
- }
144
- return file;
145
- }
146
- static truncate(text, maxLength = 25) {
147
- const midChar = '...';
148
- if (!text)
149
- return midChar;
150
- if (text && text.length <= maxLength)
151
- return text;
152
- const left = Math.ceil(maxLength / 2);
153
- const right = text.length - left + 1;
154
- return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;
155
- }
156
- static isLocalhost() {
157
- const { href } = window === null || window === void 0 ? void 0 : window.location;
158
- if (!href)
159
- return false;
160
- return (href === null || href === void 0 ? void 0 : href.search('localhost')) >= 0;
161
- }
162
- static getPhoneRegions() {
163
- return phoneUtil
164
- .getSupportedRegions()
165
- .map((code) => {
166
- return phoneUtil.getCountryCodeForRegion(code);
167
- })
168
- .filter((v, i, a) => a.indexOf(v) === i)
169
- .sort((a, b) => (a < b ? -1 : 1));
170
- }
171
- static getPhoneHandle(internationalNumber = 55) {
172
- let maxLength = 14;
173
- let mask = 'XX XXXXX-XXXX';
174
- try {
175
- const country = phoneUtil.getRegionCodeForCountryCode(internationalNumber);
176
- const exampleNumber = phoneUtil.getExampleNumber(country)['values_']['2'];
177
- const number = phoneUtil.parse(`${exampleNumber}`, country);
178
- const formated = phoneUtil.format(number, null);
179
- if (formated) {
180
- maxLength = `${formated}`.length;
181
- mask = `${formated}`.replace(new RegExp(/[^0-9]/g), '0');
182
- }
183
- }
184
- catch (e) {
185
- //not to do
186
- }
187
- return {
188
- maxLength,
189
- mask,
190
- };
191
- }
192
- static getPhoneCountryCode(phone) {
193
- var _a;
194
- if (!phone)
195
- return '';
196
- let cc = (_a = `${this.handleOnlyNumbers(phone)}`) === null || _a === void 0 ? void 0 : _a.substring(0, 2);
197
- let code;
198
- try {
199
- const number = phoneUtil.parse(phone);
200
- code = number.getCountryCodeOrDefault();
201
- }
202
- catch (e) {
203
- //not to do
204
- }
205
- return code || cc;
206
- }
207
- static getPhoneNumberFormated(phone, internationalNumber = 55) {
208
- if (!phone)
209
- return '';
210
- phone = phone.replace(`+${internationalNumber}`, '');
211
- try {
212
- const country = phoneUtil.getRegionCodeForCountryCode(internationalNumber);
213
- const number = phoneUtil.parse(phone, country);
214
- if (phoneUtil.isPossibleNumber(number)) {
215
- return phoneUtil.format(number, null);
216
- }
217
- }
218
- catch (e) {
219
- //not to do
220
- }
221
- return phone;
222
- }
223
- static isPhoneNumberValid(phone, internationalNumber = 55) {
224
- if (!phone)
225
- return false;
226
- try {
227
- const country = phoneUtil.getRegionCodeForCountryCode(internationalNumber);
228
- const number = phoneUtil.parse(phone, country);
229
- return phoneUtil.isValidNumberForRegion(number, country);
230
- }
231
- catch (e) {
232
- //not to do
233
- }
234
- return false;
235
- }
236
- }
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb3JlL3V0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFaEQsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUM3QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDdkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZO1FBQ3hDLElBQUksSUFBSSxLQUFLLEtBQUs7WUFBRSxPQUFPLGdCQUFnQixDQUFDO1FBQzVDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXLEVBQUUsUUFBa0I7UUFDbEUsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNyQixJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUU7WUFDbkIsUUFBUSxHQUFHLEdBQUc7aUJBQ1gsT0FBTyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7aUJBQ2hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLENB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SSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFDLENBQUM7WUFDN0QsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNoRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUFDLENBQUM7WUFDOUQsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNoRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsT0FBTyxJQUFJLENBQUM7U0FDYjs7WUFBTSxPQUFPLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQ2xDLE1BQU0s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QyxDQUFDO1lBQzNFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLE9BQU8sU0FBUyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xyXG5cclxuY29uc3QgcGhvbmVVdGlsID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XHJcblxyXG5leHBvcnQgY2xhc3MgTW9ua2V5VXRpbHMge1xyXG4gIHB1YmxpYyBzdGF0aWMgcGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh0cDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHAgIT09IG51bGwgJiYgdHAgIT09IHVuZGVmaW5lZCAmJiB0cCAhPT0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZykge1xyXG4gICAgaWYgKCFkb2MpIHJldHVybiAnJztcclxuICAgIHJldHVybiBkb2MubGVuZ3RoIDw9IDExID8gJ0NQRicgOiAnQ05QSic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldERvY3VtZW50TWFzayh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlID09PSAnQ1BGJykgcmV0dXJuICcwMDAuMDAwLjAwMC0wMCc7XHJcbiAgICByZXR1cm4gJzAwLjAwMC4wMDAvMDAwMC0wMCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdERvY3VtZW50V2l0aE1hc2soZG9jOiBzdHJpbmcsIHdpdGhUeXBlPzogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBpZiAoIWRvYykgcmV0dXJuIGRvYztcclxuICAgIGxldCBmb3JtYXRlZDogc3RyaW5nID0gJyc7XHJcbiAgICBpZiAoZG9jLmxlbmd0aCA9PT0gMTQpXHJcbiAgICAgIGZvcm1hdGVkID0gZG9jXHJcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezJ9KShcXGQpLywgJyQxLiQyJylcclxuICAgICAgICAucmVwbGFjZSgvXihcXGR7Mn0pXFwuKFxcZHszfSkoXFxkKS8sICckMS4kMi4kMycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLyQyJylcclxuICAgICAgICAucmVwbGFjZSgvKFxcZHs0fSkoXFxkKS8sICckMS0kMicpO1xyXG4gICAgZWxzZVxyXG4gICAgICBmb3JtYXRlZCA9IGRvY1xyXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXHJcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezN9KVxcLihcXGR7M30pKFxcZCkvLCAnJDEuJDIuJDMnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFxkezN9KShcXGQpLywgJy4kMS0kMicpO1xyXG5cclxuICAgIHJldHVybiBgJHt3aXRoVHlwZSA/IGAke3RoaXMuZ2V0RG9jdW1lbnRUeXBlKGRvYyl9OmAgOiAnJ30gJHtmb3JtYXRlZH1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjdXRGaXJzdExhc3ROYW1lKHZhbHVlOiBzdHJpbmcsIHRwOiBzdHJpbmcgPSAnZmlyc3QnKSB7XHJcbiAgICBjb25zdCBzcGxpdCA9IHZhbHVlPy50cmltKCk/LnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHRwID09PSAnZmlyc3QnKSByZXR1cm4gc3BsaXRbMF07XHJcbiAgICByZXR1cm4gc3BsaXQ/LnNwbGljZSgxLCBzcGxpdC5sZW5ndGgpPy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzQ1BGQ05QSlZhbGlkKGRvY3VtZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGRvY3VtZW50ID0gZG9jdW1lbnQucmVwbGFjZSgvW15cXGRdL2csICcnKTtcclxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XHJcbiAgICAgIGxldCBiYXNlID0gWzEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwXTtcclxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDwgOTsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbaSsrXSk7XHJcbiAgICAgIGlmIChkb2N1bWVudFs5XSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBiYXNlID0gWzExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XHJcbiAgICAgIGZvciAodmFyIGkgPSAwLCBuID0gMDsgaSA8PSA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKTtcclxuICAgICAgaWYgKGRvY3VtZW50WzEwXSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxNCB8fCAvMHsxNH0vLnRlc3QoZG9jdW1lbnQpKSB7XHJcbiAgICAgIGxldCBiYXNlID0gWzYsIDUsIDQsIDMsIDIsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDJdO1xyXG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSk7XHJcbiAgICAgIGlmIChkb2N1bWVudFsxMl0gIT0gKChuICU9IDExKSA8IDIgPyAwIDogMTEgLSBuKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKTtcclxuICAgICAgaWYgKGRvY3VtZW50WzEzXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRVcmwodHh0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcclxuICAgICAgL14oaHR0cDpcXC9cXC93d3dcXC58aHR0cHM6XFwvXFwvd3d3XFwufGh0dHA6XFwvXFwvfGh0dHBzOlxcL1xcLykrW2EtejAtOV0rKFtcXC1cXC5dezF9W2EtejAtOV0rKSpcXC5bYS16XXsyLDEwfSg6WzAtOV17MSw1fSk/KFxcLy4qKT8kL2dtXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodHh0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5oYW5kbGVPbmx5TnVtYmVycyh6aXBDb2RlKX1gLmxlbmd0aCA9PT0gODtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UmFuZG9tU3RyaW5nKGxlbjogbnVtYmVyLCBjaGFyU2V0Pzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBsZXQgcmFuZG9tU3RyaW5nOiBzdHJpbmcgPSBBcnJheS5hcHBseShudWxsLCBBcnJheShsZW4pKVxyXG4gICAgICAubWFwKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gY2hhclNldC5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhclNldC5sZW5ndGgpKTtcclxuICAgICAgfSlcclxuICAgICAgLmpvaW4oJycpO1xyXG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlT25seU51bWJlcnModmFsdWU6IGFueSkge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOUEtWmEtel0vLCAnZycpLCAnJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNhcGl0YWxpemUodmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dmFsdWUuc2xpY2UoMSl9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0WmlwQ29kZSh6aXBDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF6aXBDb2RlKSByZXR1cm4gemlwQ29kZTtcclxuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXHJcbiAgICAgIC5yZXBsYWNlKC9eKFxcZHs1fSkoXFxkKS8sICckMS0kMicpXHJcbiAgICAgIC5yZXBsYWNlKC9cXC4oXFxkezN9KShcXGQpLywgJy4kMS0kMicpO1xyXG5cclxuICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XHJcbiAgICBsZXQgbCA9IDA7XHJcbiAgICB3aGlsZSAoc2l6ZSA+PSAxMDI0ICYmICsrbCkge1xyXG4gICAgICBzaXplID0gc2l6ZSAvIDEwMjQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2l6ZS50b0ZpeGVkKHNpemUgPCAxMCAmJiBsID4gMCA/IDEgOiAwKSArICcgJyArIHVuaXRzW2xdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdWZmbHVlKGRhdGE6IGFueVtdKTogYW55W10ge1xyXG4gICAgZm9yIChsZXQgaSA9IGRhdGEubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XHJcbiAgICAgIGNvbnN0IHRlbXAgPSBkYXRhW2ldO1xyXG4gICAgICBkYXRhW2ldID0gZGF0YVtqXTtcclxuICAgICAgZGF0YVtqXSA9IHRlbXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlQmxvYkZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nLCBmaWxlVHlwZTogc3RyaW5nKSB7XHJcbiAgICBmdW5jdGlvbiBibG9iVG9GaWxlKHRoZUJsb2IsIGZpbGVOYW1lKSB7XHJcbiAgICAgIGNvbnN0IGIgPSB0aGVCbG9iO1xyXG4gICAgICBiLmxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcclxuICAgICAgcmV0dXJuIGI7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbGU6IGFueTtcclxuICAgIGlmICghKG5hdmlnYXRvciBhcyBhbnkpLm1zU2F2ZUJsb2IpIHtcclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZVR5cGUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWxlID0gbmV3IEJsb2IoW3RoZUJsb2JdLCB7IHR5cGU6IGZpbGVUeXBlIH0pO1xyXG4gICAgICBmaWxlID0gYmxvYlRvRmlsZShmaWxlLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGUodGV4dDogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciA9IDI1KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcclxuICAgIGlmICghdGV4dCkgcmV0dXJuIG1pZENoYXI7XHJcbiAgICBpZiAodGV4dCAmJiB0ZXh0Lmxlbmd0aCA8PSBtYXhMZW5ndGgpIHJldHVybiB0ZXh0O1xyXG5cclxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLmNlaWwobWF4TGVuZ3RoIC8gMik7XHJcbiAgICBjb25zdCByaWdodCA9IHRleHQubGVuZ3RoIC0gbGVmdCArIDE7XHJcblxyXG4gICAgcmV0dXJuIGAke3RleHQuc3Vic3RyKDAsIGxlZnQpfSAke21pZENoYXJ9ICR7dGV4dC5zdWJzdHJpbmcocmlnaHQpfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzTG9jYWxob3N0KCkge1xyXG4gICAgY29uc3QgeyBocmVmIH0gPSB3aW5kb3c/LmxvY2F0aW9uO1xyXG4gICAgaWYgKCFocmVmKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRQaG9uZVJlZ2lvbnMoKSB7XHJcbiAgICByZXR1cm4gcGhvbmVVdGlsXHJcbiAgICAgIC5nZXRTdXBwb3J0ZWRSZWdpb25zKClcclxuICAgICAgLm1hcCgoY29kZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHBob25lVXRpbC5nZXRDb3VudHJ5Q29kZUZvclJlZ2lvbihjb2RlKTtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxyXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGEgPCBiID8gLTEgOiAxKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldFBob25lSGFuZGxlKGludGVybmF0aW9uYWxOdW1iZXIgPSA1NSkge1xyXG4gICAgbGV0IG1heExlbmd0aCA9IDE0O1xyXG4gICAgbGV0IG1hc2sgPSAnWFggWFhYWFgtWFhYWCc7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjb3VudHJ5ID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JDb3VudHJ5Q29kZShpbnRlcm5hdGlvbmFsTnVtYmVyKTtcclxuICAgICAgY29uc3QgZXhhbXBsZU51bWJlciA9IHBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnkpWyd2YWx1ZXNfJ11bJzInXTtcclxuXHJcbiAgICAgIGNvbnN0IG51bWJlciA9IHBob25lVXRpbC5wYXJzZShgJHtleGFtcGxlTnVtYmVyfWAsIGNvdW50cnkpO1xyXG4gICAgICBjb25zdCBmb3JtYXRlZCA9IHBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBudWxsKTtcclxuICAgICAgaWYgKGZvcm1hdGVkKSB7XHJcbiAgICAgICAgbWF4TGVuZ3RoID0gYCR7Zm9ybWF0ZWR9YC5sZW5ndGg7XHJcbiAgICAgICAgbWFzayA9IGAke2Zvcm1hdGVkfWAucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcwJyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy9ub3QgdG8gZG9cclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1heExlbmd0aCxcclxuICAgICAgbWFzayxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldFBob25lQ291bnRyeUNvZGUocGhvbmU6IHN0cmluZykge1xyXG4gICAgaWYgKCFwaG9uZSkgcmV0dXJuICcnO1xyXG4gICAgbGV0IGNjID0gYCR7dGhpcy5oYW5kbGVPbmx5TnVtYmVycyhwaG9uZSl9YD8uc3Vic3RyaW5nKDAsIDIpO1xyXG4gICAgbGV0IGNvZGU7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBudW1iZXIgPSBwaG9uZVV0aWwucGFyc2UocGhvbmUpO1xyXG4gICAgICBjb2RlID0gbnVtYmVyLmdldENvdW50cnlDb2RlT3JEZWZhdWx0KCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29kZSB8fCBjYztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGhvbmVOdW1iZXJGb3JtYXRlZChwaG9uZTogc3RyaW5nLCBpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcclxuICAgIGlmICghcGhvbmUpIHJldHVybiAnJztcclxuICAgIHBob25lID0gcGhvbmUucmVwbGFjZShgKyR7aW50ZXJuYXRpb25hbE51bWJlcn1gLCAnJyk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjb3VudHJ5ID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JDb3VudHJ5Q29kZShpbnRlcm5hdGlvbmFsTnVtYmVyKTtcclxuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKHBob25lLCBjb3VudHJ5KTtcclxuICAgICAgaWYgKHBob25lVXRpbC5pc1Bvc3NpYmxlTnVtYmVyKG51bWJlcikpIHtcclxuICAgICAgICByZXR1cm4gcGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGhvbmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzUGhvbmVOdW1iZXJWYWxpZChwaG9uZTogc3RyaW5nLCBpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcclxuICAgIGlmICghcGhvbmUpIHJldHVybiBmYWxzZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNvdW50cnkgPSBwaG9uZVV0aWwuZ2V0UmVnaW9uQ29kZUZvckNvdW50cnlDb2RlKGludGVybmF0aW9uYWxOdW1iZXIpO1xyXG4gICAgICBjb25zdCBudW1iZXIgPSBwaG9uZVV0aWwucGFyc2UocGhvbmUsIGNvdW50cnkpO1xyXG4gICAgICByZXR1cm4gcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24obnVtYmVyLCBjb3VudHJ5KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy9ub3QgdG8gZG9cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19