monkey-style-guide 2.0.106 → 2.0.110

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} +568 -808
  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.110.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.106.tgz +0 -0
@@ -1,553 +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.onChange = new EventEmitter();
22
- this.today = moment().format('YYYY-MM-DD');
23
- this.onModelChange = (value) => { };
24
- this.onModelTouched = (value) => { };
25
- this._dateFirst = moment();
26
- this._dateSecond = moment().add(1, 'M');
27
- this._id = `mecx-date-range-picker-${MonkeyUtils.getRandomString(10)}`;
28
- this._daysArrFirst = [];
29
- this._daysArrSecond = [];
30
- this._disabled = false;
31
- this.initDateRange();
32
- }
33
- initDateRange() {
34
- return (this._dateForm = this.fb.group({
35
- startDate: [null, Validators.required],
36
- endDate: [null, Validators.required],
37
- }));
38
- }
39
- createCalendar(month) {
40
- let firstDay = moment(month).startOf('M');
41
- let lastDay = moment(month).endOf('M');
42
- let days = Array.apply(null, { length: month.daysInMonth() })
43
- .map(Number.call, Number)
44
- .map((n) => {
45
- return moment(firstDay).add(n, 'd');
46
- });
47
- let n = 0;
48
- while (n < firstDay.weekday()) {
49
- days.unshift(null);
50
- n++;
51
- }
52
- n = 0;
53
- while (n < 7 - lastDay.weekday()) {
54
- days.push(null);
55
- n++;
56
- }
57
- let index = 1;
58
- let group = [];
59
- let grouped = [];
60
- Object.entries(days).map(([key, value]) => {
61
- if (index > 7) {
62
- index = 1;
63
- grouped.push(group);
64
- group = [];
65
- }
66
- group.push(value);
67
- index++;
68
- });
69
- grouped.push(group);
70
- return grouped;
71
- }
72
- build() {
73
- this._daysArrFirst = this.createCalendar(this._dateFirst);
74
- this._daysArrSecond = this.createCalendar(this._dateSecond);
75
- }
76
- clearDates() {
77
- if (this._disabled)
78
- return;
79
- this._dateForm.setValue({ startDate: null, endDate: null });
80
- this.writeValue(this._dateForm.value);
81
- }
82
- navigateToToday() {
83
- this._dateFirst = moment();
84
- this._dateSecond = moment().add(1, 'M');
85
- this.build();
86
- }
87
- ngOnInit() {
88
- this.build();
89
- }
90
- registerOnChange(fn) {
91
- this.onModelChange = fn;
92
- }
93
- registerOnTouched(fn) {
94
- this.onModelTouched = fn;
95
- }
96
- setDisabledState(isDisabled) {
97
- this._disabled = isDisabled;
98
- }
99
- set value(value) {
100
- if (value &&
101
- Object.prototype.hasOwnProperty.call(value, 'startDate') &&
102
- Object.prototype.hasOwnProperty.call(value, 'endDate')) {
103
- this._dateForm.setValue(value);
104
- this.cdr.detectChanges();
105
- this.onModelChange(this._dateForm.value);
106
- this.onModelTouched(this._dateForm.value);
107
- }
108
- else {
109
- this.clearDates();
110
- }
111
- }
112
- get value() {
113
- return this._dateForm.value;
114
- }
115
- writeValue(value) {
116
- this.value = value;
117
- this.onChange.next(value);
118
- }
119
- nextMonth() {
120
- if (this._disabled)
121
- return;
122
- this._dateFirst.add(1, 'M');
123
- this._dateSecond.add(1, 'M');
124
- this._daysArrFirst = this.createCalendar(this._dateFirst);
125
- this._daysArrSecond = this.createCalendar(this._dateSecond);
126
- }
127
- previousMonth() {
128
- if (this._disabled)
129
- return;
130
- this._dateFirst.subtract(1, 'M');
131
- this._dateSecond.subtract(1, 'M');
132
- this._daysArrFirst = this.createCalendar(this._dateFirst);
133
- this._daysArrSecond = this.createCalendar(this._dateSecond);
134
- }
135
- todayCheck(day) {
136
- if (!day) {
137
- return false;
138
- }
139
- return moment().format('L') === day.format('L');
140
- }
141
- isSelected(day) {
142
- if (!day) {
143
- return false;
144
- }
145
- let startDateMoment = moment(this._dateForm.value.startDate, 'YYYY-MM-DD');
146
- let endDateMoment = moment(this._dateForm.value.endDate, 'YYYY-MM-DD');
147
- if (this._dateForm.valid) {
148
- return startDateMoment.isSameOrBefore(day) && endDateMoment.isSameOrAfter(day);
149
- }
150
- if (this._dateForm.get('startDate').valid) {
151
- return startDateMoment.isSame(day);
152
- }
153
- }
154
- isFirstSelected(day) {
155
- const { _dateForm } = this;
156
- const { startDate } = _dateForm.value;
157
- return day === null || day === void 0 ? void 0 : day.isSame(startDate);
158
- }
159
- isLastSelected(day) {
160
- const { _dateForm } = this;
161
- const { endDate } = _dateForm.value;
162
- return day === null || day === void 0 ? void 0 : day.isSame(endDate);
163
- }
164
- selectedDate(day) {
165
- if (this._disabled)
166
- return;
167
- const { _dateForm } = this;
168
- let dayFormatted = day.format('YYYY-MM-DD');
169
- if (_dateForm.valid) {
170
- this.clearDates();
171
- }
172
- let { startDate, endDate } = _dateForm.value;
173
- if (startDate) {
174
- if (moment(startDate).isAfter(moment(dayFormatted))) {
175
- endDate = startDate;
176
- startDate = dayFormatted;
177
- }
178
- else {
179
- endDate = dayFormatted;
180
- }
181
- }
182
- else
183
- startDate = dayFormatted;
184
- if (startDate) {
185
- _dateForm.get('startDate').patchValue(startDate);
186
- }
187
- if (endDate) {
188
- _dateForm.get('endDate').patchValue(endDate);
189
- }
190
- this.writeValue(_dateForm.value);
191
- }
192
- selectRangeOfDays(days) {
193
- if (this._disabled)
194
- return;
195
- const { _dateForm, today } = this;
196
- const { startDate } = _dateForm.value;
197
- const firstDay = startDate || today;
198
- const lastDay = moment(firstDay).add(days, 'day').format('YYYY-MM-DD');
199
- _dateForm.get('startDate').patchValue(firstDay);
200
- _dateForm.get('endDate').patchValue(lastDay);
201
- this.writeValue(_dateForm.value);
202
- }
203
- }
204
- 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 });
205
- 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", value: "value" }, outputs: { onChange: "onChange" }, providers: [
206
- {
207
- provide: NG_VALUE_ACCESSOR,
208
- useExisting: forwardRef(() => MonkeyDateRangePickerComponent),
209
- multi: true,
210
- },
211
- CurrencyPipe,
212
- ], ngImport: i0, template: `
213
- <mecx-date-range-picker-group [ngClass]="{ disabled: _disabled }" [id]="_id">
214
- <mecx-date-range-picker-group-header>
215
- <label>
216
- {{ label }}
217
- </label>
218
- <helper>
219
- {{ helperMessage }}
220
- </helper>
221
- </mecx-date-range-picker-group-header>
222
- <mecx-date-range-picker-group-body>
223
- <mecx-date-range-picker class="first-date-range">
224
- <mecx-date-range-picker-header>
225
- <div class="calendar-title">
226
- <monkey-button
227
- class="calendar-previous"
228
- color="theme"
229
- icon="arrow-left-16"
230
- type="tertiary"
231
- (click)="previousMonth()"
232
- size="sm"
233
- [disabled]="_disabled"
234
- >
235
- </monkey-button>
236
- <div class="month-year-title">
237
- {{ i18n?.months?.[_dateFirst.format('M')] }}
238
- {{ _dateFirst.format('YYYY') }}
239
- </div>
240
- <monkey-button
241
- class="calendar-next"
242
- color="theme"
243
- icon="arrow-right-16"
244
- type="tertiary"
245
- (click)="nextMonth()"
246
- size="sm"
247
- [disabled]="_disabled"
248
- >
249
- </monkey-button>
250
- </div>
251
- <div class="week">
252
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
253
- {{ i18n?.days?.[day]}}
254
- </span>
255
- </div>
256
- </mecx-date-range-picker-header>
257
- <mecx-date-range-picker-body>
258
- <div class="month-week" *ngFor="let week of _daysArrFirst">
259
- <div
260
- class="month-day"
261
- (click)="selectedDate(day)"
262
- [ngClass]="{
263
- inactive: !day,
264
- selected: isSelected(day),
265
- today: todayCheck(day),
266
- 'first-selected': isFirstSelected(day),
267
- 'last-selected': isLastSelected(day)
268
- }"
269
- *ngFor="let day of week"
270
- #divOne
271
- >
272
- {{ day?.date() }}
273
- </div>
274
- </div>
275
- </mecx-date-range-picker-body>
276
- </mecx-date-range-picker>
277
-
278
- <mecx-date-range-picker class="second-date-range">
279
- <mecx-date-range-picker-header>
280
- <div class="calendar-title">
281
- <div class="month-year-title">
282
- {{ i18n?.months?.[_dateSecond.format('M')] }}
283
- {{ _dateSecond.format('YYYY') }}
284
- </div>
285
- <monkey-button
286
- class="calendar-previous"
287
- color="theme"
288
- icon="arrow-right-16"
289
- type="tertiary"
290
- (click)="nextMonth()"
291
- size="sm"
292
- [disabled]="_disabled"
293
- >
294
- </monkey-button>
295
- </div>
296
- <div class="week">
297
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
298
- {{ i18n?.days?.[day]}}
299
- </span>
300
- </div>
301
- </mecx-date-range-picker-header>
302
- <mecx-date-range-picker-body>
303
- <div class="month-week" *ngFor="let week of _daysArrSecond">
304
- <div
305
- class="month-day"
306
- (click)="selectedDate(day)"
307
- [ngClass]="{
308
- inactive: !day,
309
- selected: isSelected(day),
310
- today: todayCheck(day),
311
- 'first-selected': isFirstSelected(day),
312
- 'last-selected': isLastSelected(day)
313
- }"
314
- *ngFor="let day of week"
315
- >
316
- {{ day?.date() }}
317
- </div>
318
- </div>
319
- </mecx-date-range-picker-body>
320
- </mecx-date-range-picker>
321
- </mecx-date-range-picker-group-body>
322
- <mecx-date-range-picker-group-info>
323
- <info>
324
- {{ infoMessage }}
325
- </info>
326
- <error>
327
- {{ errorMessage }}
328
- </error>
329
- </mecx-date-range-picker-group-info>
330
- <mecx-date-range-picker-group-action [class.error]="errorMessage?.trim()">
331
- <div class="action-days">
332
- <monkey-button
333
- color="theme"
334
- type="secondary"
335
- (click)="selectRangeOfDays(30)"
336
- [disabled]="_disabled"
337
- >
338
- {{ i18n?.actions?.['30'] }}
339
- </monkey-button>
340
- <monkey-button
341
- color="theme"
342
- type="secondary"
343
- (click)="selectRangeOfDays(60)"
344
- [disabled]="_disabled"
345
- >
346
- {{ i18n?.actions?.['60'] }}
347
- </monkey-button>
348
- <monkey-button
349
- color="theme"
350
- type="secondary"
351
- (click)="selectRangeOfDays(90)"
352
- [disabled]="_disabled"
353
- >
354
- {{ i18n?.actions?.['90'] }}
355
- </monkey-button>
356
- </div>
357
- <monkey-button
358
- color="theme"
359
- type="primary"
360
- (click)="navigateToToday()"
361
- [disabled]="_disabled"
362
- >
363
- {{ i18n?.today }}
364
- </monkey-button>
365
- </mecx-date-range-picker-group-action>
366
- </mecx-date-range-picker-group>
367
- `, 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 });
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyDateRangePickerComponent, decorators: [{
369
- type: Component,
370
- args: [{
371
- selector: 'monkey-date-range-picker',
372
- template: `
373
- <mecx-date-range-picker-group [ngClass]="{ disabled: _disabled }" [id]="_id">
374
- <mecx-date-range-picker-group-header>
375
- <label>
376
- {{ label }}
377
- </label>
378
- <helper>
379
- {{ helperMessage }}
380
- </helper>
381
- </mecx-date-range-picker-group-header>
382
- <mecx-date-range-picker-group-body>
383
- <mecx-date-range-picker class="first-date-range">
384
- <mecx-date-range-picker-header>
385
- <div class="calendar-title">
386
- <monkey-button
387
- class="calendar-previous"
388
- color="theme"
389
- icon="arrow-left-16"
390
- type="tertiary"
391
- (click)="previousMonth()"
392
- size="sm"
393
- [disabled]="_disabled"
394
- >
395
- </monkey-button>
396
- <div class="month-year-title">
397
- {{ i18n?.months?.[_dateFirst.format('M')] }}
398
- {{ _dateFirst.format('YYYY') }}
399
- </div>
400
- <monkey-button
401
- class="calendar-next"
402
- color="theme"
403
- icon="arrow-right-16"
404
- type="tertiary"
405
- (click)="nextMonth()"
406
- size="sm"
407
- [disabled]="_disabled"
408
- >
409
- </monkey-button>
410
- </div>
411
- <div class="week">
412
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
413
- {{ i18n?.days?.[day]}}
414
- </span>
415
- </div>
416
- </mecx-date-range-picker-header>
417
- <mecx-date-range-picker-body>
418
- <div class="month-week" *ngFor="let week of _daysArrFirst">
419
- <div
420
- class="month-day"
421
- (click)="selectedDate(day)"
422
- [ngClass]="{
423
- inactive: !day,
424
- selected: isSelected(day),
425
- today: todayCheck(day),
426
- 'first-selected': isFirstSelected(day),
427
- 'last-selected': isLastSelected(day)
428
- }"
429
- *ngFor="let day of week"
430
- #divOne
431
- >
432
- {{ day?.date() }}
433
- </div>
434
- </div>
435
- </mecx-date-range-picker-body>
436
- </mecx-date-range-picker>
437
-
438
- <mecx-date-range-picker class="second-date-range">
439
- <mecx-date-range-picker-header>
440
- <div class="calendar-title">
441
- <div class="month-year-title">
442
- {{ i18n?.months?.[_dateSecond.format('M')] }}
443
- {{ _dateSecond.format('YYYY') }}
444
- </div>
445
- <monkey-button
446
- class="calendar-previous"
447
- color="theme"
448
- icon="arrow-right-16"
449
- type="tertiary"
450
- (click)="nextMonth()"
451
- size="sm"
452
- [disabled]="_disabled"
453
- >
454
- </monkey-button>
455
- </div>
456
- <div class="week">
457
- <span class="week-day" *ngFor="let day of [1, 2, 3, 4, 5, 6, 7]">
458
- {{ i18n?.days?.[day]}}
459
- </span>
460
- </div>
461
- </mecx-date-range-picker-header>
462
- <mecx-date-range-picker-body>
463
- <div class="month-week" *ngFor="let week of _daysArrSecond">
464
- <div
465
- class="month-day"
466
- (click)="selectedDate(day)"
467
- [ngClass]="{
468
- inactive: !day,
469
- selected: isSelected(day),
470
- today: todayCheck(day),
471
- 'first-selected': isFirstSelected(day),
472
- 'last-selected': isLastSelected(day)
473
- }"
474
- *ngFor="let day of week"
475
- >
476
- {{ day?.date() }}
477
- </div>
478
- </div>
479
- </mecx-date-range-picker-body>
480
- </mecx-date-range-picker>
481
- </mecx-date-range-picker-group-body>
482
- <mecx-date-range-picker-group-info>
483
- <info>
484
- {{ infoMessage }}
485
- </info>
486
- <error>
487
- {{ errorMessage }}
488
- </error>
489
- </mecx-date-range-picker-group-info>
490
- <mecx-date-range-picker-group-action [class.error]="errorMessage?.trim()">
491
- <div class="action-days">
492
- <monkey-button
493
- color="theme"
494
- type="secondary"
495
- (click)="selectRangeOfDays(30)"
496
- [disabled]="_disabled"
497
- >
498
- {{ i18n?.actions?.['30'] }}
499
- </monkey-button>
500
- <monkey-button
501
- color="theme"
502
- type="secondary"
503
- (click)="selectRangeOfDays(60)"
504
- [disabled]="_disabled"
505
- >
506
- {{ i18n?.actions?.['60'] }}
507
- </monkey-button>
508
- <monkey-button
509
- color="theme"
510
- type="secondary"
511
- (click)="selectRangeOfDays(90)"
512
- [disabled]="_disabled"
513
- >
514
- {{ i18n?.actions?.['90'] }}
515
- </monkey-button>
516
- </div>
517
- <monkey-button
518
- color="theme"
519
- type="primary"
520
- (click)="navigateToToday()"
521
- [disabled]="_disabled"
522
- >
523
- {{ i18n?.today }}
524
- </monkey-button>
525
- </mecx-date-range-picker-group-action>
526
- </mecx-date-range-picker-group>
527
- `,
528
- encapsulation: ViewEncapsulation.None,
529
- providers: [
530
- {
531
- provide: NG_VALUE_ACCESSOR,
532
- useExisting: forwardRef(() => MonkeyDateRangePickerComponent),
533
- multi: true,
534
- },
535
- CurrencyPipe,
536
- ],
537
- }]
538
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
539
- type: Input
540
- }], helperMessage: [{
541
- type: Input
542
- }], i18n: [{
543
- type: Input
544
- }], infoMessage: [{
545
- type: Input
546
- }], errorMessage: [{
547
- type: Input
548
- }], onChange: [{
549
- type: Output
550
- }], value: [{
551
- type: Input
552
- }] } });
553
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBRVYsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWxDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQTBLdkIsTUFBTSxPQUFPLDhCQUE4QjtJQStCekMsWUFBb0IsRUFBZSxFQUFVLEdBQXNCO1FBQS9DLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTdCMUQsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFlMUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckMsVUFBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXJDLGVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUN0QixnQkFBVyxHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkMsUUFBRyxHQUFXLDBCQUEwQixXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDMUUsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUdoQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDckMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDckMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQW9CO1FBQ3pDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQzthQUMxRCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDakIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLENBQUMsRUFBRSxDQUFDO1NBQ0w7UUFDRCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUMsRUFBRSxDQUFDO1NBQ0w7UUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQWdCLEVBQUUsRUFBRTtZQUN2RCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDVixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQixLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ1o7WUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLEtBQUssRUFBRSxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxLQUFLLENBQUMsS0FBVTtRQUNsQixJQUNFLEtBQUs7WUFDTCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztZQUN4RCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUN0RDtZQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQWtCO1FBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQWtCO1FBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzRSxJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXZFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsT0FBTyxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEY7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUN6QyxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQUc7UUFDakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN0QyxPQUFPLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFrQjtRQUMvQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3BDLE9BQU8sR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQWtCO1FBQzdCLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1QyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO1FBRUQsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzdDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFO2dCQUNuRCxPQUFPLEdBQUcsU0FBUyxDQUFDO2dCQUNwQixTQUFTLEdBQUcsWUFBWSxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLE9BQU8sR0FBRyxZQUFZLENBQUM7YUFDeEI7U0FDRjs7WUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBRWhDLElBQUksU0FBUyxFQUFFO1lBQ2IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVk7UUFDNUIsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFFdEMsTUFBTSxRQUFRLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7NEhBMU9VLDhCQUE4QjtnSEFBOUIsOEJBQThCLDBPQVQ5QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO1lBQzdELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCxZQUFZO0tBQ2IsMEJBcEtTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJKVDs0RkFXVSw4QkFBOEI7a0JBeEsxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EySlQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzs0QkFDN0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsWUFBWTtxQkFDYjtpQkFDRjtrSUFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBWUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBa0dILEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcblxyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtb25rZXktZGF0ZS1yYW5nZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiIFtpZF09XCJfaWRcIj5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaGVhZGVyPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIHt7IGxhYmVsIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aGVscGVyPlxyXG4gICAgICAgICAge3sgaGVscGVyTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaGVscGVyPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaGVhZGVyPlxyXG4gICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cC1ib2R5PlxyXG4gICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyIGNsYXNzPVwiZmlyc3QtZGF0ZS1yYW5nZVwiPlxyXG4gICAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItdGl0bGVcIj5cclxuICAgICAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1wcmV2aW91c1wiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJhcnJvdy1sZWZ0LTE2XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlvdXNNb250aCgpXCJcclxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpMThuPy5tb250aHM/LltfZGF0ZUZpcnN0LmZvcm1hdCgnTScpXSB9fVxyXG4gICAgICAgICAgICAgICAge3sgX2RhdGVGaXJzdC5mb3JtYXQoJ1lZWVknKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLW5leHRcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3ctcmlnaHQtMTZcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0TW9udGgoKVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3ZWVrLWRheVwiICpuZ0Zvcj1cImxldCBkYXkgb2YgWzEsIDIsIDMsIDQsIDUsIDYsIDddXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpMThuPy5kYXlzPy5bZGF5XX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1oZWFkZXI+XHJcbiAgICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtd2Vla1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIF9kYXlzQXJyRmlyc3RcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRheVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWREYXRlKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICBpbmFjdGl2ZTogIWRheSxcclxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQoZGF5KSxcclxuICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5Q2hlY2soZGF5KSxcclxuICAgICAgICAgICAgICAgICAgJ2ZpcnN0LXNlbGVjdGVkJzogaXNGaXJzdFNlbGVjdGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgICdsYXN0LXNlbGVjdGVkJzogaXNMYXN0U2VsZWN0ZWQoZGF5KVxyXG4gICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIlxyXG4gICAgICAgICAgICAgICAgI2Rpdk9uZVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IGRheT8uZGF0ZSgpIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWJvZHk+XHJcbiAgICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyPlxyXG5cclxuICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlciBjbGFzcz1cInNlY29uZC1kYXRlLXJhbmdlXCI+XHJcbiAgICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci10aXRsZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpMThuPy5tb250aHM/LltfZGF0ZVNlY29uZC5mb3JtYXQoJ00nKV0gfX1cclxuICAgICAgICAgICAgICAgIHt7IF9kYXRlU2Vjb25kLmZvcm1hdCgnWVlZWScpIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FsZW5kYXItcHJldmlvdXNcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3ctcmlnaHQtMTZcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0TW9udGgoKVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3ZWVrLWRheVwiICpuZ0Zvcj1cImxldCBkYXkgb2YgWzEsIDIsIDMsIDQsIDUsIDYsIDddXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpMThuPy5kYXlzPy5bZGF5XX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1oZWFkZXI+XHJcbiAgICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtd2Vla1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIF9kYXlzQXJyU2Vjb25kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aC1kYXlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkRGF0ZShkYXkpXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmU6ICFkYXksXHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHRvZGF5OiB0b2RheUNoZWNrKGRheSksXHJcbiAgICAgICAgICAgICAgICAgICdmaXJzdC1zZWxlY3RlZCc6IGlzRmlyc3RTZWxlY3RlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICAnbGFzdC1zZWxlY3RlZCc6IGlzTGFzdFNlbGVjdGVkKGRheSlcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXk/LmRhdGUoKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWJvZHk+XHJcbiAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWluZm8+XHJcbiAgICAgICAgPGluZm8+XHJcbiAgICAgICAgICB7eyBpbmZvTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaW5mbz5cclxuICAgICAgICA8ZXJyb3I+XHJcbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Vycm9yPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaW5mbz5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYWN0aW9uIFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tZGF5c1wiPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoMzApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnMzAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoNjApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnNjAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoOTApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnOTAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvVG9kYXkoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpMThuPy50b2RheSB9fVxyXG4gICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWFjdGlvbj5cclxuICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNb25rZXlEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBDdXJyZW5jeVBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVscGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaTE4bjoge1xyXG4gICAgbW9udGhzOiB7XHJcbiAgICAgIFtzOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgZGF5czoge1xyXG4gICAgICBbczogc3RyaW5nXTogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIGFjdGlvbnM6IHtcclxuICAgICAgW3M6IHN0cmluZ106IHN0cmluZztcclxuICAgIH07XHJcbiAgICB0b2RheTogc3RyaW5nO1xyXG4gIH07XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSB0b2RheSA9IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gIHByaXZhdGUgb25Nb2RlbENoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuICBwcml2YXRlIG9uTW9kZWxUb3VjaGVkID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG5cclxuICBwdWJsaWMgX2RhdGVGaXJzdCA9IG1vbWVudCgpO1xyXG4gIHB1YmxpYyBfZGF0ZVNlY29uZCA9IG1vbWVudCgpLmFkZCgxLCAnTScpO1xyXG4gIHB1YmxpYyBfaWQ6IHN0cmluZyA9IGBtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xyXG4gIHB1YmxpYyBfZGF5c0FyckZpcnN0ID0gW107XHJcbiAgcHVibGljIF9kYXlzQXJyU2Vjb25kID0gW107XHJcbiAgcHVibGljIF9kYXRlRm9ybTogRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgdGhpcy5pbml0RGF0ZVJhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXREYXRlUmFuZ2UoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuX2RhdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHN0YXJ0RGF0ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBlbmREYXRlOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNhbGVuZGFyKG1vbnRoOiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICBsZXQgZmlyc3REYXkgPSBtb21lbnQobW9udGgpLnN0YXJ0T2YoJ00nKTtcclxuICAgIGxldCBsYXN0RGF5ID0gbW9tZW50KG1vbnRoKS5lbmRPZignTScpO1xyXG4gICAgbGV0IGRheXMgPSBBcnJheS5hcHBseShudWxsLCB7IGxlbmd0aDogbW9udGguZGF5c0luTW9udGgoKSB9KVxyXG4gICAgICAubWFwKE51bWJlci5jYWxsLCBOdW1iZXIpXHJcbiAgICAgIC5tYXAoKG46IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZmlyc3REYXkpLmFkZChuLCAnZCcpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBsZXQgbiA9IDA7XHJcbiAgICB3aGlsZSAobiA8IGZpcnN0RGF5LndlZWtkYXkoKSkge1xyXG4gICAgICBkYXlzLnVuc2hpZnQobnVsbCk7XHJcbiAgICAgIG4rKztcclxuICAgIH1cclxuICAgIG4gPSAwO1xyXG4gICAgd2hpbGUgKG4gPCA3IC0gbGFzdERheS53ZWVrZGF5KCkpIHtcclxuICAgICAgZGF5cy5wdXNoKG51bGwpO1xyXG4gICAgICBuKys7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGluZGV4ID0gMTtcclxuICAgIGxldCBncm91cCA9IFtdO1xyXG4gICAgbGV0IGdyb3VwZWQgPSBbXTtcclxuXHJcbiAgICBPYmplY3QuZW50cmllcyhkYXlzKS5tYXAoKFtrZXksIHZhbHVlXTogW3N0cmluZywgYW55XSkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPiA3KSB7XHJcbiAgICAgICAgaW5kZXggPSAxO1xyXG4gICAgICAgIGdyb3VwZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgZ3JvdXAgPSBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ3JvdXAucHVzaCh2YWx1ZSk7XHJcbiAgICAgIGluZGV4Kys7XHJcbiAgICB9KTtcclxuICAgIGdyb3VwZWQucHVzaChncm91cCk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkKCkge1xyXG4gICAgdGhpcy5fZGF5c0FyckZpcnN0ID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlRmlyc3QpO1xyXG4gICAgdGhpcy5fZGF5c0FyclNlY29uZCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZVNlY29uZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyRGF0ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2RhdGVGb3JtLnNldFZhbHVlKHsgc3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsIH0pO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX2RhdGVGb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Ub2RheSgpIHtcclxuICAgIHRoaXMuX2RhdGVGaXJzdCA9IG1vbWVudCgpO1xyXG4gICAgdGhpcy5fZGF0ZVNlY29uZCA9IG1vbWVudCgpLmFkZCgxLCAnTScpO1xyXG4gICAgdGhpcy5idWlsZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZSAmJlxyXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdzdGFydERhdGUnKSAmJlxyXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdlbmREYXRlJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLl9kYXRlRm9ybS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuX2RhdGVGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh0aGlzLl9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGb3JtLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmV4dE1vbnRoKCkge1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLl9kYXRlRmlyc3QuYWRkKDEsICdNJyk7XHJcbiAgICB0aGlzLl9kYXRlU2Vjb25kLmFkZCgxLCAnTScpO1xyXG5cclxuICAgIHRoaXMuX2RheXNBcnJGaXJzdCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZUZpcnN0KTtcclxuICAgIHRoaXMuX2RheXNBcnJTZWNvbmQgPSB0aGlzLmNyZWF0ZUNhbGVuZGFyKHRoaXMuX2RhdGVTZWNvbmQpO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXNNb250aCgpIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fZGF0ZUZpcnN0LnN1YnRyYWN0KDEsICdNJyk7XHJcbiAgICB0aGlzLl9kYXRlU2Vjb25kLnN1YnRyYWN0KDEsICdNJyk7XHJcblxyXG4gICAgdGhpcy5fZGF5c0FyckZpcnN0ID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlRmlyc3QpO1xyXG4gICAgdGhpcy5fZGF5c0FyclNlY29uZCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZVNlY29uZCk7XHJcbiAgfVxyXG5cclxuICB0b2RheUNoZWNrKGRheTogbW9tZW50Lk1vbWVudCkge1xyXG4gICAgaWYgKCFkYXkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtb21lbnQoKS5mb3JtYXQoJ0wnKSA9PT0gZGF5LmZvcm1hdCgnTCcpO1xyXG4gIH1cclxuXHJcbiAgaXNTZWxlY3RlZChkYXk6IG1vbWVudC5Nb21lbnQpIHtcclxuICAgIGlmICghZGF5KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3RhcnREYXRlTW9tZW50ID0gbW9tZW50KHRoaXMuX2RhdGVGb3JtLnZhbHVlLnN0YXJ0RGF0ZSwgJ1lZWVktTU0tREQnKTtcclxuICAgIGxldCBlbmREYXRlTW9tZW50ID0gbW9tZW50KHRoaXMuX2RhdGVGb3JtLnZhbHVlLmVuZERhdGUsICdZWVlZLU1NLUREJyk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2RhdGVGb3JtLnZhbGlkKSB7XHJcbiAgICAgIHJldHVybiBzdGFydERhdGVNb21lbnQuaXNTYW1lT3JCZWZvcmUoZGF5KSAmJiBlbmREYXRlTW9tZW50LmlzU2FtZU9yQWZ0ZXIoZGF5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fZGF0ZUZvcm0uZ2V0KCdzdGFydERhdGUnKS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gc3RhcnREYXRlTW9tZW50LmlzU2FtZShkYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNGaXJzdFNlbGVjdGVkKGRheSkge1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IHN0YXJ0RGF0ZSB9ID0gX2RhdGVGb3JtLnZhbHVlO1xyXG4gICAgcmV0dXJuIGRheT8uaXNTYW1lKHN0YXJ0RGF0ZSk7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RTZWxlY3RlZChkYXk6IG1vbWVudC5Nb21lbnQpIHtcclxuICAgIGNvbnN0IHsgX2RhdGVGb3JtIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeyBlbmREYXRlIH0gPSBfZGF0ZUZvcm0udmFsdWU7XHJcbiAgICByZXR1cm4gZGF5Py5pc1NhbWUoZW5kRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZERhdGUoZGF5OiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGNvbnN0IHsgX2RhdGVGb3JtIH0gPSB0aGlzO1xyXG4gICAgbGV0IGRheUZvcm1hdHRlZCA9IGRheS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuXHJcbiAgICBpZiAoX2RhdGVGb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJEYXRlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9ID0gX2RhdGVGb3JtLnZhbHVlO1xyXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xyXG4gICAgICBpZiAobW9tZW50KHN0YXJ0RGF0ZSkuaXNBZnRlcihtb21lbnQoZGF5Rm9ybWF0dGVkKSkpIHtcclxuICAgICAgICBlbmREYXRlID0gc3RhcnREYXRlO1xyXG4gICAgICAgIHN0YXJ0RGF0ZSA9IGRheUZvcm1hdHRlZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbmREYXRlID0gZGF5Rm9ybWF0dGVkO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Ugc3RhcnREYXRlID0gZGF5Rm9ybWF0dGVkO1xyXG5cclxuICAgIGlmIChzdGFydERhdGUpIHtcclxuICAgICAgX2RhdGVGb3JtLmdldCgnc3RhcnREYXRlJykucGF0Y2hWYWx1ZShzdGFydERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbmREYXRlKSB7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ2VuZERhdGUnKS5wYXRjaFZhbHVlKGVuZERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMud3JpdGVWYWx1ZShfZGF0ZUZvcm0udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmFuZ2VPZkRheXMoZGF5czogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGNvbnN0IHsgX2RhdGVGb3JtLCB0b2RheSB9ID0gdGhpcztcclxuICAgIGNvbnN0IHsgc3RhcnREYXRlIH0gPSBfZGF0ZUZvcm0udmFsdWU7XHJcblxyXG4gICAgY29uc3QgZmlyc3REYXkgPSBzdGFydERhdGUgfHwgdG9kYXk7XHJcbiAgICBjb25zdCBsYXN0RGF5ID0gbW9tZW50KGZpcnN0RGF5KS5hZGQoZGF5cywgJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgX2RhdGVGb3JtLmdldCgnc3RhcnREYXRlJykucGF0Y2hWYWx1ZShmaXJzdERheSk7XHJcbiAgICBfZGF0ZUZvcm0uZ2V0KCdlbmREYXRlJykucGF0Y2hWYWx1ZShsYXN0RGF5KTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShfZGF0ZUZvcm0udmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -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
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class MonkeyIconArrowLeftComponent {
4
- }
5
- MonkeyIconArrowLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyIconArrowLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- MonkeyIconArrowLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyIconArrowLeftComponent, selector: "monkey-icon-arrow-left", 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=\"M10 1.99976L4 7.99976L10 13.9998\" 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: MonkeyIconArrowLeftComponent, decorators: [{
8
- type: Component,
9
- args: [{
10
- selector: 'monkey-icon-arrow-left',
11
- templateUrl: `../../../../assets/icons/arrow-left.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1hcnJvdy1sZWZ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLWFycm93LWxlZnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL2Fzc2V0cy9pY29ucy9hcnJvdy1sZWZ0LnN2ZyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPakQsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLGdIQ1B6QywwVEFHQTs0RkRJYSw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLHlDQUF5QztvQkFDdEQsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3RDOzhCQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtb25rZXktaWNvbi1hcnJvdy1sZWZ0JyxcclxuICB0ZW1wbGF0ZVVybDogYC4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy9hcnJvdy1sZWZ0LnN2Z2AsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaWNvbnMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUljb25BcnJvd0xlZnRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGZpbGxDb2xvcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XHJcbn1cclxuIiwiPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVcIiBbYXR0ci53aWR0aF09XCJzaXplXCI+XHJcbjxwYXRoIGQ9XCJNMTAgMS45OTk3Nkw0IDcuOTk5NzZMMTAgMTMuOTk5OFwiIHN0cm9rZT1cIiMwMDAwMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBbYXR0ci5zdHJva2VdPVwiZmlsbENvbG9yXCIvPlxyXG48L3N2Zz5cclxuIl19