ngx-vector-components 4.92.0 → 4.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/CHANGELOG.md +1220 -1214
  2. package/README.md +35 -35
  3. package/assets/icons/chevron_down_icon.svg +3 -3
  4. package/assets/icons/home_menu_icon.svg +3 -3
  5. package/assets/icons/logout_icon.svg +9 -9
  6. package/assets/icons/menu_footer_icon.svg +3 -3
  7. package/assets/icons/menu_hamburguer_icon.svg +3 -3
  8. package/assets/icons/terms_of_use_icon.svg +9 -9
  9. package/assets/icons/vector_admin_icon.svg +4 -4
  10. package/assets/icons/vector_fintech_icon.svg +3 -3
  11. package/assets/icons/vector_logtech_icon.svg +6 -6
  12. package/assets/icons/vector_marketplace_icon.svg +3 -3
  13. package/assets/images/bunge_logo.svg +23 -23
  14. package/assets/images/cofco_logo.svg +117 -117
  15. package/assets/images/emote_bad.svg +6 -6
  16. package/assets/images/emote_cool.svg +5 -5
  17. package/assets/images/emote_nice.svg +5 -5
  18. package/assets/images/success_sign.svg +4 -4
  19. package/assets/images/vector-logo-horizontal-inverse-color.svg +13 -13
  20. package/assets/images/vector_logo_horizontal.svg +13 -13
  21. package/assets/images/warn_sign.svg +4 -4
  22. package/assets/styles/_fonts.scss +114 -114
  23. package/assets/styles/_mixins.scss +7 -7
  24. package/assets/styles/_primeng-custom-theme.scss +982 -982
  25. package/assets/styles/_spinner.scss +35 -35
  26. package/assets/styles/_styles.scss +115 -115
  27. package/assets/styles/_variables.scss +27 -27
  28. package/esm2022/lib/components/badge/badge.component.mjs +39 -0
  29. package/esm2022/lib/components/badge/badge.module.mjs +19 -0
  30. package/{esm2020 → esm2022}/lib/components/badge/index.mjs +3 -3
  31. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +66 -0
  32. package/esm2022/lib/components/breadcrumb/breadcrumb.module.mjs +18 -0
  33. package/{esm2020 → esm2022}/lib/components/breadcrumb/index.mjs +3 -3
  34. package/esm2022/lib/components/crud-base/crud-base.component.mjs +47 -0
  35. package/{esm2020 → esm2022}/lib/components/crud-base/index.mjs +2 -2
  36. package/esm2022/lib/components/crud-footer/crud-footer.component.mjs +32 -0
  37. package/esm2022/lib/components/crud-footer/crud-footer.module.mjs +20 -0
  38. package/{esm2020 → esm2022}/lib/components/crud-footer/index.mjs +3 -3
  39. package/esm2022/lib/components/crud-header/crud-header.component.mjs +30 -0
  40. package/esm2022/lib/components/crud-header/crud-header.module.mjs +19 -0
  41. package/{esm2020 → esm2022}/lib/components/crud-header/index.mjs +3 -3
  42. package/esm2022/lib/components/crud-history/crud-history.component.mjs +82 -0
  43. package/esm2022/lib/components/crud-history/crud-history.module.mjs +20 -0
  44. package/{esm2020 → esm2022}/lib/components/crud-history/index.mjs +3 -3
  45. package/esm2022/lib/components/fields/button/button.component.mjs +41 -0
  46. package/{esm2020 → esm2022}/lib/components/fields/button/index.mjs +2 -2
  47. package/esm2022/lib/components/fields/calendar-field/calendar-field.component.mjs +74 -0
  48. package/{esm2020 → esm2022}/lib/components/fields/calendar-field/index.mjs +2 -2
  49. package/esm2022/lib/components/fields/checkbox-field/checkbox-field.component.mjs +46 -0
  50. package/{esm2020 → esm2022}/lib/components/fields/checkbox-field/index.mjs +2 -2
  51. package/esm2022/lib/components/fields/currency-field/currency-field.component.mjs +98 -0
  52. package/{esm2020 → esm2022}/lib/components/fields/currency-field/index.mjs +2 -2
  53. package/esm2022/lib/components/fields/data-table/data-table.component.mjs +386 -0
  54. package/{esm2020 → esm2022}/lib/components/fields/data-table/index.mjs +2 -2
  55. package/esm2022/lib/components/fields/dropdown-field/dropdown-field.component.mjs +204 -0
  56. package/{esm2020 → esm2022}/lib/components/fields/dropdown-field/index.mjs +2 -2
  57. package/{esm2020 → esm2022}/lib/components/fields/field-error-message/field-error-message.component.mjs +30 -30
  58. package/{esm2020 → esm2022}/lib/components/fields/field-error-message/index.mjs +2 -2
  59. package/esm2022/lib/components/fields/fields.module.mjs +211 -0
  60. package/esm2022/lib/components/fields/filters/filters.component.mjs +203 -0
  61. package/{esm2020 → esm2022}/lib/components/fields/filters/index.mjs +2 -2
  62. package/{esm2020 → esm2022}/lib/components/fields/index.mjs +19 -19
  63. package/{esm2020 → esm2022}/lib/components/fields/input-number-field/index.mjs +2 -2
  64. package/esm2022/lib/components/fields/input-number-field/input-number-field.component.mjs +85 -0
  65. package/{esm2020 → esm2022}/lib/components/fields/multiselect-field/index.mjs +2 -2
  66. package/esm2022/lib/components/fields/multiselect-field/multiselect-field.component.mjs +50 -0
  67. package/{esm2020 → esm2022}/lib/components/fields/percentage-field/index.mjs +2 -2
  68. package/esm2022/lib/components/fields/percentage-field/percentage-field.component.mjs +42 -0
  69. package/{esm2020 → esm2022}/lib/components/fields/radio-button-field/index.mjs +2 -2
  70. package/esm2022/lib/components/fields/radio-button-field/radio-button-field.component.mjs +48 -0
  71. package/{esm2020 → esm2022}/lib/components/fields/range-value/index.mjs +2 -2
  72. package/{esm2020 → esm2022}/lib/components/fields/range-value/range-value.component.mjs +72 -72
  73. package/{esm2020 → esm2022}/lib/components/fields/search-field/index.mjs +2 -2
  74. package/esm2022/lib/components/fields/search-field/search-field.component.mjs +33 -0
  75. package/{esm2020 → esm2022}/lib/components/fields/select-button-field/index.mjs +2 -2
  76. package/esm2022/lib/components/fields/select-button-field/select-button-field.component.mjs +20 -0
  77. package/{esm2020 → esm2022}/lib/components/fields/text-field/index.mjs +2 -2
  78. package/esm2022/lib/components/fields/text-field/text-field.component.mjs +229 -0
  79. package/{esm2020 → esm2022}/lib/components/fields/textarea-field/index.mjs +2 -2
  80. package/esm2022/lib/components/fields/textarea-field/textarea-field.component.mjs +81 -0
  81. package/esm2022/lib/components/generic-error-modal/generic-error-modal.component.mjs +39 -0
  82. package/esm2022/lib/components/generic-error-modal/generic-error-modal.module.mjs +20 -0
  83. package/{esm2020 → esm2022}/lib/components/generic-error-modal/index.mjs +3 -3
  84. package/esm2022/lib/components/generic-modal/generic-modal.component.mjs +66 -0
  85. package/esm2022/lib/components/generic-modal/generic-modal.module.mjs +20 -0
  86. package/{esm2020 → esm2022}/lib/components/generic-modal/index.mjs +3 -3
  87. package/{esm2020 → esm2022}/lib/components/index.mjs +14 -14
  88. package/{esm2020 → esm2022}/lib/components/menu/index.mjs +4 -4
  89. package/esm2022/lib/components/menu/menu.component.mjs +305 -0
  90. package/esm2022/lib/components/menu/menu.module.mjs +20 -0
  91. package/esm2022/lib/components/menu/sub-menus-list/sub-menus-list.component.mjs +42 -0
  92. package/{esm2020 → esm2022}/lib/components/panel/index.mjs +3 -3
  93. package/esm2022/lib/components/panel/panel.component.mjs +15 -0
  94. package/esm2022/lib/components/panel/panel.module.mjs +19 -0
  95. package/{esm2020 → esm2022}/lib/components/score/index.mjs +3 -3
  96. package/esm2022/lib/components/score/score.component.mjs +17 -0
  97. package/{esm2020 → esm2022}/lib/components/score/score.module.mjs +16 -16
  98. package/{esm2020 → esm2022}/lib/components/top-bar/index.mjs +3 -3
  99. package/esm2022/lib/components/top-bar/top-bar.component.mjs +142 -0
  100. package/esm2022/lib/components/top-bar/top-bar.module.mjs +20 -0
  101. package/{esm2020 → esm2022}/lib/guards/crud-list-has-items.guard.mjs +22 -22
  102. package/{esm2020 → esm2022}/lib/guards/get-token-by-guid.guard.mjs +54 -54
  103. package/{esm2020 → esm2022}/lib/guards/has-permission.guard.mjs +27 -27
  104. package/{esm2020 → esm2022}/lib/guards/index.mjs +6 -6
  105. package/{esm2020 → esm2022}/lib/guards/role.guard.mjs +24 -24
  106. package/{esm2020 → esm2022}/lib/guards/token-is-present.guard.mjs +26 -26
  107. package/{esm2020 → esm2022}/lib/interceptors/http-interceptor.mjs +185 -185
  108. package/{esm2020 → esm2022}/lib/interceptors/index.mjs +2 -2
  109. package/{esm2020 → esm2022}/lib/models/app-name.enum.mjs +10 -10
  110. package/{esm2020 → esm2022}/lib/models/boolean-type.enum.mjs +6 -6
  111. package/{esm2020 → esm2022}/lib/models/crud-history.model.mjs +3 -3
  112. package/{esm2020 → esm2022}/lib/models/crud-mode.enum.mjs +7 -7
  113. package/{esm2020 → esm2022}/lib/models/currency.enum.mjs +7 -7
  114. package/esm2022/lib/models/data-table.model.mjs +23 -0
  115. package/{esm2020 → esm2022}/lib/models/document-type.enum.mjs +6 -6
  116. package/{esm2020 → esm2022}/lib/models/filters.model.mjs +2 -2
  117. package/{esm2020 → esm2022}/lib/models/generic-modal.model.mjs +2 -2
  118. package/esm2022/lib/models/http-response.model.mjs +2 -0
  119. package/{esm2020 → esm2022}/lib/models/index.mjs +18 -18
  120. package/{esm2020 → esm2022}/lib/models/ip-info.enum.mjs +2 -2
  121. package/{esm2020 → esm2022}/lib/models/list-item.model.mjs +2 -2
  122. package/{esm2020 → esm2022}/lib/models/locale.enum.mjs +7 -7
  123. package/esm2022/lib/models/menu-item.model.mjs +2 -0
  124. package/{esm2020 → esm2022}/lib/models/message-status.enum.mjs +8 -8
  125. package/{esm2020 → esm2022}/lib/models/profile.model.mjs +271 -271
  126. package/{esm2020 → esm2022}/lib/models/role.enum.mjs +5 -5
  127. package/{esm2020 → esm2022}/lib/models/status.enum.mjs +8 -8
  128. package/{esm2020 → esm2022}/lib/models/topbar.model.mjs +2 -2
  129. package/esm2022/lib/models/vector-app.model.mjs +2 -0
  130. package/{esm2020 → esm2022}/lib/models/vector-notification.model.mjs +2 -2
  131. package/{esm2020 → esm2022}/lib/models/view.enum.mjs +7 -7
  132. package/{esm2020 → esm2022}/lib/pipes/currency-brl.pipe.mjs +18 -18
  133. package/{esm2020 → esm2022}/lib/pipes/format-document.pipe.mjs +17 -17
  134. package/{esm2020 → esm2022}/lib/pipes/index.mjs +9 -9
  135. package/{esm2020 → esm2022}/lib/pipes/mask.pipe.mjs +21 -21
  136. package/{esm2020 → esm2022}/lib/pipes/not-hidden.pipe.mjs +16 -16
  137. package/{esm2020 → esm2022}/lib/pipes/only-active.pipe.mjs +16 -16
  138. package/{esm2020 → esm2022}/lib/pipes/pipes.module.mjs +50 -50
  139. package/{esm2020 → esm2022}/lib/pipes/remove-last-child.pipe.mjs +18 -18
  140. package/{esm2020 → esm2022}/lib/pipes/unread-notifications.pipe.mjs +15 -15
  141. package/{esm2020 → esm2022}/lib/resolvers/get-selected-crud-item.resolver.mjs +28 -28
  142. package/{esm2020 → esm2022}/lib/resolvers/index.mjs +2 -2
  143. package/{esm2020 → esm2022}/lib/services/auth.service.mjs +77 -77
  144. package/esm2022/lib/services/base-dropdown.mjs +2 -0
  145. package/{esm2020 → esm2022}/lib/services/crud-base.service.mjs +14 -14
  146. package/{esm2020 → esm2022}/lib/services/enum.service.mjs +43 -43
  147. package/{esm2020 → esm2022}/lib/services/error-message.service.mjs +16 -16
  148. package/{esm2020 → esm2022}/lib/services/geolocation.service.mjs +23 -23
  149. package/{esm2020 → esm2022}/lib/services/index.mjs +13 -13
  150. package/{esm2020 → esm2022}/lib/services/loading.service.mjs +15 -15
  151. package/{esm2020 → esm2022}/lib/services/menu.service.mjs +152 -152
  152. package/{esm2020 → esm2022}/lib/services/modal.service.mjs +15 -15
  153. package/{esm2020 → esm2022}/lib/services/notifications.service.mjs +64 -64
  154. package/{esm2020 → esm2022}/lib/services/profile.service.mjs +103 -103
  155. package/{esm2020 → esm2022}/lib/services/storage.service.mjs +108 -108
  156. package/esm2022/lib/shared/shared.module.mjs +19 -0
  157. package/{esm2020 → esm2022}/lib/utils/cpf-cnpj-validator.util.mjs +116 -116
  158. package/{esm2020 → esm2022}/lib/utils/file.util.mjs +15 -15
  159. package/{esm2020 → esm2022}/lib/utils/index.mjs +8 -8
  160. package/esm2022/lib/utils/mask.util.mjs +76 -0
  161. package/{esm2020 → esm2022}/lib/utils/object.util.mjs +27 -27
  162. package/{esm2020 → esm2022}/lib/utils/string.util.mjs +16 -16
  163. package/{esm2020 → esm2022}/lib/utils/validation.util.mjs +234 -234
  164. package/{esm2020 → esm2022}/lib/utils/window.util.mjs +9 -9
  165. package/{esm2020 → esm2022}/ngx-vector-components.mjs +4 -4
  166. package/{esm2020 → esm2022}/public-api.mjs +9 -9
  167. package/fesm2022/ngx-vector-components.mjs +4784 -0
  168. package/fesm2022/ngx-vector-components.mjs.map +1 -0
  169. package/{ngx-vector-components.d.ts → index.d.ts} +5 -5
  170. package/lib/components/badge/badge.component.d.ts +15 -15
  171. package/lib/components/badge/badge.module.d.ts +9 -9
  172. package/lib/components/badge/index.d.ts +2 -2
  173. package/lib/components/breadcrumb/breadcrumb.component.d.ts +19 -19
  174. package/lib/components/breadcrumb/breadcrumb.module.d.ts +8 -8
  175. package/lib/components/breadcrumb/index.d.ts +2 -2
  176. package/lib/components/crud-base/crud-base.component.d.ts +20 -20
  177. package/lib/components/crud-base/index.d.ts +1 -1
  178. package/lib/components/crud-footer/crud-footer.component.d.ts +13 -13
  179. package/lib/components/crud-footer/crud-footer.module.d.ts +10 -10
  180. package/lib/components/crud-footer/index.d.ts +2 -2
  181. package/lib/components/crud-header/crud-header.component.d.ts +11 -11
  182. package/lib/components/crud-header/crud-header.module.d.ts +9 -9
  183. package/lib/components/crud-header/index.d.ts +2 -2
  184. package/lib/components/crud-history/crud-history.component.d.ts +12 -12
  185. package/lib/components/crud-history/crud-history.module.d.ts +10 -10
  186. package/lib/components/crud-history/index.d.ts +2 -2
  187. package/lib/components/fields/button/button.component.d.ts +17 -17
  188. package/lib/components/fields/button/index.d.ts +1 -1
  189. package/lib/components/fields/calendar-field/calendar-field.component.d.ts +23 -23
  190. package/lib/components/fields/calendar-field/index.d.ts +1 -1
  191. package/lib/components/fields/checkbox-field/checkbox-field.component.d.ts +19 -19
  192. package/lib/components/fields/checkbox-field/index.d.ts +1 -1
  193. package/lib/components/fields/currency-field/currency-field.component.d.ts +32 -32
  194. package/lib/components/fields/currency-field/index.d.ts +1 -1
  195. package/lib/components/fields/data-table/data-table.component.d.ts +82 -82
  196. package/lib/components/fields/data-table/index.d.ts +1 -1
  197. package/lib/components/fields/dropdown-field/dropdown-field.component.d.ts +52 -52
  198. package/lib/components/fields/dropdown-field/index.d.ts +1 -1
  199. package/lib/components/fields/field-error-message/field-error-message.component.d.ts +10 -10
  200. package/lib/components/fields/field-error-message/index.d.ts +1 -1
  201. package/lib/components/fields/fields.module.d.ts +48 -48
  202. package/lib/components/fields/filters/filters.component.d.ts +63 -63
  203. package/lib/components/fields/filters/index.d.ts +1 -1
  204. package/lib/components/fields/index.d.ts +18 -18
  205. package/lib/components/fields/input-number-field/index.d.ts +1 -1
  206. package/lib/components/fields/input-number-field/input-number-field.component.d.ts +28 -28
  207. package/lib/components/fields/multiselect-field/index.d.ts +1 -1
  208. package/lib/components/fields/multiselect-field/multiselect-field.component.d.ts +16 -16
  209. package/lib/components/fields/percentage-field/index.d.ts +1 -1
  210. package/lib/components/fields/percentage-field/percentage-field.component.d.ts +16 -16
  211. package/lib/components/fields/radio-button-field/index.d.ts +1 -1
  212. package/lib/components/fields/radio-button-field/radio-button-field.component.d.ts +25 -25
  213. package/lib/components/fields/range-value/index.d.ts +1 -1
  214. package/lib/components/fields/range-value/range-value.component.d.ts +18 -18
  215. package/lib/components/fields/search-field/index.d.ts +1 -1
  216. package/lib/components/fields/search-field/search-field.component.d.ts +14 -14
  217. package/lib/components/fields/select-button-field/index.d.ts +1 -1
  218. package/lib/components/fields/select-button-field/select-button-field.component.d.ts +9 -9
  219. package/lib/components/fields/text-field/index.d.ts +1 -1
  220. package/lib/components/fields/text-field/text-field.component.d.ts +54 -54
  221. package/lib/components/fields/textarea-field/index.d.ts +1 -1
  222. package/lib/components/fields/textarea-field/textarea-field.component.d.ts +22 -22
  223. package/lib/components/generic-error-modal/generic-error-modal.component.d.ts +16 -15
  224. package/lib/components/generic-error-modal/generic-error-modal.module.d.ts +10 -10
  225. package/lib/components/generic-error-modal/index.d.ts +2 -2
  226. package/lib/components/generic-modal/generic-modal.component.d.ts +24 -24
  227. package/lib/components/generic-modal/generic-modal.module.d.ts +10 -10
  228. package/lib/components/generic-modal/index.d.ts +2 -2
  229. package/lib/components/index.d.ts +13 -13
  230. package/lib/components/menu/index.d.ts +3 -3
  231. package/lib/components/menu/menu.component.d.ts +53 -53
  232. package/lib/components/menu/menu.module.d.ts +10 -10
  233. package/lib/components/menu/sub-menus-list/sub-menus-list.component.d.ts +14 -14
  234. package/lib/components/panel/index.d.ts +2 -2
  235. package/lib/components/panel/panel.component.d.ts +8 -8
  236. package/lib/components/panel/panel.module.d.ts +9 -9
  237. package/lib/components/score/index.d.ts +2 -2
  238. package/lib/components/score/score.component.d.ts +9 -9
  239. package/lib/components/score/score.module.d.ts +7 -7
  240. package/lib/components/top-bar/index.d.ts +2 -2
  241. package/lib/components/top-bar/top-bar.component.d.ts +48 -48
  242. package/lib/components/top-bar/top-bar.module.d.ts +10 -10
  243. package/lib/guards/crud-list-has-items.guard.d.ts +10 -10
  244. package/lib/guards/get-token-by-guid.guard.d.ts +15 -15
  245. package/lib/guards/has-permission.guard.d.ts +13 -13
  246. package/lib/guards/index.d.ts +5 -5
  247. package/lib/guards/role.guard.d.ts +11 -11
  248. package/lib/guards/token-is-present.guard.d.ts +11 -11
  249. package/lib/interceptors/http-interceptor.d.ts +31 -31
  250. package/lib/interceptors/index.d.ts +1 -1
  251. package/lib/models/app-name.enum.d.ts +8 -8
  252. package/lib/models/boolean-type.enum.d.ts +4 -4
  253. package/lib/models/crud-history.model.d.ts +13 -13
  254. package/lib/models/crud-mode.enum.d.ts +5 -5
  255. package/lib/models/currency.enum.d.ts +5 -5
  256. package/lib/models/data-table.model.d.ts +65 -65
  257. package/lib/models/document-type.enum.d.ts +4 -4
  258. package/lib/models/filters.model.d.ts +4 -4
  259. package/lib/models/generic-modal.model.d.ts +13 -13
  260. package/lib/models/http-response.model.d.ts +48 -48
  261. package/lib/models/index.d.ts +17 -17
  262. package/lib/models/ip-info.enum.d.ts +6 -6
  263. package/lib/models/list-item.model.d.ts +7 -7
  264. package/lib/models/locale.enum.d.ts +5 -5
  265. package/lib/models/menu-item.model.d.ts +16 -16
  266. package/lib/models/message-status.enum.d.ts +6 -6
  267. package/lib/models/profile.model.d.ts +292 -292
  268. package/lib/models/role.enum.d.ts +3 -3
  269. package/lib/models/status.enum.d.ts +6 -6
  270. package/lib/models/topbar.model.d.ts +5 -5
  271. package/lib/models/vector-app.model.d.ts +9 -9
  272. package/lib/models/vector-notification.model.d.ts +8 -8
  273. package/lib/models/view.enum.d.ts +5 -5
  274. package/lib/pipes/currency-brl.pipe.d.ts +7 -7
  275. package/lib/pipes/format-document.pipe.d.ts +7 -7
  276. package/lib/pipes/index.d.ts +8 -8
  277. package/lib/pipes/mask.pipe.d.ts +7 -7
  278. package/lib/pipes/not-hidden.pipe.d.ts +7 -7
  279. package/lib/pipes/only-active.pipe.d.ts +7 -7
  280. package/lib/pipes/pipes.module.d.ts +13 -13
  281. package/lib/pipes/remove-last-child.pipe.d.ts +7 -7
  282. package/lib/pipes/unread-notifications.pipe.d.ts +9 -9
  283. package/lib/resolvers/get-selected-crud-item.resolver.d.ts +10 -10
  284. package/lib/resolvers/index.d.ts +1 -1
  285. package/lib/services/auth.service.d.ts +24 -24
  286. package/lib/services/base-dropdown.d.ts +7 -7
  287. package/lib/services/crud-base.service.d.ts +7 -7
  288. package/lib/services/enum.service.d.ts +13 -13
  289. package/lib/services/error-message.service.d.ts +8 -8
  290. package/lib/services/geolocation.service.d.ts +13 -13
  291. package/lib/services/index.d.ts +12 -12
  292. package/lib/services/loading.service.d.ts +7 -7
  293. package/lib/services/menu.service.d.ts +35 -35
  294. package/lib/services/modal.service.d.ts +7 -7
  295. package/lib/services/notifications.service.d.ts +13 -13
  296. package/lib/services/profile.service.d.ts +26 -26
  297. package/lib/services/storage.service.d.ts +43 -43
  298. package/lib/shared/shared.module.d.ts +10 -10
  299. package/lib/utils/cpf-cnpj-validator.util.d.ts +5 -5
  300. package/lib/utils/file.util.d.ts +4 -4
  301. package/lib/utils/index.d.ts +7 -7
  302. package/lib/utils/mask.util.d.ts +21 -21
  303. package/lib/utils/object.util.d.ts +5 -5
  304. package/lib/utils/string.util.d.ts +4 -4
  305. package/lib/utils/validation.util.d.ts +17 -17
  306. package/lib/utils/window.util.d.ts +4 -4
  307. package/package.json +18 -24
  308. package/public-api.d.ts +8 -8
  309. package/esm2020/lib/components/badge/badge.component.mjs +0 -39
  310. package/esm2020/lib/components/badge/badge.module.mjs +0 -19
  311. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +0 -66
  312. package/esm2020/lib/components/breadcrumb/breadcrumb.module.mjs +0 -18
  313. package/esm2020/lib/components/crud-base/crud-base.component.mjs +0 -47
  314. package/esm2020/lib/components/crud-footer/crud-footer.component.mjs +0 -32
  315. package/esm2020/lib/components/crud-footer/crud-footer.module.mjs +0 -20
  316. package/esm2020/lib/components/crud-header/crud-header.component.mjs +0 -30
  317. package/esm2020/lib/components/crud-header/crud-header.module.mjs +0 -19
  318. package/esm2020/lib/components/crud-history/crud-history.component.mjs +0 -82
  319. package/esm2020/lib/components/crud-history/crud-history.module.mjs +0 -20
  320. package/esm2020/lib/components/fields/button/button.component.mjs +0 -41
  321. package/esm2020/lib/components/fields/calendar-field/calendar-field.component.mjs +0 -74
  322. package/esm2020/lib/components/fields/checkbox-field/checkbox-field.component.mjs +0 -46
  323. package/esm2020/lib/components/fields/currency-field/currency-field.component.mjs +0 -98
  324. package/esm2020/lib/components/fields/data-table/data-table.component.mjs +0 -386
  325. package/esm2020/lib/components/fields/dropdown-field/dropdown-field.component.mjs +0 -204
  326. package/esm2020/lib/components/fields/fields.module.mjs +0 -213
  327. package/esm2020/lib/components/fields/filters/filters.component.mjs +0 -203
  328. package/esm2020/lib/components/fields/input-number-field/input-number-field.component.mjs +0 -85
  329. package/esm2020/lib/components/fields/multiselect-field/multiselect-field.component.mjs +0 -50
  330. package/esm2020/lib/components/fields/percentage-field/percentage-field.component.mjs +0 -42
  331. package/esm2020/lib/components/fields/radio-button-field/radio-button-field.component.mjs +0 -48
  332. package/esm2020/lib/components/fields/search-field/search-field.component.mjs +0 -33
  333. package/esm2020/lib/components/fields/select-button-field/select-button-field.component.mjs +0 -20
  334. package/esm2020/lib/components/fields/text-field/text-field.component.mjs +0 -229
  335. package/esm2020/lib/components/fields/textarea-field/textarea-field.component.mjs +0 -81
  336. package/esm2020/lib/components/generic-error-modal/generic-error-modal.component.mjs +0 -36
  337. package/esm2020/lib/components/generic-error-modal/generic-error-modal.module.mjs +0 -20
  338. package/esm2020/lib/components/generic-modal/generic-modal.component.mjs +0 -66
  339. package/esm2020/lib/components/generic-modal/generic-modal.module.mjs +0 -20
  340. package/esm2020/lib/components/menu/menu.component.mjs +0 -305
  341. package/esm2020/lib/components/menu/menu.module.mjs +0 -20
  342. package/esm2020/lib/components/menu/sub-menus-list/sub-menus-list.component.mjs +0 -42
  343. package/esm2020/lib/components/panel/panel.component.mjs +0 -15
  344. package/esm2020/lib/components/panel/panel.module.mjs +0 -19
  345. package/esm2020/lib/components/score/score.component.mjs +0 -17
  346. package/esm2020/lib/components/top-bar/top-bar.component.mjs +0 -142
  347. package/esm2020/lib/components/top-bar/top-bar.module.mjs +0 -20
  348. package/esm2020/lib/models/data-table.model.mjs +0 -23
  349. package/esm2020/lib/models/http-response.model.mjs +0 -2
  350. package/esm2020/lib/models/menu-item.model.mjs +0 -2
  351. package/esm2020/lib/models/vector-app.model.mjs +0 -2
  352. package/esm2020/lib/services/base-dropdown.mjs +0 -2
  353. package/esm2020/lib/shared/shared.module.mjs +0 -19
  354. package/esm2020/lib/utils/mask.util.mjs +0 -76
  355. package/fesm2015/ngx-vector-components.mjs +0 -4805
  356. package/fesm2015/ngx-vector-components.mjs.map +0 -1
  357. package/fesm2020/ngx-vector-components.mjs +0 -4783
  358. package/fesm2020/ngx-vector-components.mjs.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BooleanType } from '../../../models';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "primeng/radiobutton";
