monkey-style-guide 2.0.108 → 2.0.112

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 (244) 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/_expansion.scss +91 -91
  4. package/assets/scss/partials/components/_modal.scss +282 -282
  5. package/assets/scss/partials/components/_tab.scss +82 -82
  6. package/assets/scss/partials/components/_toggle.scss +103 -103
  7. package/{esm2015/lib/components/badge/badge.component.js → esm2020/lib/components/badge/badge.component.mjs} +4 -4
  8. package/{esm2015/lib/components/badge/badge.module.js → esm2020/lib/components/badge/badge.module.mjs} +5 -5
  9. package/{esm2015/lib/components/badge/index.js → esm2020/lib/components/badge/index.mjs} +1 -1
  10. package/{esm2015/lib/components/button/button-avatar.component.js → esm2020/lib/components/button/button-avatar.component.mjs} +5 -5
  11. package/{esm2015/lib/components/button/button-dropdown.component.js → esm2020/lib/components/button/button-dropdown.component.mjs} +4 -4
  12. package/{esm2015/lib/components/button/button.component.js → esm2020/lib/components/button/button.component.mjs} +4 -4
  13. package/{esm2015/lib/components/button/button.module.js → esm2020/lib/components/button/button.module.mjs} +5 -5
  14. package/{esm2015/lib/components/button/index.js → esm2020/lib/components/button/index.mjs} +0 -0
  15. package/{esm2015/lib/components/checkbox/checkbox.component.js → esm2020/lib/components/checkbox/checkbox.component.mjs} +6 -6
  16. package/{esm2015/lib/components/checkbox/checkbox.module.js → esm2020/lib/components/checkbox/checkbox.module.mjs} +5 -5
  17. package/{esm2015/lib/components/checkbox/index.js → esm2020/lib/components/checkbox/index.mjs} +0 -0
  18. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +569 -0
  19. 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
  20. package/{esm2015/lib/components/date-range-picker/index.js → esm2020/lib/components/date-range-picker/index.mjs} +0 -0
  21. package/{esm2015/lib/components/expansion/expansion.component.js → esm2020/lib/components/expansion/expansion.component.mjs} +71 -71
  22. package/{esm2015/lib/components/expansion/expansion.module.js → esm2020/lib/components/expansion/expansion.module.mjs} +5 -5
  23. package/{esm2015/lib/components/expansion/index.js → esm2020/lib/components/expansion/index.mjs} +1 -1
  24. package/{esm2015/lib/components/file-upload/file-upload.component.js → esm2020/lib/components/file-upload/file-upload.component.mjs} +6 -6
  25. package/{esm2015/lib/components/file-upload/file-upload.module.js → esm2020/lib/components/file-upload/file-upload.module.mjs} +5 -5
  26. package/{esm2015/lib/components/file-upload/index.js → esm2020/lib/components/file-upload/index.mjs} +0 -0
  27. package/esm2020/lib/components/icon/icon-arrow-down.component.mjs +15 -0
  28. package/esm2020/lib/components/icon/icon-arrow-left.component.mjs +15 -0
  29. package/esm2020/lib/components/icon/icon-arrow-right.component.mjs +15 -0
  30. package/esm2020/lib/components/icon/icon-arrow-up.component.mjs +15 -0
  31. package/esm2020/lib/components/icon/icon-bank.component.mjs +15 -0
  32. package/esm2020/lib/components/icon/icon-bell.component.mjs +15 -0
  33. package/esm2020/lib/components/icon/icon-book.component.mjs +15 -0
  34. package/esm2020/lib/components/icon/icon-box.component.mjs +15 -0
  35. package/esm2020/lib/components/icon/icon-calendar.component.mjs +15 -0
  36. package/esm2020/lib/components/icon/icon-camera.component.mjs +15 -0
  37. package/esm2020/lib/components/icon/icon-chat.component.mjs +15 -0
  38. package/esm2020/lib/components/icon/icon-check-circle-out.component.mjs +15 -0
  39. package/esm2020/lib/components/icon/icon-check-circle.component.mjs +15 -0
  40. package/esm2020/lib/components/icon/icon-check-grey.component.mjs +15 -0
  41. package/esm2020/lib/components/icon/icon-check-white.component.mjs +15 -0
  42. package/esm2020/lib/components/icon/icon-check.component.mjs +15 -0
  43. package/esm2020/lib/components/icon/icon-clipboard.component.mjs +15 -0
  44. package/esm2020/lib/components/icon/icon-clock.component.mjs +15 -0
  45. package/esm2020/lib/components/icon/icon-close.component.mjs +15 -0
  46. package/esm2020/lib/components/icon/icon-cnpj.component.mjs +15 -0
  47. package/esm2020/lib/components/icon/icon-codepen.component.mjs +15 -0
  48. package/esm2020/lib/components/icon/icon-company-name.component.mjs +15 -0
  49. package/esm2020/lib/components/icon/icon-contract.component.mjs +15 -0
  50. package/esm2020/lib/components/icon/icon-delete.component.mjs +15 -0
  51. package/esm2020/lib/components/icon/icon-document.component.mjs +15 -0
  52. package/esm2020/lib/components/icon/icon-dollar-sign.component.mjs +15 -0
  53. package/esm2020/lib/components/icon/icon-domain.component.mjs +15 -0
  54. package/esm2020/lib/components/icon/icon-download.component.mjs +15 -0
  55. package/esm2020/lib/components/icon/icon-edit.component.mjs +15 -0
  56. package/esm2020/lib/components/icon/icon-email.component.mjs +15 -0
  57. package/esm2020/lib/components/icon/icon-empty-doc.component.mjs +15 -0
  58. package/esm2020/lib/components/icon/icon-error.component.mjs +15 -0
  59. package/esm2020/lib/components/icon/icon-eye-closed.component.mjs +15 -0
  60. package/esm2020/lib/components/icon/icon-eye-open.component.mjs +15 -0
  61. package/esm2020/lib/components/icon/icon-filter.component.mjs +15 -0
  62. package/esm2020/lib/components/icon/icon-grid.component.mjs +15 -0
  63. package/esm2020/lib/components/icon/icon-help.component.mjs +15 -0
  64. package/esm2020/lib/components/icon/icon-hexagon.component.mjs +15 -0
  65. package/esm2020/lib/components/icon/icon-home.component.mjs +15 -0
  66. package/esm2020/lib/components/icon/icon-image.component.mjs +15 -0
  67. package/esm2020/lib/components/icon/icon-list.component.mjs +15 -0
  68. package/esm2020/lib/components/icon/icon-location-pin.component.mjs +15 -0
  69. package/esm2020/lib/components/icon/icon-login.component.mjs +15 -0
  70. package/esm2020/lib/components/icon/icon-logout.component.mjs +15 -0
  71. package/esm2020/lib/components/icon/icon-menu.component.mjs +15 -0
  72. package/esm2020/lib/components/icon/icon-money-sign.component.mjs +15 -0
  73. package/esm2020/lib/components/icon/icon-more.component.mjs +15 -0
  74. package/esm2020/lib/components/icon/icon-offered.component.mjs +15 -0
  75. package/esm2020/lib/components/icon/icon-password.component.mjs +15 -0
  76. package/esm2020/lib/components/icon/icon-people.component.mjs +15 -0
  77. package/esm2020/lib/components/icon/icon-percent.component.mjs +15 -0
  78. package/esm2020/lib/components/icon/icon-person-document.component.mjs +15 -0
  79. package/esm2020/lib/components/icon/icon-person-sad.component.mjs +15 -0
  80. package/esm2020/lib/components/icon/icon-phone.component.mjs +15 -0
  81. package/esm2020/lib/components/icon/icon-pork.component.mjs +15 -0
  82. package/esm2020/lib/components/icon/icon-refresh.component.mjs +15 -0
  83. package/esm2020/lib/components/icon/icon-repeat.component.mjs +15 -0
  84. package/esm2020/lib/components/icon/icon-search.component.mjs +15 -0
  85. package/esm2020/lib/components/icon/icon-second-warning.component.mjs +15 -0
  86. package/esm2020/lib/components/icon/icon-settings.component.mjs +15 -0
  87. package/esm2020/lib/components/icon/icon-trash.component.mjs +15 -0
  88. package/esm2020/lib/components/icon/icon-upload.component.mjs +15 -0
  89. package/esm2020/lib/components/icon/icon-user.component.mjs +15 -0
  90. package/esm2020/lib/components/icon/icon-wallet.component.mjs +15 -0
  91. package/esm2020/lib/components/icon/icon-warning.component.mjs +15 -0
  92. package/{esm2015/lib/components/icon/icon.component.js → esm2020/lib/components/icon/icon.component.mjs} +6 -6
  93. package/{esm2015/lib/components/icon/icon.module.js → esm2020/lib/components/icon/icon.module.mjs} +5 -5
  94. package/{esm2015/lib/components/icon/index.js → esm2020/lib/components/icon/index.mjs} +0 -0
  95. package/{esm2015/lib/components/image-crop/image-crop.component.js → esm2020/lib/components/image-crop/image-crop.component.mjs} +12 -5
  96. package/{esm2015/lib/components/image-crop/image-crop.module.js → esm2020/lib/components/image-crop/image-crop.module.mjs} +5 -5
  97. package/{esm2015/lib/components/image-crop/index.js → esm2020/lib/components/image-crop/index.mjs} +0 -0
  98. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  99. package/{esm2015/lib/components/input/index.js → esm2020/lib/components/input/index.mjs} +0 -0
  100. package/esm2020/lib/components/input/input-filter.component.mjs +261 -0
  101. package/esm2020/lib/components/input/input.component.mjs +380 -0
  102. package/{esm2015/lib/components/input/input.module.js → esm2020/lib/components/input/input.module.mjs} +5 -5
  103. package/{esm2015/lib/components/input-phone/index.js → esm2020/lib/components/input-phone/index.mjs} +0 -0
  104. package/esm2020/lib/components/input-phone/input-phone.component.mjs +304 -0
  105. package/{esm2015/lib/components/input-phone/input-phone.module.js → esm2020/lib/components/input-phone/input-phone.module.mjs} +5 -5
  106. package/{esm2015/lib/components/modal/index.js → esm2020/lib/components/modal/index.mjs} +0 -0
  107. package/esm2020/lib/components/modal/modal.component.mjs +236 -0
  108. package/{esm2015/lib/components/modal/modal.module.js → esm2020/lib/components/modal/modal.module.mjs} +5 -5
  109. package/{esm2015/lib/components/option/index.js → esm2020/lib/components/option/index.mjs} +0 -0
  110. package/{esm2015/lib/components/option/option.component.js → esm2020/lib/components/option/option.component.mjs} +4 -4
  111. package/{esm2015/lib/components/option/option.module.js → esm2020/lib/components/option/option.module.mjs} +5 -5
  112. package/{esm2015/lib/components/radiobutton/index.js → esm2020/lib/components/radiobutton/index.mjs} +0 -0
  113. package/{esm2015/lib/components/radiobutton/radiobutton.component.js → esm2020/lib/components/radiobutton/radiobutton.component.mjs} +6 -6
  114. package/{esm2015/lib/components/radiobutton/radiobutton.module.js → esm2020/lib/components/radiobutton/radiobutton.module.mjs} +5 -5
  115. package/{esm2015/lib/components/select/index.js → esm2020/lib/components/select/index.mjs} +0 -0
  116. package/{esm2015/lib/components/select/select-filter.component.js → esm2020/lib/components/select/select-filter.component.mjs} +6 -6
  117. package/esm2020/lib/components/select/select-multiple.component.mjs +304 -0
  118. package/esm2020/lib/components/select/select-search.component.mjs +306 -0
  119. package/{esm2015/lib/components/select/select.component.js → esm2020/lib/components/select/select.component.mjs} +6 -6
  120. package/{esm2015/lib/components/select/select.module.js → esm2020/lib/components/select/select.module.mjs} +5 -5
  121. package/{esm2015/lib/components/stepper/index.js → esm2020/lib/components/stepper/index.mjs} +0 -0
  122. package/{esm2015/lib/components/stepper/stepper.component.js → esm2020/lib/components/stepper/stepper.component.mjs} +4 -4
  123. package/{esm2015/lib/components/stepper/stepper.module.js → esm2020/lib/components/stepper/stepper.module.mjs} +5 -5
  124. package/{esm2015/lib/components/tab/index.js → esm2020/lib/components/tab/index.mjs} +1 -1
  125. package/{esm2015/lib/components/tab/tab.component.js → esm2020/lib/components/tab/tab.component.mjs} +12 -12
  126. package/{esm2015/lib/components/tab/tab.module.js → esm2020/lib/components/tab/tab.module.mjs} +5 -5
  127. package/{esm2015/lib/components/table/index.js → esm2020/lib/components/table/index.mjs} +0 -0
  128. package/{esm2015/lib/components/table/table-column.component.js → esm2020/lib/components/table/table-column.component.mjs} +4 -4
  129. package/esm2020/lib/components/table/table.component.mjs +203 -0
  130. package/{esm2015/lib/components/table/table.module.js → esm2020/lib/components/table/table.module.mjs} +5 -5
  131. package/{esm2015/lib/components/toggle/index.js → esm2020/lib/components/toggle/index.mjs} +1 -1
  132. package/esm2020/lib/components/toggle/toggle.component.mjs +56 -0
  133. package/{esm2015/lib/components/toggle/toggle.module.js → esm2020/lib/components/toggle/toggle.module.mjs} +5 -5
  134. package/{esm2015/lib/components/wizard/index.js → esm2020/lib/components/wizard/index.mjs} +0 -0
  135. package/{esm2015/lib/components/wizard/wizard.component.js → esm2020/lib/components/wizard/wizard.component.mjs} +4 -4
  136. package/{esm2015/lib/components/wizard/wizard.module.js → esm2020/lib/components/wizard/wizard.module.mjs} +5 -5
  137. package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +0 -0
  138. package/{esm2015/lib/core/interfaces/index.js → esm2020/lib/core/interfaces/index.mjs} +1 -1
  139. package/esm2020/lib/core/interfaces/monkey-modal-settings.mjs +2 -0
  140. package/{esm2015/lib/core/interfaces/monkey-style-settings.js → esm2020/lib/core/interfaces/monkey-style-settings.mjs} +0 -0
  141. package/{esm2015/lib/core/services/index.js → esm2020/lib/core/services/index.mjs} +0 -0
  142. package/{esm2015/lib/core/services/modal/index.js → esm2020/lib/core/services/modal/index.mjs} +1 -1
  143. 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
  144. 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
  145. package/{esm2015/lib/core/services/monkey-style-guide.service.js → esm2020/lib/core/services/monkey-style-guide.service.mjs} +4 -4
  146. package/{esm2015/lib/core/services/settings/index.js → esm2020/lib/core/services/settings/index.mjs} +0 -0
  147. 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
  148. package/esm2020/lib/core/services/settings/monkey-style-guide-theme-settings.service.mjs +80 -0
  149. package/{esm2015/lib/core/services/snackbar/index.js → esm2020/lib/core/services/snackbar/index.mjs} +0 -0
  150. 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
  151. package/{esm2015/lib/core/utils/index.js → esm2020/lib/core/utils/index.mjs} +0 -0
  152. package/esm2020/lib/core/utils/utils.mjs +235 -0
  153. package/{esm2015/lib/monkey-style-guide.module.js → esm2020/lib/monkey-style-guide.module.mjs} +5 -5
  154. package/{esm2015/monkey-style-guide.js → esm2020/monkey-style-guide.mjs} +0 -0
  155. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  156. package/fesm2015/{monkey-style-guide.js → monkey-style-guide.mjs} +547 -803
  157. package/fesm2015/monkey-style-guide.mjs.map +1 -0
  158. package/fesm2020/monkey-style-guide.mjs +7921 -0
  159. package/fesm2020/monkey-style-guide.mjs.map +1 -0
  160. package/lib/components/date-range-picker/date-range-picker.component.d.ts +6 -7
  161. package/lib/core/utils/utils.d.ts +3 -3
  162. package/monkey-style-guide-2.0.112.tgz +0 -0
  163. package/package.json +22 -9
  164. package/bundles/monkey-style-guide.umd.js +0 -6236
  165. package/bundles/monkey-style-guide.umd.js.map +0 -1
  166. package/esm2015/lib/components/date-range-picker/date-range-picker.component.js +0 -569
  167. package/esm2015/lib/components/icon/icon-arrow-down.component.js +0 -19
  168. package/esm2015/lib/components/icon/icon-arrow-left.component.js +0 -19
  169. package/esm2015/lib/components/icon/icon-arrow-right.component.js +0 -19
  170. package/esm2015/lib/components/icon/icon-arrow-up.component.js +0 -19
  171. package/esm2015/lib/components/icon/icon-bank.component.js +0 -19
  172. package/esm2015/lib/components/icon/icon-bell.component.js +0 -19
  173. package/esm2015/lib/components/icon/icon-book.component.js +0 -19
  174. package/esm2015/lib/components/icon/icon-box.component.js +0 -19
  175. package/esm2015/lib/components/icon/icon-calendar.component.js +0 -19
  176. package/esm2015/lib/components/icon/icon-camera.component.js +0 -19
  177. package/esm2015/lib/components/icon/icon-chat.component.js +0 -19
  178. package/esm2015/lib/components/icon/icon-check-circle-out.component.js +0 -19
  179. package/esm2015/lib/components/icon/icon-check-circle.component.js +0 -19
  180. package/esm2015/lib/components/icon/icon-check-grey.component.js +0 -19
  181. package/esm2015/lib/components/icon/icon-check-white.component.js +0 -19
  182. package/esm2015/lib/components/icon/icon-check.component.js +0 -19
  183. package/esm2015/lib/components/icon/icon-clipboard.component.js +0 -19
  184. package/esm2015/lib/components/icon/icon-clock.component.js +0 -19
  185. package/esm2015/lib/components/icon/icon-close.component.js +0 -19
  186. package/esm2015/lib/components/icon/icon-cnpj.component.js +0 -19
  187. package/esm2015/lib/components/icon/icon-codepen.component.js +0 -19
  188. package/esm2015/lib/components/icon/icon-company-name.component.js +0 -19
  189. package/esm2015/lib/components/icon/icon-contract.component.js +0 -19
  190. package/esm2015/lib/components/icon/icon-delete.component.js +0 -19
  191. package/esm2015/lib/components/icon/icon-document.component.js +0 -19
  192. package/esm2015/lib/components/icon/icon-dollar-sign.component.js +0 -19
  193. package/esm2015/lib/components/icon/icon-domain.component.js +0 -19
  194. package/esm2015/lib/components/icon/icon-download.component.js +0 -19
  195. package/esm2015/lib/components/icon/icon-edit.component.js +0 -19
  196. package/esm2015/lib/components/icon/icon-email.component.js +0 -19
  197. package/esm2015/lib/components/icon/icon-empty-doc.component.js +0 -19
  198. package/esm2015/lib/components/icon/icon-error.component.js +0 -19
  199. package/esm2015/lib/components/icon/icon-eye-closed.component.js +0 -19
  200. package/esm2015/lib/components/icon/icon-eye-open.component.js +0 -19
  201. package/esm2015/lib/components/icon/icon-filter.component.js +0 -19
  202. package/esm2015/lib/components/icon/icon-grid.component.js +0 -19
  203. package/esm2015/lib/components/icon/icon-help.component.js +0 -19
  204. package/esm2015/lib/components/icon/icon-hexagon.component.js +0 -19
  205. package/esm2015/lib/components/icon/icon-home.component.js +0 -19
  206. package/esm2015/lib/components/icon/icon-image.component.js +0 -19
  207. package/esm2015/lib/components/icon/icon-list.component.js +0 -19
  208. package/esm2015/lib/components/icon/icon-location-pin.component.js +0 -19
  209. package/esm2015/lib/components/icon/icon-login.component.js +0 -19
  210. package/esm2015/lib/components/icon/icon-logout.component.js +0 -19
  211. package/esm2015/lib/components/icon/icon-menu.component.js +0 -19
  212. package/esm2015/lib/components/icon/icon-money-sign.component.js +0 -19
  213. package/esm2015/lib/components/icon/icon-more.component.js +0 -19
  214. package/esm2015/lib/components/icon/icon-offered.component.js +0 -19
  215. package/esm2015/lib/components/icon/icon-password.component.js +0 -19
  216. package/esm2015/lib/components/icon/icon-people.component.js +0 -19
  217. package/esm2015/lib/components/icon/icon-percent.component.js +0 -19
  218. package/esm2015/lib/components/icon/icon-person-document.component.js +0 -19
  219. package/esm2015/lib/components/icon/icon-person-sad.component.js +0 -19
  220. package/esm2015/lib/components/icon/icon-phone.component.js +0 -19
  221. package/esm2015/lib/components/icon/icon-pork.component.js +0 -19
  222. package/esm2015/lib/components/icon/icon-refresh.component.js +0 -19
  223. package/esm2015/lib/components/icon/icon-repeat.component.js +0 -19
  224. package/esm2015/lib/components/icon/icon-search.component.js +0 -19
  225. package/esm2015/lib/components/icon/icon-second-warning.component.js +0 -19
  226. package/esm2015/lib/components/icon/icon-settings.component.js +0 -19
  227. package/esm2015/lib/components/icon/icon-trash.component.js +0 -19
  228. package/esm2015/lib/components/icon/icon-upload.component.js +0 -19
  229. package/esm2015/lib/components/icon/icon-user.component.js +0 -19
  230. package/esm2015/lib/components/icon/icon-wallet.component.js +0 -19
  231. package/esm2015/lib/components/icon/icon-warning.component.js +0 -19
  232. package/esm2015/lib/components/input/input-filter.component.js +0 -262
  233. package/esm2015/lib/components/input/input.component.js +0 -384
  234. package/esm2015/lib/components/input-phone/input-phone.component.js +0 -307
  235. package/esm2015/lib/components/modal/modal.component.js +0 -241
  236. package/esm2015/lib/components/select/select-multiple.component.js +0 -308
  237. package/esm2015/lib/components/select/select-search.component.js +0 -308
  238. package/esm2015/lib/components/table/table.component.js +0 -204
  239. package/esm2015/lib/components/toggle/toggle.component.js +0 -56
  240. package/esm2015/lib/core/interfaces/monkey-modal-settings.js +0 -2
  241. package/esm2015/lib/core/services/settings/monkey-style-guide-theme-settings.service.js +0 -70
  242. package/esm2015/lib/core/utils/utils.js +0 -237
  243. package/fesm2015/monkey-style-guide.js.map +0 -1
  244. package/monkey-style-guide-2.0.108.tgz +0 -0
