desy-angular 7.0.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/esm2020/lib/desy-angular.module.mjs +4 -4
  2. package/esm2020/lib/desy-buttons/components/button/button.component.mjs +5 -5
  3. package/esm2020/lib/desy-buttons/components/button-loader/button-loader.component.mjs +3 -3
  4. package/esm2020/lib/desy-buttons/components/dropdown/dropdown.component.mjs +6 -7
  5. package/esm2020/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +11 -4
  6. package/esm2020/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +3 -3
  7. package/esm2020/lib/desy-buttons/components/listbox/listbox.component.mjs +142 -94
  8. package/esm2020/lib/desy-buttons/components/pill/pill.component.mjs +3 -3
  9. package/esm2020/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +3 -3
  10. package/esm2020/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +3 -3
  11. package/esm2020/lib/desy-buttons/components/toggle/toggle.component.mjs +3 -3
  12. package/esm2020/lib/desy-buttons/desy-buttons.module.mjs +4 -4
  13. package/esm2020/lib/desy-commons/components/content/content.component.mjs +3 -3
  14. package/esm2020/lib/desy-commons/components/description/description.component.mjs +3 -3
  15. package/esm2020/lib/desy-commons/components/divider/divider.component.mjs +3 -3
  16. package/esm2020/lib/desy-commons/components/icon/icon.component.mjs +3 -3
  17. package/esm2020/lib/desy-commons/components/title/title.component.mjs +3 -3
  18. package/esm2020/lib/desy-commons/desy-commons.module.mjs +4 -4
  19. package/esm2020/lib/desy-forms/components/character-count/character-count.component.mjs +3 -3
  20. package/esm2020/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +25 -43
  21. package/esm2020/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +23 -0
  22. package/esm2020/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +98 -67
  23. package/esm2020/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +6 -4
  24. package/esm2020/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +3 -3
  25. package/esm2020/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +3 -3
  26. package/esm2020/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +6 -4
  27. package/esm2020/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +6 -4
  28. package/esm2020/lib/desy-forms/components/date-input/date-input.component.mjs +29 -6
  29. package/esm2020/lib/desy-forms/components/error-message/error-message.component.mjs +3 -3
  30. package/esm2020/lib/desy-forms/components/fieldset/fieldset.component.mjs +3 -3
  31. package/esm2020/lib/desy-forms/components/fieldset/legend/legend.component.mjs +3 -3
  32. package/esm2020/lib/desy-forms/components/file-upload/file-upload.component.mjs +3 -3
  33. package/esm2020/lib/desy-forms/components/form-field/form-field.component.mjs +4 -4
  34. package/esm2020/lib/desy-forms/components/hint/hint.component.mjs +3 -3
  35. package/esm2020/lib/desy-forms/components/input/input.component.mjs +6 -6
  36. package/esm2020/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +3 -3
  37. package/esm2020/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +10 -5
  38. package/esm2020/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +3 -3
  39. package/esm2020/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +10 -5
  40. package/esm2020/lib/desy-forms/components/input-group/input-group.component.mjs +12 -6
  41. package/esm2020/lib/desy-forms/components/label/label.component.mjs +3 -3
  42. package/esm2020/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +22 -34
  43. package/esm2020/lib/desy-forms/components/radios/radios-parent.component.mjs +23 -0
  44. package/esm2020/lib/desy-forms/components/radios/radios.component.mjs +109 -71
  45. package/esm2020/lib/desy-forms/components/search-bar/search-bar.component.mjs +7 -13
  46. package/esm2020/lib/desy-forms/components/select/option/option.component.mjs +4 -4
  47. package/esm2020/lib/desy-forms/components/select/option-group/option-group.component.mjs +3 -3
  48. package/esm2020/lib/desy-forms/components/select/select-item/select-item.component.mjs +3 -3
  49. package/esm2020/lib/desy-forms/components/select/select.component.mjs +7 -7
  50. package/esm2020/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +3 -3
  51. package/esm2020/lib/desy-forms/components/textarea/textarea.component.mjs +3 -3
  52. package/esm2020/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +3 -3
  53. package/esm2020/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +7 -6
  54. package/esm2020/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +3 -3
  55. package/esm2020/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +3 -3
  56. package/esm2020/lib/desy-forms/components/tree/tree.component.mjs +12 -4
  57. package/esm2020/lib/desy-forms/desy-forms.module.mjs +6 -6
  58. package/esm2020/lib/desy-forms/directives/condition.directive.mjs +3 -3
  59. package/esm2020/lib/desy-forms/interfaces/item-date-input-data.mjs +1 -1
  60. package/esm2020/lib/desy-forms/interfaces/select-item-data.mjs +1 -1
  61. package/esm2020/lib/desy-modals/components/dialog/dialog.component.mjs +24 -4
  62. package/esm2020/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +3 -3
  63. package/esm2020/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +3 -3
  64. package/esm2020/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +3 -3
  65. package/esm2020/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +3 -3
  66. package/esm2020/lib/desy-modals/components/modal/modal.component.mjs +3 -3
  67. package/esm2020/lib/desy-modals/desy-modals.module.mjs +4 -4
  68. package/esm2020/lib/desy-modals/interfaces/dialog-options.mjs +1 -1
  69. package/esm2020/lib/desy-modals/services/dialog.service.mjs +3 -3
  70. package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +3 -3
  71. package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  72. package/esm2020/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +3 -3
  73. package/esm2020/lib/desy-nav/components/error-summary/error-summary.component.mjs +3 -3
  74. package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +3 -3
  75. package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +3 -3
  76. package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +3 -3
  77. package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +3 -3
  78. package/esm2020/lib/desy-nav/components/footer/footer.component.mjs +3 -3
  79. package/esm2020/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +3 -3
  80. package/esm2020/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +5 -5
  81. package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +3 -3
  82. package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +3 -3
  83. package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +3 -3
  84. package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +3 -3
  85. package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +3 -3
  86. package/esm2020/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +3 -3
  87. package/esm2020/lib/desy-nav/components/header/header.component.mjs +8 -10
  88. package/esm2020/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +40 -0
  89. package/esm2020/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +14 -0
  90. package/esm2020/lib/desy-nav/components/links-list/links-list.component.mjs +42 -0
  91. package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +3 -3
  92. package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +3 -3
  93. package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +3 -3
  94. package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +3 -3
  95. package/esm2020/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +3 -3
  96. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +3 -3
  97. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +3 -3
  98. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +3 -3
  99. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +3 -3
  100. package/esm2020/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +3 -3
  101. package/esm2020/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +3 -3
  102. package/esm2020/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +3 -3
  103. package/esm2020/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +3 -3
  104. package/esm2020/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +3 -3
  105. package/esm2020/lib/desy-nav/components/menubar/menubar.component.mjs +3 -3
  106. package/esm2020/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +3 -3
  107. package/esm2020/lib/desy-nav/components/nav/nav.component.mjs +3 -3
  108. package/esm2020/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +3 -3
  109. package/esm2020/lib/desy-nav/components/notification/notification.component.mjs +3 -3
  110. package/esm2020/lib/desy-nav/components/skip-link/skip-link.component.mjs +11 -5
  111. package/esm2020/lib/desy-nav/desy-nav.module.mjs +25 -6
  112. package/esm2020/lib/desy-nav/interfaces/header-skiplink-data.mjs +2 -0
  113. package/esm2020/lib/desy-pagination/components/pagination/pagination.component.mjs +53 -30
  114. package/esm2020/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +3 -3
  115. package/esm2020/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +3 -3
  116. package/esm2020/lib/desy-pagination/desy-pagination.module.mjs +4 -4
  117. package/esm2020/lib/desy-tables/components/table/components/table-caption.component.mjs +3 -3
  118. package/esm2020/lib/desy-tables/components/table/components/table-cell.component.mjs +3 -3
  119. package/esm2020/lib/desy-tables/components/table/components/table-header.component.mjs +3 -3
  120. package/esm2020/lib/desy-tables/components/table/components/table-row.component.mjs +3 -3
  121. package/esm2020/lib/desy-tables/components/table/table.component.mjs +3 -3
  122. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +3 -3
  123. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +3 -3
  124. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +3 -3
  125. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +3 -3
  126. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +3 -3
  127. package/esm2020/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +3 -3
  128. package/esm2020/lib/desy-tables/desy-tables.module.mjs +4 -4
  129. package/esm2020/lib/desy-tables/directives/cell.directive.mjs +3 -3
  130. package/esm2020/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +3 -3
  131. package/esm2020/lib/desy-tables/directives/row.directive.mjs +3 -3
  132. package/esm2020/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +3 -3
  133. package/esm2020/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
  134. package/esm2020/lib/desy-views/components/accordion/accordion.component.mjs +3 -3
  135. package/esm2020/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +3 -3
  136. package/esm2020/lib/desy-views/components/accordion-history/accordion-history.component.mjs +3 -3
  137. package/esm2020/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +3 -3
  138. package/esm2020/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +3 -3
  139. package/esm2020/lib/desy-views/components/alert/alert.component.mjs +3 -3
  140. package/esm2020/lib/desy-views/components/collapsible/collapsible.component.mjs +3 -3
  141. package/esm2020/lib/desy-views/components/description-list/definition/definition.component.mjs +3 -3
  142. package/esm2020/lib/desy-views/components/description-list/description-item/description-item.component.mjs +3 -3
  143. package/esm2020/lib/desy-views/components/description-list/description-list.component.mjs +3 -3
  144. package/esm2020/lib/desy-views/components/description-list/term/term.component.mjs +3 -3
  145. package/esm2020/lib/desy-views/components/details/details.component.mjs +3 -3
  146. package/esm2020/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +3 -3
  147. package/esm2020/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +3 -3
  148. package/esm2020/lib/desy-views/components/item/item-item/item-item.component.mjs +3 -3
  149. package/esm2020/lib/desy-views/components/item/item.component.mjs +11 -16
  150. package/esm2020/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +3 -3
  151. package/esm2020/lib/desy-views/components/media-object/media-object.component.mjs +3 -3
  152. package/esm2020/lib/desy-views/components/spinner/spinner.component.mjs +3 -3
  153. package/esm2020/lib/desy-views/components/status/status.component.mjs +14 -5
  154. package/esm2020/lib/desy-views/components/status-item/status-item.component.mjs +3 -3
  155. package/esm2020/lib/desy-views/components/tabs/panel/panel.component.mjs +3 -3
  156. package/esm2020/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +3 -3
  157. package/esm2020/lib/desy-views/components/tabs/tabs.component.mjs +3 -3
  158. package/esm2020/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +3 -3
  159. package/esm2020/lib/desy-views/components/tooltip/tooltip.component.mjs +3 -3
  160. package/esm2020/lib/desy-views/desy-views.module.mjs +4 -4
  161. package/esm2020/lib/desy-views/services/alert.service.mjs +3 -3
  162. package/esm2020/lib/shared/components/accessibility/accessibility.component.mjs +3 -3
  163. package/esm2020/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +3 -3
  164. package/esm2020/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +3 -3
  165. package/esm2020/lib/shared/components/content-base/content-base.component.mjs +3 -3
  166. package/esm2020/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +3 -3
  167. package/esm2020/lib/shared/directives/attribute-change.directive.mjs +24 -19
  168. package/esm2020/lib/shared/directives/click-outside.directive.mjs +3 -3
  169. package/esm2020/lib/shared/directives/content-change.directive.mjs +3 -3
  170. package/esm2020/lib/shared/directives/custom-inner-content.directive.mjs +3 -3
  171. package/esm2020/lib/shared/directives/inner-content.directive.mjs +3 -3
  172. package/esm2020/lib/shared/pipes/external-href.pipe.mjs +5 -5
  173. package/esm2020/lib/shared/pipes/inner-html.pipe.mjs +3 -3
  174. package/esm2020/lib/shared/pipes/make-html-list.pipe.mjs +3 -3
  175. package/esm2020/lib/shared/shared.module.mjs +4 -4
  176. package/esm2020/public-api.mjs +5 -1
  177. package/fesm2015/desy-angular.mjs +1205 -1002
  178. package/fesm2015/desy-angular.mjs.map +1 -1
  179. package/fesm2020/desy-angular.mjs +1205 -1000
  180. package/fesm2020/desy-angular.mjs.map +1 -1
  181. package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +3 -1
  182. package/lib/desy-buttons/components/listbox/listbox.component.d.ts +15 -4
  183. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +5 -3
  184. package/lib/desy-forms/components/checkboxes/checkboxes-parent.component.d.ts +21 -0
  185. package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +19 -11
  186. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +2 -1
  187. package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +2 -1
  188. package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +2 -1
  189. package/lib/desy-forms/components/date-input/date-input.component.d.ts +5 -1
  190. package/lib/desy-forms/components/form-field/form-field.component.d.ts +9 -9
  191. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +1 -0
  192. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +1 -0
  193. package/lib/desy-forms/components/input-group/input-group.component.d.ts +2 -0
  194. package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +5 -4
  195. package/lib/desy-forms/components/radios/radios-parent.component.d.ts +21 -0
  196. package/lib/desy-forms/components/radios/radios.component.d.ts +19 -10
  197. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +2 -4
  198. package/lib/desy-forms/components/select/option/option.component.d.ts +1 -1
  199. package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +1 -0
  200. package/lib/desy-forms/components/tree/tree.component.d.ts +4 -0
  201. package/lib/desy-forms/interfaces/item-date-input-data.d.ts +1 -0
  202. package/lib/desy-forms/interfaces/select-item-data.d.ts +1 -1
  203. package/lib/desy-modals/components/dialog/dialog.component.d.ts +2 -1
  204. package/lib/desy-modals/interfaces/dialog-options.d.ts +1 -0
  205. package/lib/desy-nav/components/header/header.component.d.ts +3 -2
  206. package/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.d.ts +20 -0
  207. package/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.d.ts +7 -0
  208. package/lib/desy-nav/components/links-list/links-list.component.d.ts +13 -0
  209. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +1 -0
  210. package/lib/desy-nav/desy-nav.module.d.ts +29 -26
  211. package/lib/desy-nav/interfaces/header-skiplink-data.d.ts +7 -0
  212. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +12 -7
  213. package/lib/desy-views/components/item/item.component.d.ts +1 -0
  214. package/lib/desy-views/components/status/status.component.d.ts +3 -1
  215. package/lib/shared/directives/attribute-change.directive.d.ts +2 -1
  216. package/package.json +1 -1
  217. package/public-api.d.ts +4 -0
  218. package/esm2020/lib/desy-forms/models/checkbox-service-item.component.mjs +0 -9
  219. package/esm2020/lib/desy-forms/models/radio-service-item.component.mjs +0 -9
  220. package/esm2020/lib/desy-forms/services/checkbox.service.mjs +0 -61
  221. package/esm2020/lib/desy-forms/services/radio.service.mjs +0 -53
  222. package/lib/desy-forms/models/checkbox-service-item.component.d.ts +0 -13
  223. package/lib/desy-forms/models/radio-service-item.component.d.ts +0 -12
  224. package/lib/desy-forms/services/checkbox.service.d.ts +0 -14
  225. package/lib/desy-forms/services/radio.service.d.ts +0 -13
