desy-angular 2.0.1 → 5.0.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 (477) hide show
  1. package/README.md +22 -20
  2. package/bundles/desy-angular.umd.js +8742 -4678
  3. package/bundles/desy-angular.umd.js.map +1 -1
  4. package/bundles/desy-angular.umd.min.js +2 -2
  5. package/bundles/desy-angular.umd.min.js.map +1 -1
  6. package/desy-angular.d.ts +34 -21
  7. package/desy-angular.metadata.json +1 -1
  8. package/esm2015/desy-angular.js +35 -22
  9. package/esm2015/lib/desy-angular.module.js +38 -35
  10. package/esm2015/lib/desy-buttons/components/button/button.component.js +92 -103
  11. package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +50 -45
  12. package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +108 -49
  13. package/esm2015/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.js +26 -0
  14. package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +23 -0
  15. package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +275 -0
  16. package/esm2015/lib/desy-buttons/components/pill/pill.component.js +64 -66
  17. package/esm2015/lib/desy-buttons/desy-buttons.module.js +44 -33
  18. package/esm2015/lib/desy-buttons/interfaces/listbox-item-data.js +2 -0
  19. package/esm2015/lib/desy-buttons/interfaces/listbox-label-data.js +2 -0
  20. package/esm2015/lib/desy-commons/components/content/content.component.js +14 -0
  21. package/esm2015/lib/desy-commons/components/description/description.component.js +14 -0
  22. package/esm2015/lib/desy-commons/components/icon/icon.component.js +14 -0
  23. package/esm2015/lib/desy-commons/components/title/title.component.js +14 -0
  24. package/esm2015/lib/desy-commons/desy-commons.module.js +33 -0
  25. package/esm2015/lib/desy-commons/interfaces/content-data.js +2 -0
  26. package/esm2015/lib/desy-commons/interfaces/description-data.js +2 -0
  27. package/esm2015/lib/desy-commons/interfaces/icon-data.js +2 -0
  28. package/esm2015/lib/desy-commons/interfaces/index.js +5 -0
  29. package/esm2015/lib/desy-commons/interfaces/title-data.js +2 -0
  30. package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +124 -124
  31. package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +190 -0
  32. package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +235 -128
  33. package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +46 -0
  34. package/esm2015/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.js +19 -0
  35. package/esm2015/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.js +13 -0
  36. package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +46 -0
  37. package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +44 -0
  38. package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +228 -123
  39. package/esm2015/lib/desy-forms/components/error-message/error-message.component.js +28 -16
  40. package/esm2015/lib/desy-forms/components/fieldset/fieldset.component.js +44 -21
  41. package/esm2015/lib/desy-forms/components/fieldset/legend/legend.component.js +16 -15
  42. package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +59 -59
  43. package/esm2015/lib/desy-forms/components/form-field/form-field.component.js +103 -65
  44. package/esm2015/lib/desy-forms/components/hint/hint.component.js +27 -15
  45. package/esm2015/lib/desy-forms/components/input/input.component.js +58 -59
  46. package/esm2015/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.js +20 -0
  47. package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +46 -0
  48. package/esm2015/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.js +13 -0
  49. package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +42 -0
  50. package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +190 -96
  51. package/esm2015/lib/desy-forms/components/label/label.component.js +30 -17
  52. package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +147 -0
  53. package/esm2015/lib/desy-forms/components/radios/radios.component.js +242 -56
  54. package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +57 -47
  55. package/esm2015/lib/desy-forms/components/select/option/option.component.js +17 -0
  56. package/esm2015/lib/desy-forms/components/select/option-group/option-group.component.js +17 -0
  57. package/esm2015/lib/desy-forms/components/select/select-item/select-item.component.js +14 -0
  58. package/esm2015/lib/desy-forms/components/select/select.component.js +74 -59
  59. package/esm2015/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.js +12 -12
  60. package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +67 -67
  61. package/esm2015/lib/desy-forms/desy-forms.module.js +116 -79
  62. package/esm2015/lib/desy-forms/directives/condition.directive.js +35 -35
  63. package/esm2015/lib/desy-forms/interfaces/accesibility-data.js +2 -2
  64. package/esm2015/lib/desy-forms/interfaces/error-message-data.js +2 -2
  65. package/esm2015/lib/desy-forms/interfaces/fieldset-data.js +2 -2
  66. package/esm2015/lib/desy-forms/interfaces/hint-data.js +2 -2
  67. package/esm2015/lib/desy-forms/interfaces/index.js +13 -13
  68. package/esm2015/lib/desy-forms/interfaces/item-checkbox-data.js +2 -2
  69. package/esm2015/lib/desy-forms/interfaces/item-date-input-data.js +2 -2
  70. package/esm2015/lib/desy-forms/interfaces/item-divider-date-input-data.js +2 -0
  71. package/esm2015/lib/desy-forms/interfaces/item-divider-input-group-data.js +2 -2
  72. package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +2 -2
  73. package/esm2015/lib/desy-forms/interfaces/item-radio-data.js +2 -2
  74. package/esm2015/lib/desy-forms/interfaces/item-radio-with-template-data.js +2 -2
  75. package/esm2015/lib/desy-forms/interfaces/label-data.js +2 -2
  76. package/esm2015/lib/desy-forms/interfaces/legend-data.js +2 -2
  77. package/esm2015/lib/desy-forms/interfaces/select-item-data.js +2 -2
  78. package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +127 -127
  79. package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +19 -0
  80. package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +19 -0
  81. package/esm2015/lib/desy-modals/components/modal/modal.component.js +144 -59
  82. package/esm2015/lib/desy-modals/desy-modals.module.js +35 -29
  83. package/esm2015/lib/desy-modals/interfaces/dialog-options.js +2 -2
  84. package/esm2015/lib/desy-modals/interfaces/index.js +8 -8
  85. package/esm2015/lib/desy-modals/interfaces/modal-button-data.js +2 -2
  86. package/esm2015/lib/desy-modals/interfaces/modal-data.js +2 -2
  87. package/esm2015/lib/desy-modals/interfaces/modal-icon-data.js +2 -2
  88. package/esm2015/lib/desy-modals/interfaces/modal-options.js +2 -2
  89. package/esm2015/lib/desy-modals/interfaces/open-dialog-result.js +2 -2
  90. package/esm2015/lib/desy-modals/services/dialog.service.js +118 -118
  91. package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.js +15 -0
  92. package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.js +48 -46
  93. package/esm2015/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.js +15 -0
  94. package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +52 -31
  95. package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.js +16 -0
  96. package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta.component.js +23 -0
  97. package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.js +16 -0
  98. package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.js +16 -0
  99. package/esm2015/lib/desy-nav/components/footer/footer.component.js +45 -22
  100. package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +34 -44
  101. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.js +19 -0
  102. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +32 -25
  103. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +25 -0
  104. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.js +11 -0
  105. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +88 -26
  106. package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +37 -47
  107. package/esm2015/lib/desy-nav/components/header/header.component.js +58 -27
  108. package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.js +28 -0
  109. package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +81 -61
  110. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.js +32 -0
  111. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.js +16 -0
  112. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.js +24 -0
  113. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +95 -142
  114. package/esm2015/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.js +36 -0
  115. package/esm2015/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.js +14 -0
  116. package/esm2015/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.js +29 -0
  117. package/esm2015/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.js +23 -0
  118. package/esm2015/lib/desy-nav/components/menubar/directives/menubaritem.directive.js +37 -0
  119. package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +656 -0
  120. package/esm2015/lib/desy-nav/components/nav/nav-item/nav-item.component.js +30 -0
  121. package/esm2015/lib/desy-nav/components/nav/nav.component.js +85 -63
  122. package/esm2015/lib/desy-nav/components/notification/notification-item/notification-item.component.js +18 -0
  123. package/esm2015/lib/desy-nav/components/notification/notification.component.js +110 -83
  124. package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +42 -23
  125. package/esm2015/lib/desy-nav/desy-nav.module.js +123 -57
  126. package/esm2015/lib/desy-nav/interfaces/breadcrumbs.data.js +2 -2
  127. package/esm2015/lib/desy-nav/interfaces/error-summary-data.js +2 -2
  128. package/esm2015/lib/desy-nav/interfaces/footer-data.js +2 -2
  129. package/esm2015/lib/desy-nav/interfaces/header-dropdown-data.js +2 -2
  130. package/esm2015/lib/desy-nav/interfaces/header-navigation-data.js +2 -2
  131. package/esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js +2 -2
  132. package/esm2015/lib/desy-nav/interfaces/header-offcanvas-data.js +2 -2
  133. package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +2 -2
  134. package/esm2015/lib/desy-nav/interfaces/index.js +17 -21
  135. package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-data.js +2 -2
  136. package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-event-data.js +2 -2
  137. package/esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js +2 -2
  138. package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-data.js +2 -2
  139. package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-items-data.js +2 -2
  140. package/esm2015/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.js +2 -0
  141. package/esm2015/lib/desy-nav/interfaces/menubar-item-sub-item.js +2 -0
  142. package/esm2015/lib/desy-nav/interfaces/menubar-item-sub.js +2 -0
  143. package/esm2015/lib/desy-nav/interfaces/menubar-item.js +2 -0
  144. package/esm2015/lib/desy-nav/interfaces/nav-item-event.data.js +2 -2
  145. package/esm2015/lib/desy-nav/interfaces/nav-item.data.js +2 -2
  146. package/esm2015/lib/desy-nav/interfaces/notification-items-data.js +2 -2
  147. package/esm2015/lib/desy-nav/interfaces/notification-options.js +2 -2
  148. package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +104 -139
  149. package/esm2015/lib/desy-pagination/desy-pagination.module.js +25 -25
  150. package/esm2015/lib/desy-pagination/interfaces/index.js +2 -2
  151. package/esm2015/lib/desy-pagination/interfaces/pagination-item.data.js +2 -2
  152. package/esm2015/lib/desy-tables/components/table/components/table-caption.component.js +14 -0
  153. package/esm2015/lib/desy-tables/components/table/components/table-cell.component.js +17 -0
  154. package/esm2015/lib/desy-tables/components/table/components/table-header.component.js +14 -0
  155. package/esm2015/lib/desy-tables/components/table/components/table-row.component.js +14 -0
  156. package/esm2015/lib/desy-tables/components/table/table.component.js +67 -34
  157. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +20 -0
  158. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.js +14 -0
  159. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.js +17 -0
  160. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.js +20 -0
  161. package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +288 -264
  162. package/esm2015/lib/desy-tables/desy-tables.module.js +61 -33
  163. package/esm2015/lib/desy-tables/directives/cell.directive.js +26 -0
  164. package/esm2015/lib/desy-tables/directives/focus-clicked-cell.directive.js +78 -74
  165. package/esm2015/lib/desy-tables/directives/row.directive.js +24 -0
  166. package/esm2015/lib/desy-tables/interfaces/cell-data.js +2 -2
  167. package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +7 -7
  168. package/esm2015/lib/desy-tables/interfaces/index.js +5 -4
  169. package/esm2015/lib/desy-tables/interfaces/recalculate-table-params.js +2 -0
  170. package/esm2015/lib/desy-tables/interfaces/row-data.js +2 -2
  171. package/esm2015/lib/desy-tables/interfaces/wrapper-data.js +2 -0
  172. package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +14 -0
  173. package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +33 -0
  174. package/esm2015/lib/desy-views/components/accordion/accordion.component.js +136 -108
  175. package/esm2015/lib/desy-views/components/alert/alert.component.js +81 -76
  176. package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +62 -66
  177. package/esm2015/lib/desy-views/components/description-list/definition/definition.component.js +15 -0
  178. package/esm2015/lib/desy-views/components/description-list/description-item/description-item.component.js +26 -0
  179. package/esm2015/lib/desy-views/components/description-list/description-list.component.js +28 -38
  180. package/esm2015/lib/desy-views/components/description-list/term/term.component.js +15 -0
  181. package/esm2015/lib/desy-views/components/details/details.component.js +31 -31
  182. package/esm2015/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.js +14 -0
  183. package/esm2015/lib/desy-views/components/item/item-content-right/item-content-right.component.js +11 -0
  184. package/esm2015/lib/desy-views/components/item/item-item/item-item.component.js +11 -0
  185. package/esm2015/lib/desy-views/components/item/item.component.js +79 -46
  186. package/esm2015/lib/desy-views/components/media-object/media-object.component.js +29 -29
  187. package/esm2015/lib/desy-views/components/spinner/spinner.component.js +16 -16
  188. package/esm2015/lib/desy-views/components/status/status.component.js +35 -35
  189. package/esm2015/lib/desy-views/components/status-item/status-item.component.js +63 -50
  190. package/esm2015/lib/desy-views/components/tabs/panel/panel.component.js +15 -0
  191. package/esm2015/lib/desy-views/components/tabs/tab-item/tab-item.component.js +28 -0
  192. package/esm2015/lib/desy-views/components/tabs/tabs.component.js +131 -109
  193. package/esm2015/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.js +11 -0
  194. package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +132 -0
  195. package/esm2015/lib/desy-views/desy-views.module.js +93 -53
  196. package/esm2015/lib/desy-views/interfaces/accordion-header.data.js +2 -2
  197. package/esm2015/lib/desy-views/interfaces/accordion-item.data.js +2 -2
  198. package/esm2015/lib/desy-views/interfaces/alert-options.js +2 -2
  199. package/esm2015/lib/desy-views/interfaces/description-item.data.js +2 -0
  200. package/esm2015/lib/desy-views/interfaces/index.js +11 -11
  201. package/esm2015/lib/desy-views/interfaces/open-alert-result.js +2 -2
  202. package/esm2015/lib/desy-views/interfaces/status-data.js +2 -2
  203. package/esm2015/lib/desy-views/interfaces/status-icon-data.js +2 -2
  204. package/esm2015/lib/desy-views/interfaces/status-item-title-data.js +2 -2
  205. package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +2 -2
  206. package/esm2015/lib/desy-views/interfaces/tabs-panel-data.js +2 -2
  207. package/esm2015/lib/desy-views/interfaces/term-definition.data.js +2 -0
  208. package/esm2015/lib/desy-views/services/alert.service.js +90 -90
  209. package/esm2015/lib/shared/components/accessibility/accessibility.component.js +29 -29
  210. package/esm2015/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.js +27 -0
  211. package/esm2015/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.js +26 -26
  212. package/esm2015/lib/shared/components/content-base/content-base.component.js +20 -0
  213. package/esm2015/lib/shared/components/index.js +6 -4
  214. package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +26 -26
  215. package/esm2015/lib/shared/decorators/desy-content-child.decorator.js +41 -0
  216. package/esm2015/lib/shared/decorators/desy-on-input-change.decorator.js +19 -0
  217. package/esm2015/lib/shared/directives/attribute-change.directive.js +43 -0
  218. package/esm2015/lib/shared/directives/click-outside.directive.js +35 -35
  219. package/esm2015/lib/shared/directives/content-change.directive.js +43 -0
  220. package/esm2015/lib/shared/directives/content-empty.directive.js +86 -0
  221. package/esm2015/lib/shared/directives/custom-inner-content.directive.js +62 -0
  222. package/esm2015/lib/shared/directives/inner-content.directive.js +34 -32
  223. package/esm2015/lib/shared/interfaces/accesibility-data.js +2 -2
  224. package/esm2015/lib/shared/pipes/external-href.pipe.js +28 -0
  225. package/esm2015/lib/shared/pipes/inner-html.pipe.js +19 -19
  226. package/esm2015/lib/shared/pipes/make-html-list.pipe.js +16 -16
  227. package/esm2015/lib/shared/shared.module.js +65 -46
  228. package/esm2015/lib/shared/utils/focus-utils.js +51 -51
  229. package/esm2015/lib/shared/utils/search-utils.js +57 -57
  230. package/esm2015/lib/shared/utils/string-utils.js +18 -0
  231. package/esm2015/public-api.js +189 -130
  232. package/fesm2015/desy-angular.js +7655 -3964
  233. package/fesm2015/desy-angular.js.map +1 -1
  234. package/lib/desy-angular.module.d.ts +2 -2
  235. package/lib/desy-buttons/components/button/button.component.d.ts +31 -32
  236. package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +15 -14
  237. package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +24 -19
  238. package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +12 -0
  239. package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +8 -0
  240. package/lib/desy-buttons/components/listbox/listbox.component.d.ts +54 -0
  241. package/lib/desy-buttons/components/pill/pill.component.d.ts +22 -22
  242. package/lib/desy-buttons/desy-buttons.module.d.ts +2 -2
  243. package/lib/desy-buttons/interfaces/listbox-item-data.d.ts +9 -0
  244. package/lib/{desy-nav/interfaces/notification-title-data.d.ts → desy-buttons/interfaces/listbox-label-data.d.ts} +5 -5
  245. package/lib/desy-commons/components/content/content.component.d.ts +5 -0
  246. package/lib/desy-commons/components/description/description.component.d.ts +5 -0
  247. package/lib/desy-commons/components/icon/icon.component.d.ts +5 -0
  248. package/lib/desy-commons/components/title/title.component.d.ts +5 -0
  249. package/lib/desy-commons/desy-commons.module.d.ts +2 -0
  250. package/lib/{desy-nav/interfaces/notification-content-data.d.ts → desy-commons/interfaces/content-data.d.ts} +5 -5
  251. package/lib/desy-commons/interfaces/description-data.d.ts +5 -0
  252. package/lib/desy-commons/interfaces/icon-data.d.ts +4 -0
  253. package/lib/desy-commons/interfaces/index.d.ts +4 -0
  254. package/lib/desy-commons/interfaces/title-data.d.ts +6 -0
  255. package/lib/desy-forms/components/character-count/character-count.component.d.ts +28 -28
  256. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +47 -0
  257. package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +75 -37
  258. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +22 -0
  259. package/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.d.ts +7 -0
  260. package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +4 -0
  261. package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +22 -0
  262. package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +19 -0
  263. package/lib/desy-forms/components/date-input/date-input.component.d.ts +54 -37
  264. package/lib/desy-forms/components/error-message/error-message.component.d.ts +12 -6
  265. package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +28 -20
  266. package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +6 -5
  267. package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +19 -19
  268. package/lib/desy-forms/components/form-field/form-field.component.d.ts +40 -51
  269. package/lib/desy-forms/components/hint/hint.component.d.ts +11 -5
  270. package/lib/desy-forms/components/input/input.component.d.ts +19 -19
  271. package/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.d.ts +8 -0
  272. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +20 -0
  273. package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +4 -0
  274. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +16 -0
  275. package/lib/desy-forms/components/input-group/input-group.component.d.ts +54 -36
  276. package/lib/desy-forms/components/label/label.component.d.ts +14 -7
  277. package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +43 -0
  278. package/lib/desy-forms/components/radios/radios.component.d.ts +75 -30
  279. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +17 -13
  280. package/lib/desy-forms/components/select/option/option.component.d.ts +7 -0
  281. package/lib/desy-forms/components/select/option-group/option-group.component.d.ts +7 -0
  282. package/lib/desy-forms/components/select/select-item/select-item.component.d.ts +4 -0
  283. package/lib/desy-forms/components/select/select.component.d.ts +21 -14
  284. package/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.d.ts +2 -2
  285. package/lib/desy-forms/components/textarea/textarea.component.d.ts +23 -23
  286. package/lib/desy-forms/desy-forms.module.d.ts +2 -2
  287. package/lib/desy-forms/directives/condition.directive.d.ts +15 -15
  288. package/lib/desy-forms/interfaces/accesibility-data.d.ts +15 -15
  289. package/lib/desy-forms/interfaces/error-message-data.d.ts +8 -8
  290. package/lib/desy-forms/interfaces/fieldset-data.d.ts +10 -9
  291. package/lib/desy-forms/interfaces/hint-data.d.ts +7 -7
  292. package/lib/desy-forms/interfaces/index.d.ts +12 -12
  293. package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +21 -20
  294. package/lib/desy-forms/interfaces/item-date-input-data.d.ts +17 -14
  295. package/lib/desy-forms/interfaces/item-divider-date-input-data.d.ts +5 -0
  296. package/lib/desy-forms/interfaces/item-divider-input-group-data.d.ts +5 -5
  297. package/lib/desy-forms/interfaces/item-input-group-data.d.ts +22 -23
  298. package/lib/desy-forms/interfaces/item-radio-data.d.ts +20 -17
  299. package/lib/desy-forms/interfaces/item-radio-with-template-data.d.ts +5 -5
  300. package/lib/desy-forms/interfaces/label-data.d.ts +9 -9
  301. package/lib/desy-forms/interfaces/legend-data.d.ts +6 -6
  302. package/lib/desy-forms/interfaces/select-item-data.d.ts +8 -7
  303. package/lib/desy-modals/components/dialog/dialog.component.d.ts +35 -35
  304. package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +7 -0
  305. package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +7 -0
  306. package/lib/desy-modals/components/modal/modal.component.d.ts +45 -20
  307. package/lib/desy-modals/desy-modals.module.d.ts +2 -2
  308. package/lib/desy-modals/interfaces/dialog-options.d.ts +9 -9
  309. package/lib/desy-modals/interfaces/index.d.ts +6 -6
  310. package/lib/desy-modals/interfaces/modal-button-data.d.ts +4 -4
  311. package/lib/desy-modals/interfaces/modal-data.d.ts +5 -5
  312. package/lib/desy-modals/interfaces/modal-icon-data.d.ts +4 -4
  313. package/lib/desy-modals/interfaces/modal-options.d.ts +16 -16
  314. package/lib/desy-modals/interfaces/open-dialog-result.d.ts +6 -6
  315. package/lib/desy-modals/services/dialog.service.d.ts +14 -14
  316. package/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.d.ts +6 -0
  317. package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +19 -16
  318. package/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.d.ts +6 -0
  319. package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +21 -13
  320. package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +7 -0
  321. package/lib/desy-nav/components/footer/footer-meta/footer-meta.component.d.ts +10 -0
  322. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +7 -0
  323. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +8 -0
  324. package/lib/desy-nav/components/footer/footer.component.d.ts +22 -10
  325. package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +11 -7
  326. package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +10 -0
  327. package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +13 -9
  328. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +6 -0
  329. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.d.ts +3 -0
  330. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +31 -10
  331. package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +12 -9
  332. package/lib/desy-nav/components/header/header.component.d.ts +29 -18
  333. package/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.d.ts +15 -0
  334. package/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.d.ts +18 -17
  335. package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +18 -0
  336. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.d.ts +8 -0
  337. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +15 -0
  338. package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +19 -24
  339. package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +23 -0
  340. package/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.d.ts +4 -0
  341. package/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.d.ts +15 -0
  342. package/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.d.ts +10 -0
  343. package/lib/desy-nav/components/menubar/directives/menubaritem.directive.d.ts +16 -0
  344. package/lib/desy-nav/components/menubar/menubar.component.d.ts +88 -0
  345. package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +17 -0
  346. package/lib/desy-nav/components/nav/nav.component.d.ts +18 -16
  347. package/lib/desy-nav/components/notification/notification-item/notification-item.component.d.ts +9 -0
  348. package/lib/desy-nav/components/notification/notification.component.d.ts +38 -24
  349. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +14 -7
  350. package/lib/desy-nav/desy-nav.module.d.ts +2 -2
  351. package/lib/desy-nav/interfaces/breadcrumbs.data.d.ts +7 -7
  352. package/lib/desy-nav/interfaces/error-summary-data.d.ts +7 -7
  353. package/lib/desy-nav/interfaces/footer-data.d.ts +24 -27
  354. package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +11 -7
  355. package/lib/desy-nav/interfaces/header-navigation-data.d.ts +5 -5
  356. package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +11 -11
  357. package/lib/desy-nav/interfaces/header-offcanvas-data.d.ts +8 -9
  358. package/lib/desy-nav/interfaces/header-subnav-data.d.ts +11 -6
  359. package/lib/desy-nav/interfaces/index.d.ts +16 -20
  360. package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +13 -13
  361. package/lib/desy-nav/interfaces/menu-horizontal-item-event-data.d.ts +5 -5
  362. package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +19 -17
  363. package/lib/desy-nav/interfaces/menu-vertical-sub-data.d.ts +7 -8
  364. package/lib/desy-nav/interfaces/menu-vertical-sub-items-data.d.ts +16 -13
  365. package/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.d.ts +6 -0
  366. package/lib/desy-nav/interfaces/menubar-item-sub-item.d.ts +9 -0
  367. package/lib/desy-nav/interfaces/menubar-item-sub.d.ts +6 -0
  368. package/lib/desy-nav/interfaces/menubar-item.d.ts +18 -0
  369. package/lib/desy-nav/interfaces/nav-item-event.data.d.ts +5 -5
  370. package/lib/desy-nav/interfaces/nav-item.data.d.ts +15 -14
  371. package/lib/desy-nav/interfaces/notification-items-data.d.ts +10 -7
  372. package/lib/desy-nav/interfaces/notification-options.d.ts +15 -18
  373. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +33 -38
  374. package/lib/desy-pagination/desy-pagination.module.d.ts +2 -2
  375. package/lib/desy-pagination/interfaces/index.d.ts +1 -1
  376. package/lib/desy-pagination/interfaces/pagination-item.data.d.ts +4 -4
  377. package/lib/desy-tables/components/table/components/table-caption.component.d.ts +4 -0
  378. package/lib/desy-tables/components/table/components/table-cell.component.d.ts +8 -0
  379. package/lib/desy-tables/components/table/components/table-header.component.d.ts +5 -0
  380. package/lib/desy-tables/components/table/components/table-row.component.d.ts +5 -0
  381. package/lib/desy-tables/components/table/table.component.d.ts +25 -13
  382. package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +13 -0
  383. package/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.d.ts +5 -0
  384. package/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.d.ts +8 -0
  385. package/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.d.ts +8 -0
  386. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +115 -88
  387. package/lib/desy-tables/desy-tables.module.d.ts +2 -2
  388. package/lib/desy-tables/directives/cell.directive.d.ts +14 -0
  389. package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +10 -10
  390. package/lib/desy-tables/directives/row.directive.d.ts +16 -0
  391. package/lib/desy-tables/interfaces/cell-data.d.ts +9 -9
  392. package/lib/desy-tables/interfaces/head-cell-data.d.ts +15 -15
  393. package/lib/desy-tables/interfaces/index.d.ts +4 -3
  394. package/lib/desy-tables/interfaces/recalculate-table-params.d.ts +11 -0
  395. package/lib/desy-tables/interfaces/row-data.d.ts +6 -5
  396. package/lib/desy-tables/interfaces/wrapper-data.d.ts +4 -0
  397. package/lib/desy-views/components/accordion/accordion-header/accordion-header.component.d.ts +5 -0
  398. package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +13 -0
  399. package/lib/desy-views/components/accordion/accordion.component.d.ts +36 -27
  400. package/lib/desy-views/components/alert/alert.component.d.ts +29 -27
  401. package/lib/desy-views/components/collapsible/collapsible.component.d.ts +15 -17
  402. package/lib/desy-views/components/description-list/definition/definition.component.d.ts +6 -0
  403. package/lib/desy-views/components/description-list/description-item/description-item.component.d.ts +9 -0
  404. package/lib/desy-views/components/description-list/description-list.component.d.ts +12 -9
  405. package/lib/desy-views/components/description-list/term/term.component.d.ts +6 -0
  406. package/lib/desy-views/components/details/details.component.d.ts +14 -14
  407. package/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.d.ts +5 -0
  408. package/lib/desy-views/components/item/item-content-right/item-content-right.component.d.ts +3 -0
  409. package/lib/desy-views/components/item/item-item/item-item.component.d.ts +3 -0
  410. package/lib/desy-views/components/item/item.component.d.ts +36 -17
  411. package/lib/desy-views/components/media-object/media-object.component.d.ts +14 -14
  412. package/lib/desy-views/components/spinner/spinner.component.d.ts +6 -6
  413. package/lib/desy-views/components/status/status.component.d.ts +11 -11
  414. package/lib/desy-views/components/status-item/status-item.component.d.ts +31 -20
  415. package/lib/desy-views/components/tabs/panel/panel.component.d.ts +6 -0
  416. package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +12 -0
  417. package/lib/desy-views/components/tabs/tabs.component.d.ts +35 -23
  418. package/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.d.ts +3 -0
  419. package/lib/desy-views/components/tooltip/tooltip.component.d.ts +35 -0
  420. package/lib/desy-views/desy-views.module.d.ts +2 -2
  421. package/lib/desy-views/interfaces/accordion-header.data.d.ts +5 -5
  422. package/lib/desy-views/interfaces/accordion-item.data.d.ts +10 -10
  423. package/lib/desy-views/interfaces/alert-options.d.ts +8 -8
  424. package/lib/desy-views/interfaces/description-item.data.d.ts +8 -0
  425. package/lib/desy-views/interfaces/index.d.ts +10 -10
  426. package/lib/desy-views/interfaces/open-alert-result.d.ts +6 -6
  427. package/lib/desy-views/interfaces/status-data.d.ts +8 -8
  428. package/lib/desy-views/interfaces/status-icon-data.d.ts +4 -4
  429. package/lib/desy-views/interfaces/status-item-title-data.d.ts +5 -5
  430. package/lib/desy-views/interfaces/tabs-items-data.d.ts +9 -9
  431. package/lib/desy-views/interfaces/tabs-panel-data.d.ts +8 -8
  432. package/lib/desy-views/interfaces/term-definition.data.d.ts +7 -0
  433. package/lib/desy-views/services/alert.service.d.ts +14 -14
  434. package/lib/shared/components/accessibility/accessibility.component.d.ts +20 -20
  435. package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +26 -0
  436. package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +25 -25
  437. package/lib/shared/components/content-base/content-base.component.d.ts +9 -0
  438. package/lib/shared/components/index.d.ts +5 -3
  439. package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +16 -16
  440. package/lib/shared/decorators/desy-content-child.decorator.d.ts +15 -0
  441. package/lib/shared/decorators/desy-on-input-change.decorator.d.ts +5 -0
  442. package/lib/shared/directives/attribute-change.directive.d.ts +10 -0
  443. package/lib/shared/directives/click-outside.directive.d.ts +9 -9
  444. package/lib/shared/directives/content-change.directive.d.ts +19 -0
  445. package/lib/shared/directives/content-empty.directive.d.ts +26 -0
  446. package/lib/shared/directives/custom-inner-content.directive.d.ts +22 -0
  447. package/lib/shared/directives/inner-content.directive.d.ts +9 -8
  448. package/lib/shared/interfaces/accesibility-data.d.ts +16 -16
  449. package/lib/shared/pipes/external-href.pipe.d.ts +8 -0
  450. package/lib/shared/pipes/inner-html.pipe.d.ts +7 -7
  451. package/lib/shared/pipes/make-html-list.pipe.d.ts +4 -4
  452. package/lib/shared/shared.module.d.ts +2 -2
  453. package/lib/shared/utils/focus-utils.d.ts +4 -4
  454. package/lib/shared/utils/search-utils.d.ts +14 -14
  455. package/lib/shared/utils/string-utils.d.ts +10 -0
  456. package/package.json +16 -11
  457. package/public-api.d.ts +160 -110
  458. package/esm2015/lib/desy-forms/components/checkboxes/item-checkbox/item-checkbox.component.js +0 -100
  459. package/esm2015/lib/desy-forms/components/radios/item-radio/item-radio.component.js +0 -89
  460. package/esm2015/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.js +0 -62
  461. package/esm2015/lib/desy-nav/interfaces/notification-content-data.js +0 -2
  462. package/esm2015/lib/desy-nav/interfaces/notification-description-data.js +0 -2
  463. package/esm2015/lib/desy-nav/interfaces/notification-icon-data.js +0 -2
  464. package/esm2015/lib/desy-nav/interfaces/notification-title-data.js +0 -2
  465. package/esm2015/lib/desy-views/interfaces/description.data.js +0 -2
  466. package/esm2015/lib/desy-views/interfaces/item-data.js +0 -2
  467. package/esm2015/lib/desy-views/interfaces/item-description.data.js +0 -2
  468. package/esm2015/lib/shared/utils/navigation-utils.js +0 -18
  469. package/lib/desy-forms/components/checkboxes/item-checkbox/item-checkbox.component.d.ts +0 -39
  470. package/lib/desy-forms/components/radios/item-radio/item-radio.component.d.ts +0 -36
  471. package/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.d.ts +0 -19
  472. package/lib/desy-nav/interfaces/notification-description-data.d.ts +0 -5
  473. package/lib/desy-nav/interfaces/notification-icon-data.d.ts +0 -3
  474. package/lib/desy-views/interfaces/description.data.d.ts +0 -7
  475. package/lib/desy-views/interfaces/item-data.d.ts +0 -19
  476. package/lib/desy-views/interfaces/item-description.data.d.ts +0 -8
  477. package/lib/shared/utils/navigation-utils.d.ts +0 -3