8
+ export class RadioButtonFieldComponent {
9
+ constructor(translateService) {
10
+ this.translateService = translateService;
11
+ this.groupName = '';
12
+ this.options = [
13
+ { label: this.getYesLabel(), value: BooleanType.YES },
14
+ { label: this.getNoLabel(), value: BooleanType.NO },
15
+ ];
16
+ this.layout = 'vertical';
17
+ this.justifySpaceBetween = false;
18
+ }
19
+ ngOnInit() { }
20
+ get layoutClass() {
21
+ return { horizontal: this.layout === 'horizontal', vertical: this.layout === 'vertical' };
22
+ }
23
+ getYesLabel() {
24
+ const label = this.translateService.instant('app.label.yes');
25
+ return label !== 'app.label.yes' ? label : 'Sim';
26
+ }
27
+ getNoLabel() {
28
+ const label = this.translateService.instant('app.label.no');
29
+ return label !== 'app.label.no' ? label : 'Não';
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RadioButtonFieldComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween" }, ngImport: i0, template: "<div\n class=\"radio-buttons-container\"\n [ngClass]=\"layoutClass\"\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\n>\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\n <p-radioButton\n [name]=\"groupName\"\n [value]=\"option.value\"\n [label]=\"option.label\"\n [formControl]=\"control\"\n ></p-radioButton>\n </div>\n</div>\n", styles: [".radio-buttons-container{display:flex;flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RadioButtonFieldComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'vector-radio-button-field', template: "<div\n class=\"radio-buttons-container\"\n [ngClass]=\"layoutClass\"\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\n>\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\n <p-radioButton\n [name]=\"groupName\"\n [value]=\"option.value\"\n [label]=\"option.label\"\n [formControl]=\"control\"\n ></p-radioButton>\n </div>\n</div>\n", styles: [".radio-buttons-container{display:flex;flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"] }]
37
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { groupName: [{
38
+ type: Input
39
+ }], options: [{
40
+ type: Input
41
+ }], control: [{
42
+ type: Input
43
+ }], layout: [{
44
+ type: Input
45
+ }], justifySpaceBetween: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRzL3JhZGlvLWJ1dHRvbi1maWVsZC9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvcmFkaW8tYnV0dG9uLWZpZWxkL3JhZGlvLWJ1dHRvbi1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVk5QyxNQUFNLE9BQU8seUJBQXlCO0lBZXBDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBYi9DLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsWUFBTyxHQUF3QjtZQUNwQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDckQsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1NBQ3BELENBQUM7UUFJSyxXQUFNLEdBQThCLFVBQVUsQ0FBQztRQUUvQyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7SUFFc0IsQ0FBQztJQUUxRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixJQUFJLFdBQVc7UUFDYixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsT0FBTyxLQUFLLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEQsQ0FBQzs4R0EvQlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsMk1DZHRDLDBhQWNBOzsyRkRBYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsMkJBQTJCO3VHQU05QixTQUFTO3NCQURmLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQU1DLE9BQU87c0JBRGIsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBR0MsbUJBQW1CO3NCQUR6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCB0eXBlIFJhZGlvQnV0dG9uT3B0aW9uID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVjdG9yLXJhZGlvLWJ1dHRvbi1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBncm91cE5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9uczogUmFkaW9CdXR0b25PcHRpb25bXSA9IFtcbiAgICB7IGxhYmVsOiB0aGlzLmdldFllc0xhYmVsKCksIHZhbHVlOiBCb29sZWFuVHlwZS5ZRVMgfSxcbiAgICB7IGxhYmVsOiB0aGlzLmdldE5vTGFiZWwoKSwgdmFsdWU6IEJvb2xlYW5UeXBlLk5PIH0sXG4gIF07XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb250cm9sOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYXlvdXQ6ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAndmVydGljYWwnO1xuICBASW5wdXQoKVxuICBwdWJsaWMganVzdGlmeVNwYWNlQmV0d2VlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgZ2V0IGxheW91dENsYXNzKCkge1xuICAgIHJldHVybiB7IGhvcml6b250YWw6IHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcsIHZlcnRpY2FsOiB0aGlzLmxheW91dCA9PT0gJ3ZlcnRpY2FsJyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRZZXNMYWJlbCgpIHtcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdhcHAubGFiZWwueWVzJyk7XG4gICAgcmV0dXJuIGxhYmVsICE9PSAnYXBwLmxhYmVsLnllcycgPyBsYWJlbCA6ICdTaW0nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb0xhYmVsKCkge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2FwcC5sYWJlbC5ubycpO1xuICAgIHJldHVybiBsYWJlbCAhPT0gJ2FwcC5sYWJlbC5ubycgPyBsYWJlbCA6ICdOw6NvJztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInJhZGlvLWJ1dHRvbnMtY29udGFpbmVyXCJcbiAgW25nQ2xhc3NdPVwibGF5b3V0Q2xhc3NcIlxuICBbbmdTdHlsZV09XCJ7ICdqdXN0aWZ5LWNvbnRlbnQnOiBqdXN0aWZ5U3BhY2VCZXR3ZWVuID8gJ3NwYWNlLWJldHdlZW4nIDogJ2ZsZXgtc3RhcnQnIH1cIlxuPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIGNsYXNzPVwicmFkaW8tYnV0dG9uLWl0ZW1cIj5cbiAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgW25hbWVdPVwiZ3JvdXBOYW1lXCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './range-value.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9yYW5nZS12YWx1ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYW5nZS12YWx1ZS5jb21wb25lbnQnO1xyXG4iXX0=
1
+ export * from './range-value.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9yYW5nZS12YWx1ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYW5nZS12YWx1ZS5jb21wb25lbnQnO1xuIl19
@@ -1,72 +1,72 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "primeng/slider";
4
- import * as i2 from "@angular/forms";
5
- export class RangeValueComponent {
6
- constructor() {
7
- this.value = 0;
8
- this.movimentedValue = null;
9
- this.min = 0;
10
- this.max = 100;
11
- this.disabled = false;
12
- this.valueChange = new EventEmitter();
13
- }
14
- ngOnInit() { }
15
- changeValue() {
16
- if (this.value < this.min) {
17
- this.value = this.min;
18
- }
19
- this.valueChange.emit(this.value);
20
- }
21
- getMovimentedValue() {
22
- if (this.movimentedValue) {
23
- return this.movimentedValue;
24
- }
25
- else {
26
- return (this.max - this.min) / 100;
27
- }
28
- }
29
- increment() {
30
- if (!this.disabled) {
31
- if (this.value + this.getMovimentedValue() < this.max) {
32
- this.value = this.value + this.getMovimentedValue();
33
- this.valueChange.emit(this.value);
34
- }
35
- else {
36
- this.value = this.max;
37
- this.valueChange.emit(this.value);
38
- }
39
- }
40
- }
41
- decrement() {
42
- if (!this.disabled) {
43
- if (this.value - this.getMovimentedValue() > this.min) {
44
- this.value = this.value - this.getMovimentedValue();
45
- this.valueChange.emit(this.value);
46
- }
47
- else {
48
- this.value = this.min;
49
- this.valueChange.emit(this.value);
50
- }
51
- }
52
- }
53
- }
54
- RangeValueComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RangeValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- RangeValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: RangeValueComponent, selector: "vector-range-value", inputs: { value: "value", movimentedValue: "movimentedValue", min: "min", max: "max", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\" [disabled]=\"disabled\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n", styles: [".range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"], components: [{ type: i1.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabelledBy", "tabindex"], outputs: ["onChange", "onSlideEnd"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: RangeValueComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'vector-range-value', template: "<div class=\"range-input\">\r\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\r\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\" [disabled]=\"disabled\"></p-slider>\r\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\r\n</div>\r\n", styles: [".range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"] }]
59
- }], ctorParameters: function () { return []; }, propDecorators: { value: [{
60
- type: Input
61
- }], movimentedValue: [{
62
- type: Input
63
- }], min: [{
64
- type: Input
65
- }], max: [{
66
- type: Input
67
- }], disabled: [{
68
- type: Input
69
- }], valueChange: [{
70
- type: Output
71
- }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvcmFuZ2UtdmFsdWUvcmFuZ2UtdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvcmFuZ2UtdmFsdWUvcmFuZ2UtdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU8vRSxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCO1FBTlMsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixvQkFBZSxHQUFrQixJQUFJLENBQUM7UUFDdEMsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixRQUFHLEdBQVcsR0FBRyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFFbkIsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDN0I7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7O2dIQS9DVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixpTkNQaEMsa1dBS0E7MkZERWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLG9CQUFvQjswRUFLckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci1yYW5nZS12YWx1ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhbmdlLXZhbHVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYW5nZS12YWx1ZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFuZ2VWYWx1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdmFsdWU6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgbW92aW1lbnRlZFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBtaW46IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgbWF4OiBudW1iZXIgPSAxMDA7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgY2hhbmdlVmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSA8IHRoaXMubWluKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbjtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldE1vdmltZW50ZWRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLm1vdmltZW50ZWRWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tb3ZpbWVudGVkVmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gMTAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5jcmVtZW50KCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlICsgdGhpcy5nZXRNb3ZpbWVudGVkVmFsdWUoKSA8IHRoaXMubWF4KSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgKyB0aGlzLmdldE1vdmltZW50ZWRWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXg7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlY3JlbWVudCgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy52YWx1ZSAtIHRoaXMuZ2V0TW92aW1lbnRlZFZhbHVlKCkgPiB0aGlzLm1pbikge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlIC0gdGhpcy5nZXRNb3ZpbWVudGVkVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmFuZ2UtaW5wdXRcIj5cclxuICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJidG4tcmFuZ2UgbWludXNcIiAoY2xpY2spPVwiZGVjcmVtZW50KClcIj48L2E+XHJcbiAgPHAtc2xpZGVyIFsobmdNb2RlbCldPVwidmFsdWVcIiAob25DaGFuZ2UpPVwiY2hhbmdlVmFsdWUoKVwiIFttaW5dPVwibWluXCIgW21heF09XCJtYXhcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48L3Atc2xpZGVyPlxyXG4gIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImJ0bi1yYW5nZSBwbHVzXCIgKGNsaWNrKT1cImluY3JlbWVudCgpXCI+PC9hPlxyXG48L2Rpdj5cclxuIl19
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "primeng/slider";
5
+ export class RangeValueComponent {
6
+ constructor() {
7
+ this.value = 0;
8
+ this.movimentedValue = null;
9
+ this.min = 0;
10
+ this.max = 100;
11
+ this.disabled = false;
12
+ this.valueChange = new EventEmitter();
13
+ }
14
+ ngOnInit() { }
15
+ changeValue() {
16
+ if (this.value < this.min) {
17
+ this.value = this.min;
18
+ }
19
+ this.valueChange.emit(this.value);
20
+ }
21
+ getMovimentedValue() {
22
+ if (this.movimentedValue) {
23
+ return this.movimentedValue;
24
+ }
25
+ else {
26
+ return (this.max - this.min) / 100;
27
+ }
28
+ }
29
+ increment() {
30
+ if (!this.disabled) {
31
+ if (this.value + this.getMovimentedValue() < this.max) {
32
+ this.value = this.value + this.getMovimentedValue();
33
+ this.valueChange.emit(this.value);
34
+ }
35
+ else {
36
+ this.value = this.max;
37
+ this.valueChange.emit(this.value);
38
+ }
39
+ }
40
+ }
41
+ decrement() {
42
+ if (!this.disabled) {
43
+ if (this.value - this.getMovimentedValue() > this.min) {
44
+ this.value = this.value - this.getMovimentedValue();
45
+ this.valueChange.emit(this.value);
46
+ }
47
+ else {
48
+ this.value = this.min;
49
+ this.valueChange.emit(this.value);
50
+ }
51
+ }
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RangeValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RangeValueComponent, selector: "vector-range-value", inputs: { value: "value", movimentedValue: "movimentedValue", min: "min", max: "max", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"range-input\">\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\" [disabled]=\"disabled\"></p-slider>\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\n</div>\n", styles: [".range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabelledBy", "tabindex"], outputs: ["onChange", "onSlideEnd"] }] }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RangeValueComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'vector-range-value', template: "<div class=\"range-input\">\n <a href=\"javascript:void(0)\" class=\"btn-range minus\" (click)=\"decrement()\"></a>\n <p-slider [(ngModel)]=\"value\" (onChange)=\"changeValue()\" [min]=\"min\" [max]=\"max\" [disabled]=\"disabled\"></p-slider>\n <a href=\"javascript:void(0)\" class=\"btn-range plus\" (click)=\"increment()\"></a>\n</div>\n", styles: [".range-input{display:flex;flex-flow:row;align-items:center}.range-input .btn-range{width:26px;height:26px;display:flex;justify-content:center;align-items:center;background-color:#fff;border:2px solid var(--theme-dark);border-radius:4px;color:var(--theme-dark);text-decoration:none;font-size:1rem}.range-input .btn-range:hover{-webkit-transition:.2s linear;-moz-transition:.2s linear;-o-prop:.2s linear;background-color:var(--theme-dark);color:#fff}.range-input .minus:before{content:\"-\"}.range-input p-slider{flex:1;margin:0 10px}.range-input .plus:before{content:\"+\"}\n"] }]
59
+ }], ctorParameters: function () { return []; }, propDecorators: { value: [{
60
+ type: Input
61
+ }], movimentedValue: [{
62
+ type: Input
63
+ }], min: [{
64
+ type: Input
65
+ }], max: [{
66
+ type: Input
67
+ }], disabled: [{
68
+ type: Input
69
+ }], valueChange: [{
70
+ type: Output
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvcmFuZ2UtdmFsdWUvcmFuZ2UtdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvcmFuZ2UtdmFsdWUvcmFuZ2UtdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU8vRSxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCO1FBTlMsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixvQkFBZSxHQUFrQixJQUFJLENBQUM7UUFDdEMsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixRQUFHLEdBQVcsR0FBRyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFFbkIsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDN0I7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7OEdBL0NVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlOQ1BoQyx3VkFLQTs7MkZERWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLG9CQUFvQjswRUFLckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci1yYW5nZS12YWx1ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLXZhbHVlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlVmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbW92aW1lbnRlZFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbWluOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXg6IG51bWJlciA9IDEwMDtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgPCB0aGlzLm1pbikge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBnZXRNb3ZpbWVudGVkVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMubW92aW1lbnRlZFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5tb3ZpbWVudGVkVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAodGhpcy5tYXggLSB0aGlzLm1pbikgLyAxMDA7XG4gICAgfVxuICB9XG5cbiAgaW5jcmVtZW50KCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMudmFsdWUgKyB0aGlzLmdldE1vdmltZW50ZWRWYWx1ZSgpIDwgdGhpcy5tYXgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgKyB0aGlzLmdldE1vdmltZW50ZWRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXg7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZGVjcmVtZW50KCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMudmFsdWUgLSB0aGlzLmdldE1vdmltZW50ZWRWYWx1ZSgpID4gdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgLSB0aGlzLmdldE1vdmltZW50ZWRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW47XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyYW5nZS1pbnB1dFwiPlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJidG4tcmFuZ2UgbWludXNcIiAoY2xpY2spPVwiZGVjcmVtZW50KClcIj48L2E+XG4gIDxwLXNsaWRlciBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG9uQ2hhbmdlKT1cImNoYW5nZVZhbHVlKClcIiBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9wLXNsaWRlcj5cbiAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiYnRuLXJhbmdlIHBsdXNcIiAoY2xpY2spPVwiaW5jcmVtZW50KClcIj48L2E+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './search-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9zZWFyY2gtZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpZWxkLmNvbXBvbmVudCc7XHJcbiJdfQ==
1
+ export * from './search-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9zZWFyY2gtZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { UntypedFormControl } from '@angular/forms';
3
+ import { Subscription } from 'rxjs';
4
+ import { debounceTime } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../text-field/text-field.component";
7
+ export class SearchFieldComponent {
8
+ constructor() {
9
+ this.placeholder = '';
10
+ this.onSearch = new EventEmitter();
11
+ this.formControl = new UntypedFormControl();
12
+ this.subscription = new Subscription();
13
+ }
14
+ ngOnInit() {
15
+ this.subscription.add(this.formControl.valueChanges.pipe(debounceTime(300)).subscribe((value) => {
16
+ this.onSearch.emit(value);
17
+ }));
18
+ }
19
+ ngOnDestroy() {
20
+ this.subscription.unsubscribe();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SearchFieldComponent, selector: "vector-search-field", inputs: { placeholder: "placeholder" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<vector-text-field [control]=\"formControl\" rightIcon=\"fas fa-search\" [label]=\"placeholder\"></vector-text-field>\n", styles: [""], dependencies: [{ kind: "component", type: i1.TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "decimal", "onlyText", "alphaNumeric", "alphaNumericAndWhitespace", "mask", "autoClear", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "leftLabel", "control", "inputId", "slotChar"], outputs: ["blurEvent", "enterKeyPress", "backSpaceKeyPress", "focusEvent", "onDocumentTypeChange"] }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchFieldComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'vector-search-field', template: "<vector-text-field [control]=\"formControl\" rightIcon=\"fas fa-search\" [label]=\"placeholder\"></vector-text-field>\n" }]
28
+ }], ctorParameters: function () { return []; }, propDecorators: { placeholder: [{
29
+ type: Input
30
+ }], onSearch: [{
31
+ type: Output
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRzL3NlYXJjaC1maWVsZC9zZWFyY2gtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvc2VhcmNoLWZpZWxkL3NlYXJjaC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTzlDLE1BQU0sT0FBTyxvQkFBb0I7SUFRL0I7UUFOTyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0QyxnQkFBVyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7OEdBcEJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHNJQ1ZqQyx5SEFDQTs7MkZEU2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHFCQUFxQjswRUFNeEIsV0FBVztzQkFEakIsS0FBSztnQkFHQyxRQUFRO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWN0b3Itc2VhcmNoLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodmFsdWUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPHZlY3Rvci10ZXh0LWZpZWxkIFtjb250cm9sXT1cImZvcm1Db250cm9sXCIgcmlnaHRJY29uPVwiZmFzIGZhLXNlYXJjaFwiIFtsYWJlbF09XCJwbGFjZWhvbGRlclwiPjwvdmVjdG9yLXRleHQtZmllbGQ+XG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './select-button-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3QtYnV0dG9uLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlbGVjdC1idXR0b24tZmllbGQuY29tcG9uZW50JztcclxuIl19
1
+ export * from './select-button-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3QtYnV0dG9uLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlbGVjdC1idXR0b24tZmllbGQuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "primeng/selectbutton";
5
+ export class SelectButtonFieldComponent {
6
+ constructor() {
7
+ this.options = [];
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SelectButtonFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: { options: "options", control: "control" }, ngImport: i0, template: "<div class=\"input-container p-input-icon-right\">\n <p-selectButton [options]=\"options\" [formControl]=\"control\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SelectButtonFieldComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'vector-select-button-field', template: "<div class=\"input-container p-input-icon-right\">\n <p-selectButton [options]=\"options\" [formControl]=\"control\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n</div>\n" }]
15
+ }], ctorParameters: function () { return []; }, propDecorators: { options: [{
16
+ type: Input
17
+ }], control: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJ1dHRvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3QtYnV0dG9uLWZpZWxkL3NlbGVjdC1idXR0b24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvc2VsZWN0LWJ1dHRvbi1maWVsZC9zZWxlY3QtYnV0dG9uLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpELE1BQU0sT0FBTywwQkFBMEI7SUFNckM7UUFKTyxZQUFPLEdBQWUsRUFBRSxDQUFDO0lBSWpCLENBQUM7OEdBTkwsMEJBQTBCO2tHQUExQiwwQkFBMEIsc0hDUnZDLDZMQUdBOzsyRkRLYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsNEJBQTRCOzBFQU0vQixPQUFPO3NCQURiLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWN0b3Itc2VsZWN0LWJ1dHRvbi1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYnV0dG9uLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJ1dHRvbi1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RCdXR0b25GaWVsZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBMaXN0SXRlbVtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb250cm9sOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBwLWlucHV0LWljb24tcmlnaHRcIj5cbiAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwiY29kZVwiPjwvcC1zZWxlY3RCdXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './text-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RleHQtZmllbGQuY29tcG9uZW50JztcclxuIl19
1
+ export * from './text-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RleHQtZmllbGQuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,229 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Subscription } from 'rxjs';
3
+ import { DocumentType } from '../../../models';
4
+ import { MaskUtil } from '../../../utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "primeng/keyfilter";
9
+ import * as i4 from "primeng/inputtext";
10
+ import * as i5 from "primeng/inputmask";
11
+ import * as i6 from "../button/button.component";
12
+ import * as i7 from "../field-error-message/field-error-message.component";
13
+ export class TextFieldComponent {
14
+ constructor() {
15
+ this.isRequired = false;
16
+ this.label = '';
17
+ this.maxlength = '';
18
+ this.isPassword = false;
19
+ this.numeric = false;
20
+ this.decimal = false;
21
+ this.onlyText = false;
22
+ this.alphaNumeric = false;
23
+ this.alphaNumericAndWhitespace = false;
24
+ this.autoClear = true;
25
+ this.rightIcon = '';
26
+ this.centered = false;
27
+ this.enableDocumentTypeChoice = false;
28
+ this.hiddenErrorMessage = false;
29
+ this.slotChar = '_';
30
+ this.blurEvent = new EventEmitter();
31
+ this.enterKeyPress = new EventEmitter();
32
+ this.backSpaceKeyPress = new EventEmitter();
33
+ this.focusEvent = new EventEmitter();
34
+ this.onDocumentTypeChange = new EventEmitter();
35
+ this.isPasswordVisible = false;
36
+ this.validateOnly = false;
37
+ this.documentTypes = [
38
+ {
39
+ name: 'CPF',
40
+ code: DocumentType.CPF,
41
+ },
42
+ {
43
+ name: 'CNPJ',
44
+ code: DocumentType.CNPJ,
45
+ },
46
+ ];
47
+ this.selectedDocumentType = this.documentTypes[1];
48
+ this.lastBlurValue = '';
49
+ this.lastTypedValue = '';
50
+ this.subscription = new Subscription();
51
+ this.controlSubscription = new Subscription();
52
+ }
53
+ set control(_control) {
54
+ this._control = _control;
55
+ if (this.enableDocumentTypeChoice) {
56
+ this.handleInitialDocumentTypeState();
57
+ }
58
+ if (this.controlSubscription) {
59
+ this.controlSubscription.unsubscribe();
60
+ this.controlSubscription = new Subscription();
61
+ }
62
+ this.controlSubscription.add(this.control.valueChanges.subscribe((value) => {
63
+ if (this.enableDocumentTypeChoice && !this.lastTypedValue && value?.length > 11) {
64
+ this.handleInitialDocumentTypeState();
65
+ }
66
+ this.lastTypedValue = value;
67
+ }));
68
+ }
69
+ get placeholder() {
70
+ if (!this.label) {
71
+ return '';
72
+ }
73
+ return `${this.label}${this.isRequired ? '*' : ''}`;
74
+ }
75
+ get keyfilter() {
76
+ this.validateOnly = false;
77
+ if (this.numeric) {
78
+ return 'int';
79
+ }
80
+ if (this.decimal) {
81
+ this.validateOnly = true;
82
+ return /^(\d+(?:[\,]\d{2})?)$/;
83
+ }
84
+ if (this.onlyText) {
85
+ this.validateOnly = true;
86
+ return /^[a-zA-ZÀ-ú\s]*$/gm;
87
+ }
88
+ if (this.alphaNumeric) {
89
+ return 'alphanum';
90
+ }
91
+ if (this.alphaNumericAndWhitespace) {
92
+ return /^[A-Za-zÀ-ú0-9 ]*$/gm;
93
+ }
94
+ return /[\s\S]*/;
95
+ }
96
+ get control() {
97
+ return this._control;
98
+ }
99
+ get showPasswordIcon() {
100
+ return this.isPasswordVisible ? 'fas fa-eye' : 'fas fa-eye-slash';
101
+ }
102
+ ngOnInit() {
103
+ if (this.enableDocumentTypeChoice) {
104
+ this.setDocumentType(this.selectedDocumentType.code);
105
+ }
106
+ }
107
+ ngOnDestroy() {
108
+ this.subscription.unsubscribe();
109
+ this.controlSubscription.unsubscribe();
110
+ }
111
+ onBlur() {
112
+ this.control.markAsTouched();
113
+ if (this.lastBlurValue !== this.control.value) {
114
+ this.lastBlurValue = this.control.value;
115
+ setTimeout(() => {
116
+ this.blurEvent.emit(this.control.value);
117
+ });
118
+ }
119
+ }
120
+ onEnterPress() {
121
+ this.onBlur();
122
+ this.enterKeyPress.emit();
123
+ }
124
+ onBackSpacePress() {
125
+ this.onBlur();
126
+ this.backSpaceKeyPress.emit();
127
+ }
128
+ onFocus($event) {
129
+ const target = $event.target;
130
+ if (this.mask) {
131
+ const firstUnderscore = target?.value.indexOf('_');
132
+ const selectionIndex = (firstUnderscore >= 0 ? firstUnderscore : target?.value.length) || 0;
133
+ target?.setSelectionRange(selectionIndex, selectionIndex);
134
+ }
135
+ this.focusEvent.emit(target?.value);
136
+ }
137
+ toggleShowPassword() {
138
+ this.isPasswordVisible = !this.isPasswordVisible;
139
+ }
140
+ handleDocumentTypeChange() {
141
+ if (this.selectedDocumentType.code === DocumentType.CNPJ) {
142
+ this.setDocumentType(DocumentType.CPF);
143
+ }
144
+ else {
145
+ this.setDocumentType(DocumentType.CNPJ);
146
+ }
147
+ }
148
+ handleInitialDocumentTypeState() {
149
+ if (this.control?.value) {
150
+ if (this.control.value.length === 11) {
151
+ this.setDocumentType(DocumentType.CPF);
152
+ }
153
+ else {
154
+ this.setDocumentType(DocumentType.CNPJ);
155
+ }
156
+ }
157
+ else {
158
+ this.setDocumentType(DocumentType.CPF);
159
+ }
160
+ }
161
+ setDocumentType(documentType) {
162
+ switch (documentType) {
163
+ case DocumentType.CNPJ:
164
+ this.selectedDocumentType = this.documentTypes[1];
165
+ this.mask = MaskUtil.CNPJ_TEXT_FIELD_PATTERN;
166
+ break;
167
+ case DocumentType.CPF:
168
+ this.selectedDocumentType = this.documentTypes[0];
169
+ this.mask = MaskUtil.CPF_TEXT_FIELD_PATTERN;
170
+ break;
171
+ }
172
+ this.onDocumentTypeChange.emit(this.selectedDocumentType);
173
+ }
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", decimal: "decimal", onlyText: "onlyText", alphaNumeric: "alphaNumeric", alphaNumericAndWhitespace: "alphaNumericAndWhitespace", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", hiddenErrorMessage: "hiddenErrorMessage", leftLabel: "leftLabel", control: "control", inputId: "inputId", slotChar: "slotChar" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", backSpaceKeyPress: "backSpaceKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\n <div class=\"p-inputgroup\">\n <vector-button\n *ngIf=\"enableDocumentTypeChoice\"\n leftIcon=\"fas fa-exchange-alt\"\n type=\"success\"\n [label]=\"selectedDocumentType.name\"\n [disabled]=\"control.disabled\"\n [noShadow]=\"true\"\n (onClick)=\"handleDocumentTypeChange()\"\n ></vector-button>\n\n <span *ngIf=\"leftLabel\" class=\"left-label\">\n {{ leftLabel }}\n </span>\n\n <input\n *ngIf=\"!mask\"\n [id]=\"inputId\"\n pInputText\n type=\"text\"\n [formControl]=\"control\"\n [attr.maxlength]=\"maxlength\"\n [placeholder]=\"placeholder\"\n [pValidateOnly]=\"validateOnly\"\n [pKeyFilter]=\"keyfilter\"\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnterPress()\"\n (keydown.backspace)=\"onBackSpacePress()\"\n (click)=\"onFocus($event)\"\n />\n <p-inputMask\n *ngIf=\"mask\"\n type=\"text\"\n [inputId]=\"inputId || 'mask-field'\"\n [formControl]=\"control\"\n [mask]=\"mask\"\n [placeholder]=\"placeholder\"\n (onBlur)=\"onBlur()\"\n (keydown.enter)=\"onEnterPress()\"\n (keydown.backspace)=\"onBackSpacePress()\"\n [autoClear]=\"autoClear\"\n [unmask]=\"true\"\n [styleClass]=\"centered ? 'text-centered' : ''\"\n [slotChar]=\"slotChar\"\n (click)=\"onFocus($event)\"\n ></p-inputMask>\n </div>\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</form>\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}.input-container .text-centered{text-align:center}.input-container .left-label{min-height:100%;display:flex;align-items:center;justify-content:center;padding:0 10px;white-space:nowrap;font-size:13px;background-color:var(--gray-light);color:var(--theme-primary)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]" }, { kind: "component", type: i5.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "component", type: i6.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { kind: "component", type: i7.FieldErrorMessageComponent, selector: "vector-field-error-message", inputs: ["control"] }] }); }
176
+ }
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextFieldComponent, decorators: [{
178
+ type: Component,
179
+ args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\n <div class=\"p-inputgroup\">\n <vector-button\n *ngIf=\"enableDocumentTypeChoice\"\n leftIcon=\"fas fa-exchange-alt\"\n type=\"success\"\n [label]=\"selectedDocumentType.name\"\n [disabled]=\"control.disabled\"\n [noShadow]=\"true\"\n (onClick)=\"handleDocumentTypeChange()\"\n ></vector-button>\n\n <span *ngIf=\"leftLabel\" class=\"left-label\">\n {{ leftLabel }}\n </span>\n\n <input\n *ngIf=\"!mask\"\n [id]=\"inputId\"\n pInputText\n type=\"text\"\n [formControl]=\"control\"\n [attr.maxlength]=\"maxlength\"\n [placeholder]=\"placeholder\"\n [pValidateOnly]=\"validateOnly\"\n [pKeyFilter]=\"keyfilter\"\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnterPress()\"\n (keydown.backspace)=\"onBackSpacePress()\"\n (click)=\"onFocus($event)\"\n />\n <p-inputMask\n *ngIf=\"mask\"\n type=\"text\"\n [inputId]=\"inputId || 'mask-field'\"\n [formControl]=\"control\"\n [mask]=\"mask\"\n [placeholder]=\"placeholder\"\n (onBlur)=\"onBlur()\"\n (keydown.enter)=\"onEnterPress()\"\n (keydown.backspace)=\"onBackSpacePress()\"\n [autoClear]=\"autoClear\"\n [unmask]=\"true\"\n [styleClass]=\"centered ? 'text-centered' : ''\"\n [slotChar]=\"slotChar\"\n (click)=\"onFocus($event)\"\n ></p-inputMask>\n </div>\n <vector-field-error-message *ngIf=\"!hiddenErrorMessage\" [control]=\"control\"></vector-field-error-message>\n</form>\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:var(--error-color);position:absolute;width:max-content}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}.input-container .text-centered{text-align:center}.input-container .left-label{min-height:100%;display:flex;align-items:center;justify-content:center;padding:0 10px;white-space:nowrap;font-size:13px;background-color:var(--gray-light);color:var(--theme-primary)}\n"] }]
180
+ }], propDecorators: { isRequired: [{
181
+ type: Input
182
+ }], label: [{
183
+ type: Input
184
+ }], maxlength: [{
185
+ type: Input
186
+ }], isPassword: [{
187
+ type: Input
188
+ }], numeric: [{
189
+ type: Input
190
+ }], decimal: [{
191
+ type: Input
192
+ }], onlyText: [{
193
+ type: Input
194
+ }], alphaNumeric: [{
195
+ type: Input
196
+ }], alphaNumericAndWhitespace: [{
197
+ type: Input
198
+ }], mask: [{
199
+ type: Input
200
+ }], autoClear: [{
201
+ type: Input
202
+ }], rightIcon: [{
203
+ type: Input
204
+ }], centered: [{
205
+ type: Input
206
+ }], enableDocumentTypeChoice: [{
207
+ type: Input
208
+ }], hiddenErrorMessage: [{
209
+ type: Input
210
+ }], leftLabel: [{
211
+ type: Input
212
+ }], control: [{
213
+ type: Input
214
+ }], inputId: [{
215
+ type: Input
216
+ }], slotChar: [{
217
+ type: Input
218
+ }], blurEvent: [{
219
+ type: Output
220
+ }], enterKeyPress: [{
221
+ type: Output
222
+ }], backSpaceKeyPress: [{
223
+ type: Output
224
+ }], focusEvent: [{
225
+ type: Output
226
+ }], onDocumentTypeChange: [{
227
+ type: Output
228
+ }] } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFPUyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUlsQyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLDZCQUF3QixHQUFHLEtBQUss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QURkLEtBQUs7Z0JBR0Msd0JBQXdCO3NCQUQ5QixLQUFLO2dCQUdDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXFCQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFNBQVM7c0JBRGYsTUFBTTtnQkFHQSxhQUFhO3NCQURuQixNQUFNO2dCQUdBLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkFHQSxVQUFVO3NCQURoQixNQUFNO2dCQUdBLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb2N1bWVudFR5cGUsIExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdGV4dC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhsZW5ndGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXNQYXNzd29yZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbnVtZXJpYyA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVjaW1hbCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgb25seVRleHQgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgcHVibGljIGFscGhhTnVtZXJpYyA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWxwaGFOdW1lcmljQW5kV2hpdGVzcGFjZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFzaz86IHN0cmluZztcbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9DbGVhciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJpZ2h0SWNvbiA9ICcnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2VudGVyZWQgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZURvY3VtZW50VHlwZUNob2ljZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZGVuRXJyb3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsZWZ0TGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNldCBjb250cm9sKF9jb250cm9sOiBhbnkpIHtcbiAgICB0aGlzLl9jb250cm9sID0gX2NvbnRyb2w7XG4gICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlKSB7XG4gICAgICB0aGlzLmhhbmRsZUluaXRpYWxEb2N1bWVudFR5cGVTdGF0ZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5jb250cm9sU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlICYmICF0aGlzLmxhc3RUeXBlZFZhbHVlICYmIHZhbHVlPy5sZW5ndGggPiAxMSkge1xuICAgICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0VHlwZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbnB1dElkPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2xvdENoYXIgPSAnXyc7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYmx1ckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgcHVibGljIGVudGVyS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYmFja1NwYWNlS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZm9jdXNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkRvY3VtZW50VHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XG5cbiAgcHVibGljIGlzUGFzc3dvcmRWaXNpYmxlID0gZmFsc2U7XG4gIHB1YmxpYyB2YWxpZGF0ZU9ubHkgPSBmYWxzZTtcblxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfSR7dGhpcy5pc1JlcXVpcmVkID8gJyonIDogJyd9YDtcbiAgfVxuXG4gIGdldCBrZXlmaWx0ZXIoKSB7XG4gICAgdGhpcy52YWxpZGF0ZU9ubHkgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5udW1lcmljKSB7XG4gICAgICByZXR1cm4gJ2ludCc7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVPbmx5ID0gdHJ1ZTtcbiAgICAgIHJldHVybiAvXihcXGQrKD86W1xcLF1cXGR7Mn0pPykkLztcbiAgICB9XG4gICAgaWYgKHRoaXMub25seVRleHQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVPbmx5ID0gdHJ1ZTtcbiAgICAgIHJldHVybiAvXlthLXpBLVrDgC3Dulxcc10qJC9nbTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxwaGFOdW1lcmljKSB7XG4gICAgICByZXR1cm4gJ2FscGhhbnVtJztcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxwaGFOdW1lcmljQW5kV2hpdGVzcGFjZSkge1xuICAgICAgcmV0dXJuIC9eW0EtWmEtesOALcO6MC05IF0qJC9nbTtcbiAgICB9XG4gICAgcmV0dXJuIC9bXFxzXFxTXSovO1xuICB9XG5cbiAgZ2V0IGNvbnRyb2woKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2w7XG4gIH1cblxuICBnZXQgc2hvd1Bhc3N3b3JkSWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA/ICdmYXMgZmEtZXllJyA6ICdmYXMgZmEtZXllLXNsYXNoJztcbiAgfVxuXG4gIHB1YmxpYyBkb2N1bWVudFR5cGVzOiBMaXN0SXRlbVtdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdDUEYnLFxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNQRixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDTlBKJyxcbiAgICAgIGNvZGU6IERvY3VtZW50VHlwZS5DTlBKLFxuICAgIH0sXG4gIF07XG5cbiAgcHVibGljIHNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzFdO1xuXG4gIHByaXZhdGUgbGFzdEJsdXJWYWx1ZSA9ICcnO1xuICBwcml2YXRlIGxhc3RUeXBlZFZhbHVlID0gJyc7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIGNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX2NvbnRyb2w6IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJsdXIoKSB7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5sYXN0Qmx1clZhbHVlICE9PSB0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMubGFzdEJsdXJWYWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmJsdXJFdmVudC5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FbnRlclByZXNzKCkge1xuICAgIHRoaXMub25CbHVyKCk7XG4gICAgdGhpcy5lbnRlcktleVByZXNzLmVtaXQoKTtcbiAgfVxuICBwdWJsaWMgb25CYWNrU3BhY2VQcmVzcygpIHtcbiAgICB0aGlzLm9uQmx1cigpO1xuICAgIHRoaXMuYmFja1NwYWNlS2V5UHJlc3MuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoJGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICBjb25zdCBmaXJzdFVuZGVyc2NvcmUgPSB0YXJnZXQ/LnZhbHVlLmluZGV4T2YoJ18nKTtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbkluZGV4ID0gKGZpcnN0VW5kZXJzY29yZSA+PSAwID8gZmlyc3RVbmRlcnNjb3JlIDogdGFyZ2V0Py52YWx1ZS5sZW5ndGgpIHx8IDA7XG4gICAgICB0YXJnZXQ/LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbkluZGV4LCBzZWxlY3Rpb25JbmRleCk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXNFdmVudC5lbWl0KHRhcmdldD8udmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNob3dQYXNzd29yZCgpIHtcbiAgICB0aGlzLmlzUGFzc3dvcmRWaXNpYmxlID0gIXRoaXMuaXNQYXNzd29yZFZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlLmNvZGUgPT09IERvY3VtZW50VHlwZS5DTlBKKSB7XG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ1BGKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNOUEopO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMTEpIHtcbiAgICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50VHlwZTogRG9jdW1lbnRUeXBlKSB7XG4gICAgc3dpdGNoIChkb2N1bWVudFR5cGUpIHtcbiAgICAgIGNhc2UgRG9jdW1lbnRUeXBlLkNOUEo6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUgPSB0aGlzLmRvY3VtZW50VHlwZXNbMV07XG4gICAgICAgIHRoaXMubWFzayA9IE1hc2tVdGlsLkNOUEpfVEVYVF9GSUVMRF9QQVRURVJOO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRG9jdW1lbnRUeXBlLkNQRjpcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1swXTtcbiAgICAgICAgdGhpcy5tYXNrID0gTWFza1V0aWwuQ1BGX1RFWFRfRklFTERfUEFUVEVSTjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMub25Eb2N1bWVudFR5cGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJpbnB1dC1jb250YWluZXIgcC1pbnB1dC1pY29uLXJpZ2h0XCI+XG4gIDxpICpuZ0lmPVwicmlnaHRJY29uXCIgW2NsYXNzXT1cInJpZ2h0SWNvblwiPjwvaT5cbiAgPGkgKm5nSWY9XCJpc1Bhc3N3b3JkXCIgY2xhc3M9XCJzaG93LXBhc3N3b3JkLWljb24ge3sgc2hvd1Bhc3N3b3JkSWNvbiB9fVwiIChjbGljayk9XCJ0b2dnbGVTaG93UGFzc3dvcmQoKVwiPjwvaT5cbiAgPGRpdiBjbGFzcz1cInAtaW5wdXRncm91cFwiPlxuICAgIDx2ZWN0b3ItYnV0dG9uXG4gICAgICAqbmdJZj1cImVuYWJsZURvY3VtZW50VHlwZUNob2ljZVwiXG4gICAgICBsZWZ0SWNvbj1cImZhcyBmYS1leGNoYW5nZS1hbHRcIlxuICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxuICAgICAgW2xhYmVsXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlLm5hbWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgW25vU2hhZG93XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKClcIlxuICAgID48L3ZlY3Rvci1idXR0b24+XG5cbiAgICA8c3BhbiAqbmdJZj1cImxlZnRMYWJlbFwiIGNsYXNzPVwibGVmdC1sYWJlbFwiPlxuICAgICAge3sgbGVmdExhYmVsIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cIiFtYXNrXCJcbiAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgIHBJbnB1dFRleHRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtwVmFsaWRhdGVPbmx5XT1cInZhbGlkYXRlT25seVwiXG4gICAgICBbcEtleUZpbHRlcl09XCJrZXlmaWx0ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwieyAncGFzc3dvcmQtZmllbGQnOiBpc1Bhc3N3b3JkICYmICFpc1Bhc3N3b3JkVmlzaWJsZSwgJ3RleHQtY2VudGVyZWQnOiBjZW50ZXJlZCB9XCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJQcmVzcygpXCJcbiAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tTcGFjZVByZXNzKClcIlxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8cC1pbnB1dE1hc2tcbiAgICAgICpuZ0lmPVwibWFza1wiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbaW5wdXRJZF09XCJpbnB1dElkIHx8ICdtYXNrLWZpZWxkJ1wiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbbWFza109XCJtYXNrXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJQcmVzcygpXCJcbiAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tTcGFjZVByZXNzKClcIlxuICAgICAgW2F1dG9DbGVhcl09XCJhdXRvQ2xlYXJcIlxuICAgICAgW3VubWFza109XCJ0cnVlXCJcbiAgICAgIFtzdHlsZUNsYXNzXT1cImNlbnRlcmVkID8gJ3RleHQtY2VudGVyZWQnIDogJydcIlxuICAgICAgW3Nsb3RDaGFyXT1cInNsb3RDaGFyXCJcbiAgICAgIChjbGljayk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgID48L3AtaW5wdXRNYXNrPlxuICA8L2Rpdj5cbiAgPHZlY3Rvci1maWVsZC1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWhpZGRlbkVycm9yTWVzc2FnZVwiIFtjb250cm9sXT1cImNvbnRyb2xcIj48L3ZlY3Rvci1maWVsZC1lcnJvci1tZXNzYWdlPlxuPC9mb3JtPlxuIl19