@seniorsistemas/angular-components 19.3.1 → 19.3.2

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 (254) hide show
  1. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +1 -2
  2. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +0 -1
  3. package/chips/lib/chips/chips/chips.component.d.ts +1 -2
  4. package/code-editor/lib/code-editor/code-editor.component.d.ts +0 -2
  5. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +1 -3
  6. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -2
  7. package/content-generator/lib/content-generator/content-generator.component.d.ts +1 -6
  8. package/content-generator/lib/services/IAssist/iassist.service.d.ts +0 -3
  9. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -3
  10. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +0 -2
  11. package/currency/lib/currency.service.d.ts +0 -2
  12. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +3 -7
  13. package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +0 -2
  14. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -2
  15. package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -2
  16. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -3
  17. package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -2
  18. package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -3
  19. package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -2
  20. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -3
  21. package/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.d.ts +1 -2
  22. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -3
  23. package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -2
  24. package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -2
  25. package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -2
  26. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +0 -2
  27. package/esm2022/badge/lib/badge/badge.component.mjs +3 -3
  28. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +10 -13
  29. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +7 -11
  30. package/esm2022/chips/lib/chips/chips/chips.component.mjs +5 -8
  31. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +6 -9
  32. package/esm2022/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.mjs +8 -13
  33. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +6 -10
  34. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +24 -30
  35. package/esm2022/content-generator/lib/services/IAssist/iassist.service.mjs +9 -12
  36. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +15 -23
  37. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +6 -9
  38. package/esm2022/currency/lib/currency.service.mjs +6 -9
  39. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -25
  40. package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +6 -9
  41. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +22 -28
  42. package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +6 -10
  43. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +12 -17
  44. package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +5 -8
  45. package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +12 -17
  46. package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +5 -8
  47. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +13 -19
  48. package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.mjs +6 -10
  49. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +14 -19
  50. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +5 -8
  51. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +5 -8
  52. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +5 -8
  53. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +8 -11
  54. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +17 -21
  55. package/esm2022/gantt/lib/gantt/components/gantt/gantt.mjs +6 -2
  56. package/esm2022/gantt/lib/gantt/gantt.component.mjs +8 -4
  57. package/esm2022/global-search/lib/global-search/global-search.component.mjs +5 -8
  58. package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +7 -12
  59. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +5 -8
  60. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +6 -10
  61. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +9 -12
  62. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +14 -17
  63. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +12 -15
  64. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +15 -19
  65. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +5 -8
  66. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +10 -13
  67. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +10 -13
  68. package/esm2022/kanban/lib/kanban/kanban.component.mjs +23 -17
  69. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +10 -16
  70. package/esm2022/locale/lib/locale/locale.service.mjs +8 -12
  71. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +6 -9
  72. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +6 -9
  73. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +6 -9
  74. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +6 -9
  75. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +6 -9
  76. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +6 -9
  77. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +5 -8
  78. package/esm2022/numeric/lib/numeric.pipe.mjs +8 -12
  79. package/esm2022/numeric/lib/numeric.service.mjs +6 -9
  80. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +8 -11
  81. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +10 -16
  82. package/esm2022/picklist/lib/picklist/picklist.component.mjs +5 -8
  83. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +15 -19
  84. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -11
  85. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +5 -4
  86. package/esm2022/select-button/lib/select-button/select-button.component.mjs +3 -3
  87. package/esm2022/shared/lib/accessibility/paginator-accessibility.directive.mjs +8 -13
  88. package/esm2022/shared/lib/accessibility/table-checkbox-accessibility.directive.mjs +5 -8
  89. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +9 -12
  90. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +12 -16
  91. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.service.mjs +12 -16
  92. package/esm2022/speech-recognition/lib/speech-recognition/text-to-speech.service.mjs +8 -10
  93. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -8
  94. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +7 -7
  95. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +19 -28
  96. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +9 -16
  97. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +11 -13
  98. package/esm2022/text-area/lib/text-area/text-area.component.mjs +5 -8
  99. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +8 -11
  100. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +16 -24
  101. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +8 -11
  102. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +12 -16
  103. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +13 -25
  104. package/esm2022/toast/lib/toast/toast.service.mjs +7 -12
  105. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +10 -14
  106. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +6 -10
  107. package/fesm2022/seniorsistemas-angular-components-badge.mjs +2 -2
  108. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  109. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +10 -12
  110. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  111. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +6 -10
  112. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  113. package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -7
  114. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  115. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +10 -18
  116. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  117. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -9
  118. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  119. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +29 -40
  120. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  121. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +16 -28
  122. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  123. package/fesm2022/seniorsistemas-angular-components-currency.mjs +5 -8
  124. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  125. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +45 -59
  126. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  127. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +108 -157
  128. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  129. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +4 -8
  130. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  131. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +17 -22
  132. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  133. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +12 -4
  134. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  135. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +4 -7
  136. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  137. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +6 -11
  138. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  139. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +4 -7
  140. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  141. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +5 -9
  142. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  143. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +29 -38
  144. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  145. package/fesm2022/seniorsistemas-angular-components-insights.mjs +17 -22
  146. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  147. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +4 -7
  148. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  149. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -30
  150. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  151. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -15
  152. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  153. package/fesm2022/seniorsistemas-angular-components-locale.mjs +22 -41
  154. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  155. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +5 -8
  156. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  157. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +4 -7
  158. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  159. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +9 -16
  160. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  161. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +13 -24
  162. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  163. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +4 -7
  164. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  165. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +14 -21
  166. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  167. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +11 -14
  168. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  169. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
  170. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  171. package/fesm2022/seniorsistemas-angular-components-shared.mjs +10 -18
  172. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  173. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -10
  174. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  175. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +23 -34
  176. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  177. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +4 -7
  178. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  179. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +10 -12
  180. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  181. package/fesm2022/seniorsistemas-angular-components-table.mjs +29 -46
  182. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  183. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +4 -7
  184. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  185. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -9
  186. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  187. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +30 -55
  188. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  189. package/fesm2022/seniorsistemas-angular-components-toast.mjs +6 -11
  190. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  191. package/fesm2022/seniorsistemas-angular-components-tree.mjs +9 -14
  192. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  193. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +5 -9
  194. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  195. package/file-picker/lib/file-picker/file-picker.component.d.ts +0 -4
  196. package/file-upload/README.md +9 -37
  197. package/gantt/lib/gantt/gantt.component.d.ts +1 -0
  198. package/global-search/lib/global-search/global-search.component.d.ts +1 -2
  199. package/ia-insight/README.md +17 -0
  200. package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +1 -2
  201. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -2
  202. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -2
  203. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +1 -2
  204. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -2
  205. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -2
  206. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +0 -4
  207. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +1 -2
  208. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +0 -2
  209. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +0 -2
  210. package/kanban/lib/kanban/kanban.component.d.ts +2 -2
  211. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -2
  212. package/locale/lib/locale/locale.service.d.ts +0 -3
  213. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +0 -2
  214. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +0 -2
  215. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +0 -2
  216. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +0 -2
  217. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +0 -2
  218. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +0 -2
  219. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -2
  220. package/numeric/lib/numeric.pipe.d.ts +0 -3
  221. package/numeric/lib/numeric.service.d.ts +0 -2
  222. package/package.json +13 -13
  223. package/password-strength/lib/password-strength/password-strength.component.d.ts +0 -2
  224. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -2
  225. package/picklist/lib/picklist/picklist.component.d.ts +1 -2
  226. package/product-header/README.md +17 -0
  227. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +0 -4
  228. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -2
  229. package/progressbar/lib/progressbar/progressbar.module.d.ts +2 -1
  230. package/shared/lib/accessibility/paginator-accessibility.directive.d.ts +1 -3
  231. package/shared/lib/accessibility/table-checkbox-accessibility.directive.d.ts +1 -2
  232. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +0 -2
  233. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -4
  234. package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +1 -5
  235. package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +1 -3
  236. package/split-button/lib/split-button/split-button.component.d.ts +1 -2
  237. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  238. package/table/lib/table/table-column/table-columns.component.d.ts +2 -6
  239. package/table/lib/table/table-paging/table-paging.component.d.ts +0 -3
  240. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  241. package/text-area/lib/text-area/text-area.component.d.ts +1 -2
  242. package/text-area-ia/README.md +17 -0
  243. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +0 -2
  244. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -3
  245. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -2
  246. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -2
  247. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -5
  248. package/toast/lib/toast/toast.service.d.ts +0 -2
  249. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -3
  250. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -2
  251. package/confirm-dialog/README.md +0 -226
  252. package/numeric-mask/README.md +0 -395
  253. package/pin-code-field/README.md +0 -366
  254. package/spotlight/README.md +0 -311