@@ -1,26 +1,26 @@
1
- import { Component, Input } from '@angular/core';
2
- import { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';
3
- export class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent {
4
- }
5
- AccessibilityAndTextOrHtmlRequiredComponent.decorators = [
6
- { type: Component, args: [{
7
- selector: 'desy-accessibility-and-text-or-html-required',
8
- template: '<div></div>'
9
- },] }
10
- ];
11
- AccessibilityAndTextOrHtmlRequiredComponent.propDecorators = {
12
- role: [{ type: Input }],
13
- ariaLabel: [{ type: Input }],
14
- ariaDescribedBy: [{ type: Input }],
15
- ariaLabelledBy: [{ type: Input }],
16
- ariaHidden: [{ type: Input }],
17
- ariaDisabled: [{ type: Input }],
18
- ariaControls: [{ type: Input }],
19
- ariaCurrent: [{ type: Input }],
20
- ariaLive: [{ type: Input }],
21
- ariaExpanded: [{ type: Input }],
22
- ariaErrorMessage: [{ type: Input }],
23
- ariaHasPopup: [{ type: Input }],
24
- tabindex: [{ type: Input }]
25
- };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzaWJpbGl0eS1hbmQtdGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL2FjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZC9hY2Nlc3NpYmlsaXR5LWFuZC10ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBTXZHLE1BQU0sT0FBTywyQ0FBNEMsU0FBUSwyQkFBMkI7OztZQUozRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDhDQUE4QztnQkFDeEQsUUFBUSxFQUFFLGFBQWE7YUFDeEI7OzttQkFhSSxLQUFLO3dCQUNMLEtBQUs7OEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSzsyQkFDTCxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjZXNpYmlsaXR5RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWNjZXNpYmlsaXR5LWRhdGEnO1xuaW1wb3J0IHsgVGV4dE9ySHRtbFJlcXVpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dC1vci1odG1sLXJlcXVpcmVkL3RleHQtb3ItaHRtbC1yZXF1aXJlZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWFjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZCcsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc2liaWxpdHlBbmRUZXh0T3JIdG1sUmVxdWlyZWRDb21wb25lbnQgZXh0ZW5kcyBUZXh0T3JIdG1sUmVxdWlyZWRDb21wb25lbnQgaW1wbGVtZW50cyBBY2Nlc2liaWxpdHlEYXRhIHtcblxuICAvKipcbiAgICogY29tcG9uZW50ZSBwYXJhIGhlcmVkYXIgbG9zIGF0cmlidXRvcyBkZSBhY2Nlc2liaWxpZGFkIHlcbiAgICogZWwgdGV4dG8gbyBodG1sIHJlcXVpcmVkXG4gICAqIFxuICAgKiBzaSBlbiBlbCBjb21wb25lbnRlIHF1ZSBleHRpZW5kZSBkZSBlc3RlLCBzZSBpbXBsZW1lbnRhIGVsIG9uSW5pdCBvIE9uY2hhbmdlcyxcbiAgICogaGFicmEgcXVlIGluY2x1aXIgbGEgbGxhbWFkYSBhbCBhIGZ1bmNpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb25cbiAgICogXG4gICAqL1xuXG4gICAgLy8gQXRyaWJ1dG9zIGRlIGFjY2VzaWJpbGlkYWRcbiAgICBASW5wdXQoKSByb2xlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnk6IHN0cmluZztcbiAgICBASW5wdXQoKSBhcmlhSGlkZGVuOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYURpc2FibGVkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUNvbnRyb2xzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUN1cnJlbnQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBhcmlhTGl2ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFyaWFFeHBhbmRlZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFyaWFFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBhcmlhSGFzUG9wdXA6IHN0cmluZztcbiAgICBASW5wdXQoKSB0YWJpbmRleDogc3RyaW5nO1xuXG59XG4iXX0=
1
+ import { Component, Input } from '@angular/core';
2
+ import { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';
3
+ export class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent {
4
+ }
5
+ AccessibilityAndTextOrHtmlRequiredComponent.decorators = [
6
+ { type: Component, args: [{
7
+ selector: 'desy-accessibility-and-text-or-html-required',
8
+ template: '<div></div>'
9
+ },] }
10
+ ];
11
+ AccessibilityAndTextOrHtmlRequiredComponent.propDecorators = {
12
+ role: [{ type: Input }],
13
+ ariaLabel: [{ type: Input }],
14
+ ariaDescribedBy: [{ type: Input }],
15
+ ariaLabelledBy: [{ type: Input }],
16
+ ariaHidden: [{ type: Input }],
17
+ ariaDisabled: [{ type: Input }],
18
+ ariaControls: [{ type: Input }],
19
+ ariaCurrent: [{ type: Input }],
20
+ ariaLive: [{ type: Input }],
21
+ ariaExpanded: [{ type: Input }],
22
+ ariaErrorMessage: [{ type: Input }],
23
+ ariaHasPopup: [{ type: Input }],
24
+ tabindex: [{ type: Input }]
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzaWJpbGl0eS1hbmQtdGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2FjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZC9hY2Nlc3NpYmlsaXR5LWFuZC10ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBTXZHLE1BQU0sT0FBTywyQ0FBNEMsU0FBUSwyQkFBMkI7OztZQUozRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDhDQUE4QztnQkFDeEQsUUFBUSxFQUFFLGFBQWE7YUFDeEI7OzttQkFhSSxLQUFLO3dCQUNMLEtBQUs7OEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSzsyQkFDTCxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY2Nlc2liaWxpdHlEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hY2Nlc2liaWxpdHktZGF0YSc7XHJcbmltcG9ydCB7IFRleHRPckh0bWxSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1hY2Nlc3NpYmlsaXR5LWFuZC10ZXh0LW9yLWh0bWwtcmVxdWlyZWQnLFxyXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2Nlc3NpYmlsaXR5QW5kVGV4dE9ySHRtbFJlcXVpcmVkQ29tcG9uZW50IGV4dGVuZHMgVGV4dE9ySHRtbFJlcXVpcmVkQ29tcG9uZW50IGltcGxlbWVudHMgQWNjZXNpYmlsaXR5RGF0YSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBvbmVudGUgcGFyYSBoZXJlZGFyIGxvcyBhdHJpYnV0b3MgZGUgYWNjZXNpYmlsaWRhZCB5XHJcbiAgICogZWwgdGV4dG8gbyBodG1sIHJlcXVpcmVkXHJcbiAgICogXHJcbiAgICogc2kgZW4gZWwgY29tcG9uZW50ZSBxdWUgZXh0aWVuZGUgZGUgZXN0ZSwgc2UgaW1wbGVtZW50YSBlbCBvbkluaXQgbyBPbmNoYW5nZXMsXHJcbiAgICogaGFicmEgcXVlIGluY2x1aXIgbGEgbGxhbWFkYSBhbCBhIGZ1bmNpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb25cclxuICAgKiBcclxuICAgKi9cclxuXHJcbiAgICAvLyBBdHJpYnV0b3MgZGUgYWNjZXNpYmlsaWRhZFxyXG4gICAgQElucHV0KCkgcm9sZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhRGVzY3JpYmVkQnk6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhSGlkZGVuOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhRGlzYWJsZWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFDb250cm9sczogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYXJpYUN1cnJlbnQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFMaXZlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhRXhwYW5kZWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFIYXNQb3B1cDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdGFiaW5kZXg6IHN0cmluZztcclxuXHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { AccessibilityComponent } from '../accessibility/accessibility.component';
3
+ /**
4
+ * Componente base para proyectar contenido
5
+ */
6
+ export class ContentBaseComponent extends AccessibilityComponent {
7
+ getContent() {
8
+ return this.content;
9
+ }
10
+ }
11
+ ContentBaseComponent.decorators = [
12
+ { type: Component, args: [{
13
+ selector: 'desy-content-base',
14
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
15
+ },] }
16
+ ];
17
+ ContentBaseComponent.propDecorators = {
18
+ content: [{ type: ViewChild, args: ['contentTemplate', { static: true },] }]
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQtYmFzZS9jb250ZW50LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGOztHQUVHO0FBS0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHNCQUFzQjtJQUl2RCxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7OztZQVZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBR0UsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY2Nlc3NpYmlsaXR5Q29tcG9uZW50fSBmcm9tICcuLi9hY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkuY29tcG9uZW50JztcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgYmFzZSBwYXJhIHByb3llY3RhciBjb250ZW5pZG9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1jb250ZW50LWJhc2UnLFxyXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGVudEJhc2VDb21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBwdWJsaWMgZ2V0Q29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,6 @@
1
- export * from './accessibility/accessibility.component';
2
- export * from './accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component';
3
- export * from './text-or-html-required/text-or-html-required.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkZBQTZGLENBQUM7QUFDNUcsY0FBYyx5REFBeUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0ICogZnJvbSAnLi9hY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzaWJpbGl0eS1hbmQtdGV4dC1vci1odG1sLXJlcXVpcmVkL2FjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LW9yLWh0bWwtcmVxdWlyZWQvdGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudCc7XG4iXX0=
1
+ export * from './accessibility/accessibility.component';
2
+ export * from './content-base/content-base.component';
3
+ export * from './accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component';
4
+ export * from './accessibility-and-content-required/accessibility-and-content-required.component';
5
+ export * from './text-or-html-required/text-or-html-required.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2RkFBNkYsQ0FBQztBQUM1RyxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9hY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LWJhc2UvY29udGVudC1iYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzaWJpbGl0eS1hbmQtdGV4dC1vci1odG1sLXJlcXVpcmVkL2FjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FjY2Vzc2liaWxpdHktYW5kLWNvbnRlbnQtcmVxdWlyZWQvYWNjZXNzaWJpbGl0eS1hbmQtY29udGVudC1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50JztcclxuIl19
@@ -1,26 +1,26 @@
1
- import { Component, Input } from '@angular/core';
2
- export class TextOrHtmlRequiredComponent {
3
- ngOnChanges(changes) {
4
- textOrHtmlRequiredFunction(this.text, this.html);
5
- }
6
- }
7
- TextOrHtmlRequiredComponent.decorators = [
8
- { type: Component, args: [{
9
- selector: 'desy-text-or-html-required',
10
- template: '<div></div>'
11
- },] }
12
- ];
13
- TextOrHtmlRequiredComponent.propDecorators = {
14
- text: [{ type: Input }],
15
- html: [{ type: Input }]
16
- };
17
- /**
18
- * funcion que comprueba si existe text o html
19
- * salta error si no es así
20
- */
21
- export function textOrHtmlRequiredFunction(text, html) {
22
- if (!html && !text) {
23
- throw new Error(`html or text are required`);
24
- }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQU0zRSxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDOzs7WUFqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRSxhQUFhO2FBQ3hCOzs7bUJBU0UsS0FBSzttQkFDTCxLQUFLOztBQVFSOzs7R0FHRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUM3RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUM5QztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS10ZXh0LW9yLWh0bWwtcmVxdWlyZWQnLFxuICB0ZW1wbGF0ZTogJzxkaXY+PC9kaXY+J1xufSlcbmV4cG9ydCBjbGFzcyBUZXh0T3JIdG1sUmVxdWlyZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8qKipcbiAgICogY29tcG9uZW50ZSBiYXNlIHBhcmEgZWwgY29tcG9ydGFtaWVudG8gZGUgdGV4dG8gbyBodG1sIHJlcXVpcmVkXG4gICAqIHNpIGVuIGVsIGNvbXBvbmVudGUgcXVlIGV4dGllbmRlIGRlIGVzdGUsIHNlIGltcGxlbWVudGEgZWwgb25Jbml0IG8gT25jaGFuZ2VzLFxuICAgKiBoYWJyYSBxdWUgaW5jbHVpciBsYSBsbGFtYWRhIGFsIGEgZnVuY2lvbiB0ZXh0T3JIdG1sUmVxdWlyZWRGdW5jdGlvblxuICAgKiovXG5cbiAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBodG1sOiBzdHJpbmc7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRleHRPckh0bWxSZXF1aXJlZEZ1bmN0aW9uKHRoaXMudGV4dCwgdGhpcy5odG1sKTtcbiAgfVxuXG59XG5cbi8qKlxuICogZnVuY2lvbiBxdWUgY29tcHJ1ZWJhIHNpIGV4aXN0ZSB0ZXh0IG8gaHRtbFxuICogc2FsdGEgZXJyb3Igc2kgbm8gZXMgYXPDrVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb24odGV4dDogYW55LCBodG1sOiBhbnkpOiB2b2lkIHtcbiAgaWYgKCFodG1sICYmICF0ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBodG1sIG9yIHRleHQgYXJlIHJlcXVpcmVkYCk7XG4gIH1cbn1cbiJdfQ==
1
+ import { Component, Input } from '@angular/core';
2
+ export class TextOrHtmlRequiredComponent {
3
+ ngOnChanges(changes) {
4
+ textOrHtmlRequiredFunction(this.text, this.html);
5
+ }
6
+ }
7
+ TextOrHtmlRequiredComponent.decorators = [
8
+ { type: Component, args: [{
9
+ selector: 'desy-text-or-html-required',
10
+ template: '<div></div>'
11
+ },] }
12
+ ];
13
+ TextOrHtmlRequiredComponent.propDecorators = {
14
+ text: [{ type: Input }],
15
+ html: [{ type: Input }]
16
+ };
17
+ /**
18
+ * funcion que comprueba si existe text o html
19
+ * salta error si no es así
20
+ */
21
+ export function textOrHtmlRequiredFunction(text, html) {
22
+ if (!html && !text) {
23
+ throw new Error(`html or text are required`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQU0zRSxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDOzs7WUFqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRSxhQUFhO2FBQ3hCOzs7bUJBU0UsS0FBSzttQkFDTCxLQUFLOztBQVFSOzs7R0FHRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUM3RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUM5QztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS10ZXh0LW9yLWh0bWwtcmVxdWlyZWQnLFxyXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0T3JIdG1sUmVxdWlyZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvKioqXHJcbiAgICogY29tcG9uZW50ZSBiYXNlIHBhcmEgZWwgY29tcG9ydGFtaWVudG8gZGUgdGV4dG8gbyBodG1sIHJlcXVpcmVkXHJcbiAgICogc2kgZW4gZWwgY29tcG9uZW50ZSBxdWUgZXh0aWVuZGUgZGUgZXN0ZSwgc2UgaW1wbGVtZW50YSBlbCBvbkluaXQgbyBPbmNoYW5nZXMsXHJcbiAgICogaGFicmEgcXVlIGluY2x1aXIgbGEgbGxhbWFkYSBhbCBhIGZ1bmNpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb25cclxuICAgKiovXHJcblxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBodG1sOiBzdHJpbmc7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRleHRPckh0bWxSZXF1aXJlZEZ1bmN0aW9uKHRoaXMudGV4dCwgdGhpcy5odG1sKTtcclxuICB9XHJcblxyXG59XHJcblxyXG4vKipcclxuICogZnVuY2lvbiBxdWUgY29tcHJ1ZWJhIHNpIGV4aXN0ZSB0ZXh0IG8gaHRtbFxyXG4gKiBzYWx0YSBlcnJvciBzaSBubyBlcyBhc8OtXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb24odGV4dDogYW55LCBodG1sOiBhbnkpOiB2b2lkIHtcclxuICBpZiAoIWh0bWwgJiYgIXRleHQpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgaHRtbCBvciB0ZXh0IGFyZSByZXF1aXJlZGApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { QueryList } from '@angular/core';
2
+ /**
3
+ * Decorador para convertir una queryList de componentes obtenidos con ContentChildren a un único componente, de forma que sea similar a un
4
+ * ContentChild pero admitiendo únicamente los compontentes insertados en el primer nivel.
5
+ * Debe utilizarse siempre junto a un ContentChildren
6
+ * Si en el constructor de la clase en la que se utiliza se inyecta el Change detector con nombre 'changeDetectorRef', se indicará que hay
7
+ * cambios cuando se detecten.
8
+ * @param options opciones adicionales:
9
+ * - onSetCallbackName: nombre del método al que llamar tras asociarse el valor. Esto puede utilizarse, por ejemplo, para sobreescribir
10
+ * parámetros definidos externamente en el componente.
11
+ * - onDeleteCallbackName: nombre del método al que llamar tras desasociarse el valor.
12
+ */
13
+ export function DesyContentChild(options) {
14
+ return (target, propertyKey) => {
15
+ const privateKeyName = `_${propertyKey}`;
16
+ const privateQueryListKeyName = `_${propertyKey}Querylist`;
17
+ Object.defineProperty(target, propertyKey, {
18
+ set(value) {
19
+ const queryList = value instanceof QueryList ? value : null;
20
+ if (queryList && !this[privateQueryListKeyName]) {
21
+ this[privateQueryListKeyName] = queryList;
22
+ queryList.changes.subscribe(() => {
23
+ const previousValue = this[privateKeyName];
24
+ this[privateKeyName] = queryList && queryList.length > 0 ? queryList.first : null;
25
+ if (options && options.onSetCallbackName && this[options.onSetCallbackName] && this[privateKeyName]) {
26
+ this[options.onSetCallbackName](this[privateKeyName]);
27
+ }
28
+ if (options && options.onDeleteCallbackName && this[options.onDeleteCallbackName] && previousValue && !this[privateKeyName]) {
29
+ this[options.onDeleteCallbackName]();
30
+ }
31
+ });
32
+ queryList.notifyOnChanges();
33
+ }
34
+ },
35
+ get() {
36
+ return this[privateKeyName];
37
+ }
38
+ });
39
+ };
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQXVFO0lBQ3RHLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sY0FBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDekMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLFdBQVcsV0FBVyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN6QyxHQUFHLENBQUMsS0FBSztnQkFDUCxNQUFNLFNBQVMsR0FBRyxLQUFLLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzlFLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7b0JBQy9DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO3dCQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFFbEYsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUc7NEJBQ3BHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQzt5QkFDdkQ7d0JBRUQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUc7NEJBQzVILElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO3lCQUN0QztvQkFDSCxDQUFDLENBQUMsQ0FBQztvQkFDSCxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQztZQUNELEdBQUc7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1F1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogRGVjb3JhZG9yIHBhcmEgY29udmVydGlyIHVuYSBxdWVyeUxpc3QgZGUgY29tcG9uZW50ZXMgb2J0ZW5pZG9zIGNvbiBDb250ZW50Q2hpbGRyZW4gYSB1biDDum5pY28gY29tcG9uZW50ZSwgZGUgZm9ybWEgcXVlIHNlYSBzaW1pbGFyIGEgdW5cclxuICogQ29udGVudENoaWxkIHBlcm8gYWRtaXRpZW5kbyDDum5pY2FtZW50ZSBsb3MgY29tcG9udGVudGVzIGluc2VydGFkb3MgZW4gZWwgcHJpbWVyIG5pdmVsLlxyXG4gKiBEZWJlIHV0aWxpemFyc2Ugc2llbXByZSBqdW50byBhIHVuIENvbnRlbnRDaGlsZHJlblxyXG4gKiBTaSBlbiBlbCBjb25zdHJ1Y3RvciBkZSBsYSBjbGFzZSBlbiBsYSBxdWUgc2UgdXRpbGl6YSBzZSBpbnllY3RhIGVsIENoYW5nZSBkZXRlY3RvciBjb24gbm9tYnJlICdjaGFuZ2VEZXRlY3RvclJlZicsIHNlIGluZGljYXLDoSBxdWUgaGF5XHJcbiAqIGNhbWJpb3MgY3VhbmRvIHNlIGRldGVjdGVuLlxyXG4gKiBAcGFyYW0gb3B0aW9ucyBvcGNpb25lcyBhZGljaW9uYWxlczpcclxuICogIC0gb25TZXRDYWxsYmFja05hbWU6IG5vbWJyZSBkZWwgbcOpdG9kbyBhbCBxdWUgbGxhbWFyIHRyYXMgYXNvY2lhcnNlIGVsIHZhbG9yLiBFc3RvIHB1ZWRlIHV0aWxpemFyc2UsIHBvciBlamVtcGxvLCBwYXJhIHNvYnJlZXNjcmliaXJcclxuICogICAgICAgICAgICAgICAgICAgICAgIHBhcsOhbWV0cm9zIGRlZmluaWRvcyBleHRlcm5hbWVudGUgZW4gZWwgY29tcG9uZW50ZS5cclxuICogIC0gb25EZWxldGVDYWxsYmFja05hbWU6IG5vbWJyZSBkZWwgbcOpdG9kbyBhbCBxdWUgbGxhbWFyIHRyYXMgZGVzYXNvY2lhcnNlIGVsIHZhbG9yLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIERlc3lDb250ZW50Q2hpbGQob3B0aW9ucz86IHsgb25TZXRDYWxsYmFja05hbWU/OiBzdHJpbmcsIG9uRGVsZXRlQ2FsbGJhY2tOYW1lPzogc3RyaW5nIH0pOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcHJpdmF0ZUtleU5hbWUgPSBgXyR7cHJvcGVydHlLZXl9YDtcclxuICAgIGNvbnN0IHByaXZhdGVRdWVyeUxpc3RLZXlOYW1lID0gYF8ke3Byb3BlcnR5S2V5fVF1ZXJ5bGlzdGA7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcclxuICAgICAgc2V0KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcXVlcnlMaXN0ID0gdmFsdWUgaW5zdGFuY2VvZiBRdWVyeUxpc3QgPyB2YWx1ZSBhcyBRdWVyeUxpc3Q8YW55PiA6IG51bGw7XHJcbiAgICAgICAgaWYgKHF1ZXJ5TGlzdCAmJiAhdGhpc1twcml2YXRlUXVlcnlMaXN0S2V5TmFtZV0pIHtcclxuICAgICAgICAgIHRoaXNbcHJpdmF0ZVF1ZXJ5TGlzdEtleU5hbWVdID0gcXVlcnlMaXN0O1xyXG4gICAgICAgICAgcXVlcnlMaXN0LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXNbcHJpdmF0ZUtleU5hbWVdO1xyXG4gICAgICAgICAgICB0aGlzW3ByaXZhdGVLZXlOYW1lXSA9IHF1ZXJ5TGlzdCAmJiBxdWVyeUxpc3QubGVuZ3RoID4gMCA/IHF1ZXJ5TGlzdC5maXJzdCA6IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm9uU2V0Q2FsbGJhY2tOYW1lICYmIHRoaXNbb3B0aW9ucy5vblNldENhbGxiYWNrTmFtZV0gJiYgdGhpc1twcml2YXRlS2V5TmFtZV0gKSB7XHJcbiAgICAgICAgICAgICAgdGhpc1tvcHRpb25zLm9uU2V0Q2FsbGJhY2tOYW1lXSh0aGlzW3ByaXZhdGVLZXlOYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMub25EZWxldGVDYWxsYmFja05hbWUgJiYgdGhpc1tvcHRpb25zLm9uRGVsZXRlQ2FsbGJhY2tOYW1lXSAmJiBwcmV2aW91c1ZhbHVlICYmICF0aGlzW3ByaXZhdGVLZXlOYW1lXSApIHtcclxuICAgICAgICAgICAgICB0aGlzW29wdGlvbnMub25EZWxldGVDYWxsYmFja05hbWVdKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcXVlcnlMaXN0Lm5vdGlmeU9uQ2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZ2V0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNbcHJpdmF0ZUtleU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Decorador para controlar los cambios de un input
3
+ * @param callbackName nombre de la función a la que se llamará tras aplicar el cambio
4
+ */
5
+ export function DesyOnInputChange(callbackName) {
6
+ return (target, propertyKey) => {
7
+ const privateKeyName = `_${propertyKey}`;
8
+ Object.defineProperty(target, propertyKey, {
9
+ set(value) {
10
+ this[privateKeyName] = value;
11
+ this[callbackName]();
12
+ },
13
+ get() {
14
+ return this[privateKeyName];
15
+ }
16
+ });
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxZQUFvQjtJQUNwRCxPQUFPLENBQUMsTUFBVyxFQUFFLFdBQW1CLEVBQUUsRUFBRTtRQUMxQyxNQUFNLGNBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN6QyxHQUFHLENBQUMsS0FBSztnQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBQ0QsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBEZWNvcmFkb3IgcGFyYSBjb250cm9sYXIgbG9zIGNhbWJpb3MgZGUgdW4gaW5wdXRcclxuICogQHBhcmFtIGNhbGxiYWNrTmFtZSBub21icmUgZGUgbGEgZnVuY2nDs24gYSBsYSBxdWUgc2UgbGxhbWFyw6EgdHJhcyBhcGxpY2FyIGVsIGNhbWJpb1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIERlc3lPbklucHV0Q2hhbmdlKGNhbGxiYWNrTmFtZTogc3RyaW5nKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHByaXZhdGVLZXlOYW1lID0gYF8ke3Byb3BlcnR5S2V5fWA7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcclxuICAgICAgc2V0KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpc1twcml2YXRlS2V5TmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzW2NhbGxiYWNrTmFtZV0oKTtcclxuICAgICAgfSxcclxuICAgICAgZ2V0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNbcHJpdmF0ZUtleU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';
2
+ export class AttributeChangeDirective {
3
+ constructor(elementRef) {
4
+ this.elementRef = elementRef;
5
+ this.desyAttributeChange = new EventEmitter();
6
+ this.desyAttributeChangeMutation = new EventEmitter();
7
+ const element = this.elementRef.nativeElement;
8
+ this.changes = new MutationObserver((mutations) => {
9
+ mutations.forEach((mutation) => {
10
+ if (this.attributesToCheck) {
11
+ const attrs = typeof (this.attributesToCheck) === 'string' ? [this.attributesToCheck] : this.attributesToCheck;
12
+ if (attrs.findIndex(v => v === mutation.attributeName) >= 0) {
13
+ this.desyAttributeChange.emit(this.elementRef.nativeElement.innerHTML);
14
+ this.desyAttributeChangeMutation.emit(mutation);
15
+ }
16
+ }
17
+ });
18
+ });
19
+ this.changes.observe(element, {
20
+ attributes: true,
21
+ childList: false,
22
+ characterData: false,
23
+ subtree: false
24
+ });
25
+ }
26
+ ngOnDestroy() {
27
+ this.changes.disconnect();
28
+ }
29
+ }
30
+ AttributeChangeDirective.decorators = [
31
+ { type: Directive, args: [{
32
+ selector: '[desyAttributeChange]'
33
+ },] }
34
+ ];
35
+ AttributeChangeDirective.ctorParameters = () => [
36
+ { type: ElementRef }
37
+ ];
38
+ AttributeChangeDirective.propDecorators = {
39
+ attributesToCheck: [{ type: Input }],
40
+ desyAttributeChange: [{ type: Output }],
41
+ desyAttributeChangeMutation: [{ type: Output }]
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWNoYW5nZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9hdHRyaWJ1dGUtY2hhbmdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUs1RixNQUFNLE9BQU8sd0JBQXdCO0lBWW5DLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFMbkMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd6QyxnQ0FBMkIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUNoRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtvQkFDMUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUMvRyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDM0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDakQ7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQzVCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQXpDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjthQUNsQzs7O1lBSmtCLFVBQVU7OztnQ0FTMUIsS0FBSztrQ0FFTCxNQUFNOzBDQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZGVzeUF0dHJpYnV0ZUNoYW5nZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVDaGFuZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGNoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcblxyXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXNUb0NoZWNrOiBzdHJpbmd8c3RyaW5nW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXN5QXR0cmlidXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzeUF0dHJpYnV0ZUNoYW5nZU11dGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLmNoYW5nZXMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXR0cmlidXRlc1RvQ2hlY2spIHtcclxuICAgICAgICAgICAgY29uc3QgYXR0cnMgPSB0eXBlb2YgKHRoaXMuYXR0cmlidXRlc1RvQ2hlY2spID09PSAnc3RyaW5nJyA/IFt0aGlzLmF0dHJpYnV0ZXNUb0NoZWNrXSA6IHRoaXMuYXR0cmlidXRlc1RvQ2hlY2s7XHJcbiAgICAgICAgICAgIGlmIChhdHRycy5maW5kSW5kZXgodiA9PiB2ID09PSBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXN5QXR0cmlidXRlQ2hhbmdlLmVtaXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcclxuICAgICAgICAgICAgICB0aGlzLmRlc3lBdHRyaWJ1dGVDaGFuZ2VNdXRhdGlvbi5lbWl0KG11dGF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlcy5vYnNlcnZlKGVsZW1lbnQsIHtcclxuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcclxuICAgICAgY2hpbGRMaXN0OiBmYWxzZSxcclxuICAgICAgY2hhcmFjdGVyRGF0YTogZmFsc2UsXHJcbiAgICAgIHN1YnRyZWU6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,35 +1,35 @@
1
- import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
- export class ClickOutsideDirective {
3
- constructor(hostElementRef) {
4
- this.hostElementRef = hostElementRef;
5
- this.active = true;
6
- this.clickOutside = new EventEmitter();
7
- }
8
- onClick(target) {
9
- let clickedInside;
10
- if (this.desyClickOutsideElem) {
11
- clickedInside = this.desyClickOutsideElem.contains(target);
12
- }
13
- else {
14
- clickedInside = this.hostElementRef.nativeElement.contains(target);
15
- }
16
- if (!clickedInside && this.active) {
17
- this.clickOutside.emit();
18
- }
19
- }
20
- }
21
- ClickOutsideDirective.decorators = [
22
- { type: Directive, args: [{
23
- selector: '[desyClickOutside]'
24
- },] }
25
- ];
26
- ClickOutsideDirective.ctorParameters = () => [
27
- { type: ElementRef }
28
- ];
29
- ClickOutsideDirective.propDecorators = {
30
- active: [{ type: Input, args: ['desyClickOutside',] }],
31
- clickOutside: [{ type: Output }],
32
- desyClickOutsideElem: [{ type: Input }],
33
- onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
34
- };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakcsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFvQixjQUEwQjtRQUExQixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUpuQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUdBLENBQUM7SUFHNUMsT0FBTyxDQUFDLE1BQU07UUFDbkIsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNMLGFBQWEsR0FBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQXlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs7WUF0QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7OztZQUptQixVQUFVOzs7cUJBTzNCLEtBQUssU0FBQyxrQkFBa0I7MkJBQ3hCLE1BQU07bUNBQ04sS0FBSztzQkFJTCxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZXN5Q2xpY2tPdXRzaWRlXSdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIHtcblxuICBASW5wdXQoJ2Rlc3lDbGlja091dHNpZGUnKSBhY3RpdmUgPSB0cnVlO1xuICBAT3V0cHV0KCkgY2xpY2tPdXRzaWRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBkZXN5Q2xpY2tPdXRzaWRlRWxlbTogRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3RFbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICBwdWJsaWMgb25DbGljayh0YXJnZXQpOiB2b2lkIHtcbiAgICBsZXQgY2xpY2tlZEluc2lkZTtcbiAgICBpZiAodGhpcy5kZXN5Q2xpY2tPdXRzaWRlRWxlbSkge1xuICAgICAgY2xpY2tlZEluc2lkZSA9IHRoaXMuZGVzeUNsaWNrT3V0c2lkZUVsZW0uY29udGFpbnModGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xpY2tlZEluc2lkZSA9ICh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudCkuY29udGFpbnModGFyZ2V0KTtcbiAgICB9XG4gICAgaWYgKCFjbGlja2VkSW5zaWRlICYmIHRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLmNsaWNrT3V0c2lkZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
1
+ import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ export class ClickOutsideDirective {
3
+ constructor(hostElementRef) {
4
+ this.hostElementRef = hostElementRef;
5
+ this.active = true;
6
+ this.clickOutside = new EventEmitter();
7
+ }
8
+ onClick(target) {
9
+ let clickedInside;
10
+ if (this.desyClickOutsideElem) {
11
+ clickedInside = this.desyClickOutsideElem.contains(target);
12
+ }
13
+ else {
14
+ clickedInside = this.hostElementRef.nativeElement.contains(target);
15
+ }
16
+ if (!clickedInside && this.active) {
17
+ this.clickOutside.emit();
18
+ }
19
+ }
20
+ }
21
+ ClickOutsideDirective.decorators = [
22
+ { type: Directive, args: [{
23
+ selector: '[desyClickOutside]'
24
+ },] }
25
+ ];
26
+ ClickOutsideDirective.ctorParameters = () => [
27
+ { type: ElementRef }
28
+ ];
29
+ ClickOutsideDirective.propDecorators = {
30
+ active: [{ type: Input, args: ['desyClickOutside',] }],
31
+ clickOutside: [{ type: Output }],
32
+ desyClickOutsideElem: [{ type: Input }],
33
+ onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
34
+ };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakcsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFvQixjQUEwQjtRQUExQixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUpuQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUdBLENBQUM7SUFHNUMsT0FBTyxDQUFDLE1BQU07UUFDbkIsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNMLGFBQWEsR0FBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQXlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs7WUF0QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7OztZQUptQixVQUFVOzs7cUJBTzNCLEtBQUssU0FBQyxrQkFBa0I7MkJBQ3hCLE1BQU07bUNBQ04sS0FBSztzQkFJTCxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZXN5Q2xpY2tPdXRzaWRlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgnZGVzeUNsaWNrT3V0c2lkZScpIGFjdGl2ZSA9IHRydWU7XHJcbiAgQE91dHB1dCgpIGNsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBASW5wdXQoKSBkZXN5Q2xpY2tPdXRzaWRlRWxlbTogRWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBob3N0RWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgcHVibGljIG9uQ2xpY2sodGFyZ2V0KTogdm9pZCB7XHJcbiAgICBsZXQgY2xpY2tlZEluc2lkZTtcclxuICAgIGlmICh0aGlzLmRlc3lDbGlja091dHNpZGVFbGVtKSB7XHJcbiAgICAgIGNsaWNrZWRJbnNpZGUgPSB0aGlzLmRlc3lDbGlja091dHNpZGVFbGVtLmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjbGlja2VkSW5zaWRlID0gKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50KS5jb250YWlucyh0YXJnZXQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjbGlja2VkSW5zaWRlICYmIHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tPdXRzaWRlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';
2
+ /**
3
+ * Permite comprobar cuándo se produce un cambio en el contenido de un elemento.
4
+ * La propia directiva emite el html interno del elemento en formato string, mientras que desyContentChangeMutation emite los cambios.
5
+ */
6
+ export class ContentChangeDirective {
7
+ constructor(elementRef) {
8
+ this.elementRef = elementRef;
9
+ this.observeProperties = {
10
+ attributes: false,
11
+ childList: true,
12
+ characterData: true,
13
+ subtree: true
14
+ };
15
+ this.desyContentChange = new EventEmitter();
16
+ this.desyContentChangeMutation = new EventEmitter();
17
+ const element = this.elementRef.nativeElement;
18
+ this.changes = new MutationObserver((mutations) => {
19
+ mutations.forEach((mutation) => {
20
+ this.desyContentChange.emit(this.elementRef);
21
+ this.desyContentChangeMutation.emit(mutation);
22
+ });
23
+ });
24
+ this.changes.observe(element, this.observeProperties);
25
+ }
26
+ ngOnDestroy() {
27
+ this.changes.disconnect();
28
+ }
29
+ }
30
+ ContentChangeDirective.decorators = [
31
+ { type: Directive, args: [{
32
+ selector: '[desyContentChange]'
33
+ },] }
34
+ ];
35
+ ContentChangeDirective.ctorParameters = () => [
36
+ { type: ElementRef }
37
+ ];
38
+ ContentChangeDirective.propDecorators = {
39
+ observeProperties: [{ type: Input }],
40
+ desyContentChange: [{ type: Output }],
41
+ desyContentChangeMutation: [{ type: Output }]
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGFuZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvY29udGVudC1jaGFuZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFiakMsc0JBQWlCLEdBQTBGO1lBQ2xILFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLElBQUk7WUFDbkIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBR0ssc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUduRCw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUNoRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUFwQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7YUFDaEM7OztZQVJrQixVQUFVOzs7Z0NBYTFCLEtBQUs7Z0NBT0wsTUFBTTt3Q0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBQZXJtaXRlIGNvbXByb2JhciBjdcOhbmRvIHNlIHByb2R1Y2UgdW4gY2FtYmlvIGVuIGVsIGNvbnRlbmlkbyBkZSB1biBlbGVtZW50by5cclxuICogTGEgcHJvcGlhIGRpcmVjdGl2YSBlbWl0ZSBlbCBodG1sIGludGVybm8gZGVsIGVsZW1lbnRvIGVuIGZvcm1hdG8gc3RyaW5nLCBtaWVudHJhcyBxdWUgZGVzeUNvbnRlbnRDaGFuZ2VNdXRhdGlvbiBlbWl0ZSBsb3MgY2FtYmlvcy5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rlc3lDb250ZW50Q2hhbmdlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRDaGFuZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGNoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcblxyXG4gIEBJbnB1dCgpIG9ic2VydmVQcm9wZXJ0aWVzOiB7IGF0dHJpYnV0ZXM6IGJvb2xlYW4sIGNoaWxkTGlzdDogYm9vbGVhbiwgY2hhcmFjdGVyRGF0YTogYm9vbGVhbiwgc3VidHJlZTogYm9vbGVhbiB9ID0ge1xyXG4gICAgYXR0cmlidXRlczogZmFsc2UsXHJcbiAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxyXG4gICAgc3VidHJlZTogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXN5Q29udGVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudFJlZj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRlc3lDb250ZW50Q2hhbmdlTXV0YXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuY2hhbmdlcyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IHtcclxuICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlc3lDb250ZW50Q2hhbmdlLmVtaXQodGhpcy5lbGVtZW50UmVmKTtcclxuICAgICAgICAgIHRoaXMuZGVzeUNvbnRlbnRDaGFuZ2VNdXRhdGlvbi5lbWl0KG11dGF0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNoYW5nZXMub2JzZXJ2ZShlbGVtZW50LCB0aGlzLm9ic2VydmVQcm9wZXJ0aWVzKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,86 @@
1
+ import { ContentChildren, Directive, ElementRef, EventEmitter, Output } from '@angular/core';
2
+ /**
3
+ * Emite un evento cuando el contenido de un elemento esté vacío
4
+ * El contenido marcado con #desyContentEmptyIgnore será ignorado
5
+ *
6
+ * NOTA: tener en cuenta que los eventos se emiten después de generarse la vista, por lo que si al gestionar el evento se realizan
7
+ * cambios que afectan a la template, conviene forzar la detección de cambios. (Ejemplo de esto en el icono de NotificationComponent)
8
+ */
9
+ export class ContentEmptyDirective {
10
+ constructor(elementRef) {
11
+ this.elementRef = elementRef;
12
+ this.desyContentEmpty = new EventEmitter();
13
+ this.desyContentNotEmpty = new EventEmitter();
14
+ this.lastWasEmpty = false;
15
+ this.viewInit = false;
16
+ const element = this.elementRef.nativeElement;
17
+ this.changes = new MutationObserver((mutations) => mutations.forEach(() => this.checkContent()));
18
+ this.changes.observe(element, {
19
+ attributes: false,
20
+ childList: true,
21
+ characterData: true,
22
+ subtree: false
23
+ });
24
+ }
25
+ ngAfterViewInit() {
26
+ if (!this.viewInit) {
27
+ this.viewInit = true;
28
+ this.checkContent();
29
+ }
30
+ }
31
+ /**
32
+ * Comprueba el contenido del elemento una vez se haya inicializado la vista. Si se detecta que el elemento está vacío, las comprobaciones
33
+ * sucesivas que tampoco detecten contenido no emitirán evento.
34
+ */
35
+ checkContent() {
36
+ if (this.viewInit) {
37
+ const childs = this.elementRef.nativeElement.childNodes;
38
+ let hasContent = false;
39
+ for (let i = 0; i < childs.length && !hasContent; i++) {
40
+ const item = childs.item(i);
41
+ if (item.nodeType === Node.TEXT_NODE && item.textContent.length > 0) {
42
+ hasContent = true;
43
+ }
44
+ else if ((item.nodeType === Node.ELEMENT_NODE || item.nodeType === Node.CDATA_SECTION_NODE) && this.isContentNode(item)) {
45
+ hasContent = true;
46
+ }
47
+ }
48
+ if (hasContent) {
49
+ if (this.lastWasEmpty) {
50
+ this.desyContentNotEmpty.emit(this.elementRef.nativeElement.innerHTML);
51
+ }
52
+ this.lastWasEmpty = false;
53
+ }
54
+ else {
55
+ if (!this.lastWasEmpty) {
56
+ this.desyContentEmpty.emit(this.elementRef.nativeElement.innerHTML);
57
+ }
58
+ this.lastWasEmpty = true;
59
+ }
60
+ }
61
+ }
62
+ isContentNode(elem) {
63
+ let contentNode = true;
64
+ if (this.contentsToIgnore && this.contentsToIgnore.length > 0) {
65
+ contentNode = !this.contentsToIgnore.find(ignoreElem => ignoreElem.nativeElement === elem);
66
+ }
67
+ return contentNode;
68
+ }
69
+ ngOnDestroy() {
70
+ this.changes.disconnect();
71
+ }
72
+ }
73
+ ContentEmptyDirective.decorators = [
74
+ { type: Directive, args: [{
75
+ selector: '[desyContentEmpty]'
76
+ },] }
77
+ ];
78
+ ContentEmptyDirective.ctorParameters = () => [
79
+ { type: ElementRef }
80
+ ];
81
+ ContentEmptyDirective.propDecorators = {
82
+ desyContentEmpty: [{ type: Output }],
83
+ desyContentNotEmpty: [{ type: Output }],
84
+ contentsToIgnore: [{ type: ContentChildren, args: ['desyContentEmptyIgnore', { read: ElementRef },] }]
85
+ };
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1lbXB0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jb250ZW50LWVtcHR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFaEk7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWG5DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDNUIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxNQUFNLEdBQTBCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUMvRSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbkUsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDbkI7cUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3pILFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ25CO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3hFO2dCQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNyRTtnQkFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUMxQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3RCxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUM1RjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUE1RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7OztZQVhrRCxVQUFVOzs7K0JBYzFELE1BQU07a0NBR04sTUFBTTsrQkFHTixlQUFlLFNBQUMsd0JBQXdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE91dHB1dCwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBFbWl0ZSB1biBldmVudG8gY3VhbmRvIGVsIGNvbnRlbmlkbyBkZSB1biBlbGVtZW50byBlc3TDqSB2YWPDrW9cclxuICogRWwgY29udGVuaWRvIG1hcmNhZG8gY29uICNkZXN5Q29udGVudEVtcHR5SWdub3JlIHNlcsOhIGlnbm9yYWRvXHJcbiAqXHJcbiAqIE5PVEE6IHRlbmVyIGVuIGN1ZW50YSBxdWUgbG9zIGV2ZW50b3Mgc2UgZW1pdGVuIGRlc3B1w6lzIGRlIGdlbmVyYXJzZSBsYSB2aXN0YSwgcG9yIGxvIHF1ZSBzaSBhbCBnZXN0aW9uYXIgZWwgZXZlbnRvIHNlIHJlYWxpemFuXHJcbiAqIGNhbWJpb3MgcXVlIGFmZWN0YW4gYSBsYSB0ZW1wbGF0ZSwgY29udmllbmUgZm9yemFyIGxhIGRldGVjY2nDs24gZGUgY2FtYmlvcy4gKEVqZW1wbG8gZGUgZXN0byBlbiBlbCBpY29ubyBkZSBOb3RpZmljYXRpb25Db21wb25lbnQpXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZXN5Q29udGVudEVtcHR5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRFbXB0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXN5Q29udGVudEVtcHR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzeUNvbnRlbnROb3RFbXB0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbignZGVzeUNvbnRlbnRFbXB0eUlnbm9yZScsIHtyZWFkOiBFbGVtZW50UmVmfSkgY29udGVudHNUb0lnbm9yZTogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBwcml2YXRlIGNoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcbiAgcHJpdmF0ZSBsYXN0V2FzRW1wdHkgPSBmYWxzZTtcclxuICBwcml2YXRlIHZpZXdJbml0ID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5jaGFuZ2VzID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4gbXV0YXRpb25zLmZvckVhY2goKCkgPT4gdGhpcy5jaGVja0NvbnRlbnQoKSkpO1xyXG4gICAgdGhpcy5jaGFuZ2VzLm9ic2VydmUoZWxlbWVudCwge1xyXG4gICAgICBhdHRyaWJ1dGVzOiBmYWxzZSxcclxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxyXG4gICAgICBzdWJ0cmVlOiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudmlld0luaXQpIHtcclxuICAgICAgdGhpcy52aWV3SW5pdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2hlY2tDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wcnVlYmEgZWwgY29udGVuaWRvIGRlbCBlbGVtZW50byB1bmEgdmV6IHNlIGhheWEgaW5pY2lhbGl6YWRvIGxhIHZpc3RhLiBTaSBzZSBkZXRlY3RhIHF1ZSBlbCBlbGVtZW50byBlc3TDoSB2YWPDrW8sIGxhcyBjb21wcm9iYWNpb25lc1xyXG4gICAqIHN1Y2VzaXZhcyBxdWUgdGFtcG9jbyBkZXRlY3RlbiBjb250ZW5pZG8gbm8gZW1pdGlyw6FuIGV2ZW50by5cclxuICAgKi9cclxuICBjaGVja0NvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aWV3SW5pdCkge1xyXG4gICAgICBjb25zdCBjaGlsZHM6IE5vZGVMaXN0T2Y8Q2hpbGROb2RlPiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXM7XHJcbiAgICAgIGxldCBoYXNDb250ZW50ID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRzLmxlbmd0aCAmJiAhaGFzQ29udGVudDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGNoaWxkcy5pdGVtKGkpO1xyXG4gICAgICAgIGlmIChpdGVtLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiBpdGVtLnRleHRDb250ZW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKGl0ZW0ubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFIHx8IGl0ZW0ubm9kZVR5cGUgPT09IE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFKSAmJiB0aGlzLmlzQ29udGVudE5vZGUoaXRlbSkpIHtcclxuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGhhc0NvbnRlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5sYXN0V2FzRW1wdHkpIHtcclxuICAgICAgICAgIHRoaXMuZGVzeUNvbnRlbnROb3RFbXB0eS5lbWl0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFdhc0VtcHR5ID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxhc3RXYXNFbXB0eSkge1xyXG4gICAgICAgICAgdGhpcy5kZXN5Q29udGVudEVtcHR5LmVtaXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0V2FzRW1wdHkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQ29udGVudE5vZGUoZWxlbTogTm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNvbnRlbnROb2RlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNvbnRlbnRzVG9JZ25vcmUgJiYgdGhpcy5jb250ZW50c1RvSWdub3JlLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29udGVudE5vZGUgPSAhdGhpcy5jb250ZW50c1RvSWdub3JlLmZpbmQoaWdub3JlRWxlbSA9PiBpZ25vcmVFbGVtLm5hdGl2ZUVsZW1lbnQgPT09IGVsZW0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnRlbnROb2RlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZXMuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,62 @@
1
+ import { ComponentFactoryResolver, Directive, Injector, Input, ViewContainerRef } from '@angular/core';
2
+ import { ContentBaseComponent } from '../components';
3
+ /**
4
+ * Permite introducir contenido de forma dinámica en una posición determinada desde:
5
+ * - component: Componente existente de tipo ContentBase
6
+ * - html: texto html en formato string
7
+ * - text: texto plano en formato string
8
+ */
9
+ export class CustomInnerContentDirective {
10
+ constructor(viewContainerRef, resolver, injector) {
11
+ this.viewContainerRef = viewContainerRef;
12
+ this.resolver = resolver;
13
+ this.injector = injector;
14
+ this.factory = this.resolver.resolveComponentFactory(ContentBaseComponent);
15
+ }
16
+ ngOnChanges(changes) {
17
+ this.viewContainerRef.clear();
18
+ if (this.desyCustomInnerContent.component && this.desyCustomInnerContent.component instanceof ContentBaseComponent) {
19
+ // Se crea la vista embebida basándose en el contenido del ContentBase indicado.
20
+ this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.component.getContent());
21
+ }
22
+ else if (this.desyCustomInnerContent.template) {
23
+ // Se crea la vista embebida utilizando directamente el template.
24
+ this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.template);
25
+ }
26
+ else if (this.desyCustomInnerContent.html) {
27
+ // Se carga el contenido en un div temporal.
28
+ const tmpWrapper = document.createElement('div');
29
+ tmpWrapper.innerHTML = this.desyCustomInnerContent.html;
30
+ // Los nodos hijos del div se proyectan dentro de un componente ContentBase.
31
+ const nodeList = [];
32
+ tmpWrapper.childNodes.forEach(node => nodeList.push(node));
33
+ const componentRef = this.factory.create(this.injector, [nodeList]);
34
+ // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.
35
+ // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM
36
+ this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());
37
+ }
38
+ else if (this.desyCustomInnerContent.text) {
39
+ // Se carga el contenido en un nodo de texto
40
+ const textNode = document.createTextNode(this.desyCustomInnerContent.text);
41
+ // El nodo de texto se proyecta dentro de un componente ContentBase
42
+ const componentRef = this.factory.create(this.injector, [[textNode]]);
43
+ // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.
44
+ // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM
45
+ this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());
46
+ }
47
+ }
48
+ }
49
+ CustomInnerContentDirective.decorators = [
50
+ { type: Directive, args: [{
51
+ selector: '[desyCustomInnerContent]'
52
+ },] }
53
+ ];
54
+ CustomInnerContentDirective.ctorParameters = () => [
55
+ { type: ViewContainerRef },
56
+ { type: ComponentFactoryResolver },
57
+ { type: Injector }
58
+ ];
59
+ CustomInnerContentDirective.propDecorators = {
60
+ desyCustomInnerContent: [{ type: Input }]
61
+ };
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlubmVyLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvY3VzdG9tLWlubmVyLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRDs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTywyQkFBMkI7SUFNdEMsWUFBb0IsZ0JBQWtDLEVBQVUsUUFBa0MsRUFBVSxRQUFrQjtRQUExRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxZQUFZLG9CQUFvQixFQUFFO1lBRWxILGdGQUFnRjtZQUNoRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQzlGO2FBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO1lBRS9DLGlFQUFpRTtZQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hGO2FBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFO1lBRTNDLDRDQUE0QztZQUM1QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQztZQUV4RCw0RUFBNEU7WUFDNUUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBRSxRQUFRLENBQUUsQ0FBQyxDQUFDO1lBRXRFLHlGQUF5RjtZQUN6RiwrSEFBK0g7WUFDL0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUM5RTthQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRTtZQUUzQyw0Q0FBNEM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0UsbUVBQW1FO1lBQ25FLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFFLFFBQVEsQ0FBRSxDQUFDLENBQUMsQ0FBQztZQUV4RSx5RkFBeUY7WUFDekYsK0hBQStIO1lBQy9ILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7YUFDckM7OztZQVpDLGdCQUFnQjtZQUxoQix3QkFBd0I7WUFFeEIsUUFBUTs7O3FDQWtCUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRGYWN0b3J5LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xyXG5cclxuLyoqXHJcbiAqIFBlcm1pdGUgaW50cm9kdWNpciBjb250ZW5pZG8gZGUgZm9ybWEgZGluw6FtaWNhIGVuIHVuYSBwb3NpY2nDs24gZGV0ZXJtaW5hZGEgZGVzZGU6XHJcbiAqIC0gY29tcG9uZW50OiBDb21wb25lbnRlIGV4aXN0ZW50ZSBkZSB0aXBvIENvbnRlbnRCYXNlXHJcbiAqIC0gaHRtbDogdGV4dG8gaHRtbCBlbiBmb3JtYXRvIHN0cmluZ1xyXG4gKiAtIHRleHQ6IHRleHRvIHBsYW5vIGVuIGZvcm1hdG8gc3RyaW5nXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZXN5Q3VzdG9tSW5uZXJDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbUlubmVyQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGRlc3lDdXN0b21Jbm5lckNvbnRlbnQ6IHsgY29tcG9uZW50PzogYW55fENvbnRlbnRCYXNlQ29tcG9uZW50LCB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sIGh0bWw/OiBzdHJpbmcsIHRleHQ/OiBzdHJpbmcgfTtcclxuXHJcbiAgcHJpdmF0ZSBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PENvbnRlbnRCYXNlQ29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLmZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KENvbnRlbnRCYXNlQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC5jb21wb25lbnQgJiYgdGhpcy5kZXN5Q3VzdG9tSW5uZXJDb250ZW50LmNvbXBvbmVudCBpbnN0YW5jZW9mIENvbnRlbnRCYXNlQ29tcG9uZW50KSB7XHJcblxyXG4gICAgICAvLyBTZSBjcmVhIGxhIHZpc3RhIGVtYmViaWRhIGJhc8OhbmRvc2UgZW4gZWwgY29udGVuaWRvIGRlbCBDb250ZW50QmFzZSBpbmRpY2Fkby5cclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmRlc3lDdXN0b21Jbm5lckNvbnRlbnQuY29tcG9uZW50LmdldENvbnRlbnQoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC50ZW1wbGF0ZSkge1xyXG5cclxuICAgICAgLy8gU2UgY3JlYSBsYSB2aXN0YSBlbWJlYmlkYSB1dGlsaXphbmRvIGRpcmVjdGFtZW50ZSBlbCB0ZW1wbGF0ZS5cclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmRlc3lDdXN0b21Jbm5lckNvbnRlbnQudGVtcGxhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRlc3lDdXN0b21Jbm5lckNvbnRlbnQuaHRtbCkge1xyXG5cclxuICAgICAgLy8gU2UgY2FyZ2EgZWwgY29udGVuaWRvIGVuIHVuIGRpdiB0ZW1wb3JhbC5cclxuICAgICAgY29uc3QgdG1wV3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICB0bXBXcmFwcGVyLmlubmVySFRNTCA9IHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC5odG1sO1xyXG5cclxuICAgICAgLy8gTG9zIG5vZG9zIGhpam9zIGRlbCBkaXYgc2UgcHJveWVjdGFuIGRlbnRybyBkZSB1biBjb21wb25lbnRlIENvbnRlbnRCYXNlLlxyXG4gICAgICBjb25zdCBub2RlTGlzdCA9IFtdO1xyXG4gICAgICB0bXBXcmFwcGVyLmNoaWxkTm9kZXMuZm9yRWFjaChub2RlID0+IG5vZGVMaXN0LnB1c2gobm9kZSkpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IsIFsgbm9kZUxpc3QgXSk7XHJcblxyXG4gICAgICAvLyBGaW5hbG1lbnRlIHNlIGNyZWEgbGEgdmlzdGEgZW1iZWJpZGEgYmFzw6FuZG9zZSBlbiBlbCBjb250ZW5pZG8gZGVsIENvbnRlbnRCYXNlIGNyZWFkby5cclxuICAgICAgLy8gU2UgcG9kcsOtYSBoYWNlciBjb24gdW4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCgpLCBwZXJvIGFzw60gc2UgZXZpdGEgZWwgdGFnIGVudm9sdmVudGUgZGVsIGNvbXBvbmVudGUgZW4gZWwgRE9NXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoY29tcG9uZW50UmVmLmluc3RhbmNlLmdldENvbnRlbnQoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC50ZXh0KSB7XHJcblxyXG4gICAgICAvLyBTZSBjYXJnYSBlbCBjb250ZW5pZG8gZW4gdW4gbm9kbyBkZSB0ZXh0b1xyXG4gICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC50ZXh0KTtcclxuXHJcbiAgICAgIC8vIEVsIG5vZG8gZGUgdGV4dG8gc2UgcHJveWVjdGEgZGVudHJvIGRlIHVuIGNvbXBvbmVudGUgQ29udGVudEJhc2VcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5mYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbWyB0ZXh0Tm9kZSBdXSk7XHJcblxyXG4gICAgICAvLyBGaW5hbG1lbnRlIHNlIGNyZWEgbGEgdmlzdGEgZW1iZWJpZGEgYmFzw6FuZG9zZSBlbiBlbCBjb250ZW5pZG8gZGVsIENvbnRlbnRCYXNlIGNyZWFkby5cclxuICAgICAgLy8gU2UgcG9kcsOtYSBoYWNlciBjb24gdW4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCgpLCBwZXJvIGFzw60gc2UgZXZpdGEgZWwgdGFnIGVudm9sdmVudGUgZGVsIGNvbXBvbmVudGUgZW4gZWwgRE9NXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoY29tcG9uZW50UmVmLmluc3RhbmNlLmdldENvbnRlbnQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=