@@ -1,569 +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 { CurrencyPipe } from '@angular/common';
7
- import { Component, ViewEncapsulation, forwardRef, Output, EventEmitter, Input, } from '@angular/core';
8
- import { NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';
9
- import { MonkeyUtils } from '../../core/utils';
10
- import * as moment_ from 'moment';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/forms";
13
- import * as i2 from "../button/button.component";
14
- import * as i3 from "@angular/common";
15
- const moment = moment_;
16
- export class MonkeyDateRangePickerComponent {
17
- constructor(fb, cdr) {
18
- this.fb = fb;
19
- this.cdr = cdr;
20
- this.helperMessage = '';
21
- this.minDate = null;
22
- this.onChange = new EventEmitter();
23
- this.today = moment().format('YYYY-MM-DD');
24
- this.onModelChange = (value) => { };
25
- this.onModelTouched = (value) => { };
26
- this._dateFirst = moment();
27
- this._dateSecond = moment().add(1, 'M');
28
- this._id = `mecx-date-range-picker-${MonkeyUtils.getRandomString(10)}`;
29
- this._daysArrFirst = [];
30
- this._daysArrSecond = [];
31
- this._disabled = false;
32
- this.initDateRange();
33
- }
34
- initDateRange() {
35
- return (this._dateForm = this.fb.group({
36
- startDate: [null, Validators.required],
37
- endDate: [null, Validators.required],
38
- }));
39
- }
40
- createCalendar(month) {
41
- let firstDay = moment(month).startOf('M');
42
- let lastDay = moment(month).endOf('M');
43
- let days = Array.apply(null, { length: month.daysInMonth() })
44
- .map(Number.call, Number)
45
- .map((n) => {
46
- return moment(firstDay).add(n, 'd');
47
- });
48
- let n = 0;
49
- while (n < firstDay.weekday()) {
50
- days.unshift(null);
51
- n++;
52
- }
53
- n = 0;
54
- while (n < 7 - lastDay.weekday()) {
55
- days.push(null);
56
- n++;
57
- }
58
- let index = 1;
59
- let group = [];
60
- let grouped = [];
61
- Object.entries(days).map(([key, value]) => {
62
- if (index > 7) {
63
- index = 1;
64
- grouped.push(group);
65
- group = [];
66
- }
67
- group.push(value);
68
- index++;
69
- });
70
- grouped.push(group);
71
- return grouped;
72
- }
73
- build() {
74
- this._daysArrFirst = this.createCalendar(this._dateFirst);
75
- this._daysArrSecond = this.createCalendar(this._dateSecond);
76
- }
77
- clearDates() {
78
- if (this._disabled)
79
- return;
80
- this._dateForm.setValue({ startDate: null, endDate: null });
81
- this.writeValue(this._dateForm.value);
82
- }
83
- navigateToToday() {
84
- this._dateFirst = moment();
85
- this._dateSecond = moment().add(1, 'M');
86
- this.build();
87
- }
88
- ngOnInit() {
89
- this.build();
90
- }
91
- registerOnChange(fn) {
92
- this.onModelChange = fn;
93
- }
94
- registerOnTouched(fn) {
95
- this.onModelTouched = fn;
96
- }
97
- setDisabledState(isDisabled) {
98
- this._disabled = isDisabled;
99
- }
100
- set value(value) {
101
- if (value &&
102
- Object.prototype.hasOwnProperty.call(value, 'startDate') &&
103
- Object.prototype.hasOwnProperty.call(value, 'endDate')) {
104
- this._dateForm.setValue(value);
105
- this.cdr.detectChanges();
106
- this.onModelChange(this._dateForm.value);
107
- this.onModelTouched(this._dateForm.value);
108
- }
109
- else {
110
- this.clearDates();
111
- }
112
- }
113
- get value() {
114
- return this._dateForm.value;
115
- }
116
- writeValue(value) {
117
- this.value = value;
118
- this.onChange.next(value);
119
- }
120
- nextMonth() {
121
- if (this._disabled)
122
- return;
123
- this._dateFirst.add(1, 'M');
124
- this._dateSecond.add(1, 'M');
125
- this._daysArrFirst = this.createCalendar(this._dateFirst);
126
- this._daysArrSecond = this.createCalendar(this._dateSecond);
127
- }
128
- previousMonth() {
129
- if (this._disabled)
130
- return;
131
- this._dateFirst.subtract(1, 'M');
132
- this._dateSecond.subtract(1, 'M');
133
- this._daysArrFirst = this.createCalendar(this._dateFirst);
134
- this._daysArrSecond = this.createCalendar(this._dateSecond);
135
- }
136
- todayCheck(day) {
137
- if (!day) {
138
- return false;
139
- }
140
- return moment().format('L') === day.format('L');
141
- }
142
- isSelected(day) {
143
- if (!day) {
144
- return false;
145
- }
146
- let startDateMoment = moment(this._dateForm.value.startDate, 'YYYY-MM-DD');
147
- let endDateMoment = moment(this._dateForm.value.endDate, 'YYYY-MM-DD');
148
- if (this._dateForm.valid) {
149
- return startDateMoment.isSameOrBefore(day) && endDateMoment.isSameOrAfter(day);
150
- }
151
- if (this._dateForm.get('startDate').valid) {
152
- return startDateMoment.isSame(day);
153
- }
154
- }
155
- isDisabled(day) {
156
- const { minDate } = this;
157
- if (minDate) {
158
- const firstDay = moment(minDate);
159
- return day.isBefore(firstDay.subtract(1, 'day'));
160
- }
161
- return false;
162
- }
163
- isFirstSelected(day) {
164
- const { _dateForm } = this;
165
- const { startDate } = _dateForm.value;
166
- return day === null || day === void 0 ? void 0 : day.isSame(startDate);
167
- }
168
- isLastSelected(day) {
169
- const { _dateForm } = this;
170
- const { endDate } = _dateForm.value;
171
- return day === null || day === void 0 ? void 0 : day.isSame(endDate);
172
- }
173
- selectedDate(day) {
174
- if (this._disabled)
175
- return;
176
- const { _dateForm, minDate } = this;
177
- let dayFormatted = day.format('YYYY-MM-DD');
178
- if (minDate) {
179
- const firstDay = moment(minDate);
180
- if (day.isBefore(firstDay.subtract(1, 'day')))
181
- return;
182
- }
183
- if (_dateForm.valid) {
184
- this.clearDates();
185
- }
186
- let { startDate, endDate } = _dateForm.value;
187
- if (startDate) {
188
- if (moment(startDate).isAfter(moment(dayFormatted))) {
189
- endDate = startDate;
190
- startDate = dayFormatted;
191
- }
192
- else {
193
- endDate = dayFormatted;
194
- }
195
- }
196
- else
197
- startDate = dayFormatted;
198
- if (startDate) {
199
- _dateForm.get('startDate').patchValue(startDate);
200
- }
201
- if (endDate) {
202
- _dateForm.get('endDate').patchValue(endDate);
203
- }
204
- this.writeValue(_dateForm.value);
205
- }
206
- selectRangeOfDays(days) {
207
- if (this._disabled)
208
- return;
209
- const { _dateForm, minDate, today } = this;
210
- const { startDate } = _dateForm.value;
211
- const firstDay = moment(startDate || minDate || today).format('YYYY-MM-DD');
212
- const lastDay = moment(firstDay).add(days, 'day').format('YYYY-MM-DD');
213
- _dateForm.get('startDate').patchValue(firstDay);
214
- _dateForm.get('endDate').patchValue(lastDay);
215
- this.writeValue(_dateForm.value);
216
- }
217
- }
218
- MonkeyDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyDateRangePickerComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
219
- MonkeyDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyDateRangePickerComponent, selector: "monkey-date-range-picker", inputs: { label: "label", helperMessage: "helperMessage", i18n: "i18n", infoMessage: "infoMessage", errorMessage: "errorMessage", minDate: "minDate", value: "value" }, outputs: { onChange: "onChange" }, providers: [
220
- {
221
- provide: NG_VALUE_ACCESSOR,
222
- useExisting: forwardRef(() => MonkeyDateRangePickerComponent),
223
- multi: true,
224
- },
225
- CurrencyPipe,
226
- ], ngImport: i0, template: `
227
- <mecx-date-range-picker-group [ngClass]="{ disabled: _disabled }" [id]="_id">
228
- <mecx-date-range-picker-group-header>
229
- <label>
230
- {{ label }}
231
- </label>
232
- <helper>
233
- {{ helperMessage }}
234
- </helper>
235
- </mecx-date-range-picker-group-header>
236
- <mecx-date-range-picker-group-body>
237
- <mecx-date-range-picker class="first-date-range">
238
- <mecx-date-range-picker-header>
239
- <div class="calendar-title">
240
- <monkey-button
241
- class="calendar-previous"
242
- color="theme"
243
- icon="arrow-left-16"
244
- type="tertiary"
245
- (click)="previousMonth()"
246
- size="sm"
247
- [disabled]="_disabled"
248
- >
249
- </monkey-button>
250
- <div class="month-year-title">
251
- {{ i18n?.months?.[_dateFirst.format('M')] }}
252
- {{ _dateFirst.format('YYYY') }}
253
- </div>
254
- <monkey-button
255
- class="calendar-next"
256
- color="theme"
257
- icon="arrow-right-16"
258
- type="tertiary"
259
- (click)="nextMonth()"
260
- size="sm"
261
- [disabled]="_disabled"
262
- >
263
- </monkey-button>
264
- </div>
265
- <div class="week">
266
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
267
- {{ i18n?.days?.[day]}}
268
- </span>
269
- </div>
270
- </mecx-date-range-picker-header>
271
- <mecx-date-range-picker-body>
272
- <div class="month-week" *ngFor="let week of _daysArrFirst">
273
- <div
274
- class="month-day"
275
- (click)="selectedDate(day)"
276
- [ngClass]="{
277
- inactive: !day || isDisabled(day),
278
- selected: isSelected(day),
279
- today: todayCheck(day),
280
- 'first-selected': isFirstSelected(day),
281
- 'last-selected': isLastSelected(day)
282
- }"
283
- *ngFor="let day of week"
284
- #divOne
285
- >
286
- {{ day?.date() }}
287
- </div>
288
- </div>
289
- </mecx-date-range-picker-body>
290
- </mecx-date-range-picker>
291
-
292
- <mecx-date-range-picker class="second-date-range">
293
- <mecx-date-range-picker-header>
294
- <div class="calendar-title">
295
- <div class="month-year-title">
296
- {{ i18n?.months?.[_dateSecond.format('M')] }}
297
- {{ _dateSecond.format('YYYY') }}
298
- </div>
299
- <monkey-button
300
- class="calendar-previous"
301
- color="theme"
302
- icon="arrow-right-16"
303
- type="tertiary"
304
- (click)="nextMonth()"
305
- size="sm"
306
- [disabled]="_disabled"
307
- >
308
- </monkey-button>
309
- </div>
310
- <div class="week">
311
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
312
- {{ i18n?.days?.[day]}}
313
- </span>
314
- </div>
315
- </mecx-date-range-picker-header>
316
- <mecx-date-range-picker-body>
317
- <div class="month-week" *ngFor="let week of _daysArrSecond">
318
- <div
319
- class="month-day"
320
- (click)="selectedDate(day)"
321
- [ngClass]="{
322
- inactive: !day || isDisabled(day),
323
- selected: isSelected(day),
324
- today: todayCheck(day),
325
- 'first-selected': isFirstSelected(day),
326
- 'last-selected': isLastSelected(day)
327
- }"
328
- *ngFor="let day of week"
329
- >
330
- {{ day?.date() }}
331
- </div>
332
- </div>
333
- </mecx-date-range-picker-body>
334
- </mecx-date-range-picker>
335
- </mecx-date-range-picker-group-body>
336
- <mecx-date-range-picker-group-info>
337
- <info>
338
- {{ infoMessage }}
339
- </info>
340
- <error>
341
- {{ errorMessage }}
342
- </error>
343
- </mecx-date-range-picker-group-info>
344
- <mecx-date-range-picker-group-action [class.error]="errorMessage?.trim()">
345
- <div class="action-days">
346
- <monkey-button
347
- color="theme"
348
- type="secondary"
349
- (click)="selectRangeOfDays(30)"
350
- [disabled]="_disabled"
351
- >
352
- {{ i18n?.actions?.['30'] }}
353
- </monkey-button>
354
- <monkey-button
355
- color="theme"
356
- type="secondary"
357
- (click)="selectRangeOfDays(60)"
358
- [disabled]="_disabled"
359
- >
360
- {{ i18n?.actions?.['60'] }}
361
- </monkey-button>
362
- <monkey-button
363
- color="theme"
364
- type="secondary"
365
- (click)="selectRangeOfDays(90)"
366
- [disabled]="_disabled"
367
- >
368
- {{ i18n?.actions?.['90'] }}
369
- </monkey-button>
370
- </div>
371
- <monkey-button
372
- color="theme"
373
- type="primary"
374
- (click)="navigateToToday()"
375
- [disabled]="_disabled"
376
- >
377
- {{ i18n?.today }}
378
- </monkey-button>
379
- </mecx-date-range-picker-group-action>
380
- </mecx-date-range-picker-group>
381
- `, isInline: true, components: [{ type: i2.MonkeyButtonComponent, selector: "monkey-button", inputs: ["label", "icon", "iconPosition", "type", "color", "disabled", "size"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyDateRangePickerComponent, decorators: [{
383
- type: Component,
384
- args: [{
385
- selector: 'monkey-date-range-picker',
386
- template: `
387
- <mecx-date-range-picker-group [ngClass]="{ disabled: _disabled }" [id]="_id">
388
- <mecx-date-range-picker-group-header>
389
- <label>
390
- {{ label }}
391
- </label>
392
- <helper>
393
- {{ helperMessage }}
394
- </helper>
395
- </mecx-date-range-picker-group-header>
396
- <mecx-date-range-picker-group-body>
397
- <mecx-date-range-picker class="first-date-range">
398
- <mecx-date-range-picker-header>
399
- <div class="calendar-title">
400
- <monkey-button
401
- class="calendar-previous"
402
- color="theme"
403
- icon="arrow-left-16"
404
- type="tertiary"
405
- (click)="previousMonth()"
406
- size="sm"
407
- [disabled]="_disabled"
408
- >
409
- </monkey-button>
410
- <div class="month-year-title">
411
- {{ i18n?.months?.[_dateFirst.format('M')] }}
412
- {{ _dateFirst.format('YYYY') }}
413
- </div>
414
- <monkey-button
415
- class="calendar-next"
416
- color="theme"
417
- icon="arrow-right-16"
418
- type="tertiary"
419
- (click)="nextMonth()"
420
- size="sm"
421
- [disabled]="_disabled"
422
- >
423
- </monkey-button>
424
- </div>
425
- <div class="week">
426
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
427
- {{ i18n?.days?.[day]}}
428
- </span>
429
- </div>
430
- </mecx-date-range-picker-header>
431
- <mecx-date-range-picker-body>
432
- <div class="month-week" *ngFor="let week of _daysArrFirst">
433
- <div
434
- class="month-day"
435
- (click)="selectedDate(day)"
436
- [ngClass]="{
437
- inactive: !day || isDisabled(day),
438
- selected: isSelected(day),
439
- today: todayCheck(day),
440
- 'first-selected': isFirstSelected(day),
441
- 'last-selected': isLastSelected(day)
442
- }"
443
- *ngFor="let day of week"
444
- #divOne
445
- >
446
- {{ day?.date() }}
447
- </div>
448
- </div>
449
- </mecx-date-range-picker-body>
450
- </mecx-date-range-picker>
451
-
452
- <mecx-date-range-picker class="second-date-range">
453
- <mecx-date-range-picker-header>
454
- <div class="calendar-title">
455
- <div class="month-year-title">
456
- {{ i18n?.months?.[_dateSecond.format('M')] }}
457
- {{ _dateSecond.format('YYYY') }}
458
- </div>
459
- <monkey-button
460
- class="calendar-previous"
461
- color="theme"
462
- icon="arrow-right-16"
463
- type="tertiary"
464
- (click)="nextMonth()"
465
- size="sm"
466
- [disabled]="_disabled"
467
- >
468
- </monkey-button>
469
- </div>
470
- <div class="week">
471
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
472
- {{ i18n?.days?.[day]}}
473
- </span>
474
- </div>
475
- </mecx-date-range-picker-header>
476
- <mecx-date-range-picker-body>
477
- <div class="month-week" *ngFor="let week of _daysArrSecond">
478
- <div
479
- class="month-day"
480
- (click)="selectedDate(day)"
481
- [ngClass]="{
482
- inactive: !day || isDisabled(day),
483
- selected: isSelected(day),
484
- today: todayCheck(day),
485
- 'first-selected': isFirstSelected(day),
486
- 'last-selected': isLastSelected(day)
487
- }"
488
- *ngFor="let day of week"
489
- >
490
- {{ day?.date() }}
491
- </div>
492
- </div>
493
- </mecx-date-range-picker-body>
494
- </mecx-date-range-picker>
495
- </mecx-date-range-picker-group-body>
496
- <mecx-date-range-picker-group-info>
497
- <info>
498
- {{ infoMessage }}
499
- </info>
500
- <error>
501
- {{ errorMessage }}
502
- </error>
503
- </mecx-date-range-picker-group-info>
504
- <mecx-date-range-picker-group-action [class.error]="errorMessage?.trim()">
505
- <div class="action-days">
506
- <monkey-button
507
- color="theme"
508
- type="secondary"
509
- (click)="selectRangeOfDays(30)"
510
- [disabled]="_disabled"
511
- >
512
- {{ i18n?.actions?.['30'] }}
513
- </monkey-button>
514
- <monkey-button
515
- color="theme"
516
- type="secondary"
517
- (click)="selectRangeOfDays(60)"
518
- [disabled]="_disabled"
519
- >
520
- {{ i18n?.actions?.['60'] }}
521
- </monkey-button>
522
- <monkey-button
523
- color="theme"
524
- type="secondary"
525
- (click)="selectRangeOfDays(90)"
526
- [disabled]="_disabled"
527
- >
528
- {{ i18n?.actions?.['90'] }}
529
- </monkey-button>
530
- </div>
531
- <monkey-button
532
- color="theme"
533
- type="primary"
534
- (click)="navigateToToday()"
535
- [disabled]="_disabled"
536
- >
537
- {{ i18n?.today }}
538
- </monkey-button>
539
- </mecx-date-range-picker-group-action>
540
- </mecx-date-range-picker-group>
541
- `,
542
- encapsulation: ViewEncapsulation.None,
543
- providers: [
544
- {
545
- provide: NG_VALUE_ACCESSOR,
546
- useExisting: forwardRef(() => MonkeyDateRangePickerComponent),
547
- multi: true,
548
- },
549
- CurrencyPipe,
550
- ],
551
- }]
552
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
553
- type: Input
554
- }], helperMessage: [{
555
- type: Input
556
- }], i18n: [{
557
- type: Input
558
- }], infoMessage: [{
559
- type: Input
560
- }], errorMessage: [{
561
- type: Input
562
- }], minDate: [{
563
- type: Input
564
- }], onChange: [{
565
- type: Output
566
- }], value: [{
567
- type: Input
568
- }] } });
569
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBRVYsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWxDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQTBLdkIsTUFBTSxPQUFPLDhCQUE4QjtJQWdDekMsWUFBb0IsRUFBZSxFQUFVLEdBQXNCO1FBQS9DLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTlCMUQsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFlM0IsWUFBTyxHQUFRLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyQyxVQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLGtCQUFhLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFF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QUM3RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxZQUFZO3FCQUNiO2lCQUNGO2tJQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFZRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBa0dILEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcblxyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtb25rZXktZGF0ZS1yYW5nZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiIFtpZF09XCJfaWRcIj5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaGVhZGVyPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIHt7IGxhYmVsIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aGVscGVyPlxyXG4gICAgICAgICAge3sgaGVscGVyTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaGVscGVyPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaGVhZGVyPlxyXG4gICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cC1ib2R5PlxyXG4gICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyIGNsYXNzPVwiZmlyc3QtZGF0ZS1yYW5nZVwiPlxyXG4gICAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItdGl0bGVcIj5cclxuICAgICAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1wcmV2aW91c1wiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJhcnJvdy1sZWZ0LTE2XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlvdXNNb250aCgpXCJcclxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpMThuPy5tb250aHM/LltfZGF0ZUZpcnN0LmZvcm1hdCgnTScpXSB9fVxyXG4gICAgICAgICAgICAgICAge3sgX2RhdGVGaXJzdC5mb3JtYXQoJ1lZWVknKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLW5leHRcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3ctcmlnaHQtMTZcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0TW9udGgoKVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3ZWVrLWRheVwiICpuZ0Zvcj1cImxldCBkYXkgb2YgWzEsIDIsIDMsIDQsIDUsIDYsIDddXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpMThuPy5kYXlzPy5bZGF5XX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1oZWFkZXI+XHJcbiAgICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtd2Vla1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIF9kYXlzQXJyRmlyc3RcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRheVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWREYXRlKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICBpbmFjdGl2ZTogIWRheSB8fCBpc0Rpc2FibGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHRvZGF5OiB0b2RheUNoZWNrKGRheSksXHJcbiAgICAgICAgICAgICAgICAgICdmaXJzdC1zZWxlY3RlZCc6IGlzRmlyc3RTZWxlY3RlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICAnbGFzdC1zZWxlY3RlZCc6IGlzTGFzdFNlbGVjdGVkKGRheSlcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrXCJcclxuICAgICAgICAgICAgICAgICNkaXZPbmVcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXk/LmRhdGUoKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuXHJcbiAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXIgY2xhc3M9XCJzZWNvbmQtZGF0ZS1yYW5nZVwiPlxyXG4gICAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItdGl0bGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhci10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgaTE4bj8ubW9udGhzPy5bX2RhdGVTZWNvbmQuZm9ybWF0KCdNJyldIH19XHJcbiAgICAgICAgICAgICAgICB7eyBfZGF0ZVNlY29uZC5mb3JtYXQoJ1lZWVknKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLXByZXZpb3VzXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgaWNvbj1cImFycm93LXJpZ2h0LTE2XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2Vlay1kYXlcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIFsxLCAyLCAzLCA0LCA1LCA2LCA3XVwiPlxyXG4gICAgICAgICAgICAgICAge3sgaTE4bj8uZGF5cz8uW2RheV19fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyPlxyXG4gICAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItYm9keT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXdlZWtcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiBfZGF5c0FyclNlY29uZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGgtZGF5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZERhdGUoZGF5KVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgIGluYWN0aXZlOiAhZGF5IHx8IGlzRGlzYWJsZWQoZGF5KSxcclxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQoZGF5KSxcclxuICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5Q2hlY2soZGF5KSxcclxuICAgICAgICAgICAgICAgICAgJ2ZpcnN0LXNlbGVjdGVkJzogaXNGaXJzdFNlbGVjdGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgICdsYXN0LXNlbGVjdGVkJzogaXNMYXN0U2VsZWN0ZWQoZGF5KVxyXG4gICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IGRheT8uZGF0ZSgpIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWJvZHk+XHJcbiAgICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYm9keT5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaW5mbz5cclxuICAgICAgICA8aW5mbz5cclxuICAgICAgICAgIHt7IGluZm9NZXNzYWdlIH19XHJcbiAgICAgICAgPC9pbmZvPlxyXG4gICAgICAgIDxlcnJvcj5cclxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvZXJyb3I+XHJcbiAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cC1pbmZvPlxyXG4gICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cC1hY3Rpb24gW2NsYXNzLmVycm9yXT1cImVycm9yTWVzc2FnZT8udHJpbSgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1kYXlzXCI+XHJcbiAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSYW5nZU9mRGF5cygzMClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgaTE4bj8uYWN0aW9ucz8uWyczMCddIH19XHJcbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSYW5nZU9mRGF5cyg2MClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgaTE4bj8uYWN0aW9ucz8uWyc2MCddIH19XHJcbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSYW5nZU9mRGF5cyg5MClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgaTE4bj8uYWN0aW9ucz8uWyc5MCddIH19XHJcbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgIGNvbG9yPVwidGhlbWVcIlxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Ub2RheSgpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGkxOG4/LnRvZGF5IH19XHJcbiAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYWN0aW9uPlxyXG4gICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbmtleURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIEN1cnJlbmN5UGlwZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9ua2V5RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWxwZXJNZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpMThuOiB7XHJcbiAgICBtb250aHM6IHtcclxuICAgICAgW3M6IHN0cmluZ106IHN0cmluZztcclxuICAgIH07XHJcbiAgICBkYXlzOiB7XHJcbiAgICAgIFtzOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgYWN0aW9uczoge1xyXG4gICAgICBbczogc3RyaW5nXTogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIHRvZGF5OiBzdHJpbmc7XHJcbiAgfTtcclxuICBASW5wdXQoKSBpbmZvTWVzc2FnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbkRhdGU6IGFueSA9IG51bGw7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgdG9kYXkgPSBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICBwcml2YXRlIG9uTW9kZWxDaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XHJcbiAgcHJpdmF0ZSBvbk1vZGVsVG91Y2hlZCA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuXHJcbiAgcHVibGljIF9kYXRlRmlyc3QgPSBtb21lbnQoKTtcclxuICBwdWJsaWMgX2RhdGVTZWNvbmQgPSBtb21lbnQoKS5hZGQoMSwgJ00nKTtcclxuICBwdWJsaWMgX2lkOiBzdHJpbmcgPSBgbWVjeC1kYXRlLXJhbmdlLXBpY2tlci0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygxMCl9YDtcclxuICBwdWJsaWMgX2RheXNBcnJGaXJzdCA9IFtdO1xyXG4gIHB1YmxpYyBfZGF5c0FyclNlY29uZCA9IFtdO1xyXG4gIHB1YmxpYyBfZGF0ZUZvcm06IEZvcm1Hcm91cDtcclxuICBwdWJsaWMgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuaW5pdERhdGVSYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RGF0ZVJhbmdlKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLl9kYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzdGFydERhdGU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZW5kRGF0ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYWxlbmRhcihtb250aDogbW9tZW50Lk1vbWVudCkge1xyXG4gICAgbGV0IGZpcnN0RGF5ID0gbW9tZW50KG1vbnRoKS5zdGFydE9mKCdNJyk7XHJcbiAgICBsZXQgbGFzdERheSA9IG1vbWVudChtb250aCkuZW5kT2YoJ00nKTtcclxuICAgIGxldCBkYXlzID0gQXJyYXkuYXBwbHkobnVsbCwgeyBsZW5ndGg6IG1vbnRoLmRheXNJbk1vbnRoKCkgfSlcclxuICAgICAgLm1hcChOdW1iZXIuY2FsbCwgTnVtYmVyKVxyXG4gICAgICAubWFwKChuOiBudW1iZXIpID0+IHtcclxuICAgICAgICByZXR1cm4gbW9tZW50KGZpcnN0RGF5KS5hZGQobiwgJ2QnKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgbGV0IG4gPSAwO1xyXG4gICAgd2hpbGUgKG4gPCBmaXJzdERheS53ZWVrZGF5KCkpIHtcclxuICAgICAgZGF5cy51bnNoaWZ0KG51bGwpO1xyXG4gICAgICBuKys7XHJcbiAgICB9XHJcbiAgICBuID0gMDtcclxuICAgIHdoaWxlIChuIDwgNyAtIGxhc3REYXkud2Vla2RheSgpKSB7XHJcbiAgICAgIGRheXMucHVzaChudWxsKTtcclxuICAgICAgbisrO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpbmRleCA9IDE7XHJcbiAgICBsZXQgZ3JvdXAgPSBbXTtcclxuICAgIGxldCBncm91cGVkID0gW107XHJcblxyXG4gICAgT2JqZWN0LmVudHJpZXMoZGF5cykubWFwKChba2V5LCB2YWx1ZV06IFtzdHJpbmcsIGFueV0pID0+IHtcclxuICAgICAgaWYgKGluZGV4ID4gNykge1xyXG4gICAgICAgIGluZGV4ID0gMTtcclxuICAgICAgICBncm91cGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGdyb3VwID0gW107XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdyb3VwLnB1c2godmFsdWUpO1xyXG4gICAgICBpbmRleCsrO1xyXG4gICAgfSk7XHJcbiAgICBncm91cGVkLnB1c2goZ3JvdXApO1xyXG5cclxuICAgIHJldHVybiBncm91cGVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZCgpIHtcclxuICAgIHRoaXMuX2RheXNBcnJGaXJzdCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZUZpcnN0KTtcclxuICAgIHRoaXMuX2RheXNBcnJTZWNvbmQgPSB0aGlzLmNyZWF0ZUNhbGVuZGFyKHRoaXMuX2RhdGVTZWNvbmQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckRhdGVzKCkge1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLl9kYXRlRm9ybS5zZXRWYWx1ZSh7IHN0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbCB9KTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLl9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvVG9kYXkoKSB7XHJcbiAgICB0aGlzLl9kYXRlRmlyc3QgPSBtb21lbnQoKTtcclxuICAgIHRoaXMuX2RhdGVTZWNvbmQgPSBtb21lbnQoKS5hZGQoMSwgJ00nKTtcclxuICAgIHRoaXMuYnVpbGQoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5idWlsZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWUgJiZcclxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnc3RhcnREYXRlJykgJiZcclxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnZW5kRGF0ZScpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fZGF0ZUZvcm0uc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLl9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMub25Nb2RlbFRvdWNoZWQodGhpcy5fZGF0ZUZvcm0udmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGVhckRhdGVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlRm9ybS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5leHRNb250aCgpIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fZGF0ZUZpcnN0LmFkZCgxLCAnTScpO1xyXG4gICAgdGhpcy5fZGF0ZVNlY29uZC5hZGQoMSwgJ00nKTtcclxuXHJcbiAgICB0aGlzLl9kYXlzQXJyRmlyc3QgPSB0aGlzLmNyZWF0ZUNhbGVuZGFyKHRoaXMuX2RhdGVGaXJzdCk7XHJcbiAgICB0aGlzLl9kYXlzQXJyU2Vjb25kID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlU2Vjb25kKTtcclxuICB9XHJcblxyXG4gIHByZXZpb3VzTW9udGgoKSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2RhdGVGaXJzdC5zdWJ0cmFjdCgxLCAnTScpO1xyXG4gICAgdGhpcy5fZGF0ZVNlY29uZC5zdWJ0cmFjdCgxLCAnTScpO1xyXG5cclxuICAgIHRoaXMuX2RheXNBcnJGaXJzdCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZUZpcnN0KTtcclxuICAgIHRoaXMuX2RheXNBcnJTZWNvbmQgPSB0aGlzLmNyZWF0ZUNhbGVuZGFyKHRoaXMuX2RhdGVTZWNvbmQpO1xyXG4gIH1cclxuXHJcbiAgdG9kYXlDaGVjayhkYXk6IG1vbWVudC5Nb21lbnQpIHtcclxuICAgIGlmICghZGF5KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbW9tZW50KCkuZm9ybWF0KCdMJykgPT09IGRheS5mb3JtYXQoJ0wnKTtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0ZWQoZGF5OiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICBpZiAoIWRheSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN0YXJ0RGF0ZU1vbWVudCA9IG1vbWVudCh0aGlzLl9kYXRlRm9ybS52YWx1ZS5zdGFydERhdGUsICdZWVlZLU1NLUREJyk7XHJcbiAgICBsZXQgZW5kRGF0ZU1vbWVudCA9IG1vbWVudCh0aGlzLl9kYXRlRm9ybS52YWx1ZS5lbmREYXRlLCAnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAgIGlmICh0aGlzLl9kYXRlRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gc3RhcnREYXRlTW9tZW50LmlzU2FtZU9yQmVmb3JlKGRheSkgJiYgZW5kRGF0ZU1vbWVudC5pc1NhbWVPckFmdGVyKGRheSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RhdGVGb3JtLmdldCgnc3RhcnREYXRlJykudmFsaWQpIHtcclxuICAgICAgcmV0dXJuIHN0YXJ0RGF0ZU1vbWVudC5pc1NhbWUoZGF5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRGlzYWJsZWQoZGF5KSB7XHJcbiAgICBjb25zdCB7IG1pbkRhdGUgfSA9IHRoaXM7XHJcbiAgICBpZiAobWluRGF0ZSkge1xyXG4gICAgICBjb25zdCBmaXJzdERheSA9IG1vbWVudChtaW5EYXRlKTtcclxuICAgICAgcmV0dXJuIGRheS5pc0JlZm9yZShmaXJzdERheS5zdWJ0cmFjdCgxLCAnZGF5JykpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNGaXJzdFNlbGVjdGVkKGRheSkge1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IHN0YXJ0RGF0ZSB9ID0gX2RhdGVGb3JtLnZhbHVlO1xyXG4gICAgcmV0dXJuIGRheT8uaXNTYW1lKHN0YXJ0RGF0ZSk7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RTZWxlY3RlZChkYXk6IG1vbWVudC5Nb21lbnQpIHtcclxuICAgIGNvbnN0IHsgX2RhdGVGb3JtIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeyBlbmREYXRlIH0gPSBfZGF0ZUZvcm0udmFsdWU7XHJcbiAgICByZXR1cm4gZGF5Py5pc1NhbWUoZW5kRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZERhdGUoZGF5OiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGNvbnN0IHsgX2RhdGVGb3JtLCBtaW5EYXRlIH0gPSB0aGlzO1xyXG4gICAgbGV0IGRheUZvcm1hdHRlZCA9IGRheS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuXHJcbiAgICBpZiAobWluRGF0ZSkge1xyXG4gICAgICBjb25zdCBmaXJzdERheSA9IG1vbWVudChtaW5EYXRlKTtcclxuICAgICAgaWYgKGRheS5pc0JlZm9yZShmaXJzdERheS5zdWJ0cmFjdCgxLCAnZGF5JykpKSByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKF9kYXRlRm9ybS52YWxpZCkge1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgeyBzdGFydERhdGUsIGVuZERhdGUgfSA9IF9kYXRlRm9ybS52YWx1ZTtcclxuICAgIGlmIChzdGFydERhdGUpIHtcclxuICAgICAgaWYgKG1vbWVudChzdGFydERhdGUpLmlzQWZ0ZXIobW9tZW50KGRheUZvcm1hdHRlZCkpKSB7XHJcbiAgICAgICAgZW5kRGF0ZSA9IHN0YXJ0RGF0ZTtcclxuICAgICAgICBzdGFydERhdGUgPSBkYXlGb3JtYXR0ZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW5kRGF0ZSA9IGRheUZvcm1hdHRlZDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHN0YXJ0RGF0ZSA9IGRheUZvcm1hdHRlZDtcclxuXHJcbiAgICBpZiAoc3RhcnREYXRlKSB7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ3N0YXJ0RGF0ZScpLnBhdGNoVmFsdWUoc3RhcnREYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZW5kRGF0ZSkge1xyXG4gICAgICBfZGF0ZUZvcm0uZ2V0KCdlbmREYXRlJykucGF0Y2hWYWx1ZShlbmREYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndyaXRlVmFsdWUoX2RhdGVGb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJhbmdlT2ZEYXlzKGRheXM6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICBjb25zdCB7IF9kYXRlRm9ybSwgbWluRGF0ZSwgdG9kYXkgfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IHN0YXJ0RGF0ZSB9ID0gX2RhdGVGb3JtLnZhbHVlO1xyXG5cclxuICAgIGNvbnN0IGZpcnN0RGF5ID0gbW9tZW50KHN0YXJ0RGF0ZSB8fCBtaW5EYXRlIHx8IHRvZGF5KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgIGNvbnN0IGxhc3REYXkgPSBtb21lbnQoZmlyc3REYXkpLmFkZChkYXlzLCAnZGF5JykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICBfZGF0ZUZvcm0uZ2V0KCdzdGFydERhdGUnKS5wYXRjaFZhbHVlKGZpcnN0RGF5KTtcclxuICAgIF9kYXRlRm9ybS5nZXQoJ2VuZERhdGUnKS5wYXRjaFZhbHVlKGxhc3REYXkpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKF9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class MonkeyIconArrowDownComponent {
4
- }
5
- MonkeyIconArrowDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyIconArrowDownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- MonkeyIconArrowDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyIconArrowDownComponent, selector: "monkey-icon-arrow-down", inputs: { fillColor: "fillColor", size: "size" }, ngImport: i0, template: "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" [attr.height]=\"size\" [attr.width]=\"size\">\r\n<path d=\"M2 5L8 11L14 5\" stroke=\"#000000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" [attr.stroke]=\"fillColor\"/>\r\n</svg>\r\n", styles: [":host{display:flex}\n"] });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyIconArrowDownComponent, decorators: [{
8
- type: Component,
9
- args: [{
10
- selector: 'monkey-icon-arrow-down',
11
- templateUrl: `../../../../assets/icons/arrow-down.svg`,
12
- styleUrls: ['./icons.component.scss'],
13
- }]
14
- }], propDecorators: { fillColor: [{
15
- type: Input
16
- }], size: [{
17
- type: Input
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1hcnJvdy1kb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLWFycm93LWRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2ZyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPakQsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLGdIQ1B6Qyx3U0FHQTs0RkRJYSw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLHlDQUF5QztvQkFDdEQsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3RDOzhCQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtb25rZXktaWNvbi1hcnJvdy1kb3duJyxcclxuICB0ZW1wbGF0ZVVybDogYC4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Z2AsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaWNvbnMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUljb25BcnJvd0Rvd25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGZpbGxDb2xvcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XHJcbn1cclxuIiwiPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVcIiBbYXR0ci53aWR0aF09XCJzaXplXCI+XHJcbjxwYXRoIGQ9XCJNMiA1TDggMTFMMTQgNVwiIHN0cm9rZT1cIiMwMDAwMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBbYXR0ci5zdHJva2VdPVwiZmlsbENvbG9yXCIvPlxyXG48L3N2Zz5cclxuIl19