@@ -1,4 +1,4 @@
1
- import { Component, DestroyRef, inject, input, } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, DestroyRef, ElementRef, inject, input, } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
@@ -7,17 +7,13 @@ import { FieldLabelComponent } from '../../../components/field-label/field-label
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/forms";
9
9
  export class AutocompleteFieldComponent {
10
- changeDetectorRef;
11
- elementRef;
10
+ changeDetectorRef = inject(ChangeDetectorRef);
11
+ elementRef = inject(ElementRef);
12
12
  destroyRef = inject(DestroyRef);
13
13
  suggestions = [];
14
14
  field = input.required();
15
15
  formControl = input.required();
16
16
  inputRef = null;
17
- constructor(changeDetectorRef, elementRef) {
18
- this.changeDetectorRef = changeDetectorRef;
19
- this.elementRef = elementRef;
20
- }
21
17
  ngOnInit() {
22
18
  const suggestionsObservable = this.field().suggestionsObservable;
23
19
  if (suggestionsObservable)
@@ -32,11 +28,11 @@ export class AutocompleteFieldComponent {
32
28
  setInputRef() {
33
29
  this.inputRef = this.elementRef.nativeElement.querySelector('input');
34
30
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
32
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AutocompleteFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div [sTooltip]=\"_field.tooltip\">\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple!\"\n [placeholder]=\"_field.placeholder\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"suggestions\"\n [dataKey]=\"_field.dataKey!\"\n (onLookupRequest)=\"_field.onSearch ? _field.onSearch($event) : null\"\n [lookupDisplayField]=\"_field.displayField\"\n [showSearch]=\"false\"\n [lookupAppendTo]=\"_field.appendTo\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onUnselect)=\"_field.onUnselect ? _field.onUnselect($event) : null\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n >\n </s-lookup>\n</div>\n\n", dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "component", type: LookupComponent, selector: "s-lookup", inputs: ["formControlName", "id", "autocompleteForceSelection", "maxlength", "multiple", "dataKey", "disabled", "showSearch", "lookupSuggestions", "lookupDisplayField", "lookupDisplayFieldTooltip", "lookupEmptyMessage", "lookupAppendTo", "searchEmptyDescription", "searchGridData", "searchTotalRecords", "searchFields", "searchGridFields", "multiSortMeta", "placeholder", "sortableColumnsDisabled", "lookupRowProps", "defaultFilter", "showAddOption", "showEditOption", "showRemoveOption", "dialogFullScreen", "labelOptions"], outputs: ["onLookupRequest", "onSearchRequest", "onFocus", "onBlur", "onKeyUp", "onSelect", "onUnselect", "onClear", "onAdd", "onEdit", "onRemove", "onClearButtonClick"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }] });
37
33
  }