@@ -1,55 +1,50 @@
1
- import { Component, ContentChildren, EventEmitter, Host, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, ContentChildren, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { ContentBaseComponent } from '../../../../shared/components';
3
3
  import { LabelComponent } from '../../label/label.component';
4
4
  import { ContentComponent } from '../../../../desy-commons/components/content/content.component';
5
5
  import { animate, animateChild, query, state, style, transition, trigger } from '@angular/animations';
6
6
  import { HintComponent } from '../../hint/hint.component';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../../services/radio.service";
8
+ import * as i1 from "../radios-parent.component";
9
9
  import * as i2 from "@angular/common";
10
10
  import * as i3 from "../../../../shared/directives/custom-inner-content.directive";
11
11
  import * as i4 from "../../label/label.component";
12
12
  import * as i5 from "../../../../shared/pipes/make-html-list.pipe";
13
- // TODO los hijos no pueden contener al padre, los metodos hay que pasarlos al padre (radios)
14
13
  export class RadioItemComponent extends ContentBaseComponent {
15
- constructor(changeDetectorRef, radioService) {
14
+ constructor(radios, changeDetectorRef) {
16
15
  super();
16
+ this.radios = radios;
17
17
  this.changeDetectorRef = changeDetectorRef;
18
- this.radioService = radioService;
19
18
  this.checkedChange = new EventEmitter();
20
19
  this.index = 0;
21
20
  }
22
21
  ngOnInit() {
23
- this.radioService.markForUpdateCheckboxIds(this.name);
22
+ this.radios.markForUpdateRadiosIds();
24
23
  }
25
24
  ngOnDestroy() {
26
- this.radioService.markForUpdateCheckboxIds(this.name);
25
+ this.radios.markForUpdateRadiosIds();
27
26
  }
28
27
  ngOnChanges(changes) {
29
28
  if (this.checked !== this.lastChecked && this.isInit()) {
30
29
  this.setChecked(this.checked);
31
- this.radioService.updateValueFromRadioItems(this.name);
30
+ this.radios.updateValueFromRadioItems();
32
31
  }
33
32
  else if (this.lastValue !== undefined && this.lastValue !== this.value) {
34
- this.radioService.updateValueFromRadioItems(this.name);
33
+ this.radios.updateValueFromRadioItems();
35
34
  }
36
35
  this.lastValue = this.value;
37
36
  if (this.id !== this.radioId) {
38
- this.radioService.markForUpdateCheckboxIds(this.name);
37
+ this.radios.markForUpdateRadiosIds();
39
38
  }
40
39
  }
41
40
  ngAfterViewInit() {
42
41
  this.setChecked(this.checked);
43
- this.radioService.updateValueFromRadioItems(this.name);
42
+ this.radios.updateValueFromRadioItems();
44
43
  }
45
44
  setChecked(checked) {
46
45
  this.checked = checked;
47
46
  this.lastChecked = checked;
48
47
  this.checkedChange.emit(checked);
49
- if (this.checked) {
50
- let index = this.radioService.getRadioServiceItem(this.name);
51
- this.radioService.radioServiceItems[index].nextValue = this.value;
52
- }
53
48
  this.changeDetectorRef.detectChanges();
54
49
  }
55
50
  /*
@@ -60,7 +55,7 @@ export class RadioItemComponent extends ContentBaseComponent {
60
55
  }
61
56
  hasChanged() {
62
57
  this.setChecked(this.isInputChecked());
63
- this.radioService.updateValueFromRadioItems(this.name);
58
+ this.radios.updateValueFromRadioItems();
64
59
  }
65
60
  isInit() {
66
61
  return !!this.inputElement;
@@ -69,12 +64,11 @@ export class RadioItemComponent extends ContentBaseComponent {
69
64
  return this.inputElement ? this.inputElement.nativeElement.checked : null;
70
65
  }
71
66
  updateRadioId(index) {
72
- let i = this.radioService.getRadioServiceItem(this.name);
73
67
  if (this.id) {
74
68
  this.radioId = this.id;
75
69
  }
76
70
  else {
77
- const idPrefix = this.radioService.radioServiceItems[i].idPrefix ? this.radioService.radioServiceItems[i].idPrefix : this.radioService.radioServiceItems[i].nameRadio;
71
+ const idPrefix = this.radios.idPrefix ? this.radios.idPrefix : this.radios.name;
78
72
  if (index === 0) {
79
73
  this.radioId = idPrefix;
80
74
  }
@@ -94,24 +88,20 @@ export class RadioItemComponent extends ContentBaseComponent {
94
88
  * Funciones para aportar información desde el componente checkboxes que lo contiene
95
89
  */
96
90
  hasDividers() {
97
- let i = this.radioService.getRadioServiceItem(this.name);
98
- return i !== -1 ? this.radioService.radioServiceItems[i].dividers : null;
91
+ return this.radios.hasDividers;
99
92
  }
100
93
  hasError() {
101
- let i = this.radioService.getRadioServiceItem(this.name);
102
- return i !== -1 ? this.radioService.radioServiceItems[i].error : null;
94
+ return this.radios.hasErrorsMessage();
103
95
  }
104
96
  getNameRadio() {
105
- let i = this.radioService.getRadioServiceItem(this.name);
106
- return i !== -1 ? this.radioService.radioServiceItems[i].nameRadio : null;
97
+ return this.radios.name;
107
98
  }
108
99
  getDescribedBy() {
109
- let i = this.radioService.getRadioServiceItem(this.name);
110
- return i !== -1 ? (!this.radioService.radioServiceItems[i].fieldSet ? this.radioService.radioServiceItems[i].describedBy : null) : null;
100
+ return !this.radios.hasFieldset() ? this.radios.describedBy : null;
111
101
  }
112
102
  }
113
- RadioItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RadioItemComponent, deps: [{ token: i0.ChangeDetectorRef, host: true }, { token: i1.RadioService }], target: i0.ɵɵFactoryTarget.Component });
114
- RadioItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: RadioItemComponent, selector: "desy-radio-item", inputs: { id: "id", name: "name", value: "value", conditional: "conditional", disabled: "disabled", divider: "divider", classes: "classes", checked: "checked" }, outputs: { checkedChange: "checkedChange" }, queries: [{ propertyName: "labelComponentList", predicate: LabelComponent }, { propertyName: "hintComponentList", predicate: HintComponent }, { propertyName: "conditionalContentList", predicate: ContentComponent }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\n <div *ngIf=\"!divider\">\n <div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [attr.id]=\"radioId\"\n [attr.name]=\"name ? name : getNameRadio()\"\n type=\"radio\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [checked]=\"checked\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError ? true : null\"\n \n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n </div>\n \n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"radioId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n \n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n </div>\n </div>\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + this.radioId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i4.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "pipe", type: i5.MakeHtmlListPipe, name: "makeHtmlList" }], animations: [
103
+ RadioItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioItemComponent, deps: [{ token: i1.RadiosParentComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
104
+ RadioItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RadioItemComponent, selector: "desy-radio-item", inputs: { id: "id", name: "name", value: "value", conditional: "conditional", disabled: "disabled", divider: "divider", classes: "classes", checked: "checked" }, outputs: { checkedChange: "checkedChange" }, queries: [{ propertyName: "labelComponentList", predicate: LabelComponent }, { propertyName: "hintComponentList", predicate: HintComponent }, { propertyName: "conditionalContentList", predicate: ContentComponent }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\n <div *ngIf=\"!divider\">\n <div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [attr.id]=\"radioId\"\n [attr.name]=\"name ? name : getNameRadio()\"\n type=\"radio\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [checked]=\"checked\"\n [attr.disabled]=\"disabled || parentDisabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError ? true : null\"\n \n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n </div>\n \n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"radioId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n \n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n </div>\n </div>\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + this.radioId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i4.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "pipe", type: i5.MakeHtmlListPipe, name: "makeHtmlList" }], animations: [
115
105
  trigger('displayConditional', [
116
106
  state('void', style({
117
107
  opacity: '0.0',
@@ -129,7 +119,7 @@ RadioItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
129
119
  ])
130
120
  ])
131
121
  ] });
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RadioItemComponent, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioItemComponent, decorators: [{
133
123
  type: Component,
134
124
  args: [{ selector: 'desy-radio-item', animations: [
135
125
  trigger('displayConditional', [
@@ -148,10 +138,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
148
138
  query('@*', animateChild(), { optional: true })
149
139
  ])
150
140
  ])
151
- ], template: "<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\n <div *ngIf=\"!divider\">\n <div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [attr.id]=\"radioId\"\n [attr.name]=\"name ? name : getNameRadio()\"\n type=\"radio\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [checked]=\"checked\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError ? true : null\"\n \n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n </div>\n \n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"radioId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n \n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n </div>\n </div>\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + this.radioId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n </div>\n</div>\n\n" }]
152
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef, decorators: [{
153
- type: Host
154
- }] }, { type: i1.RadioService }]; }, propDecorators: { inputElement: [{
141
+ ], template: "<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\n <div *ngIf=\"!divider\">\n <div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [attr.id]=\"radioId\"\n [attr.name]=\"name ? name : getNameRadio()\"\n type=\"radio\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [checked]=\"checked\"\n [attr.disabled]=\"disabled || parentDisabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError ? true : null\"\n \n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n </div>\n \n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"radioId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n \n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n </div>\n </div>\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + this.radioId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n </div>\n</div>\n\n" }]
142
+ }], ctorParameters: function () { return [{ type: i1.RadiosParentComponent }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElement: [{
155
143
  type: ViewChild,
156
144
  args: ['input']
157
145
  }], id: [{
@@ -182,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
182
170
  }], checkedChange: [{
183
171
  type: Output
184
172
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osSUFBSSxFQUNKLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMvRixPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBRXhELDZGQUE2RjtBQXdCN0YsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG9CQUFvQjtJQXdCMUQsWUFBNEIsaUJBQW9DLEVBQVUsWUFBMEI7UUFDbEcsS0FBSyxFQUFFLENBQUM7UUFEa0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUDFGLGtCQUFhLEdBQXNC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Qzs2QkFDMUIsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDOzZCQUM5QyxDQUFDO3lCQUNILENBQUM7cUJBQ0g7OzBCQTBCWSxJQUFJO3VFQXRCRyxZQUFZO3NCQUEvQixTQUFTO3VCQUFDLE9BQU87Z0JBRVQsRUFBRTtzQkFBVixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRTJCLGtCQUFrQjtzQkFBbEQsZUFBZTt1QkFBQyxjQUFjO2dCQUNDLGlCQUFpQjtzQkFBaEQsZUFBZTt1QkFBQyxhQUFhO2dCQUNLLHNCQUFzQjtzQkFBeEQsZUFBZTt1QkFBQyxnQkFBZ0I7Z0JBRXhCLE9BQU87c0JBQWYsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJdGVtUmFkaW9EYXRhfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7TGFiZWxDb21wb25lbnR9IGZyb20gJy4uLy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRlbnRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHthbmltYXRlLCBhbmltYXRlQ2hpbGQsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtIaW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi9oaW50L2hpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JhZGlvLnNlcnZpY2UnO1xuLy8gVE9ETyBsb3MgaGlqb3Mgbm8gcHVlZGVuIGNvbnRlbmVyIGFsIHBhZHJlLCBsb3MgbWV0b2RvcyBoYXkgcXVlIHBhc2FybG9zIGFsIHBhZHJlIChyYWRpb3MpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktcmFkaW8taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2Rpc3BsYXlDb25kaXRpb25hbCcsIFtcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe1xuICAgICAgICBvcGFjaXR5OiAnMC4wJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMC45NSknXG4gICAgICB9KSksXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogJzEuMCcsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEuMCknXG4gICAgICB9KSksXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIGFuaW1hdGUoJzEwMG1zIGVhc2Utb3V0JylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiAqJywgW1xuICAgICAgICBxdWVyeSgnQConLCBhbmltYXRlQ2hpbGQoKSwge29wdGlvbmFsOiB0cnVlfSlcbiAgICAgIF0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0l0ZW1Db21wb25lbnQgZXh0ZW5kcyBDb250ZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEl0ZW1SYWRpb0RhdGEge1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcbiAgQElucHV0KCkgY29uZGl0aW9uYWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBkaXZpZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcblxuICBAQ29udGVudENoaWxkcmVuKExhYmVsQ29tcG9uZW50KSBsYWJlbENvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxMYWJlbENvbXBvbmVudD47XG4gIEBDb250ZW50Q2hpbGRyZW4oSGludENvbXBvbmVudCkgaGludENvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxIaW50Q29tcG9uZW50PjtcbiAgQENvbnRlbnRDaGlsZHJlbihDb250ZW50Q29tcG9uZW50KSBjb25kaXRpb25hbENvbnRlbnRMaXN0OiBRdWVyeUxpc3Q8Q29udGVudENvbXBvbmVudD47XG5cbiAgQElucHV0KCkgY2hlY2tlZDogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaW5kZXggPSAwO1xuICBsYXN0Q2hlY2tlZDtcbiAgbGFzdFZhbHVlO1xuICByYWRpb0lkO1xuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmFkaW9TZXJ2aWNlOiBSYWRpb1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yYWRpb1NlcnZpY2UubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKHRoaXMubmFtZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJhZGlvU2VydmljZS5tYXJrRm9yVXBkYXRlQ2hlY2tib3hJZHModGhpcy5uYW1lKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgaWYgKHRoaXMuY2hlY2tlZCAhPT0gdGhpcy5sYXN0Q2hlY2tlZCAmJiB0aGlzLmlzSW5pdCgpKSB7XG4gICAgICAgdGhpcy5zZXRDaGVja2VkKHRoaXMuY2hlY2tlZCk7XG4gICAgICAgdGhpcy5yYWRpb1NlcnZpY2UudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtcyh0aGlzLm5hbWUpO1xuICAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5sYXN0VmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICB0aGlzLnJhZGlvU2VydmljZS51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zKHRoaXMubmFtZSk7XG4gICAgIH1cbiAgICAgdGhpcy5sYXN0VmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgIGlmICh0aGlzLmlkICE9PSB0aGlzLnJhZGlvSWQpIHtcbiAgICAgIHRoaXMucmFkaW9TZXJ2aWNlLm1hcmtGb3JVcGRhdGVDaGVja2JveElkcyh0aGlzLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENoZWNrZWQodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLnJhZGlvU2VydmljZS51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zKHRoaXMubmFtZSk7XG4gIH1cblxuICBzZXRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSBjaGVja2VkO1xuICAgIHRoaXMubGFzdENoZWNrZWQgPSBjaGVja2VkO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KGNoZWNrZWQpO1xuICAgIGlmKHRoaXMuY2hlY2tlZCl7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnJhZGlvU2VydmljZS5nZXRSYWRpb1NlcnZpY2VJdGVtKHRoaXMubmFtZSk7XG4gICAgICB0aGlzLnJhZGlvU2VydmljZS5yYWRpb1NlcnZpY2VJdGVtc1tpbmRleF0ubmV4dFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSBhcG9ydGFyIGluZm9ybWFjacOzbiBkZXNkZSBlbCBjb21wb25lbnRlIGNoZWNrYm94ZXMgcXVlIGxvIGNvbnRpZW5lXG4gICAqL1xuXG4gIGdldEl0ZW1IaW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oaW50Q29tcG9uZW50TGlzdCAmJiB0aGlzLmhpbnRDb21wb25lbnRMaXN0Lmxlbmd0aCA+IDAgJiYgdGhpcy5yYWRpb0lkID8gdGhpcy5yYWRpb0lkICsgJy1pdGVtLWhpbnQnIDogbnVsbDtcbiAgfVxuXG4gIGhhc0NoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDaGVja2VkKHRoaXMuaXNJbnB1dENoZWNrZWQoKSk7XG4gICAgdGhpcy5yYWRpb1NlcnZpY2UudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtcyh0aGlzLm5hbWUpO1xuICB9XG5cbiAgaXNJbml0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW5wdXRFbGVtZW50O1xuICB9XG5cbiAgaXNJbnB1dENoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50ID8gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkIDogbnVsbDtcbiAgfVxuXG4gIHVwZGF0ZVJhZGlvSWQoaW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgaSA9IHRoaXMucmFkaW9TZXJ2aWNlLmdldFJhZGlvU2VydmljZUl0ZW0odGhpcy5uYW1lKTtcbiAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgdGhpcy5yYWRpb0lkID0gdGhpcy5pZDtcbiAgICAgfSBlbHNlIHtcbiAgICAgICBjb25zdCBpZFByZWZpeCA9IHRoaXMucmFkaW9TZXJ2aWNlLnJhZGlvU2VydmljZUl0ZW1zW2ldLmlkUHJlZml4ID8gdGhpcy5yYWRpb1NlcnZpY2UucmFkaW9TZXJ2aWNlSXRlbXNbaV0uaWRQcmVmaXggOiB0aGlzLnJhZGlvU2VydmljZS5yYWRpb1NlcnZpY2VJdGVtc1tpXS5uYW1lUmFkaW87XG4gICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICB0aGlzLnJhZGlvSWQgPSBpZFByZWZpeDtcbiAgICAgICB9IGVsc2Uge1xuICAgICAgICAgdGhpcy5yYWRpb0lkID0gYCR7aWRQcmVmaXh9LSR7aW5kZXh9YDtcbiAgICAgICB9XG4gICAgIH1cblxuICAgICBpZiAodGhpcy5sYWJlbENvbXBvbmVudExpc3QgJiYgdGhpcy5sYWJlbENvbXBvbmVudExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgIHRoaXMubGFiZWxDb21wb25lbnRMaXN0LmZpcnN0LmZvciA9IHRoaXMucmFkaW9JZDtcbiAgICAgfVxuXG4gICAgIGlmICh0aGlzLmhpbnRDb21wb25lbnRMaXN0ICYmIHRoaXMuaGludENvbXBvbmVudExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgIHRoaXMuaGludENvbXBvbmVudExpc3QuZmlyc3QuaWQgPSB0aGlzLmdldEl0ZW1IaW50SWQoKTtcbiAgICAgfVxuXG4gICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLypcbiAgKiBGdW5jaW9uZXMgcGFyYSBhcG9ydGFyIGluZm9ybWFjacOzbiBkZXNkZSBlbCBjb21wb25lbnRlIGNoZWNrYm94ZXMgcXVlIGxvIGNvbnRpZW5lXG4gICovXG5cbiAgaGFzRGl2aWRlcnMoKTogYm9vbGVhbiB7XG4gICAgbGV0IGkgPSB0aGlzLnJhZGlvU2VydmljZS5nZXRSYWRpb1NlcnZpY2VJdGVtKHRoaXMubmFtZSk7XG4gICAgcmV0dXJuIGkgIT09IC0xID8gdGhpcy5yYWRpb1NlcnZpY2UucmFkaW9TZXJ2aWNlSXRlbXNbaV0uZGl2aWRlcnMgOiBudWxsO1xuICB9XG5cbiAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgbGV0IGkgPSB0aGlzLnJhZGlvU2VydmljZS5nZXRSYWRpb1NlcnZpY2VJdGVtKHRoaXMubmFtZSk7XG4gICAgcmV0dXJuIGkgIT09IC0xID8gdGhpcy5yYWRpb1NlcnZpY2UucmFkaW9TZXJ2aWNlSXRlbXNbaV0uZXJyb3IgOiBudWxsO1xuICB9XG5cbiAgZ2V0TmFtZVJhZGlvKCk6IHN0cmluZyB7XG4gICAgbGV0IGkgPSB0aGlzLnJhZGlvU2VydmljZS5nZXRSYWRpb1NlcnZpY2VJdGVtKHRoaXMubmFtZSk7XG4gICAgcmV0dXJuIGkgIT09IC0xID8gdGhpcy5yYWRpb1NlcnZpY2UucmFkaW9TZXJ2aWNlSXRlbXNbaV0ubmFtZVJhZGlvIDogbnVsbDtcbiAgfVxuXG4gIGdldERlc2NyaWJlZEJ5KCk6IHN0cmluZyB7XG4gICAgbGV0IGkgPSB0aGlzLnJhZGlvU2VydmljZS5nZXRSYWRpb1NlcnZpY2VJdGVtKHRoaXMubmFtZSk7XG4gICAgcmV0dXJuIGkgIT09IC0xID8gKCF0aGlzLnJhZGlvU2VydmljZS5yYWRpb1NlcnZpY2VJdGVtc1tpXS5maWVsZFNldCA/IHRoaXMucmFkaW9TZXJ2aWNlLnJhZGlvU2VydmljZUl0ZW1zW2ldLmRlc2NyaWJlZEJ5IDogbnVsbCkgOiBudWxsO1xuICB9XG5cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwieydib3JkZXItdCBib3JkZXItYiBib3JkZXItbmV1dHJhbC1iYXNlIC1tYi1weCc6IGhhc0RpdmlkZXJzKCl9XCIgW2NsYXNzXT1cImNsYXNzZXNcIj5cbiAgPGRpdiAqbmdJZj1cImRpdmlkZXJcIj48cD57eyBkaXZpZGVyIH19PC9wPjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWRpdmlkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBpdGVtcy1zdGFydCBweS1iYXNlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbXgtc21cIj5cbiAgICAgICAgPGlucHV0ICNpbnB1dCBjbGFzcz1cInctNiBoLTYgdGV4dC1wcmltYXJ5LWJhc2UgdHJhbnNpdGlvbiBkdXJhdGlvbi0xNTAgZWFzZS1pbi1vdXQgYm9yZGVyLWJsYWNrIGZvY3VzOmJvcmRlci1ibGFjayBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cy1pbnB1dCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1vZmZzZXQtMCBmb2N1czpyaW5nLXdhcm5pbmctYmFzZSBkaXNhYmxlZDpiZy1uZXV0cmFsLWJhc2UgZGlzYWJsZWQ6Ym9yZGVyLW5ldXRyYWwtYmFzZSB0ZXh0LXByaW1hcnktYmFzZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwicmFkaW9JZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lID8gbmFtZSA6IGdldE5hbWVSYWRpbygpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiIChjaGFuZ2UpPVwiaGFzQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImNvbmRpdGlvbmFsQ29udGVudExpc3QgJiYgY29uZGl0aW9uYWxDb250ZW50TGlzdC5sZW5ndGggPiAwID8gJ2NvbmRpdGlvbmFsLScgKyB0aGlzLnJhZGlvSWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIltnZXREZXNjcmliZWRCeSgpLCBnZXRJdGVtSGludElkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvciA/IHRydWUgOiBudWxsXCJcbiAgXG4gICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsID8gYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50ID8gYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmUgPyBhcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiYXJpYUV4cGFuZGVkID8gYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cCA/IGFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4ID8gdGFiaW5kZXggOiBudWxsXCI+XG4gICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgPGRpdiBjbGFzcz1cInB0LTAuNSBsZWFkaW5nLTVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbENvbXBvbmVudExpc3QgJiYgbGFiZWxDb21wb25lbnRMaXN0Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShsYWJlbENvbXBvbmVudExpc3QgJiYgbGFiZWxDb21wb25lbnRMaXN0Lmxlbmd0aCA+IDApXCI+XG4gICAgICAgICAgICAgICAgPGRlc3ktbGFiZWwgW2Zvcl09XCJyYWRpb0lkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rlc3ktbGFiZWw+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmRpdGlvbmFsICYmIGNvbmRpdGlvbmFsQ29udGVudExpc3QgJiYgY29uZGl0aW9uYWxDb250ZW50TGlzdC5sZW5ndGggPiAwICYmIGNoZWNrZWRcIiAgQGRpc3BsYXlDb25kaXRpb25hbFxuICAgICAgY2xhc3M9XCJtYi1sZyBtbC01IHB0LXNtIHBiLWJhc2UgcGwtNiBvcmlnaW4tdG9wLWxlZnQgYm9yZGVyLWwtMiBib3JkZXItcHJpbWFyeS1iYXNlXCJcbiAgICAgIFthdHRyLmlkXT1cIidjb25kaXRpb25hbC0nICsgdGhpcy5yYWRpb0lkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGNvbmRpdGlvbmFsQ29udGVudExpc3QuZmlyc3QgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUEwQnhELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUEwQjFELFlBQW9CLE1BQTZCLEVBQVUsaUJBQW9DO1FBQzdGLEtBQUssRUFBRSxDQUFDO1FBRFUsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVHJGLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFF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QUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRTJCLGtCQUFrQjtzQkFBbEQsZUFBZTt1QkFBQyxjQUFjO2dCQUNDLGlCQUFpQjtzQkFBaEQsZUFBZTt1QkFBQyxhQUFhO2dCQUNLLHNCQUFzQjtzQkFBeEQsZUFBZTt1QkFBQyxnQkFBZ0I7Z0JBRXhCLE9BQU87c0JBQWYsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJdGVtUmFkaW9EYXRhfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7TGFiZWxDb21wb25lbnR9IGZyb20gJy4uLy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRlbnRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHthbmltYXRlLCBhbmltYXRlQ2hpbGQsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtIaW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi9oaW50L2hpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvc1BhcmVudENvbXBvbmVudCB9IGZyb20gJy4uL3JhZGlvcy1wYXJlbnQuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LXJhZGlvLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkaXNwbGF5Q29uZGl0aW9uYWwnLCBbXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogJzAuMCcsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDAuOTUpJ1xuICAgICAgfSkpLFxuICAgICAgc3RhdGUoJyonLCBzdHlsZSh7XG4gICAgICAgIG9wYWNpdHk6ICcxLjAnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxLjApJ1xuICAgICAgfSkpLFxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gKicsIFtcbiAgICAgICAgcXVlcnkoJ0AqJywgYW5pbWF0ZUNoaWxkKCksIHtvcHRpb25hbDogdHJ1ZX0pXG4gICAgICBdKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9JdGVtQ29tcG9uZW50IGV4dGVuZHMgQ29udGVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBJdGVtUmFkaW9EYXRhIHtcblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpIGNvbmRpdGlvbmFsOiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGl2aWRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihMYWJlbENvbXBvbmVudCkgbGFiZWxDb21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8TGFiZWxDb21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKEhpbnRDb21wb25lbnQpIGhpbnRDb21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8SGludENvbXBvbmVudD47XG4gIEBDb250ZW50Q2hpbGRyZW4oQ29udGVudENvbXBvbmVudCkgY29uZGl0aW9uYWxDb250ZW50TGlzdDogUXVlcnlMaXN0PENvbnRlbnRDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpIGNoZWNrZWQ6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBjaGVja2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGluZGV4ID0gMDtcbiAgbGFzdENoZWNrZWQ7XG4gIGxhc3RWYWx1ZTtcbiAgcmFkaW9JZDtcblxuICBwYXJlbnREaXNhYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJhZGlvczogUmFkaW9zUGFyZW50Q29tcG9uZW50LCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJhZGlvcy5tYXJrRm9yVXBkYXRlUmFkaW9zSWRzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJhZGlvcy5tYXJrRm9yVXBkYXRlUmFkaW9zSWRzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgIGlmICh0aGlzLmNoZWNrZWQgIT09IHRoaXMubGFzdENoZWNrZWQgJiYgdGhpcy5pc0luaXQoKSkge1xuICAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmNoZWNrZWQpO1xuICAgICAgdGhpcy5yYWRpb3MudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtcygpO1xuICAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5sYXN0VmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMucmFkaW9zLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTtcbiAgICAgfVxuICAgICB0aGlzLmxhc3RWYWx1ZSA9IHRoaXMudmFsdWU7XG5cbiAgICAgaWYgKHRoaXMuaWQgIT09IHRoaXMucmFkaW9JZCkge1xuICAgICAgdGhpcy5yYWRpb3MubWFya0ZvclVwZGF0ZVJhZGlvc0lkcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENoZWNrZWQodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLnJhZGlvcy51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zKCk7XG4gIH1cblxuICBzZXRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSBjaGVja2VkO1xuICAgIHRoaXMubGFzdENoZWNrZWQgPSBjaGVja2VkO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KGNoZWNrZWQpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLypcbiAgICogRnVuY2lvbmVzIHBhcmEgYXBvcnRhciBpbmZvcm1hY2nDs24gZGVzZGUgZWwgY29tcG9uZW50ZSBjaGVja2JveGVzIHF1ZSBsbyBjb250aWVuZVxuICAgKi9cblxuICBnZXRJdGVtSGludElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGludENvbXBvbmVudExpc3QgJiYgdGhpcy5oaW50Q29tcG9uZW50TGlzdC5sZW5ndGggPiAwICYmIHRoaXMucmFkaW9JZCA/IHRoaXMucmFkaW9JZCArICctaXRlbS1oaW50JyA6IG51bGw7XG4gIH1cblxuICBoYXNDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmlzSW5wdXRDaGVja2VkKCkpO1xuICAgIHRoaXMucmFkaW9zLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTtcbiAgfVxuXG4gIGlzSW5pdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmlucHV0RWxlbWVudDtcbiAgfVxuXG4gIGlzSW5wdXRDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWxlbWVudCA/IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA6IG51bGw7XG4gIH1cblxuICB1cGRhdGVSYWRpb0lkKGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICB0aGlzLnJhZGlvSWQgPSB0aGlzLmlkO1xuICAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaWRQcmVmaXggPSB0aGlzLnJhZGlvcy5pZFByZWZpeCA/IHRoaXMucmFkaW9zLmlkUHJlZml4IDogdGhpcy5yYWRpb3MubmFtZTtcbiAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgIHRoaXMucmFkaW9JZCA9IGlkUHJlZml4O1xuICAgICAgIH0gZWxzZSB7XG4gICAgICAgICB0aGlzLnJhZGlvSWQgPSBgJHtpZFByZWZpeH0tJHtpbmRleH1gO1xuICAgICAgIH1cbiAgICAgfVxuXG4gICAgIGlmICh0aGlzLmxhYmVsQ29tcG9uZW50TGlzdCAmJiB0aGlzLmxhYmVsQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgdGhpcy5sYWJlbENvbXBvbmVudExpc3QuZmlyc3QuZm9yID0gdGhpcy5yYWRpb0lkO1xuICAgICB9XG5cbiAgICAgaWYgKHRoaXMuaGludENvbXBvbmVudExpc3QgJiYgdGhpcy5oaW50Q29tcG9uZW50TGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgdGhpcy5oaW50Q29tcG9uZW50TGlzdC5maXJzdC5pZCA9IHRoaXMuZ2V0SXRlbUhpbnRJZCgpO1xuICAgICB9XG5cbiAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKlxuICAqIEZ1bmNpb25lcyBwYXJhIGFwb3J0YXIgaW5mb3JtYWNpw7NuIGRlc2RlIGVsIGNvbXBvbmVudGUgY2hlY2tib3hlcyBxdWUgbG8gY29udGllbmVcbiAgKi9cblxuICBoYXNEaXZpZGVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yYWRpb3MuaGFzRGl2aWRlcnM7XG4gIH1cblxuICBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yYWRpb3MuaGFzRXJyb3JzTWVzc2FnZSgpO1xuICB9XG5cbiAgZ2V0TmFtZVJhZGlvKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmFkaW9zLm5hbWU7XG4gIH1cblxuICBnZXREZXNjcmliZWRCeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAhdGhpcy5yYWRpb3MuaGFzRmllbGRzZXQoKSA/IHRoaXMucmFkaW9zLmRlc2NyaWJlZEJ5IDogbnVsbDtcbiAgfVxuXG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsnYm9yZGVyLXQgYm9yZGVyLWIgYm9yZGVyLW5ldXRyYWwtYmFzZSAtbWItcHgnOiBoYXNEaXZpZGVycygpfVwiIFtjbGFzc109XCJjbGFzc2VzXCI+XG4gIDxkaXYgKm5nSWY9XCJkaXZpZGVyXCI+PHA+e3sgZGl2aWRlciB9fTwvcD48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFkaXZpZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggaXRlbXMtc3RhcnQgcHktYmFzZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG14LXNtXCI+XG4gICAgICAgIDxpbnB1dCAjaW5wdXQgY2xhc3M9XCJ3LTYgaC02IHRleHQtcHJpbWFyeS1iYXNlIHRyYW5zaXRpb24gZHVyYXRpb24tMTUwIGVhc2UtaW4tb3V0IGJvcmRlci1ibGFjayBmb2N1czpib3JkZXItYmxhY2sgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMtaW5wdXQgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctb2Zmc2V0LTAgZm9jdXM6cmluZy13YXJuaW5nLWJhc2UgZGlzYWJsZWQ6YmctbmV1dHJhbC1iYXNlIGRpc2FibGVkOmJvcmRlci1uZXV0cmFsLWJhc2UgdGV4dC1wcmltYXJ5LWJhc2VcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cInJhZGlvSWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZSA/IG5hbWUgOiBnZXROYW1lUmFkaW8oKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIiAoY2hhbmdlKT1cImhhc0NoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFyZW50RGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJjb25kaXRpb25hbENvbnRlbnRMaXN0ICYmIGNvbmRpdGlvbmFsQ29udGVudExpc3QubGVuZ3RoID4gMCA/ICdjb25kaXRpb25hbC0nICsgdGhpcy5yYWRpb0lkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJbZ2V0RGVzY3JpYmVkQnkoKSwgZ2V0SXRlbUhpbnRJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3IgPyB0cnVlIDogbnVsbFwiXG4gIFxuICAgICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwicm9sZSA/IHJvbGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSA/IGFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlbiA/IGFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZCA/IGFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJhcmlhQ3VycmVudCA/IGFyaWFDdXJyZW50IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlID8gYXJpYUxpdmUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZCA/IGFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cImFyaWFFcnJvck1lc3NhZ2UgPyBhcmlhRXJyb3JNZXNzYWdlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJhcmlhSGFzUG9wdXAgPyBhcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleCA/IHRhYmluZGV4IDogbnVsbFwiPlxuICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwdC0wLjUgbGVhZGluZy01XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxDb21wb25lbnRMaXN0ICYmIGxhYmVsQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1sYWJlbFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEobGFiZWxDb21wb25lbnRMaXN0ICYmIGxhYmVsQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwKVwiPlxuICAgICAgICAgICAgICAgIDxkZXN5LWxhYmVsIFtmb3JdPVwicmFkaW9JZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kZXN5LWxhYmVsPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gIFxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1oaW50XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb25kaXRpb25hbCAmJiBjb25kaXRpb25hbENvbnRlbnRMaXN0ICYmIGNvbmRpdGlvbmFsQ29udGVudExpc3QubGVuZ3RoID4gMCAmJiBjaGVja2VkXCIgIEBkaXNwbGF5Q29uZGl0aW9uYWxcbiAgICAgIGNsYXNzPVwibWItbGcgbWwtNSBwdC1zbSBwYi1iYXNlIHBsLTYgb3JpZ2luLXRvcC1sZWZ0IGJvcmRlci1sLTIgYm9yZGVyLXByaW1hcnktYmFzZVwiXG4gICAgICBbYXR0ci5pZF09XCInY29uZGl0aW9uYWwtJyArIHRoaXMucmFkaW9JZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBjb25kaXRpb25hbENvbnRlbnRMaXN0LmZpcnN0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
@@ -0,0 +1,23 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormFieldComponent } from '../form-field/form-field.component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Clase abstracta que permite comunicar al radio-item con el radios
6
+ * sin que existan dependencias circulares.
7
+ * El esquema de dependencias resulta:
8
+ * - RadiosComponent -> RadiosParentComponent
9
+ * - RadiosComponent -> RadiosItemComponent
10
+ * - RadiosItemComponent -> RadiosParentComponent
11
+ */
12
+ export class RadiosParentComponent extends FormFieldComponent {
13
+ }
14
+ RadiosParentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadiosParentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
+ RadiosParentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RadiosParentComponent, selector: "desy-radios-parent", usesInheritance: true, ngImport: i0, template: '', isInline: true });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadiosParentComponent, decorators: [{
17
+ type: Component,
18
+ args: [{
19
+ selector: 'desy-radios-parent',
20
+ template: ''
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zLXBhcmVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvcy1wYXJlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXhFOzs7Ozs7O0dBT0c7QUFLSCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLGtCQUF1Qjs7a0hBQXJELHFCQUFxQjtzR0FBckIscUJBQXFCLGlGQUYvQixFQUFFOzJGQUVRLHFCQUFxQjtrQkFKMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcblxuLyoqXG4gKiBDbGFzZSBhYnN0cmFjdGEgcXVlIHBlcm1pdGUgY29tdW5pY2FyIGFsIHJhZGlvLWl0ZW0gY29uIGVsIHJhZGlvc1xuICogc2luIHF1ZSBleGlzdGFuIGRlcGVuZGVuY2lhcyBjaXJjdWxhcmVzLlxuICogRWwgZXNxdWVtYSBkZSBkZXBlbmRlbmNpYXMgcmVzdWx0YTpcbiAqICAtIFJhZGlvc0NvbXBvbmVudCAtPiBSYWRpb3NQYXJlbnRDb21wb25lbnRcbiAqICAtIFJhZGlvc0NvbXBvbmVudCAtPiBSYWRpb3NJdGVtQ29tcG9uZW50XG4gKiAgLSBSYWRpb3NJdGVtQ29tcG9uZW50IC0+IFJhZGlvc1BhcmVudENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LXJhZGlvcy1wYXJlbnQnLFxuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmFkaW9zUGFyZW50Q29tcG9uZW50IGV4dGVuZHMgRm9ybUZpZWxkQ29tcG9uZW50PGFueT4ge1xuICBpZFByZWZpeD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgaGFzRGl2aWRlcnM/OiBib29sZWFuO1xuICBkZXNjcmliZWRCeT86IHN0cmluZztcblxuICBhYnN0cmFjdCBoYXNGaWVsZHNldCgpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IG1hcmtGb3JVcGRhdGVSYWRpb3NJZHMoKTogdm9pZDtcbiAgYWJzdHJhY3QgdXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtcygpOiB2b2lkO1xufSJdfQ==