38
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteFieldComponent, decorators: [{
39
35
  type: Component,
40
36
  args: [{ standalone: true, imports: [FieldLabelComponent, LookupComponent, ReactiveFormsModule, TooltipDirective], template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div [sTooltip]=\"_field.tooltip\">\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple!\"\n [placeholder]=\"_field.placeholder\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"suggestions\"\n [dataKey]=\"_field.dataKey!\"\n (onLookupRequest)=\"_field.onSearch ? _field.onSearch($event) : null\"\n [lookupDisplayField]=\"_field.displayField\"\n [showSearch]=\"false\"\n [lookupAppendTo]=\"_field.appendTo\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onUnselect)=\"_field.onUnselect ? _field.onUnselect($event) : null\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n >\n </s-lookup>\n</div>\n\n" }]
41
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxVQUFVLEVBRVYsTUFBTSxFQUNOLEtBQUssR0FFUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7OztBQVE1RixNQUFNLE9BQU8sMEJBQTBCO0lBVWQ7SUFDQTtJQVZKLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsV0FBVyxHQUFjLEVBQUUsQ0FBQztJQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBMkIsQ0FBQztJQUVsRCxXQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZSxDQUFDO0lBRXJDLFFBQVEsR0FBdUIsSUFBSSxDQUFDO0lBRTNDLFlBQ3FCLGlCQUFvQyxFQUNwQyxVQUFzQjtRQUR0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDeEMsQ0FBQztJQUVKLFFBQVE7UUFDSixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztRQUNqRSxJQUFJLHFCQUFxQjtZQUNyQixxQkFBcUI7aUJBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7d0dBN0JRLDBCQUEwQjs0RkFBMUIsMEJBQTBCLG9WQ3hCdkMsa2lDQTZCQSw0Q0RSYyxtQkFBbUIsa0dBQUUsZUFBZSw2dUJBQUUsbUJBQW1CLDBUQUFFLGdCQUFnQjs7NEZBRzVFLDBCQUEwQjtrQkFMdEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IExvb2t1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvbG9va3VwL2xvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvYXV0b2NvbXBsZXRlLWZpZWxkJztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ZpZWxkTGFiZWxDb21wb25lbnQsIExvb2t1cENvbXBvbmVudCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVG9vbHRpcERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICdhdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZywgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgc3VnZ2VzdGlvbnM6IHVua25vd25bXSA9IFtdO1xuICAgIGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8QXV0b2NvbXBsZXRlRmllbGRDb25maWc+KCk7XG5cbiAgICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuXG4gICAgcHVibGljIGlucHV0UmVmOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZSA9IHRoaXMuZmllbGQoKS5zdWdnZXN0aW9uc09ic2VydmFibGU7XG4gICAgICAgIGlmIChzdWdnZXN0aW9uc09ic2VydmFibGUpXG4gICAgICAgICAgICBzdWdnZXN0aW9uc09ic2VydmFibGVcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzdWdnZXN0aW9ucykgPT4gKHRoaXMuc3VnZ2VzdGlvbnMgPSBzdWdnZXN0aW9ucykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRSZWYoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbnB1dFJlZigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKSB7XG4gICAgPHMtZmllbGQtbGFiZWxcbiAgICAgICAgW2ZpZWxkXT1cIl9maWVsZFwiXG4gICAgICAgIFtmaWVsZENvbnRhaW5lclJlZl09XCJpbnB1dFJlZlwiXG4gICAgPjwvcy1maWVsZC1sYWJlbD5cbn1cblxuPGRpdiBbc1Rvb2x0aXBdPVwiX2ZpZWxkLnRvb2x0aXBcIj5cbiAgICA8cy1sb29rdXBcbiAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJfZmllbGQubXVsdGlwbGUhXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAgICAgW2xvb2t1cFN1Z2dlc3Rpb25zXT1cInN1Z2dlc3Rpb25zXCJcbiAgICAgICAgW2RhdGFLZXldPVwiX2ZpZWxkLmRhdGFLZXkhXCJcbiAgICAgICAgKG9uTG9va3VwUmVxdWVzdCk9XCJfZmllbGQub25TZWFyY2ggPyBfZmllbGQub25TZWFyY2goJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICBbbG9va3VwRGlzcGxheUZpZWxkXT1cIl9maWVsZC5kaXNwbGF5RmllbGRcIlxuICAgICAgICBbc2hvd1NlYXJjaF09XCJmYWxzZVwiXG4gICAgICAgIFtsb29rdXBBcHBlbmRUb109XCJfZmllbGQuYXBwZW5kVG9cIlxuICAgICAgICAob25TZWxlY3QpPVwiX2ZpZWxkLm9uU2VsZWN0ID8gX2ZpZWxkLm9uU2VsZWN0KCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgKG9uVW5zZWxlY3QpPVwiX2ZpZWxkLm9uVW5zZWxlY3QgPyBfZmllbGQub25VbnNlbGVjdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvbkNsZWFyKT1cIl9maWVsZC5vbkNsZWFyID8gX2ZpZWxkLm9uQ2xlYXIoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAob25CbHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgW2xvb2t1cEVtcHR5TWVzc2FnZV09XCJfZmllbGQuZW1wdHlNZXNzYWdlXCJcbiAgICA+XG4gICAgPC9zLWxvb2t1cD5cbjwvZGl2PlxuXG4iXX0=
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxHQUVSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7O0FBUTVGLE1BQU0sT0FBTywwQkFBMEI7SUFDbEIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVoQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELFdBQVcsR0FBYyxFQUFFLENBQUM7SUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTJCLENBQUM7SUFFbEQsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWUsQ0FBQztJQUVyQyxRQUFRLEdBQXVCLElBQUksQ0FBQztJQUUzQyxRQUFRO1FBQ0osTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMscUJBQXFCLENBQUM7UUFDakUsSUFBSSxxQkFBcUI7WUFDckIscUJBQXFCO2lCQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN6QyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO3dHQTNCUSwwQkFBMEI7NEZBQTFCLDBCQUEwQixvVkN4QnZDLGtpQ0E2QkEsNENEUmMsbUJBQW1CLGtHQUFFLGVBQWUsNnVCQUFFLG1CQUFtQiwwVEFBRSxnQkFBZ0I7OzRGQUc1RSwwQkFBMEI7a0JBTHRDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBMb29rdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2F1dG9jb21wbGV0ZS1maWVsZCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9maWVsZC1sYWJlbC9maWVsZC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi4vYmFzZS1maWVsZC1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGaWVsZExhYmVsQ29tcG9uZW50LCBMb29rdXBDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRvb2x0aXBEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBCYXNlRmllbGRDb21wb25lbnRDb25maWcsIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHN1Z2dlc3Rpb25zOiB1bmtub3duW10gPSBbXTtcbiAgICBmaWVsZCA9IGlucHV0LnJlcXVpcmVkPEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPigpO1xuXG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIHB1YmxpYyBpbnB1dFJlZjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWdnZXN0aW9uc09ic2VydmFibGUgPSB0aGlzLmZpZWxkKCkuc3VnZ2VzdGlvbnNPYnNlcnZhYmxlO1xuICAgICAgICBpZiAoc3VnZ2VzdGlvbnNPYnNlcnZhYmxlKVxuICAgICAgICAgICAgc3VnZ2VzdGlvbnNPYnNlcnZhYmxlXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc3VnZ2VzdGlvbnMpID0+ICh0aGlzLnN1Z2dlc3Rpb25zID0gc3VnZ2VzdGlvbnMpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0UmVmKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRSZWYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgIH1cbn1cblxuIiwiQGxldCBfZmllbGQgPSBmaWVsZCgpO1xuQGlmIChpbnB1dFJlZikge1xuICAgIDxzLWZpZWxkLWxhYmVsXG4gICAgICAgIFtmaWVsZF09XCJfZmllbGRcIlxuICAgICAgICBbZmllbGRDb250YWluZXJSZWZdPVwiaW5wdXRSZWZcIlxuICAgID48L3MtZmllbGQtbGFiZWw+XG59XG5cbjxkaXYgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCI+XG4gICAgPHMtbG9va3VwXG4gICAgICAgIFtpZF09XCJfZmllbGQuaWQgfHwgX2ZpZWxkLm5hbWVcIlxuICAgICAgICBbbXVsdGlwbGVdPVwiX2ZpZWxkLm11bHRpcGxlIVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgIFtsb29rdXBTdWdnZXN0aW9uc109XCJzdWdnZXN0aW9uc1wiXG4gICAgICAgIFtkYXRhS2V5XT1cIl9maWVsZC5kYXRhS2V5IVwiXG4gICAgICAgIChvbkxvb2t1cFJlcXVlc3QpPVwiX2ZpZWxkLm9uU2VhcmNoID8gX2ZpZWxkLm9uU2VhcmNoKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgW2xvb2t1cERpc3BsYXlGaWVsZF09XCJfZmllbGQuZGlzcGxheUZpZWxkXCJcbiAgICAgICAgW3Nob3dTZWFyY2hdPVwiZmFsc2VcIlxuICAgICAgICBbbG9va3VwQXBwZW5kVG9dPVwiX2ZpZWxkLmFwcGVuZFRvXCJcbiAgICAgICAgKG9uU2VsZWN0KT1cIl9maWVsZC5vblNlbGVjdCA/IF9maWVsZC5vblNlbGVjdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvblVuc2VsZWN0KT1cIl9maWVsZC5vblVuc2VsZWN0ID8gX2ZpZWxkLm9uVW5zZWxlY3QoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAob25DbGVhcik9XCJfZmllbGQub25DbGVhciA/IF9maWVsZC5vbkNsZWFyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIFtsb29rdXBFbXB0eU1lc3NhZ2VdPVwiX2ZpZWxkLmVtcHR5TWVzc2FnZVwiXG4gICAgPlxuICAgIDwvcy1sb29rdXA+XG48L2Rpdj5cblxuIl19
@@ -1,8 +1,8 @@
1
- import { Component, EventEmitter, inject, input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, EventEmitter, inject, input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { Subject } from 'rxjs';
4
4
  import { first, takeUntil } from 'rxjs/operators';
5
- import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';
5
+ import { LocaleService, NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';
6
6
  import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
7
7
  import { FormFieldUtilsService } from '../../../services/form-field-utils.service';
8
8
  import { FieldLabelComponent } from '../../../components/field-label/field-label.component';
@@ -13,14 +13,13 @@ import { NgClass, NgTemplateOutlet } from '@angular/common';
13
13
  import { BignumberInputModule } from '@seniorsistemas/angular-components/bignumber-input';
14
14
  import { InputTextModule } from 'primeng/inputtext';
15
15
  import * as i0 from "@angular/core";
16
- import * as i1 from "@seniorsistemas/angular-components/locale";
17
- import * as i2 from "primeng/inputmask";
18
- import * as i3 from "@angular/forms";
19
- import * as i4 from "@seniorsistemas/angular-components/bignumber-input";
20
- import * as i5 from "primeng/inputtext";
16
+ import * as i1 from "primeng/inputmask";
17
+ import * as i2 from "@angular/forms";
18
+ import * as i3 from "@seniorsistemas/angular-components/bignumber-input";
19
+ import * as i4 from "primeng/inputtext";
21
20
  export class BignumberFieldComponent {
22
- localeService;
23
- changeDetectorRef;
21
+ localeService = inject(LocaleService);
22
+ changeDetectorRef = inject(ChangeDetectorRef);
24
23
  field = input.required();
25
24
  formControl = input.required();
26
25
  fieldUtils = inject(FormFieldUtilsService);
@@ -29,10 +28,6 @@ export class BignumberFieldComponent {
29
28
  onComplete = new EventEmitter();
30
29
  inputRef = null;
31
30
  ngUnsubscribe = new Subject();
32
- constructor(localeService, changeDetectorRef) {
33
- this.localeService = localeService;
34
- this.changeDetectorRef = changeDetectorRef;
35
- }
36
31
  ngOnInit() {
37
32
  const field = this.field();
38
33
  field.scale = field.scale ?? 2;
@@ -106,8 +101,8 @@ export class BignumberFieldComponent {
106
101
  this.field().scale = this.field().type === 'integer' ? 0 : 2;
107
102
  }
108
103
  }
109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberFieldComponent, deps: [{ token: i1.LocaleService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
110
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BignumberFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onInput: "onInput", onFocus: "onFocus", onComplete: "onComplete" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n @let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [autoClear]=\"autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"bignumber-field\">\n @if (_field.leftAddon) {\n <div class=\"button-left\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.leftAddon }\"></ng-container>\n </div>\n }\n @let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [alignTo]=\"_field.alignTo ?? 'left'\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n <div class=\"button-right\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.rightAddon }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template\n #addonRender\n let-button=\"button\"\n>\n <s-button\n [label]=\"button.label\"\n [priority]=\"button.priority ?? 'default'\"\n [iconClass]=\"button.icon\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(button.leftAddon)\"\n [auxiliary]=\"false\"\n (clicked)=\"button.callback?.()\"\n />\n</ng-template>\n\n", styles: ["s-number-field.ng-dirty.ng-invalid .p-inputtext{border-color:#c13018}s-number-field.ng-dirty.ng-invalid .p-inputtext:hover{border-color:highlight(#c13018)}.bignumber-field{display:flex;width:100%}.bignumber-field .input-text{width:auto;flex-grow:1}.bignumber-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.bignumber-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.bignumber-field:has(input:focus) .button-left button{border-color:#428bca!important}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.bignumber-field:has(.button-right) .input-text{border-top-right-radius:0;border-bottom-right-radius:0}.bignumber-field:has(.button-right) .button-right button{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.bignumber-field:has(input:focus) .button-right button{border-color:#428bca!important}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-right button{border-color:#c13018!important}\n"], dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "ngmodule", type: InputMaskModule }, { kind: "component", type: i2.InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "variant", "ariaLabel", "ariaLabelledBy", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autofocus", "autoFocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: BignumberInputModule }, { kind: "directive", type: i4.BignumberInputDirective, selector: "input[sBignumberInput]", inputs: ["precision", "scale", "minDecimalPlaces", "maxDecimalPlaces", "decimalSeparator", "thousandsSeparator", "thousandSeparator", "alignTo", "allowNegative", "placeholder"], outputs: ["minDecimalPlacesChange", "maxDecimalPlacesChange", "decimalSeparatorChange", "thousandSeparatorChange", "placeholderChange", "pasteRejected"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BignumberFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onInput: "onInput", onFocus: "onFocus", onComplete: "onComplete" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n @let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [autoClear]=\"autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"bignumber-field\">\n @if (_field.leftAddon) {\n <div class=\"button-left\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.leftAddon }\"></ng-container>\n </div>\n }\n @let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [alignTo]=\"_field.alignTo ?? 'left'\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n <div class=\"button-right\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.rightAddon }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template\n #addonRender\n let-button=\"button\"\n>\n <s-button\n [label]=\"button.label\"\n [priority]=\"button.priority ?? 'default'\"\n [iconClass]=\"button.icon\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(button.leftAddon)\"\n [auxiliary]=\"false\"\n (clicked)=\"button.callback?.()\"\n />\n</ng-template>\n\n", styles: ["s-number-field.ng-dirty.ng-invalid .p-inputtext{border-color:#c13018}s-number-field.ng-dirty.ng-invalid .p-inputtext:hover{border-color:highlight(#c13018)}.bignumber-field{display:flex;width:100%}.bignumber-field .input-text{width:auto;flex-grow:1}.bignumber-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.bignumber-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.bignumber-field:has(input:focus) .button-left button{border-color:#428bca!important}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.bignumber-field:has(.button-right) .input-text{border-top-right-radius:0;border-bottom-right-radius:0}.bignumber-field:has(.button-right) .button-right button{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.bignumber-field:has(input:focus) .button-right button{border-color:#428bca!important}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-right button{border-color:#c13018!important}\n"], dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "ngmodule", type: InputMaskModule }, { kind: "component", type: i1.InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "variant", "ariaLabel", "ariaLabelledBy", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autofocus", "autoFocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: BignumberInputModule }, { kind: "directive", type: i3.BignumberInputDirective, selector: "input[sBignumberInput]", inputs: ["precision", "scale", "minDecimalPlaces", "maxDecimalPlaces", "decimalSeparator", "thousandsSeparator", "thousandSeparator", "alignTo", "allowNegative", "placeholder"], outputs: ["minDecimalPlacesChange", "maxDecimalPlacesChange", "decimalSeparatorChange", "thousandSeparatorChange", "placeholderChange", "pasteRejected"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
111
106
  }
112
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberFieldComponent, decorators: [{
113
108
  type: Component,
@@ -122,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
122
117
  InputTextModule,
123
118
  NgTemplateOutlet,
124
119
  ], template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n @let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [autoClear]=\"autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"bignumber-field\">\n @if (_field.leftAddon) {\n <div class=\"button-left\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.leftAddon }\"></ng-container>\n </div>\n }\n @let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [alignTo]=\"_field.alignTo ?? 'left'\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n <div class=\"button-right\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.rightAddon }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template\n #addonRender\n let-button=\"button\"\n>\n <s-button\n [label]=\"button.label\"\n [priority]=\"button.priority ?? 'default'\"\n [iconClass]=\"button.icon\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(button.leftAddon)\"\n [auxiliary]=\"false\"\n (clicked)=\"button.callback?.()\"\n />\n</ng-template>\n\n", styles: ["s-number-field.ng-dirty.ng-invalid .p-inputtext{border-color:#c13018}s-number-field.ng-dirty.ng-invalid .p-inputtext:hover{border-color:highlight(#c13018)}.bignumber-field{display:flex;width:100%}.bignumber-field .input-text{width:auto;flex-grow:1}.bignumber-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.bignumber-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.bignumber-field:has(input:focus) .button-left button{border-color:#428bca!important}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.bignumber-field:has(.button-right) .input-text{border-top-right-radius:0;border-bottom-right-radius:0}.bignumber-field:has(.button-right) .button-right button{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.bignumber-field:has(input:focus) .button-right button{border-color:#428bca!important}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-right button{border-color:#c13018!important}\n"] }]
125
- }], ctorParameters: () => [{ type: i1.LocaleService }, { type: i0.ChangeDetectorRef }], propDecorators: { onInput: [{
120
+ }], propDecorators: { onInput: [{
126
121
  type: Output
127
122
  }], onFocus: [{
128
123
  type: Output
@@ -132,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
132
127
  type: ViewChild,
133
128
  args: ['inputRef']
134
129
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2JpZ251bWJlci9iaWdudW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFpQixtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztB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bkRwQywwb0dBcUZBLGduQ0Q3Q1EsbUJBQW1CLGlHQUNuQixlQUFlLHNpQkFDZixnQkFBZ0IsMk5BQ2hCLG1CQUFtQiwwa0JBQ25CLGVBQWUsdVVBQ2YsT0FBTyxtRkFDUCxvQkFBb0IsdWNBQ3BCLGVBQWUsMklBQ2YsZ0JBQWdCOzs0RkFHWCx1QkFBdUI7a0JBakJuQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNMLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ25CO2tIQVdNLE9BQU87c0JBRmIsTUFBTTtnQkFNQSxPQUFPO3NCQUZiLE1BQU07Z0JBTUEsVUFBVTtzQkFGaEIsTUFBTTtnQkFJZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExvY2FsZVNlcnZpY2UsIE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZC11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9maWVsZC1sYWJlbC9maWVsZC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG1hc2snO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJpZ251bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iaWdudW1iZXItaW5wdXQnO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgTnVtYmVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvbnVtYmVyLWZpZWxkJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdiaWdudW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JpZ251bWJlci1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZpZWxkTGFiZWxDb21wb25lbnQsXG4gICAgICAgIElucHV0TWFza01vZHVsZSxcbiAgICAgICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBCaWdudW1iZXJJbnB1dE1vZHVsZSxcbiAgICAgICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ251bWJlckZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB7XG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxCaWdudW1iZXJGaWVsZENvbmZpZyB8IE51bWJlckZpZWxkQ29uZmlnPigpO1xuXG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIGZpZWxkVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbklucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJykgaW5wdXRSZWY6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZCgpO1xuICAgICAgICBmaWVsZC5zY2FsZSA9IGZpZWxkLnNjYWxlID8/IDI7XG4gICAgICAgIGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID8/IG5ldyBOdW1iZXJMb2NhbGVPcHRpb25zKCk7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZmllbGQuYXV0b0NsZWFyID0gZmllbGQuYXV0b0NsZWFyID8/IHRydWU7XG4gICAgICAgICAgICBmaWVsZC5hbGxvd05lZ2F0aXZlID0gZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkLmFsaWduVG8gPSBmaWVsZC5zY2FsZSA/ICdyaWdodCcgOiAnbGVmdCc7XG5cbiAgICAgICAgdGhpcy5vbkxvY2FsZVNlcnZpY2UoKTtcblxuICAgICAgICB0aGlzLm9uRm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5vbkZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm9uRm9jdXM/LihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25JbnB1dC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKCkub25JbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5vbklucHV0Py4oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uQ29tcGxldGUucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZCgpLm9uQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkub25Db21wbGV0ZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25TY2FsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxvY2FsZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgfHwgdGhpcy5maWVsZCgpLnR5cGUgPT09ICdkb3VibGUnID8gJycgOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID8/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6IHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgfHwgdGhpcy5maWVsZCgpLnR5cGUgPT09ICdkb3VibGUnID8gJycgOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TY2FsZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gQ3VycmVudGx5LCB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGZvciB0aGUgZm9sbG93aW5nIHR5cGVzXG4gICAgICAgIC8vICdpbnRlZ2VyJywgJ2RlY2ltYWwnLCAnbnVtYmVyJ1xuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5maWVsZCgpLnNjYWxlKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZCgpLnNjYWxlID0gdGhpcy5maWVsZCgpLnR5cGUgPT09ICdpbnRlZ2VyJyA/IDAgOiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKSB7XG4gICAgPHMtZmllbGQtbGFiZWxcbiAgICAgICAgW2ZpZWxkXT1cIl9maWVsZFwiXG4gICAgICAgIFtmaWVsZENvbnRhaW5lclJlZl09XCJpbnB1dFJlZiEubmF0aXZlRWxlbWVudFwiXG4gICAgLz5cbn1cbkBpZiAoX2ZpZWxkLm1hc2spIHtcbiAgICBAbGV0IGF1dG9DbGVhciA9IF9maWVsZC50eXBlID09PSAnbnVtYmVyJyA/IChfZmllbGQuYXV0b0NsZWFyID8/IHRydWUpIDogZmFsc2U7XG4gICAgPHAtaW5wdXRNYXNrXG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpbnB1dElkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgW21hc2tdPVwiZmllbGRVdGlscy5nZXRGaWVsZFByb3BlcnR5TWFzayhfZmllbGQubWFzaylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBzdHlsZUNsYXNzPVwibW91c2V0cmFwXCJcbiAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29tcGxldGUpPVwib25Db21wbGV0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAob25JbnB1dCk9XCJvbklucHV0Lm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAgICAgW2F1dG9DbGVhcl09XCJhdXRvQ2xlYXJcIlxuICAgID5cbiAgICA8L3AtaW5wdXRNYXNrPlxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImJpZ251bWJlci1maWVsZFwiPlxuICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRvblJlbmRlcjsgY29udGV4dDogeyBidXR0b246IF9maWVsZC5sZWZ0QWRkb24gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGxldCBhbGxvd05lZ2F0aXZlID0gX2ZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gKF9maWVsZC5hbGxvd05lZ2F0aXZlID8/IHRydWUpIDogZmFsc2U7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0UmVmXG4gICAgICAgICAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIHNCaWdudW1iZXJJbnB1dFxuICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiYWxsb3dOZWdhdGl2ZVwiXG4gICAgICAgICAgICBbcHJlY2lzaW9uXT1cIlxuICAgICAgICAgICAgICAgIGZpZWxkVXRpbHMuaXNGdW5jdGlvbihfZmllbGQucHJlY2lzaW9uKSA/IGZpZWxkVXRpbHMudHJpZ2dlcihfZmllbGQucHJlY2lzaW9uKSA6IF9maWVsZC5wcmVjaXNpb25cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc2NhbGVdPVwiZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5zY2FsZSkgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnNjYWxlKSA6IF9maWVsZC5zY2FsZVwiXG4gICAgICAgICAgICBbZGVjaW1hbFNlcGFyYXRvcl09XCJfZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvciA/PyAnJ1wiXG4gICAgICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IgPz8gJydcIlxuICAgICAgICAgICAgW2FsaWduVG9dPVwiX2ZpZWxkLmFsaWduVG8gPz8gJ2xlZnQnXCJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIl9maWVsZC5icm93c2VyQXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidtb3VzZXRyYXAnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXG4gICAgICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cy5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKF9maWVsZC5yaWdodEFkZG9uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFkZG9uUmVuZGVyOyBjb250ZXh0OiB7IGJ1dHRvbjogX2ZpZWxkLnJpZ2h0QWRkb24gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlXG4gICAgI2FkZG9uUmVuZGVyXG4gICAgbGV0LWJ1dHRvbj1cImJ1dHRvblwiXG4+XG4gICAgPHMtYnV0dG9uXG4gICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWxcIlxuICAgICAgICBbcHJpb3JpdHldPVwiYnV0dG9uLnByaW9yaXR5ID8/ICdkZWZhdWx0J1wiXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiYnV0dG9uLmljb25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRVdGlscy5maWVsZFByb3BlcnR5SXNEaXNhYmxlZChidXR0b24ubGVmdEFkZG9uKVwiXG4gICAgICAgIFthdXhpbGlhcnldPVwiZmFsc2VcIlxuICAgICAgICAoY2xpY2tlZCk9XCJidXR0b24uY2FsbGJhY2s/LigpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2JpZ251bWJlci9iaWdudW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUduRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixF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b0dBcUZBLGduQ0Q3Q1EsbUJBQW1CLGlHQUNuQixlQUFlLHNpQkFDZixnQkFBZ0IsMk5BQ2hCLG1CQUFtQiwwa0JBQ25CLGVBQWUsdVVBQ2YsT0FBTyxtRkFDUCxvQkFBb0IsdWNBQ3BCLGVBQWUsMklBQ2YsZ0JBQWdCOzs0RkFHWCx1QkFBdUI7a0JBakJuQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNMLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ25COzhCQWNNLE9BQU87c0JBRmIsTUFBTTtnQkFNQSxPQUFPO3NCQUZiLE1BQU07Z0JBTUEsVUFBVTtzQkFGaEIsTUFBTTtnQkFJZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExvY2FsZVNlcnZpY2UsIE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZC11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9maWVsZC1sYWJlbC9maWVsZC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG1hc2snO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJpZ251bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iaWdudW1iZXItaW5wdXQnO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgTnVtYmVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvbnVtYmVyLWZpZWxkJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdiaWdudW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JpZ251bWJlci1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZpZWxkTGFiZWxDb21wb25lbnQsXG4gICAgICAgIElucHV0TWFza01vZHVsZSxcbiAgICAgICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBCaWdudW1iZXJJbnB1dE1vZHVsZSxcbiAgICAgICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ251bWJlckZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTZXJ2aWNlID0gaW5qZWN0KExvY2FsZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxCaWdudW1iZXJGaWVsZENvbmZpZyB8IE51bWJlckZpZWxkQ29uZmlnPigpO1xuXG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIGZpZWxkVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbklucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJykgaW5wdXRSZWY6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZCgpO1xuICAgICAgICBmaWVsZC5zY2FsZSA9IGZpZWxkLnNjYWxlID8/IDI7XG4gICAgICAgIGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID8/IG5ldyBOdW1iZXJMb2NhbGVPcHRpb25zKCk7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZmllbGQuYXV0b0NsZWFyID0gZmllbGQuYXV0b0NsZWFyID8/IHRydWU7XG4gICAgICAgICAgICBmaWVsZC5hbGxvd05lZ2F0aXZlID0gZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkLmFsaWduVG8gPSBmaWVsZC5zY2FsZSA/ICdyaWdodCcgOiAnbGVmdCc7XG5cbiAgICAgICAgdGhpcy5vbkxvY2FsZVNlcnZpY2UoKTtcblxuICAgICAgICB0aGlzLm9uRm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5vbkZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm9uRm9jdXM/LihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25JbnB1dC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKCkub25JbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5vbklucHV0Py4oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uQ29tcGxldGUucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZCgpLm9uQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkub25Db21wbGV0ZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25TY2FsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxvY2FsZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgfHwgdGhpcy5maWVsZCgpLnR5cGUgPT09ICdkb3VibGUnID8gJycgOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID8/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6IHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgfHwgdGhpcy5maWVsZCgpLnR5cGUgPT09ICdkb3VibGUnID8gJycgOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TY2FsZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gQ3VycmVudGx5LCB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGZvciB0aGUgZm9sbG93aW5nIHR5cGVzXG4gICAgICAgIC8vICdpbnRlZ2VyJywgJ2RlY2ltYWwnLCAnbnVtYmVyJ1xuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5maWVsZCgpLnNjYWxlKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZCgpLnNjYWxlID0gdGhpcy5maWVsZCgpLnR5cGUgPT09ICdpbnRlZ2VyJyA/IDAgOiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKSB7XG4gICAgPHMtZmllbGQtbGFiZWxcbiAgICAgICAgW2ZpZWxkXT1cIl9maWVsZFwiXG4gICAgICAgIFtmaWVsZENvbnRhaW5lclJlZl09XCJpbnB1dFJlZiEubmF0aXZlRWxlbWVudFwiXG4gICAgLz5cbn1cbkBpZiAoX2ZpZWxkLm1hc2spIHtcbiAgICBAbGV0IGF1dG9DbGVhciA9IF9maWVsZC50eXBlID09PSAnbnVtYmVyJyA/IChfZmllbGQuYXV0b0NsZWFyID8/IHRydWUpIDogZmFsc2U7XG4gICAgPHAtaW5wdXRNYXNrXG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpbnB1dElkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgW21hc2tdPVwiZmllbGRVdGlscy5nZXRGaWVsZFByb3BlcnR5TWFzayhfZmllbGQubWFzaylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBzdHlsZUNsYXNzPVwibW91c2V0cmFwXCJcbiAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29tcGxldGUpPVwib25Db21wbGV0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAob25JbnB1dCk9XCJvbklucHV0Lm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAgICAgW2F1dG9DbGVhcl09XCJhdXRvQ2xlYXJcIlxuICAgID5cbiAgICA8L3AtaW5wdXRNYXNrPlxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImJpZ251bWJlci1maWVsZFwiPlxuICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRvblJlbmRlcjsgY29udGV4dDogeyBidXR0b246IF9maWVsZC5sZWZ0QWRkb24gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGxldCBhbGxvd05lZ2F0aXZlID0gX2ZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gKF9maWVsZC5hbGxvd05lZ2F0aXZlID8/IHRydWUpIDogZmFsc2U7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0UmVmXG4gICAgICAgICAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIHNCaWdudW1iZXJJbnB1dFxuICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiYWxsb3dOZWdhdGl2ZVwiXG4gICAgICAgICAgICBbcHJlY2lzaW9uXT1cIlxuICAgICAgICAgICAgICAgIGZpZWxkVXRpbHMuaXNGdW5jdGlvbihfZmllbGQucHJlY2lzaW9uKSA/IGZpZWxkVXRpbHMudHJpZ2dlcihfZmllbGQucHJlY2lzaW9uKSA6IF9maWVsZC5wcmVjaXNpb25cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc2NhbGVdPVwiZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5zY2FsZSkgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnNjYWxlKSA6IF9maWVsZC5zY2FsZVwiXG4gICAgICAgICAgICBbZGVjaW1hbFNlcGFyYXRvcl09XCJfZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvciA/PyAnJ1wiXG4gICAgICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IgPz8gJydcIlxuICAgICAgICAgICAgW2FsaWduVG9dPVwiX2ZpZWxkLmFsaWduVG8gPz8gJ2xlZnQnXCJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIl9maWVsZC5icm93c2VyQXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidtb3VzZXRyYXAnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXG4gICAgICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cy5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKF9maWVsZC5yaWdodEFkZG9uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFkZG9uUmVuZGVyOyBjb250ZXh0OiB7IGJ1dHRvbjogX2ZpZWxkLnJpZ2h0QWRkb24gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlXG4gICAgI2FkZG9uUmVuZGVyXG4gICAgbGV0LWJ1dHRvbj1cImJ1dHRvblwiXG4+XG4gICAgPHMtYnV0dG9uXG4gICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWxcIlxuICAgICAgICBbcHJpb3JpdHldPVwiYnV0dG9uLnByaW9yaXR5ID8/ICdkZWZhdWx0J1wiXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiYnV0dG9uLmljb25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRVdGlscy5maWVsZFByb3BlcnR5SXNEaXNhYmxlZChidXR0b24ubGVmdEFkZG9uKVwiXG4gICAgICAgIFthdXhpbGlhcnldPVwiZmFsc2VcIlxuICAgICAgICAoY2xpY2tlZCk9XCJidXR0b24uY2FsbGJhY2s/LigpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, inject, input, ViewChild } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, inject, input, ViewChild } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
4
4
  import { PrimeNG } from 'primeng/config';
@@ -11,7 +11,7 @@ import * as i1 from "@angular/forms";
11
11
  import * as i2 from "primeng/datepicker";
12
12
  import * as i3 from "@ngx-translate/core";
13
13
  export class CalendarFieldComponent {
14
- changeDetectorRef;
14
+ changeDetectorRef = inject(ChangeDetectorRef);
15
15
  field = input.required();
16
16
  formControl = input.required();
17
17
  translateService = inject(TranslateService);
@@ -78,9 +78,6 @@ export class CalendarFieldComponent {
78
78
  hourFormat: this.translateService.instant('platform.angular_components.hour_format'),
79
79
  };
80
80
  primengConfig = inject(PrimeNG);
81
- constructor(changeDetectorRef) {
82
- this.changeDetectorRef = changeDetectorRef;
83
- }
84
81
  ngOnInit() {
85
82
  const field = this.field();
86
83
  if (isNullOrUndefined(field.selectionMode)) {
@@ -122,14 +119,14 @@ export class CalendarFieldComponent {
122
119
  const type = this.field()?.type;
123
120
  return type === 'localDateTime' || type === 'dateTime' || type === 'time';
124
121
  }
125
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
123
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CalendarFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n >\n </s-field-label>\n}\n\n@if (_field) {\n <div [sTooltip]=\"_field.tooltip\">\n <!-- A diretiva sCalendarMask n\u00E3o est\u00E1 suportando sele\u00E7\u00E3o m\u00FAltipla. A forma como ela foi escrita n\u00E3o permite identificar a quantidade de datas\n que est\u00E3o sendo selecionadas. Removi o uso dela quando est\u00E1 com selectionMode=multiple. Analisar a remove\u00E7\u00E3o completa desta diretiva. -->\n @if (_field.selectionMode !== 'multiple') {\n <p-datepicker\n #calendar\n sCalendarMask\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n >\n </p-datepicker>\n } @else {\n <!-- A \u00FAnica diferen\u00E7a deste bloco \u00E9 a remo\u00E7\u00E3o da diretiva sCalendarMask. -->\n <p-datepicker\n #calendar\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }\n </div>\n}\n\n", dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: DatePickerModule }, { kind: "component", type: i2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
127
124
  }
128
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarFieldComponent, decorators: [{
129
126
  type: Component,
130
127
  args: [{ standalone: true, imports: [FieldLabelComponent, ReactiveFormsModule, DatePickerModule, TooltipDirective, TranslateModule], template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n >\n </s-field-label>\n}\n\n@if (_field) {\n <div [sTooltip]=\"_field.tooltip\">\n <!-- A diretiva sCalendarMask n\u00E3o est\u00E1 suportando sele\u00E7\u00E3o m\u00FAltipla. A forma como ela foi escrita n\u00E3o permite identificar a quantidade de datas\n que est\u00E3o sendo selecionadas. Removi o uso dela quando est\u00E1 com selectionMode=multiple. Analisar a remove\u00E7\u00E3o completa desta diretiva. -->\n @if (_field.selectionMode !== 'multiple') {\n <p-datepicker\n #calendar\n sCalendarMask\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n >\n </p-datepicker>\n } @else {\n <!-- A \u00FAnica diferen\u00E7a deste bloco \u00E9 a remo\u00E7\u00E3o da diretiva sCalendarMask. -->\n <p-datepicker\n #calendar\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }\n </div>\n}\n\n" }]
131
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { calendar: [{
128
+ }], propDecorators: { calendar: [{
132
129
  type: ViewChild,
133
130
  args: ['calendar']
134
131
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9jYWxlbmRhci9jYWxlbmRhci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2NhbGVuZGFyL2NhbGVuZGFyLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBTTdFLE1BQU0sT0FBTyxzQkFBc0I7SUF3RUY7SUF2RTdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO0lBRTlDLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFlLENBQUM7SUFFM0Is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LGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLE1BQU0sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQztRQUNoQyxPQUFPLElBQUksS0FBSyxlQUFlLElBQUksSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzlFLENBQUM7d0dBM0hRLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDBiQ2hCbkMsdW1LQStGQSw0Q0RsRmMsbUJBQW1CLGlHQUFFLG1CQUFtQix5VEFBRSxnQkFBZ0IsMjFDQUFFLGdCQUFnQiwyTkFBRSxlQUFlOzs0RkFHOUYsc0JBQXNCO2tCQUxsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQztzRkEwR2pGLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQcmltZU5HIH0gZnJvbSAncHJpbWVuZy9jb25maWcnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlciwgRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBDYWxlbmRhckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2NhbGVuZGFyLWZpZWxkJztcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uL2Jhc2UtZmllbGQtY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGaWVsZExhYmVsQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEYXRlUGlja2VyTW9kdWxlLCBUb29sdGlwRGlyZWN0aXZlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FsZW5kYXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnLCBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAgIGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8Q2FsZW5kYXJGaWVsZENvbmZpZz4oKTtcblxuICAgIGZvcm1Db250cm9sID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2w+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgICBwdWJsaWMgbG9jYWxlID0ge1xuICAgICAgICBmaXJzdERheU9mV2VlazogMCxcbiAgICAgICAgZGF5TmFtZXM6IFtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc3VuZGF5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm1vbmRheScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50dWVzZGF5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLndlZG5lc2RheScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50aHVyc2RheScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5mcmlkYXknKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc2F0dXJkYXknKSxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5TmFtZXNTaG9ydDogW1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zdW5kYXlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubW9uZGF5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnR1ZXNkYXlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMud2VkbmVzZGF5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRodXJzZGF5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmZyaWRheV9zaG9ydCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zYXR1cmRheV9zaG9ydCcpLFxuICAgICAgICBdLFxuICAgICAgICBkYXlOYW1lc01pbjogW1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zdW5kYXlfbWluJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm1vbmRheV9taW4nKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudHVlc2RheV9taW4nKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMud2VkbmVzZGF5X21pbicpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50aHVyc2RheV9taW4nKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZnJpZGF5X21pbicpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zYXR1cmRheV9taW4nKSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhOYW1lczogW1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5qYW51YXJ5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmZlYnJ1YXJ5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm1hcmNoJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmFwcmlsJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm1heScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5qdW5lJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmp1bHknKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXVndXN0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnNlcHRlbWJlcicpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5vY3RvYmVyJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm5vdmVtYmVyJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmRlY2VtYmVyJyksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoTmFtZXNTaG9ydDogW1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5qYW51YXJ5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmZlYnJ1YXJ5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm1hcmNoX3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmFwcmlsX3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm1heV9zaG9ydCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5qdW5lX3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmp1bHlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXVndXN0X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnNlcHRlbWJlcl9zaG9ydCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5vY3RvYmVyX3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm5vdmVtYmVyX3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmRlY2VtYmVyX3Nob3J0JyksXG4gICAgICAgIF0sXG4gICAgICAgIHRvZGF5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRvZGF5JyksXG4gICAgICAgIGNsZWFyOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNsZWFyJyksXG4gICAgICAgIGRhdGVGb3JtYXQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9mb3JtYXQnKSxcbiAgICAgICAgaG91ckZvcm1hdDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5ob3VyX2Zvcm1hdCcpLFxuICAgIH07XG5cbiAgICBwcml2YXRlIHByaW1lbmdDb25maWcgPSBpbmplY3QoUHJpbWVORyk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGQoKTtcbiAgICAgICAgaWYoaXNOdWxsT3JVbmRlZmluZWQoZmllbGQuc2VsZWN0aW9uTW9kZSkpIHtcbiAgICAgICAgICAgIGZpZWxkLnNlbGVjdGlvbk1vZGUgPSAnc2luZ2xlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGlzTnVsbE9yVW5kZWZpbmVkKGZpZWxkLnJhbmdlU2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgZmllbGQucmFuZ2VTZXBhcmF0b3IgPSAnLSdcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGlzTnVsbE9yVW5kZWZpbmVkKGZpZWxkLnZpZXcpKSB7XG4gICAgICAgICAgICBmaWVsZC52aWV3ID0gJ2RhdGUnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChmaWVsZC5zaG93U2Vjb25kcykpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICBjYXNlICdsb2NhbERhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuc2hvd1NlY29uZHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IF9sb2NhbGUgPSBmaWVsZC5jYWxlbmRhckxvY2FsZU9wdGlvbnMgfHwgdGhpcy5sb2NhbGU7XG4gICAgICAgIHRoaXMucHJpbWVuZ0NvbmZpZy5zZXRUcmFuc2xhdGlvbih7XG4gICAgICAgICAgICAuLi5fbG9jYWxlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIGNhbGVuZGFyOiBEYXRlUGlja2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgaW5wdXRSZWY6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0UmVmKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRSZWYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYgPSB0aGlzLmNhbGVuZGFyPy5pbnB1dGZpZWxkVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCB0aW1lT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKT8udHlwZSA9PT0gJ3RpbWUnO1xuICAgIH1cblxuICAgIGdldCBzaG93VGltZSgpIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZmllbGQoKT8udHlwZTtcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdsb2NhbERhdGVUaW1lJyB8fCB0eXBlID09PSAnZGF0ZVRpbWUnIHx8IHR5cGUgPT09ICd0aW1lJztcbiAgICB9XG59XG5cbiIsIkBsZXQgX2ZpZWxkID0gZmllbGQoKTtcbkBpZiAoaW5wdXRSZWYpIHtcbiAgICA8cy1maWVsZC1sYWJlbFxuICAgICAgICBbZmllbGRdPVwiX2ZpZWxkXCJcbiAgICAgICAgW2ZpZWxkQ29udGFpbmVyUmVmXT1cImlucHV0UmVmXCJcbiAgICA+XG4gICAgPC9zLWZpZWxkLWxhYmVsPlxufVxuXG5AaWYgKF9maWVsZCkge1xuICAgIDxkaXYgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCI+XG4gICAgICAgIDwhLS0gQSBkaXJldGl2YSBzQ2FsZW5kYXJNYXNrIG7Do28gZXN0w6Egc3Vwb3J0YW5kbyBzZWxlw6fDo28gbcO6bHRpcGxhLiBBIGZvcm1hIGNvbW8gZWxhIGZvaSBlc2NyaXRhIG7Do28gcGVybWl0ZSBpZGVudGlmaWNhciBhIHF1YW50aWRhZGUgZGUgZGF0YXNcbiAgICAgICAgcXVlIGVzdMOjbyBzZW5kbyBzZWxlY2lvbmFkYXMuIFJlbW92aSBvIHVzbyBkZWxhIHF1YW5kbyBlc3TDoSBjb20gc2VsZWN0aW9uTW9kZT1tdWx0aXBsZS4gQW5hbGlzYXIgYSByZW1vdmXDp8OjbyBjb21wbGV0YSBkZXN0YSBkaXJldGl2YS4gLS0+XG4gICAgICAgIEBpZiAoX2ZpZWxkLnNlbGVjdGlvbk1vZGUgIT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgIDxwLWRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAjY2FsZW5kYXJcbiAgICAgICAgICAgICAgICBzQ2FsZW5kYXJNYXNrXG4gICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0aW1lT25seV09XCJ0aW1lT25seVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiX2ZpZWxkLnNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgICAgIFtyYW5nZVNlcGFyYXRvcl09XCJfZmllbGQucmFuZ2VTZXBhcmF0b3IgPyBfZmllbGQucmFuZ2VTZXBhcmF0b3IgOiBjYWxlbmRhci5yYW5nZVNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1NlY29uZHNdPVwiX2ZpZWxkLnNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgICAgICBbc2hvd09uRm9jdXNdPVwiX2ZpZWxkLnNob3dPbkZvY3VzXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGltZU9ubHkgPyAnZmEgZmEtY2xvY2snIDogJ2ZhIGZhLWNhbGVuZGFyJ1wiXG4gICAgICAgICAgICAgICAgW21pbkRhdGVdPVwiX2ZpZWxkLm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIl9maWVsZC5tYXhEYXRlXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdERhdGVdPVwiX2ZpZWxkLmRlZmF1bHREYXRlID8gX2ZpZWxkLmRlZmF1bHREYXRlIDogY2FsZW5kYXIuZGVmYXVsdERhdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIlxuICAgICAgICAgICAgICAgICAgICBfZmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zPy5kYXRlRm9ybWF0IHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9mb3JtYXQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaG91ckZvcm1hdF09XCJcbiAgICAgICAgICAgICAgICAgICAgX2ZpZWxkLmNhbGVuZGFyTG9jYWxlT3B0aW9ucz8uaG91ckZvcm1hdCB8fCAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmhvdXJfZm9ybWF0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiX2ZpZWxkLnZpZXcgPyBfZmllbGQudmlldyA6IGNhbGVuZGFyLnZpZXdcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGVDbGFzcz1cIm1vdXNldHJhcFwiXG4gICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIl9maWVsZC5hcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiX2ZpZWxkLm9uRm9jdXMgPyBfZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIl9maWVsZC5vblNlbGVjdCA/IF9maWVsZC5vblNlbGVjdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xvc2UpPVwiX2ZpZWxkLm9uQ2xvc2UgPyBfZmllbGQub25DbG9zZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uVG9kYXlDbGljayk9XCJfZmllbGQub25Ub2RheUNsaWNrID8gX2ZpZWxkLm9uVG9kYXlDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xlYXJDbGljayk9XCJfZmllbGQub25DbGVhckNsaWNrID8gX2ZpZWxkLm9uQ2xlYXJDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uTW9udGhDaGFuZ2UpPVwiX2ZpZWxkLm9uTW9udGhDaGFuZ2UgPyBfZmllbGQub25Nb250aENoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uWWVhckNoYW5nZSk9XCJfZmllbGQub25ZZWFyQ2hhbmdlID8gX2ZpZWxkLm9uWWVhckNoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3AtZGF0ZXBpY2tlcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8IS0tIEEgw7puaWNhIGRpZmVyZW7Dp2EgZGVzdGUgYmxvY28gw6kgYSByZW1vw6fDo28gZGEgZGlyZXRpdmEgc0NhbGVuZGFyTWFzay4gLS0+XG4gICAgICAgICAgICA8cC1kYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgI2NhbGVuZGFyXG4gICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0aW1lT25seV09XCJ0aW1lT25seVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiX2ZpZWxkLnNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgICAgIFtyYW5nZVNlcGFyYXRvcl09XCJfZmllbGQucmFuZ2VTZXBhcmF0b3IgPyBfZmllbGQucmFuZ2VTZXBhcmF0b3IgOiBjYWxlbmRhci5yYW5nZVNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1NlY29uZHNdPVwiX2ZpZWxkLnNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgICAgICBbc2hvd09uRm9jdXNdPVwiX2ZpZWxkLnNob3dPbkZvY3VzXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGltZU9ubHkgPyAnZmEgZmEtY2xvY2snIDogJ2ZhIGZhLWNhbGVuZGFyJ1wiXG4gICAgICAgICAgICAgICAgW21pbkRhdGVdPVwiX2ZpZWxkLm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIl9maWVsZC5tYXhEYXRlXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdERhdGVdPVwiX2ZpZWxkLmRlZmF1bHREYXRlID8gX2ZpZWxkLmRlZmF1bHREYXRlIDogY2FsZW5kYXIuZGVmYXVsdERhdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIlxuICAgICAgICAgICAgICAgICAgICBfZmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zPy5kYXRlRm9ybWF0IHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9mb3JtYXQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaG91ckZvcm1hdF09XCJcbiAgICAgICAgICAgICAgICAgICAgX2ZpZWxkLmNhbGVuZGFyTG9jYWxlT3B0aW9ucz8uaG91ckZvcm1hdCB8fCAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmhvdXJfZm9ybWF0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiX2ZpZWxkLnZpZXcgPyBfZmllbGQudmlldyA6IGNhbGVuZGFyLnZpZXdcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGVDbGFzcz1cIm1vdXNldHJhcFwiXG4gICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIl9maWVsZC5hcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiX2ZpZWxkLm9uRm9jdXMgPyBfZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIl9maWVsZC5vblNlbGVjdCA/IF9maWVsZC5vblNlbGVjdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xvc2UpPVwiX2ZpZWxkLm9uQ2xvc2UgPyBfZmllbGQub25DbG9zZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uVG9kYXlDbGljayk9XCJfZmllbGQub25Ub2RheUNsaWNrID8gX2ZpZWxkLm9uVG9kYXlDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xlYXJDbGljayk9XCJfZmllbGQub25DbGVhckNsaWNrID8gX2ZpZWxkLm9uQ2xlYXJDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uTW9udGhDaGFuZ2UpPVwiX2ZpZWxkLm9uTW9udGhDaGFuZ2UgPyBfZmllbGQub25Nb250aENoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uWWVhckNoYW5nZSk9XCJfZmllbGQub25ZZWFyQ2hhbmdlID8gX2ZpZWxkLm9uWWVhckNoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCInMG1zJ1wiXG4gICAgICAgICAgICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMG1zJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3AtZGF0ZXBpY2tlcj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9jYWxlbmRhci9jYWxlbmRhci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2NhbGVuZGFyL2NhbGVuZGFyLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBTTdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDZCxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUvRCxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FB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QUFDO0lBQzNDLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLE1BQU0sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQztRQUNoQyxPQUFPLElBQUksS0FBSyxlQUFlLElBQUksSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzlFLENBQUM7d0dBM0hRLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDBiQ2hCbkMsdW1LQStGQSw0Q0RsRmMsbUJBQW1CLGlHQUFFLG1CQUFtQix5VEFBRSxnQkFBZ0IsMjFDQUFFLGdCQUFnQiwyTkFBRSxlQUFlOzs0RkFHOUYsc0JBQXNCO2tCQUxsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzs4QkEwR2pGLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQcmltZU5HIH0gZnJvbSAncHJpbWVuZy9jb25maWcnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlciwgRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBDYWxlbmRhckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2NhbGVuZGFyLWZpZWxkJztcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uL2Jhc2UtZmllbGQtY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGaWVsZExhYmVsQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEYXRlUGlja2VyTW9kdWxlLCBUb29sdGlwRGlyZWN0aXZlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FsZW5kYXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnLCBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxDYWxlbmRhckZpZWxkQ29uZmlnPigpO1xuXG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBsb2NhbGUgPSB7XG4gICAgICAgIGZpcnN0RGF5T2ZXZWVrOiAwLFxuICAgICAgICBkYXlOYW1lczogW1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zdW5kYXknKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubW9uZGF5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnR1ZXNkYXknKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMud2VkbmVzZGF5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRodXJzZGF5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmZyaWRheScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zYXR1cmRheScpLFxuICAgICAgICBdLFxuICAgICAgICBkYXlOYW1lc1Nob3J0OiBbXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnN1bmRheV9zaG9ydCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5tb25kYXlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudHVlc2RheV9zaG9ydCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy53ZWRuZXNkYXlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudGh1cnNkYXlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZnJpZGF5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnNhdHVyZGF5X3Nob3J0JyksXG4gICAgICAgIF0sXG4gICAgICAgIGRheU5hbWVzTWluOiBbXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnN1bmRheV9taW4nKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubW9uZGF5X21pbicpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50dWVzZGF5X21pbicpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy53ZWRuZXNkYXlfbWluJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRodXJzZGF5X21pbicpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5mcmlkYXlfbWluJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnNhdHVyZGF5X21pbicpLFxuICAgICAgICBdLFxuICAgICAgICBtb250aE5hbWVzOiBbXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmphbnVhcnknKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZmVicnVhcnknKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubWFyY2gnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXByaWwnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubWF5JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmp1bmUnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuanVseScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5hdWd1c3QnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc2VwdGVtYmVyJyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm9jdG9iZXInKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubm92ZW1iZXInKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGVjZW1iZXInKSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhOYW1lc1Nob3J0OiBbXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmphbnVhcnlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZmVicnVhcnlfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubWFyY2hfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXByaWxfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubWF5X3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmp1bmVfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuanVseV9zaG9ydCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5hdWd1c3Rfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc2VwdGVtYmVyX3Nob3J0JyksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm9jdG9iZXJfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubm92ZW1iZXJfc2hvcnQnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGVjZW1iZXJfc2hvcnQnKSxcbiAgICAgICAgXSxcbiAgICAgICAgdG9kYXk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudG9kYXknKSxcbiAgICAgICAgY2xlYXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY2xlYXInKSxcbiAgICAgICAgZGF0ZUZvcm1hdDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5kYXRlX2Zvcm1hdCcpLFxuICAgICAgICBob3VyRm9ybWF0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmhvdXJfZm9ybWF0JyksXG4gICAgfTtcblxuICAgIHByaXZhdGUgcHJpbWVuZ0NvbmZpZyA9IGluamVjdChQcmltZU5HKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGQoKTtcbiAgICAgICAgaWYoaXNOdWxsT3JVbmRlZmluZWQoZmllbGQuc2VsZWN0aW9uTW9kZSkpIHtcbiAgICAgICAgICAgIGZpZWxkLnNlbGVjdGlvbk1vZGUgPSAnc2luZ2xlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGlzTnVsbE9yVW5kZWZpbmVkKGZpZWxkLnJhbmdlU2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgZmllbGQucmFuZ2VTZXBhcmF0b3IgPSAnLSdcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGlzTnVsbE9yVW5kZWZpbmVkKGZpZWxkLnZpZXcpKSB7XG4gICAgICAgICAgICBmaWVsZC52aWV3ID0gJ2RhdGUnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChmaWVsZC5zaG93U2Vjb25kcykpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICBjYXNlICdsb2NhbERhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuc2hvd1NlY29uZHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IF9sb2NhbGUgPSBmaWVsZC5jYWxlbmRhckxvY2FsZU9wdGlvbnMgfHwgdGhpcy5sb2NhbGU7XG4gICAgICAgIHRoaXMucHJpbWVuZ0NvbmZpZy5zZXRUcmFuc2xhdGlvbih7XG4gICAgICAgICAgICAuLi5fbG9jYWxlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIGNhbGVuZGFyOiBEYXRlUGlja2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgaW5wdXRSZWY6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldElucHV0UmVmKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRSZWYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYgPSB0aGlzLmNhbGVuZGFyPy5pbnB1dGZpZWxkVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCB0aW1lT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKT8udHlwZSA9PT0gJ3RpbWUnO1xuICAgIH1cblxuICAgIGdldCBzaG93VGltZSgpIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZmllbGQoKT8udHlwZTtcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdsb2NhbERhdGVUaW1lJyB8fCB0eXBlID09PSAnZGF0ZVRpbWUnIHx8IHR5cGUgPT09ICd0aW1lJztcbiAgICB9XG59XG5cbiIsIkBsZXQgX2ZpZWxkID0gZmllbGQoKTtcbkBpZiAoaW5wdXRSZWYpIHtcbiAgICA8cy1maWVsZC1sYWJlbFxuICAgICAgICBbZmllbGRdPVwiX2ZpZWxkXCJcbiAgICAgICAgW2ZpZWxkQ29udGFpbmVyUmVmXT1cImlucHV0UmVmXCJcbiAgICA+XG4gICAgPC9zLWZpZWxkLWxhYmVsPlxufVxuXG5AaWYgKF9maWVsZCkge1xuICAgIDxkaXYgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCI+XG4gICAgICAgIDwhLS0gQSBkaXJldGl2YSBzQ2FsZW5kYXJNYXNrIG7Do28gZXN0w6Egc3Vwb3J0YW5kbyBzZWxlw6fDo28gbcO6bHRpcGxhLiBBIGZvcm1hIGNvbW8gZWxhIGZvaSBlc2NyaXRhIG7Do28gcGVybWl0ZSBpZGVudGlmaWNhciBhIHF1YW50aWRhZGUgZGUgZGF0YXNcbiAgICAgICAgcXVlIGVzdMOjbyBzZW5kbyBzZWxlY2lvbmFkYXMuIFJlbW92aSBvIHVzbyBkZWxhIHF1YW5kbyBlc3TDoSBjb20gc2VsZWN0aW9uTW9kZT1tdWx0aXBsZS4gQW5hbGlzYXIgYSByZW1vdmXDp8OjbyBjb21wbGV0YSBkZXN0YSBkaXJldGl2YS4gLS0+XG4gICAgICAgIEBpZiAoX2ZpZWxkLnNlbGVjdGlvbk1vZGUgIT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgIDxwLWRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAjY2FsZW5kYXJcbiAgICAgICAgICAgICAgICBzQ2FsZW5kYXJNYXNrXG4gICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0aW1lT25seV09XCJ0aW1lT25seVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiX2ZpZWxkLnNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgICAgIFtyYW5nZVNlcGFyYXRvcl09XCJfZmllbGQucmFuZ2VTZXBhcmF0b3IgPyBfZmllbGQucmFuZ2VTZXBhcmF0b3IgOiBjYWxlbmRhci5yYW5nZVNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1NlY29uZHNdPVwiX2ZpZWxkLnNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgICAgICBbc2hvd09uRm9jdXNdPVwiX2ZpZWxkLnNob3dPbkZvY3VzXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGltZU9ubHkgPyAnZmEgZmEtY2xvY2snIDogJ2ZhIGZhLWNhbGVuZGFyJ1wiXG4gICAgICAgICAgICAgICAgW21pbkRhdGVdPVwiX2ZpZWxkLm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIl9maWVsZC5tYXhEYXRlXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdERhdGVdPVwiX2ZpZWxkLmRlZmF1bHREYXRlID8gX2ZpZWxkLmRlZmF1bHREYXRlIDogY2FsZW5kYXIuZGVmYXVsdERhdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIlxuICAgICAgICAgICAgICAgICAgICBfZmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zPy5kYXRlRm9ybWF0IHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9mb3JtYXQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaG91ckZvcm1hdF09XCJcbiAgICAgICAgICAgICAgICAgICAgX2ZpZWxkLmNhbGVuZGFyTG9jYWxlT3B0aW9ucz8uaG91ckZvcm1hdCB8fCAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmhvdXJfZm9ybWF0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiX2ZpZWxkLnZpZXcgPyBfZmllbGQudmlldyA6IGNhbGVuZGFyLnZpZXdcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGVDbGFzcz1cIm1vdXNldHJhcFwiXG4gICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIl9maWVsZC5hcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiX2ZpZWxkLm9uRm9jdXMgPyBfZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIl9maWVsZC5vblNlbGVjdCA/IF9maWVsZC5vblNlbGVjdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xvc2UpPVwiX2ZpZWxkLm9uQ2xvc2UgPyBfZmllbGQub25DbG9zZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uVG9kYXlDbGljayk9XCJfZmllbGQub25Ub2RheUNsaWNrID8gX2ZpZWxkLm9uVG9kYXlDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xlYXJDbGljayk9XCJfZmllbGQub25DbGVhckNsaWNrID8gX2ZpZWxkLm9uQ2xlYXJDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uTW9udGhDaGFuZ2UpPVwiX2ZpZWxkLm9uTW9udGhDaGFuZ2UgPyBfZmllbGQub25Nb250aENoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uWWVhckNoYW5nZSk9XCJfZmllbGQub25ZZWFyQ2hhbmdlID8gX2ZpZWxkLm9uWWVhckNoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3AtZGF0ZXBpY2tlcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8IS0tIEEgw7puaWNhIGRpZmVyZW7Dp2EgZGVzdGUgYmxvY28gw6kgYSByZW1vw6fDo28gZGEgZGlyZXRpdmEgc0NhbGVuZGFyTWFzay4gLS0+XG4gICAgICAgICAgICA8cC1kYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgI2NhbGVuZGFyXG4gICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0aW1lT25seV09XCJ0aW1lT25seVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiX2ZpZWxkLnNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgICAgIFtyYW5nZVNlcGFyYXRvcl09XCJfZmllbGQucmFuZ2VTZXBhcmF0b3IgPyBfZmllbGQucmFuZ2VTZXBhcmF0b3IgOiBjYWxlbmRhci5yYW5nZVNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd1NlY29uZHNdPVwiX2ZpZWxkLnNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgICAgICBbc2hvd09uRm9jdXNdPVwiX2ZpZWxkLnNob3dPbkZvY3VzXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGltZU9ubHkgPyAnZmEgZmEtY2xvY2snIDogJ2ZhIGZhLWNhbGVuZGFyJ1wiXG4gICAgICAgICAgICAgICAgW21pbkRhdGVdPVwiX2ZpZWxkLm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIl9maWVsZC5tYXhEYXRlXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdERhdGVdPVwiX2ZpZWxkLmRlZmF1bHREYXRlID8gX2ZpZWxkLmRlZmF1bHREYXRlIDogY2FsZW5kYXIuZGVmYXVsdERhdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIlxuICAgICAgICAgICAgICAgICAgICBfZmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zPy5kYXRlRm9ybWF0IHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9mb3JtYXQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaG91ckZvcm1hdF09XCJcbiAgICAgICAgICAgICAgICAgICAgX2ZpZWxkLmNhbGVuZGFyTG9jYWxlT3B0aW9ucz8uaG91ckZvcm1hdCB8fCAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmhvdXJfZm9ybWF0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiX2ZpZWxkLnZpZXcgPyBfZmllbGQudmlldyA6IGNhbGVuZGFyLnZpZXdcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGVDbGFzcz1cIm1vdXNldHJhcFwiXG4gICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIl9maWVsZC5hcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiX2ZpZWxkLm9uRm9jdXMgPyBfZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIl9maWVsZC5vblNlbGVjdCA/IF9maWVsZC5vblNlbGVjdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xvc2UpPVwiX2ZpZWxkLm9uQ2xvc2UgPyBfZmllbGQub25DbG9zZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uVG9kYXlDbGljayk9XCJfZmllbGQub25Ub2RheUNsaWNrID8gX2ZpZWxkLm9uVG9kYXlDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xlYXJDbGljayk9XCJfZmllbGQub25DbGVhckNsaWNrID8gX2ZpZWxkLm9uQ2xlYXJDbGljaygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uTW9udGhDaGFuZ2UpPVwiX2ZpZWxkLm9uTW9udGhDaGFuZ2UgPyBfZmllbGQub25Nb250aENoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKG9uWWVhckNoYW5nZSk9XCJfZmllbGQub25ZZWFyQ2hhbmdlID8gX2ZpZWxkLm9uWWVhckNoYW5nZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCInMG1zJ1wiXG4gICAgICAgICAgICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMG1zJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3AtZGF0ZXBpY2tlcj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG4iXX0=