@coreui/angular-pro 4.0.0-alpha.1 → 4.0.0-alpha.12

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 (441) hide show
  1. package/README.md +12 -12
  2. package/{esm2015/coreui-angular-pro.js → esm2020/coreui-angular-pro.mjs} +0 -0
  3. package/esm2020/lib/accordion/accordion/accordion.component.mjs +40 -0
  4. package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +43 -0
  5. package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +72 -0
  6. package/{esm2015/lib/accordion/accordion.module.js → esm2020/lib/accordion/accordion.module.mjs} +5 -5
  7. package/{esm2015/lib/accordion/accordion.service.js → esm2020/lib/accordion/accordion.service.mjs} +7 -7
  8. package/{esm2015/lib/accordion/index.js → esm2020/lib/accordion/index.mjs} +0 -0
  9. package/{esm2015/lib/accordion/public_api.js → esm2020/lib/accordion/public_api.mjs} +0 -0
  10. package/{esm2015/lib/alert/alert-heading.directive.js → esm2020/lib/alert/alert-heading.directive.mjs} +4 -4
  11. package/{esm2015/lib/alert/alert-link.directive.js → esm2020/lib/alert/alert-link.directive.mjs} +4 -4
  12. package/esm2020/lib/alert/alert.component.mjs +181 -0
  13. package/{esm2015/lib/alert/alert.module.js → esm2020/lib/alert/alert.module.mjs} +5 -5
  14. package/{esm2015/lib/alert/index.js → esm2020/lib/alert/index.mjs} +0 -0
  15. package/{esm2015/lib/alert/public_api.js → esm2020/lib/alert/public_api.mjs} +0 -0
  16. package/esm2020/lib/avatar/avatar.component.mjs +49 -0
  17. package/{esm2015/lib/avatar/avatar.module.js → esm2020/lib/avatar/avatar.module.mjs} +5 -5
  18. package/{esm2015/lib/avatar/index.js → esm2020/lib/avatar/index.mjs} +0 -0
  19. package/{esm2015/lib/avatar/public_api.js → esm2020/lib/avatar/public_api.mjs} +0 -0
  20. package/esm2020/lib/backdrop/backdrop.service.mjs +52 -0
  21. package/esm2020/lib/badge/badge.component.mjs +42 -0
  22. package/{esm2015/lib/badge/badge.module.js → esm2020/lib/badge/badge.module.mjs} +5 -5
  23. package/{esm2015/lib/badge/index.js → esm2020/lib/badge/index.mjs} +0 -0
  24. package/{esm2015/lib/badge/public_api.js → esm2020/lib/badge/public_api.mjs} +0 -0
  25. package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +43 -0
  26. package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +37 -0
  27. package/{esm2015/lib/breadcrumb/breadcrumb-item/breadcrumb-item.js → esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs} +0 -0
  28. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +41 -0
  29. package/{esm2015/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.js → esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs} +5 -5
  30. package/{esm2015/lib/breadcrumb/breadcrumb.module.js → esm2020/lib/breadcrumb/breadcrumb.module.mjs} +5 -5
  31. package/{esm2015/lib/breadcrumb/index.js → esm2020/lib/breadcrumb/index.mjs} +0 -0
  32. package/{esm2015/lib/breadcrumb/public_api.js → esm2020/lib/breadcrumb/public_api.mjs} +0 -0
  33. package/esm2020/lib/button/button-close.directive.mjs +43 -0
  34. package/{esm2015/lib/button/button.directive.js → esm2020/lib/button/button.directive.mjs} +7 -4
  35. package/{esm2015/lib/button/button.module.js → esm2020/lib/button/button.module.mjs} +5 -5
  36. package/{esm2015/lib/button/index.js → esm2020/lib/button/index.mjs} +0 -0
  37. package/{esm2015/lib/button/public_api.js → esm2020/lib/button/public_api.mjs} +0 -0
  38. package/{esm2015/lib/button-group/button-group/button-group.component.js → esm2020/lib/button-group/button-group/button-group.component.mjs} +4 -4
  39. package/{esm2015/lib/button-group/button-group.module.js → esm2020/lib/button-group/button-group.module.mjs} +5 -5
  40. package/{esm2015/lib/button-group/button-toolbar/button-toolbar.component.js → esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs} +4 -4
  41. package/{esm2015/lib/button-group/index.js → esm2020/lib/button-group/index.mjs} +0 -0
  42. package/{esm2015/lib/button-group/public_api.js → esm2020/lib/button-group/public_api.mjs} +0 -0
  43. package/esm2020/lib/callout/callout.component.mjs +23 -0
  44. package/{esm2015/lib/callout/callout.module.js → esm2020/lib/callout/callout.module.mjs} +5 -5
  45. package/{esm2015/lib/callout/index.js → esm2020/lib/callout/index.mjs} +0 -0
  46. package/{esm2015/lib/callout/public_api.js → esm2020/lib/callout/public_api.mjs} +0 -0
  47. package/{esm2015/lib/card/card-body.component.js → esm2020/lib/card/card-body.component.mjs} +4 -4
  48. package/{esm2015/lib/card/card-footer.component.js → esm2020/lib/card/card-footer.component.mjs} +4 -4
  49. package/{esm2015/lib/card/card-group.component.js → esm2020/lib/card/card-group.component.mjs} +4 -4
  50. package/{esm2015/lib/card/card-header-actions.component.js → esm2020/lib/card/card-header-actions.component.mjs} +4 -4
  51. package/{esm2015/lib/card/card-header.component.js → esm2020/lib/card/card-header.component.mjs} +4 -4
  52. package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +19 -0
  53. package/{esm2015/lib/card/card-img.directive.js → esm2020/lib/card/card-img.directive.mjs} +4 -4
  54. package/{esm2015/lib/card/card-link.directive.js → esm2020/lib/card/card-link.directive.mjs} +4 -4
  55. package/{esm2015/lib/card/card-subtitle.directive.js → esm2020/lib/card/card-subtitle.directive.mjs} +4 -4
  56. package/{esm2015/lib/card/card-text.directive.js → esm2020/lib/card/card-text.directive.mjs} +4 -4
  57. package/{esm2015/lib/card/card-title.directive.js → esm2020/lib/card/card-title.directive.mjs} +4 -4
  58. package/{esm2015/lib/card/card.component.js → esm2020/lib/card/card.component.mjs} +4 -4
  59. package/{esm2015/lib/card/card.module.js → esm2020/lib/card/card.module.mjs} +5 -5
  60. package/{esm2015/lib/card/index.js → esm2020/lib/card/index.mjs} +0 -0
  61. package/{esm2015/lib/card/public_api.js → esm2020/lib/card/public_api.mjs} +0 -0
  62. package/esm2020/lib/carousel/carousel/carousel.component.mjs +173 -0
  63. package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +17 -0
  64. package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +83 -0
  65. package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +45 -0
  66. package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +47 -0
  67. package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +68 -0
  68. package/esm2020/lib/carousel/carousel-state.mjs +73 -0
  69. package/{esm2015/lib/carousel/carousel-state.type.js → esm2020/lib/carousel/carousel-state.type.mjs} +0 -0
  70. package/{esm2015/lib/carousel/carousel.animation.js → esm2020/lib/carousel/carousel.animation.mjs} +0 -0
  71. package/{esm2015/lib/carousel/carousel.config.js → esm2020/lib/carousel/carousel.config.mjs} +4 -4
  72. package/{esm2015/lib/carousel/carousel.module.js → esm2020/lib/carousel/carousel.module.mjs} +5 -5
  73. package/{esm2015/lib/carousel/carousel.service.js → esm2020/lib/carousel/carousel.service.mjs} +4 -4
  74. package/{esm2015/lib/carousel/index.js → esm2020/lib/carousel/index.mjs} +0 -0
  75. package/esm2020/lib/carousel/intersection.service.mjs +33 -0
  76. package/{esm2015/lib/carousel/public_api.js → esm2020/lib/carousel/public_api.mjs} +0 -0
  77. package/{esm2015/lib/collapse/collapse.animations.js → esm2020/lib/collapse/collapse.animations.mjs} +1 -1
  78. package/esm2020/lib/collapse/collapse.directive.mjs +133 -0
  79. package/{esm2015/lib/collapse/collapse.module.js → esm2020/lib/collapse/collapse.module.mjs} +5 -5
  80. package/{esm2015/lib/collapse/index.js → esm2020/lib/collapse/index.mjs} +0 -0
  81. package/{esm2015/lib/collapse/public_api.js → esm2020/lib/collapse/public_api.mjs} +0 -0
  82. package/{esm2015/lib/coreui.types.js → esm2020/lib/coreui.types.mjs} +0 -0
  83. package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +296 -0
  84. package/{esm2015/lib/dropdown/dropdown-divider/dropdown-divider.directive.js → esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs} +4 -4
  85. package/{esm2015/lib/dropdown/dropdown-header/dropdown-header.directive.js → esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs} +4 -4
  86. package/{esm2015/lib/dropdown/dropdown-item/dropdown-item-plain.directive.js → esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs} +4 -4
  87. package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +68 -0
  88. package/{esm2015/lib/dropdown/dropdown-menu/dropdown-menu.directive.js → esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs} +4 -4
  89. package/{esm2015/lib/dropdown/dropdown.module.js → esm2020/lib/dropdown/dropdown.module.mjs} +5 -5
  90. package/{esm2015/lib/dropdown/dropdown.service.js → esm2020/lib/dropdown/dropdown.service.mjs} +4 -4
  91. package/{esm2015/lib/dropdown/index.js → esm2020/lib/dropdown/index.mjs} +0 -0
  92. package/{esm2015/lib/dropdown/public_api.js → esm2020/lib/dropdown/public_api.mjs} +0 -0
  93. package/esm2020/lib/element-cover/element-cover.component.mjs +71 -0
  94. package/esm2020/lib/element-cover/element-cover.module.mjs +30 -0
  95. package/esm2020/lib/element-cover/index.mjs +2 -0
  96. package/esm2020/lib/element-cover/public_api.mjs +3 -0
  97. package/{esm2015/lib/footer/footer.component.js → esm2020/lib/footer/footer.component.mjs} +4 -4
  98. package/{esm2015/lib/footer/footer.module.js → esm2020/lib/footer/footer.module.mjs} +5 -5
  99. package/{esm2015/lib/footer/index.js → esm2020/lib/footer/index.mjs} +0 -0
  100. package/{esm2015/lib/footer/public_api.js → esm2020/lib/footer/public_api.mjs} +0 -0
  101. package/{esm2015/lib/form/form/form.directive.js → esm2020/lib/form/form/form.directive.mjs} +4 -4
  102. package/esm2020/lib/form/form-check/form-check-input.directive.mjs +62 -0
  103. package/{esm2015/lib/form/form-check/form-check-label.directive.js → esm2020/lib/form/form-check/form-check-label.directive.mjs} +4 -4
  104. package/{esm2015/lib/form/form-check/form-check.component.js → esm2020/lib/form/form-check/form-check.component.mjs} +4 -4
  105. package/{esm2015/lib/form/form-control/form-control.directive.js → esm2020/lib/form/form-control/form-control.directive.mjs} +4 -4
  106. package/{esm2015/lib/form/form-feedback/form-feedback.component.js → esm2020/lib/form/form-feedback/form-feedback.component.mjs} +4 -4
  107. package/{esm2015/lib/form/form-floating/form-floating.directive.js → esm2020/lib/form/form-floating/form-floating.directive.mjs} +4 -4
  108. package/{esm2015/lib/form/form-label/form-label.directive.js → esm2020/lib/form/form-label/form-label.directive.mjs} +4 -4
  109. package/{esm2015/lib/form/form-select/form-select.directive.js → esm2020/lib/form/form-select/form-select.directive.mjs} +4 -4
  110. package/{esm2015/lib/form/form-text/form-text.directive.js → esm2020/lib/form/form-text/form-text.directive.mjs} +4 -4
  111. package/{esm2015/lib/form/form.module.js → esm2020/lib/form/form.module.mjs} +5 -5
  112. package/{esm2015/lib/form/index.js → esm2020/lib/form/index.mjs} +0 -0
  113. package/{esm2015/lib/form/input-group/input-group.component.js → esm2020/lib/form/input-group/input-group.component.mjs} +4 -4
  114. package/{esm2015/lib/form/input-group-text/input-group-text.directive.js → esm2020/lib/form/input-group-text/input-group-text.directive.mjs} +4 -4
  115. package/{esm2015/lib/form/public_api.js → esm2020/lib/form/public_api.mjs} +0 -0
  116. package/esm2020/lib/grid/col.component.mjs +12 -0
  117. package/esm2020/lib/grid/col.directive.mjs +151 -0
  118. package/{esm2015/lib/grid/col.type.js → esm2020/lib/grid/col.type.mjs} +0 -0
  119. package/esm2020/lib/grid/container.component.mjs +43 -0
  120. package/{esm2015/lib/grid/container.type.js → esm2020/lib/grid/container.type.mjs} +0 -0
  121. package/{esm2015/lib/grid/grid.module.js → esm2020/lib/grid/grid.module.mjs} +5 -5
  122. package/esm2020/lib/grid/gutter.directive.mjs +56 -0
  123. package/{esm2015/lib/grid/gutter.type.js → esm2020/lib/grid/gutter.type.mjs} +0 -0
  124. package/{esm2015/lib/grid/index.js → esm2020/lib/grid/index.mjs} +0 -0
  125. package/{esm2015/lib/grid/public_api.js → esm2020/lib/grid/public_api.mjs} +0 -0
  126. package/esm2020/lib/grid/row.component.mjs +12 -0
  127. package/{esm2015/lib/grid/row.directive.js → esm2020/lib/grid/row.directive.mjs} +4 -4
  128. package/{esm2015/lib/grid/row.type.js → esm2020/lib/grid/row.type.mjs} +0 -0
  129. package/esm2020/lib/header/header/header.component.mjs +47 -0
  130. package/{esm2015/lib/header/header-brand/header-brand.component.js → esm2020/lib/header/header-brand/header-brand.component.mjs} +4 -4
  131. package/{esm2015/lib/header/header-divider/header-divider.component.js → esm2020/lib/header/header-divider/header-divider.component.mjs} +4 -4
  132. package/esm2020/lib/header/header-nav/header-nav.component.mjs +28 -0
  133. package/{esm2015/lib/header/header-text/header-text.component.js → esm2020/lib/header/header-text/header-text.component.mjs} +4 -4
  134. package/{esm2015/lib/header/header-toggler/header-toggler.directive.js → esm2020/lib/header/header-toggler/header-toggler.directive.mjs} +4 -4
  135. package/{esm2015/lib/header/header.module.js → esm2020/lib/header/header.module.mjs} +5 -5
  136. package/{esm2015/lib/header/index.js → esm2020/lib/header/index.mjs} +0 -0
  137. package/{esm2015/lib/header/public_api.js → esm2020/lib/header/public_api.mjs} +0 -0
  138. package/{esm2015/lib/image/img.directive.js → esm2020/lib/image/img.directive.mjs} +4 -4
  139. package/{esm2015/lib/image/img.module.js → esm2020/lib/image/img.module.mjs} +5 -5
  140. package/{esm2015/lib/image/index.js → esm2020/lib/image/index.mjs} +0 -0
  141. package/{esm2015/lib/image/public_api.js → esm2020/lib/image/public_api.mjs} +0 -0
  142. package/{esm2015/lib/list-group/index.js → esm2020/lib/list-group/index.mjs} +0 -0
  143. package/{esm2015/lib/list-group/list-group-item.directive.js → esm2020/lib/list-group/list-group-item.directive.mjs} +4 -4
  144. package/{esm2015/lib/list-group/list-group.directive.js → esm2020/lib/list-group/list-group.directive.mjs} +4 -4
  145. package/{esm2015/lib/list-group/list-group.module.js → esm2020/lib/list-group/list-group.module.mjs} +5 -5
  146. package/{esm2015/lib/list-group/public_api.js → esm2020/lib/list-group/public_api.mjs} +0 -0
  147. package/{esm2015/lib/loading-button/index.js → esm2020/lib/loading-button/index.mjs} +0 -0
  148. package/esm2020/lib/loading-button/loading-button.component.mjs +84 -0
  149. package/{esm2015/lib/loading-button/loading-button.module.js → esm2020/lib/loading-button/loading-button.module.mjs} +5 -5
  150. package/{esm2015/lib/loading-button/public_api.js → esm2020/lib/loading-button/public_api.mjs} +0 -0
  151. package/{esm2015/lib/modal/index.js → esm2020/lib/modal/index.mjs} +0 -0
  152. package/esm2020/lib/modal/modal/modal.component.mjs +314 -0
  153. package/esm2020/lib/modal/modal-body/modal-body.component.mjs +19 -0
  154. package/esm2020/lib/modal/modal-content/modal-content.component.mjs +36 -0
  155. package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +32 -0
  156. package/{esm2015/lib/modal/modal-dismiss/modal-toggle.directive.js → esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs} +4 -4
  157. package/{esm2015/lib/modal/modal-footer/modal-footer.component.js → esm2020/lib/modal/modal-footer/modal-footer.component.mjs} +4 -4
  158. package/{esm2015/lib/modal/modal-header/modal-header.component.js → esm2020/lib/modal/modal-header/modal-header.component.mjs} +4 -4
  159. package/{esm2015/lib/modal/modal-title/modal-title.directive.js → esm2020/lib/modal/modal-title/modal-title.directive.mjs} +4 -4
  160. package/{esm2015/lib/modal/modal.module.js → esm2020/lib/modal/modal.module.mjs} +5 -5
  161. package/{esm2015/lib/modal/modal.service.js → esm2020/lib/modal/modal.service.mjs} +4 -4
  162. package/{esm2015/lib/modal/public_api.js → esm2020/lib/modal/public_api.mjs} +0 -0
  163. package/esm2020/lib/multi-select/index.mjs +2 -0
  164. package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +468 -0
  165. package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +30 -0
  166. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +20 -0
  167. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +52 -0
  168. package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +141 -0
  169. package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +56 -0
  170. package/esm2020/lib/multi-select/multi-select.module.mjs +50 -0
  171. package/esm2020/lib/multi-select/multi-select.service.mjs +23 -0
  172. package/esm2020/lib/multi-select/multi-select.type.mjs +2 -0
  173. package/esm2020/lib/multi-select/public_api.mjs +7 -0
  174. package/{esm2015/lib/nav/index.js → esm2020/lib/nav/index.mjs} +0 -0
  175. package/esm2020/lib/nav/nav-item.component.mjs +19 -0
  176. package/esm2020/lib/nav/nav-link.directive.mjs +87 -0
  177. package/esm2020/lib/nav/nav.component.mjs +27 -0
  178. package/{esm2015/lib/nav/nav.module.js → esm2020/lib/nav/nav.module.mjs} +5 -5
  179. package/{esm2015/lib/nav/public_api.js → esm2020/lib/nav/public_api.mjs} +0 -0
  180. package/{esm2015/lib/navbar/index.js → esm2020/lib/navbar/index.mjs} +0 -0
  181. package/{esm2015/lib/navbar/navbar-brand/navbar-brand.directive.js → esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs} +4 -4
  182. package/{esm2015/lib/navbar/navbar-nav/navbar-nav.component.js → esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs} +4 -4
  183. package/{esm2015/lib/navbar/navbar-text/navbar-text.component.js → esm2020/lib/navbar/navbar-text/navbar-text.component.mjs} +4 -4
  184. package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +63 -0
  185. package/esm2020/lib/navbar/navbar.component.mjs +84 -0
  186. package/{esm2015/lib/navbar/navbar.module.js → esm2020/lib/navbar/navbar.module.mjs} +5 -5
  187. package/{esm2015/lib/navbar/public_api.js → esm2020/lib/navbar/public_api.mjs} +0 -0
  188. package/{esm2015/lib/offcanvas/index.js → esm2020/lib/offcanvas/index.mjs} +0 -0
  189. package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +244 -0
  190. package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +19 -0
  191. package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +19 -0
  192. package/{esm2015/lib/offcanvas/offcanvas-title/offcanvas-title.directive.js → esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs} +4 -4
  193. package/{esm2015/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.js → esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs} +4 -4
  194. package/{esm2015/lib/offcanvas/offcanvas.module.js → esm2020/lib/offcanvas/offcanvas.module.mjs} +5 -5
  195. package/{esm2015/lib/offcanvas/offcanvas.service.js → esm2020/lib/offcanvas/offcanvas.service.mjs} +4 -4
  196. package/{esm2015/lib/offcanvas/public_api.js → esm2020/lib/offcanvas/public_api.mjs} +0 -0
  197. package/{esm2015/lib/pagination/index.js → esm2020/lib/pagination/index.mjs} +0 -0
  198. package/esm2020/lib/pagination/page-item/page-item.component.mjs +12 -0
  199. package/esm2020/lib/pagination/page-item/page-item.directive.mjs +62 -0
  200. package/{esm2015/lib/pagination/page-link/page-link.directive.js → esm2020/lib/pagination/page-link/page-link.directive.mjs} +4 -4
  201. package/esm2020/lib/pagination/pagination/pagination.component.mjs +41 -0
  202. package/{esm2015/lib/pagination/pagination.module.js → esm2020/lib/pagination/pagination.module.mjs} +5 -5
  203. package/{esm2015/lib/pagination/public_api.js → esm2020/lib/pagination/public_api.mjs} +1 -1
  204. package/{esm2015/lib/popover/index.js → esm2020/lib/popover/index.mjs} +0 -0
  205. package/esm2020/lib/popover/popover/popover.component.mjs +92 -0
  206. package/esm2020/lib/popover/popover.directive.mjs +191 -0
  207. package/{esm2015/lib/popover/popover.module.js → esm2020/lib/popover/popover.module.mjs} +5 -5
  208. package/{esm2015/lib/popover/public_api.js → esm2020/lib/popover/public_api.mjs} +0 -0
  209. package/{esm2015/lib/progress/index.js → esm2020/lib/progress/index.mjs} +0 -0
  210. package/{esm2015/lib/progress/progress-bar.component.js → esm2020/lib/progress/progress-bar.component.mjs} +4 -4
  211. package/{esm2015/lib/progress/progress-bar.js → esm2020/lib/progress/progress-bar.mjs} +0 -0
  212. package/{esm2015/lib/progress/progress.component.js → esm2020/lib/progress/progress.component.mjs} +4 -4
  213. package/{esm2015/lib/progress/progress.module.js → esm2020/lib/progress/progress.module.mjs} +5 -5
  214. package/{esm2015/lib/progress/public_api.js → esm2020/lib/progress/public_api.mjs} +0 -0
  215. package/{esm2015/lib/services/class-toggle.service.js → esm2020/lib/services/class-toggle.service.mjs} +4 -4
  216. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
  217. package/esm2020/lib/services/listeners.service.mjs +43 -0
  218. package/{esm2015/lib/services/public_api.js → esm2020/lib/services/public_api.mjs} +0 -0
  219. package/{esm2015/lib/shared/html-attr.directive.js → esm2020/lib/shared/html-attr.directive.mjs} +4 -4
  220. package/{esm2015/lib/shared/index.js → esm2020/lib/shared/index.mjs} +0 -0
  221. package/{esm2015/lib/shared/public_api.js → esm2020/lib/shared/public_api.mjs} +0 -0
  222. package/{esm2015/lib/shared/shared.module.js → esm2020/lib/shared/shared.module.mjs} +5 -5
  223. package/{esm2015/lib/shared/template-id.directive.js → esm2020/lib/shared/template-id.directive.mjs} +4 -4
  224. package/{esm2015/lib/sidebar/index.js → esm2020/lib/sidebar/index.mjs} +0 -0
  225. package/{esm2015/lib/sidebar/public_api.js → esm2020/lib/sidebar/public_api.mjs} +0 -0
  226. package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +223 -0
  227. package/{esm2015/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.js → esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs} +4 -4
  228. package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +30 -0
  229. package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +20 -0
  230. package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +20 -0
  231. package/{esm2015/lib/sidebar/sidebar-nav/index.js → esm2020/lib/sidebar/sidebar-nav/index.mjs} +0 -0
  232. package/{esm2015/lib/sidebar/sidebar-nav/public_api.js → esm2020/lib/sidebar/sidebar-nav/public_api.mjs} +0 -0
  233. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs} +4 -4
  234. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs} +4 -4
  235. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs} +4 -4
  236. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs} +4 -4
  237. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +43 -0
  238. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +94 -0
  239. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +23 -0
  240. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-title.component.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs} +4 -4
  241. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +137 -0
  242. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav.mjs} +0 -0
  243. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav.service.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs} +7 -7
  244. package/{esm2015/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.js → esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs} +4 -4
  245. package/{esm2015/lib/sidebar/sidebar-toggler/sidebar-toggler.component.js → esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs} +4 -4
  246. package/{esm2015/lib/sidebar/sidebar.module.js → esm2020/lib/sidebar/sidebar.module.mjs} +5 -5
  247. package/{esm2015/lib/sidebar/sidebar.service.js → esm2020/lib/sidebar/sidebar.service.mjs} +4 -4
  248. package/esm2020/lib/smart-pagination/index.mjs +2 -0
  249. package/esm2020/lib/smart-pagination/public_api.mjs +3 -0
  250. package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +196 -0
  251. package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +30 -0
  252. package/esm2020/lib/smart-pagination/smart-pagination.type.mjs +2 -0
  253. package/esm2020/lib/smart-table/index.mjs +2 -0
  254. package/esm2020/lib/smart-table/public_api.mjs +3 -0
  255. package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +449 -0
  256. package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +48 -0
  257. package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +138 -0
  258. package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +46 -0
  259. package/esm2020/lib/smart-table/smart-table.module.mjs +72 -0
  260. package/esm2020/lib/smart-table/smart-table.type.mjs +2 -0
  261. package/{esm2015/lib/spinner/index.js → esm2020/lib/spinner/index.mjs} +0 -0
  262. package/{esm2015/lib/spinner/public_api.js → esm2020/lib/spinner/public_api.mjs} +0 -0
  263. package/esm2020/lib/spinner/spinner.component.mjs +49 -0
  264. package/{esm2015/lib/spinner/spinner.module.js → esm2020/lib/spinner/spinner.module.mjs} +5 -5
  265. package/{esm2015/lib/table/index.js → esm2020/lib/table/index.mjs} +0 -0
  266. package/{esm2015/lib/table/public_api.js → esm2020/lib/table/public_api.mjs} +0 -0
  267. package/{esm2015/lib/table/table-active.directive.js → esm2020/lib/table/table-active.directive.mjs} +4 -4
  268. package/{esm2015/lib/table/table-color.directive.js → esm2020/lib/table/table-color.directive.mjs} +4 -4
  269. package/{esm2015/lib/table/table.directive.js → esm2020/lib/table/table.directive.mjs} +5 -5
  270. package/{esm2015/lib/table/table.module.js → esm2020/lib/table/table.module.mjs} +5 -5
  271. package/esm2020/lib/table/table.type.mjs +2 -0
  272. package/{esm2015/lib/tabs/index.js → esm2020/lib/tabs/index.mjs} +0 -0
  273. package/{esm2015/lib/tabs/public_api.js → esm2020/lib/tabs/public_api.mjs} +0 -0
  274. package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +92 -0
  275. package/esm2020/lib/tabs/tab-content-ref.directive.mjs +128 -0
  276. package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +57 -0
  277. package/{esm2015/lib/tabs/tab.service.js → esm2020/lib/tabs/tab.service.mjs} +4 -4
  278. package/{esm2015/lib/tabs/tabs.module.js → esm2020/lib/tabs/tabs.module.mjs} +5 -5
  279. package/{esm2015/lib/toast/index.js → esm2020/lib/toast/index.mjs} +0 -0
  280. package/{esm2015/lib/toast/public_api.js → esm2020/lib/toast/public_api.mjs} +0 -0
  281. package/{esm2015/lib/toast/toast/toast.component.js → esm2020/lib/toast/toast/toast.component.mjs} +6 -12
  282. package/esm2020/lib/toast/toast-body/toast-body.component.mjs +21 -0
  283. package/{esm2015/lib/toast/toast-close.directive.js → esm2020/lib/toast/toast-close.directive.mjs} +4 -4
  284. package/esm2020/lib/toast/toast-header/toast-header.component.mjs +31 -0
  285. package/{esm2015/lib/toast/toast.module.js → esm2020/lib/toast/toast.module.mjs} +5 -5
  286. package/{esm2015/lib/toast/toaster/toaster-host.directive.js → esm2020/lib/toast/toaster/toaster-host.directive.mjs} +4 -4
  287. package/esm2020/lib/toast/toaster/toaster.component.mjs +140 -0
  288. package/esm2020/lib/toast/toaster/toaster.service.mjs +21 -0
  289. package/{esm2015/lib/tooltip/index.js → esm2020/lib/tooltip/index.mjs} +0 -0
  290. package/{esm2015/lib/tooltip/public_api.js → esm2020/lib/tooltip/public_api.mjs} +0 -0
  291. package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +88 -0
  292. package/esm2020/lib/tooltip/tooltip.directive.mjs +185 -0
  293. package/{esm2015/lib/tooltip/tooltip.module.js → esm2020/lib/tooltip/tooltip.module.mjs} +5 -5
  294. package/{esm2015/lib/utilities/align.directive.js → esm2020/lib/utilities/align.directive.mjs} +4 -4
  295. package/{esm2015/lib/utilities/bg-color.directive.js → esm2020/lib/utilities/bg-color.directive.mjs} +4 -4
  296. package/esm2020/lib/utilities/border.directive.mjs +66 -0
  297. package/{esm2015/lib/utilities/border.type.js → esm2020/lib/utilities/border.type.mjs} +0 -0
  298. package/{esm2015/lib/utilities/index.js → esm2020/lib/utilities/index.mjs} +0 -0
  299. package/{esm2015/lib/utilities/public_api.js → esm2020/lib/utilities/public_api.mjs} +0 -0
  300. package/esm2020/lib/utilities/rounded.directive.mjs +65 -0
  301. package/{esm2015/lib/utilities/rounded.type.js → esm2020/lib/utilities/rounded.type.mjs} +0 -0
  302. package/{esm2015/lib/utilities/text-color.directive.js → esm2020/lib/utilities/text-color.directive.mjs} +4 -4
  303. package/{esm2015/lib/utilities/utilities.module.js → esm2020/lib/utilities/utilities.module.mjs} +5 -5
  304. package/{esm2015/lib/widget/index.js → esm2020/lib/widget/index.mjs} +0 -0
  305. package/{esm2015/lib/widget/public_api.js → esm2020/lib/widget/public_api.mjs} +0 -0
  306. package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +49 -0
  307. package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +52 -0
  308. package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +80 -0
  309. package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +39 -0
  310. package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +30 -0
  311. package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +96 -0
  312. package/{esm2015/lib/widget/widget.module.js → esm2020/lib/widget/widget.module.mjs} +5 -5
  313. package/esm2020/public-api.mjs +45 -0
  314. package/fesm2015/{coreui-angular-pro.js → coreui-angular-pro.mjs} +4547 -2795
  315. package/fesm2015/coreui-angular-pro.mjs.map +1 -0
  316. package/fesm2020/coreui-angular-pro.mjs +11261 -0
  317. package/fesm2020/coreui-angular-pro.mjs.map +1 -0
  318. package/lib/accordion/accordion-button/accordion-button.directive.d.ts +7 -1
  319. package/lib/accordion/accordion-item/accordion-item.component.d.ts +9 -2
  320. package/lib/accordion/accordion.service.d.ts +1 -1
  321. package/lib/alert/alert.component.d.ts +7 -1
  322. package/lib/backdrop/backdrop.service.d.ts +1 -1
  323. package/lib/carousel/carousel/carousel.component.d.ts +23 -5
  324. package/lib/carousel/carousel-item/carousel-item.component.d.ts +8 -2
  325. package/lib/carousel/carousel.service.d.ts +1 -0
  326. package/lib/carousel/intersection.service.d.ts +15 -0
  327. package/lib/collapse/collapse.directive.d.ts +5 -3
  328. package/lib/element-cover/element-cover.component.d.ts +27 -0
  329. package/lib/element-cover/element-cover.module.d.ts +9 -0
  330. package/lib/element-cover/index.d.ts +1 -0
  331. package/lib/element-cover/public_api.d.ts +2 -0
  332. package/lib/modal/modal/modal.component.d.ts +4 -1
  333. package/lib/multi-select/index.d.ts +1 -0
  334. package/lib/multi-select/multi-select/multi-select.component.d.ts +110 -0
  335. package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +14 -0
  336. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +9 -0
  337. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +20 -0
  338. package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +49 -0
  339. package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +21 -0
  340. package/lib/multi-select/multi-select.module.d.ts +16 -0
  341. package/lib/multi-select/multi-select.service.d.ts +12 -0
  342. package/lib/multi-select/multi-select.type.d.ts +34 -0
  343. package/lib/multi-select/public_api.d.ts +6 -0
  344. package/lib/nav/nav-link.directive.d.ts +1 -0
  345. package/lib/smart-pagination/index.d.ts +1 -0
  346. package/lib/smart-pagination/public_api.d.ts +2 -0
  347. package/lib/smart-pagination/smart-pagination.component.d.ts +109 -0
  348. package/lib/smart-pagination/smart-pagination.module.d.ts +9 -0
  349. package/lib/smart-pagination/smart-pagination.type.d.ts +79 -0
  350. package/lib/smart-table/index.d.ts +1 -0
  351. package/lib/smart-table/public_api.d.ts +2 -0
  352. package/lib/smart-table/smart-table/smart-table.component.d.ts +124 -0
  353. package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +15 -0
  354. package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +36 -0
  355. package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +14 -0
  356. package/lib/smart-table/smart-table.module.d.ts +20 -0
  357. package/lib/smart-table/smart-table.type.d.ts +272 -0
  358. package/lib/table/table.directive.d.ts +3 -2
  359. package/lib/table/table.type.d.ts +76 -0
  360. package/package.json +25 -11
  361. package/public-api.d.ts +5 -1
  362. package/bundles/coreui-angular-pro.umd.js +0 -11644
  363. package/bundles/coreui-angular-pro.umd.js.map +0 -1
  364. package/esm2015/lib/accordion/accordion/accordion.component.js +0 -46
  365. package/esm2015/lib/accordion/accordion-button/accordion-button.directive.js +0 -30
  366. package/esm2015/lib/accordion/accordion-item/accordion-item.component.js +0 -60
  367. package/esm2015/lib/alert/alert.component.js +0 -176
  368. package/esm2015/lib/avatar/avatar.component.js +0 -53
  369. package/esm2015/lib/backdrop/backdrop.service.js +0 -52
  370. package/esm2015/lib/badge/badge.component.js +0 -47
  371. package/esm2015/lib/breadcrumb/breadcrumb/breadcrumb.component.js +0 -47
  372. package/esm2015/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.js +0 -41
  373. package/esm2015/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.js +0 -45
  374. package/esm2015/lib/button/button-close.directive.js +0 -43
  375. package/esm2015/lib/callout/callout.component.js +0 -27
  376. package/esm2015/lib/card/card-img-overlay/card-img-overlay.component.js +0 -23
  377. package/esm2015/lib/carousel/carousel/carousel.component.js +0 -140
  378. package/esm2015/lib/carousel/carousel-caption/carousel-caption.component.js +0 -21
  379. package/esm2015/lib/carousel/carousel-control/carousel-control.component.js +0 -88
  380. package/esm2015/lib/carousel/carousel-indicators/carousel-indicators.component.js +0 -51
  381. package/esm2015/lib/carousel/carousel-inner/carousel-inner.component.js +0 -53
  382. package/esm2015/lib/carousel/carousel-item/carousel-item.component.js +0 -65
  383. package/esm2015/lib/carousel/carousel-state.js +0 -72
  384. package/esm2015/lib/collapse/collapse.directive.js +0 -125
  385. package/esm2015/lib/dropdown/dropdown/dropdown.component.js +0 -304
  386. package/esm2015/lib/dropdown/dropdown-item/dropdown-item.directive.js +0 -68
  387. package/esm2015/lib/form/form-check/form-check-input.directive.js +0 -60
  388. package/esm2015/lib/grid/col.component.js +0 -16
  389. package/esm2015/lib/grid/col.directive.js +0 -151
  390. package/esm2015/lib/grid/container.component.js +0 -47
  391. package/esm2015/lib/grid/gutter.directive.js +0 -56
  392. package/esm2015/lib/grid/row.component.js +0 -16
  393. package/esm2015/lib/header/header/header.component.js +0 -50
  394. package/esm2015/lib/header/header-nav/header-nav.component.js +0 -32
  395. package/esm2015/lib/loading-button/loading-button.component.js +0 -90
  396. package/esm2015/lib/modal/modal/modal.component.js +0 -309
  397. package/esm2015/lib/modal/modal-body/modal-body.component.js +0 -23
  398. package/esm2015/lib/modal/modal-content/modal-content.component.js +0 -37
  399. package/esm2015/lib/modal/modal-dialog/modal-dialog.component.js +0 -36
  400. package/esm2015/lib/nav/nav-item.component.js +0 -23
  401. package/esm2015/lib/nav/nav-link.directive.js +0 -81
  402. package/esm2015/lib/nav/nav.component.js +0 -31
  403. package/esm2015/lib/navbar/navbar-toggler/navbar-toggler.directive.js +0 -64
  404. package/esm2015/lib/navbar/navbar.component.js +0 -88
  405. package/esm2015/lib/offcanvas/offcanvas/offcanvas.component.js +0 -251
  406. package/esm2015/lib/offcanvas/offcanvas-body/offcanvas-body.component.js +0 -23
  407. package/esm2015/lib/offcanvas/offcanvas-header/offcanvas-header.component.js +0 -23
  408. package/esm2015/lib/pagination/page-item/page-item.component.js +0 -16
  409. package/esm2015/lib/pagination/page-item/page-item.directive.js +0 -62
  410. package/esm2015/lib/pagination/pagination/pagination.component.js +0 -45
  411. package/esm2015/lib/popover/popover/popover.component.js +0 -96
  412. package/esm2015/lib/popover/popover.directive.js +0 -193
  413. package/esm2015/lib/services/listeners.service.js +0 -44
  414. package/esm2015/lib/sidebar/sidebar/sidebar.component.js +0 -220
  415. package/esm2015/lib/sidebar/sidebar-brand/sidebar-brand.component.js +0 -33
  416. package/esm2015/lib/sidebar/sidebar-footer/sidebar-footer.component.js +0 -24
  417. package/esm2015/lib/sidebar/sidebar-header/sidebar-header.component.js +0 -24
  418. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-label.component.js +0 -46
  419. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-link.component.js +0 -99
  420. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.js +0 -24
  421. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav.component.js +0 -147
  422. package/esm2015/lib/spinner/spinner.component.js +0 -52
  423. package/esm2015/lib/tabs/tab-content/tab-content.component.js +0 -101
  424. package/esm2015/lib/tabs/tab-content-ref.directive.js +0 -130
  425. package/esm2015/lib/tabs/tab-pane/tab-pane.component.js +0 -62
  426. package/esm2015/lib/toast/toast-body/toast-body.component.js +0 -26
  427. package/esm2015/lib/toast/toast-header/toast-header.component.js +0 -36
  428. package/esm2015/lib/toast/toaster/toaster.component.js +0 -149
  429. package/esm2015/lib/toast/toaster/toaster.service.js +0 -21
  430. package/esm2015/lib/tooltip/tooltip/tooltip.component.js +0 -92
  431. package/esm2015/lib/tooltip/tooltip.directive.js +0 -188
  432. package/esm2015/lib/utilities/border.directive.js +0 -66
  433. package/esm2015/lib/utilities/rounded.directive.js +0 -56
  434. package/esm2015/lib/widget/widget-stat-a/widget-stat-a.component.js +0 -54
  435. package/esm2015/lib/widget/widget-stat-b/widget-stat-b.component.js +0 -57
  436. package/esm2015/lib/widget/widget-stat-c/widget-stat-c.component.js +0 -85
  437. package/esm2015/lib/widget/widget-stat-d/widget-stat-d.component.js +0 -44
  438. package/esm2015/lib/widget/widget-stat-e/widget-stat-e.component.js +0 -35
  439. package/esm2015/lib/widget/widget-stat-f/widget-stat-f.component.js +0 -101
  440. package/esm2015/public-api.js +0 -41
  441. package/fesm2015/coreui-angular-pro.js.map +0 -1
@@ -10,12 +10,12 @@ export class ModalService {
10
10
  this.modalState.next(action);
11
11
  }
12
12
  }
13
- ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
- ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ModalService, providedIn: 'root' });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ModalService, decorators: [{
13
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ModalService, providedIn: 'root' });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ModalService, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root'
19
19
  }]
20
20
  }], ctorParameters: function () { return []; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWS9CLE1BQU0sT0FBTyxZQUFZO0lBS3ZCO1FBSFEsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTlCLENBQUM7SUFFaEIsTUFBTSxDQUFDLE1BQW9CO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7OzBHQVRVLFlBQVk7OEdBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElNb2RhbEFjdGlvbiB7XHJcbiAgc2hvdz86IGJvb2xlYW4gfCAndG9nZ2xlJztcclxuICBtb2RhbD86IE1vZGFsQ29tcG9uZW50O1xyXG4gIGlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIG1vZGFsU3RhdGUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgbW9kYWxTdGF0ZSQgPSB0aGlzLm1vZGFsU3RhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgdG9nZ2xlKGFjdGlvbjogSU1vZGFsQWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGFsU3RhdGUubmV4dChhY3Rpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWS9CLE1BQU0sT0FBTyxZQUFZO0lBS3ZCO1FBSFEsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTlCLENBQUM7SUFFaEIsTUFBTSxDQUFDLE1BQW9CO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7O3lHQVRVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElNb2RhbEFjdGlvbiB7XHJcbiAgc2hvdz86IGJvb2xlYW4gfCAndG9nZ2xlJztcclxuICBtb2RhbD86IE1vZGFsQ29tcG9uZW50O1xyXG4gIGlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIG1vZGFsU3RhdGUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgbW9kYWxTdGF0ZSQgPSB0aGlzLm1vZGFsU3RhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgdG9nZ2xlKGFjdGlvbjogSU1vZGFsQWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGFsU3RhdGUubmV4dChhY3Rpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL211bHRpLXNlbGVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XHJcbiJdfQ==
@@ -0,0 +1,468 @@
1
+ import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import { FocusKeyManager } from '@angular/cdk/a11y';
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { MultiSelectService } from '../multi-select.service';
6
+ import { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';
7
+ import { MultiSelectNativeSelectComponent } from '../multi-select-native-select/multi-select-native-select.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/cdk/a11y";
10
+ import * as i2 from "../multi-select.service";
11
+ import * as i3 from "../multi-select-tag/multi-select-tag.component";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "@angular/forms";
14
+ import * as i6 from "../../button/button-close.directive";
15
+ export class MultiSelectComponent {
16
+ constructor(elementRef, renderer, ngZone, changeDetectorRef, viewContainerRef, focusMonitor, multiSelectService
17
+ // private listenersService: ListenersService
18
+ ) {
19
+ this.elementRef = elementRef;
20
+ this.renderer = renderer;
21
+ this.ngZone = ngZone;
22
+ this.changeDetectorRef = changeDetectorRef;
23
+ this.viewContainerRef = viewContainerRef;
24
+ this.focusMonitor = focusMonitor;
25
+ this.multiSelectService = multiSelectService;
26
+ this.onChange = (value) => { };
27
+ this.cleaner = true;
28
+ this._disabled = false;
29
+ this._multiple = false;
30
+ this.nativeName = '';
31
+ this.nativeId = '';
32
+ // @Input() options = [];
33
+ this.optionsMaxHeight = 'auto';
34
+ this.optionsStyle = 'checkbox';
35
+ this.placeholder = 'Select...';
36
+ this.search = true;
37
+ this.searchNoResultsLabel = 'no items';
38
+ this.selectAll = true;
39
+ this.selectAllLabel = 'Select all options';
40
+ this.selectionType = 'tags';
41
+ this.selectionTypeCounterText = 'item(s) selected';
42
+ this.selectionTypeCounterTextPluralMap = { '=1': 'item selected', 'other': 'items selected' };
43
+ this._value = [''];
44
+ this.valueChange = new EventEmitter();
45
+ this._visible = false;
46
+ this.visibleChange = new EventEmitter();
47
+ this.isDropdownVisible = false;
48
+ this._selectedOptions = [];
49
+ this._tabIndex = '-1';
50
+ this.visibleOptions = 0;
51
+ this._searchValue = '';
52
+ this._subtreeFocused = this.focusOrigin(null);
53
+ }
54
+ writeValue(value) {
55
+ if (value !== null) {
56
+ this.value = value;
57
+ }
58
+ }
59
+ registerOnChange(fn) {
60
+ this.onChange = fn;
61
+ }
62
+ registerOnTouched(fn) {
63
+ }
64
+ setDisabledState(isDisabled) {
65
+ this.disabled = isDisabled;
66
+ }
67
+ set disabled(value) {
68
+ this._disabled = coerceBooleanProperty(value);
69
+ }
70
+ get disabled() {
71
+ return this._disabled;
72
+ }
73
+ set multiple(value) {
74
+ this._multiple = coerceBooleanProperty(value);
75
+ }
76
+ get multiple() {
77
+ return this._multiple;
78
+ }
79
+ set value(value) {
80
+ const newValue = Array.isArray(value) ? [...value] : [value ?? ''];
81
+ if (this._value.toString() !== newValue.toString()) {
82
+ this._value = newValue;
83
+ this.onChange(newValue);
84
+ this.updateNativeSelect();
85
+ this.valueChange.emit(this.value);
86
+ }
87
+ }
88
+ get value() {
89
+ return this.multiple ? [...this._value] : this._value[0]?.toString() ?? '';
90
+ }
91
+ set visible(value) {
92
+ const newValue = coerceBooleanProperty(value);
93
+ if (newValue !== this._visible) {
94
+ this._visible = newValue;
95
+ this.multiSelectService.toggleVisible(newValue);
96
+ if (newValue) {
97
+ this.listKeyManager.setFirstItemActive();
98
+ }
99
+ }
100
+ }
101
+ get visible() {
102
+ return this._visible;
103
+ }
104
+ set selectedOptions(value) {
105
+ this._selectedOptions = value;
106
+ this.value = this.selectedOptions.map(item => item.value);
107
+ this.inputElementSize();
108
+ }
109
+ get selectedOptions() {
110
+ return this._selectedOptions;
111
+ }
112
+ get selectedOptionsText() {
113
+ return this.selectedOptions.map((option) => option.label).join(', ');
114
+ }
115
+ get counterText() {
116
+ return `${this.selectedOptions.length} ${this.selectionTypeCounterText}`;
117
+ }
118
+ get counterTextType() {
119
+ return typeof this.selectionTypeCounterTextPluralMap ?? typeof this.selectionTypeCounterText;
120
+ }
121
+ ;
122
+ get hostClasses() {
123
+ return {
124
+ 'form-multi-select': true,
125
+ 'form-multi-select-selection-tags': this.selectionType === 'tags',
126
+ show: this.visible,
127
+ disabled: this.disabled
128
+ };
129
+ }
130
+ get tabIndex() {
131
+ return this._tabIndex;
132
+ }
133
+ set tabIndex(value) {
134
+ setTimeout(() => {
135
+ this._tabIndex = this.disabled || this.search ? '-1' : value === null ? null : '0';
136
+ });
137
+ }
138
+ onKeyUp($event) {
139
+ if (this.disabled)
140
+ return;
141
+ if ($event.key === 'Escape') {
142
+ this.visible = false;
143
+ this.searchValue = '';
144
+ this.setFocus();
145
+ return;
146
+ }
147
+ if (['Enter', ' ', 'ArrowDown'].includes($event.key) && [this.inputElement?.nativeElement ?? this.elementRef.nativeElement].includes($event.target)) {
148
+ this.visible = true;
149
+ if (!this.search) {
150
+ this.setFocus();
151
+ }
152
+ return;
153
+ }
154
+ if ($event.key === 'Tab' && $event.target === this.elementRef.nativeElement) {
155
+ this.visible = true;
156
+ if (!this.search) {
157
+ this.setFocus();
158
+ }
159
+ return;
160
+ }
161
+ }
162
+ onKeyDown($event) {
163
+ if (this.disabled)
164
+ return;
165
+ this.listKeyManager.onKeydown($event);
166
+ }
167
+ onClick($event) {
168
+ if (this.disabled)
169
+ return;
170
+ if (!this.visible) {
171
+ this.visible = true;
172
+ }
173
+ }
174
+ set searchValue(value) {
175
+ this._searchValue = value.trim();
176
+ this.visible = !!this.searchValue.length || this.visible;
177
+ this.filterOptions(this.searchValue);
178
+ this.inputElementSize();
179
+ }
180
+ get searchValue() {
181
+ return this._searchValue;
182
+ }
183
+ get subtreeFocused() {
184
+ return this._subtreeFocused;
185
+ }
186
+ set subtreeFocused(value) {
187
+ this._subtreeFocused = this.disabled ? false : value;
188
+ this.visible = value === false ? false : this.visible;
189
+ }
190
+ focusOrigin(origin) {
191
+ const focused = !!origin;
192
+ this.searchValue = focused ? this.searchValue : '';
193
+ return focused;
194
+ }
195
+ ngOnInit() {
196
+ this.tabIndex = '0';
197
+ }
198
+ ngOnDestroy() {
199
+ this.multiselectSubscribe(false);
200
+ // this.clearListeners();
201
+ this.focusMonitor.stopMonitoring(this.elementRef);
202
+ this.focusMonitorSubscription?.unsubscribe();
203
+ }
204
+ ngAfterContentInit() {
205
+ this.visibleOptions = this.multiSelectOptions.length;
206
+ this.multiSelectOptions.forEach((option, index) => {
207
+ option.optionsStyle = this.optionsStyle;
208
+ option.selected = option.value !== undefined ? this.value.includes(option.value) || option.selected : option.selected;
209
+ });
210
+ this.selectedOptionsUpdate();
211
+ this.inputElementSize();
212
+ this.listKeyManager = new FocusKeyManager(this.multiSelectOptions).withHomeAndEnd().withTypeAhead();
213
+ this.listKeyManager.skipPredicate(item => (!item.visible || item.disabled));
214
+ this.listKeyManager.setFirstItemActive();
215
+ this.multiselectSubscribe();
216
+ this.createNativeSelect();
217
+ }
218
+ ngAfterViewInit() {
219
+ // this.setListeners();
220
+ this.focusMonitorSubscription = this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => this.ngZone.run(() => {
221
+ if (!this.disabled) {
222
+ this.subtreeFocused = this.focusOrigin(origin);
223
+ this.changeDetectorRef.markForCheck();
224
+ }
225
+ }));
226
+ this.inputElementSize();
227
+ }
228
+ multiselectSubscribe(subscribe = true) {
229
+ if (subscribe) {
230
+ this.multiselectVisibleSubscription = this.multiSelectService.multiSelectVisible$.subscribe((visible) => {
231
+ this.isDropdownVisible = visible;
232
+ this.visibleChange.emit(visible);
233
+ });
234
+ this.multiselectStateSubscription = this.multiSelectService.multiSelectState$.subscribe((option) => {
235
+ if (option.selected === true && !this.multiple) {
236
+ const selectedOptions = this.multiSelectOptions.toArray().filter((item) => item.selected);
237
+ selectedOptions.reverse().forEach((item) => {
238
+ if (item !== option) {
239
+ item.selected = false;
240
+ }
241
+ });
242
+ }
243
+ this.selectedOptionsUpdate();
244
+ });
245
+ }
246
+ else {
247
+ this.multiselectVisibleSubscription?.unsubscribe();
248
+ this.multiSelectOptionsSubscription?.unsubscribe();
249
+ this.multiselectStateSubscription?.unsubscribe();
250
+ }
251
+ }
252
+ clearAllOptions($event) {
253
+ this.selectedOptions.forEach((option) => {
254
+ if (!option._disabled)
255
+ option.selected = false;
256
+ });
257
+ this.setFocus();
258
+ }
259
+ selectAllOptions() {
260
+ this.multiSelectOptions.forEach((option, index) => {
261
+ if (!option.disabled)
262
+ option.selected = true;
263
+ });
264
+ }
265
+ // private setListeners() {
266
+ // if (this.search) {
267
+ // const configForInput: IListenersConfig = {
268
+ // hostElement: this.inputElement ?? this.elementRef,
269
+ // trigger: ['focus', 'click'],
270
+ // callbackOn: () => {
271
+ // console.log('focus input');
272
+ // this.tabIndex = null;
273
+ // // this.visible = true;
274
+ // }
275
+ // };
276
+ // this.listenersService.setListeners(configForInput);
277
+ // }
278
+ //
279
+ // const configForHost: IListenersConfig = {
280
+ // hostElement: this.elementRef,
281
+ // trigger: ['focus'],
282
+ // callbackOn: () => {
283
+ // console.log('focus');
284
+ // if (this.inputElement) {
285
+ // this.setFocus()
286
+ // }
287
+ // // this.inputElement?.nativeElement.focus();
288
+ // },
289
+ // callbackOff: () => {
290
+ // console.log('blur');
291
+ // }
292
+ // };
293
+ // this.listenersService.setListeners(configForHost);
294
+ // }
295
+ // private clearListeners() {
296
+ // this.listenersService.clearListeners();
297
+ // }
298
+ handleTagRemove($event) {
299
+ this.setFocus();
300
+ }
301
+ setFocus() {
302
+ if (this.disabled)
303
+ return;
304
+ this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'program');
305
+ }
306
+ // setFirstSelectedOptionActive() {
307
+ // const firstSelectedOption = this.selectedOptions.find((item) => item.selected) ??
308
+ // this.multiSelectOptions.find((item, index) => index === 0);
309
+ // if (firstSelectedOption && this.isDropdownVisible) {
310
+ // // this.listKeyManager.setFocusOrigin('keyboard');
311
+ // this.listKeyManager.setActiveItem(firstSelectedOption);
312
+ // this.changeDetectorRef.markForCheck();
313
+ // } else {
314
+ // // this.listKeyManager.setFocusOrigin('keyboard');
315
+ // this.listKeyManager.setFirstItemActive();
316
+ // this.changeDetectorRef.markForCheck();
317
+ // }
318
+ // }
319
+ filterOptions(value) {
320
+ const searchString = value.toLowerCase() ?? '';
321
+ this.multiSelectOptions?.forEach((item, index) => {
322
+ if (!!searchString) {
323
+ item.visible = item.label?.toLowerCase().includes(searchString) ?? true;
324
+ }
325
+ else {
326
+ item.visible = true;
327
+ }
328
+ });
329
+ this.visibleOptions = this.multiSelectOptions?.filter((item) => item.visible).length;
330
+ }
331
+ createNativeSelect() {
332
+ this.viewContainerRef.clear();
333
+ this.nativeSelectRef = this.viewContainerRef.createComponent(MultiSelectNativeSelectComponent);
334
+ this.updateNativeSelect();
335
+ }
336
+ updateNativeSelect() {
337
+ if (!this.nativeSelectRef)
338
+ return;
339
+ const options = this.selectedOptions.map(item => {
340
+ const { selected, value, label } = item;
341
+ return { selected, value, label };
342
+ });
343
+ this.nativeSelectRef.instance.multiple = this.multiple;
344
+ this.nativeSelectRef.instance.name = this.nativeName;
345
+ this.nativeSelectRef.instance.form = this.nativeId;
346
+ this.nativeSelectRef.instance.options = [...options];
347
+ this.nativeSelectRef.instance.disabled = this.disabled;
348
+ this.nativeSelectRef.instance.changeDetectorRef.detectChanges();
349
+ }
350
+ inputElementSize() {
351
+ if (this.inputElement) {
352
+ if (this.selectedOptions.length > 0 || this.selectionType === 'counter') {
353
+ this.renderer.setAttribute(this.inputElement.nativeElement, 'size', (this.searchValue.length + 2).toString());
354
+ }
355
+ else {
356
+ this.renderer.removeAttribute(this.inputElement.nativeElement, 'size');
357
+ }
358
+ }
359
+ }
360
+ handleSearchKeyDown($event) {
361
+ if (this.searchValue.length || this.selectedOptions.length === 0)
362
+ return;
363
+ if (['Backspace', 'Delete'].includes($event.key)) {
364
+ $event.stopPropagation();
365
+ const last = this.selectedOptions.filter(option => !option.disabled).pop();
366
+ this.selectOption(last, false);
367
+ }
368
+ }
369
+ selectOption(option, selected) {
370
+ this.multiSelectOptions.forEach(item => {
371
+ if (item === option) {
372
+ option.selected = selected;
373
+ }
374
+ });
375
+ this.selectedOptionsUpdate();
376
+ }
377
+ selectedOptionsUpdate() {
378
+ setTimeout(() => {
379
+ this.selectedOptions = this.multiSelectOptions.filter((option) => !!option.selected);
380
+ this.changeDetectorRef.markForCheck();
381
+ });
382
+ }
383
+ }
384
+ MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.FocusMonitor }, { token: i2.MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
385
+ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: MultiSelectComponent, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId", optionsMaxHeight: "optionsMaxHeight", optionsStyle: "optionsStyle", placeholder: "placeholder", search: "search", searchNoResultsLabel: "searchNoResultsLabel", selectAll: "selectAll", selectAllLabel: "selectAllLabel", selectionType: "selectionType", selectionTypeCounterText: "selectionTypeCounterText", selectionTypeCounterTextPluralMap: "selectionTypeCounterTextPluralMap", value: "value", visible: "visible" }, outputs: { valueChange: "valueChange", visibleChange: "visibleChange" }, host: { listeners: { "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex" } }, providers: [
386
+ MultiSelectService,
387
+ // ListenersService,
388
+ {
389
+ provide: NG_VALUE_ACCESSOR,
390
+ useExisting: forwardRef(() => MultiSelectComponent),
391
+ multi: true
392
+ }
393
+ ], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], exportAs: ["cMultiSelect"], ngImport: i0, template: "<div class=\"form-multi-select-selection\">\r\n <ng-template [ngIf]=\"selectionType === 'tags'\">\r\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\r\n (remove)=\"handleTagRemove($event)\"\r\n [option]=\"option\"\r\n tabindex=\"-1\">\r\n </c-multi-select-tag>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\r\n <span>{{ selectedOptionsText }}</span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'counter'\">\r\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\r\n <ng-template #pluralMap>\r\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\r\n <span>{{ placeholder }}</span>\r\n </ng-template>\r\n</div>\r\n\r\n<input\r\n #inputElement\r\n (keydown)=\"handleSearchKeyDown($event)\"\r\n *ngIf=\"search && !disabled\"\r\n [(ngModel)]=\"searchValue\"\r\n [disabled]=\"disabled || !search\"\r\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\r\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\r\n autocomplete=\"off\"\r\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\r\n type=\"text\"\r\n>\r\n\r\n<button\r\n (click)=\"clearAllOptions($event)\"\r\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\r\n [disabled]=\"disabled || !isDropdownVisible\"\r\n aria-label=\"Clear all\"\r\n cButtonClose\r\n class=\"form-multi-select-selection-cleaner\"\r\n size=\"sm\"\r\n></button>\r\n\r\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\r\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\r\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\r\n {{ selectAllLabel }}\r\n </button>\r\n <div #multiselectOptionsDiv\r\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\r\n class=\"form-multi-select-options\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #optionsEmpty>\r\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\r\n </ng-template>\r\n</div>\r\n", styles: [":host{display:block}:host.cdk-focused:not(.disabled){color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host .form-multi-select-search:disabled,:host .form-multi-select-search.disabled{background-color:var(--cui-input-disabled-bg, #d8dbe0);border-color:var(--cui-input-disabled-border-color, #b1b7c1);opacity:1}:host .form-multi-select-search[size]{display:inline}\n"], components: [{ type: i3.MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option"], outputs: ["remove"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "i18nPlural": i4.I18nPluralPipe } });
394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectComponent, decorators: [{
395
+ type: Component,
396
+ args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
397
+ MultiSelectService,
398
+ // ListenersService,
399
+ {
400
+ provide: NG_VALUE_ACCESSOR,
401
+ useExisting: forwardRef(() => MultiSelectComponent),
402
+ multi: true
403
+ }
404
+ ], template: "<div class=\"form-multi-select-selection\">\r\n <ng-template [ngIf]=\"selectionType === 'tags'\">\r\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\r\n (remove)=\"handleTagRemove($event)\"\r\n [option]=\"option\"\r\n tabindex=\"-1\">\r\n </c-multi-select-tag>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\r\n <span>{{ selectedOptionsText }}</span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'counter'\">\r\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\r\n <ng-template #pluralMap>\r\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\r\n <span>{{ placeholder }}</span>\r\n </ng-template>\r\n</div>\r\n\r\n<input\r\n #inputElement\r\n (keydown)=\"handleSearchKeyDown($event)\"\r\n *ngIf=\"search && !disabled\"\r\n [(ngModel)]=\"searchValue\"\r\n [disabled]=\"disabled || !search\"\r\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\r\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\r\n autocomplete=\"off\"\r\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\r\n type=\"text\"\r\n>\r\n\r\n<button\r\n (click)=\"clearAllOptions($event)\"\r\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\r\n [disabled]=\"disabled || !isDropdownVisible\"\r\n aria-label=\"Clear all\"\r\n cButtonClose\r\n class=\"form-multi-select-selection-cleaner\"\r\n size=\"sm\"\r\n></button>\r\n\r\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\r\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\r\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\r\n {{ selectAllLabel }}\r\n </button>\r\n <div #multiselectOptionsDiv\r\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\r\n class=\"form-multi-select-options\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #optionsEmpty>\r\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\r\n </ng-template>\r\n</div>\r\n", styles: [":host{display:block}:host.cdk-focused:not(.disabled){color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host .form-multi-select-search:disabled,:host .form-multi-select-search.disabled{background-color:var(--cui-input-disabled-bg, #d8dbe0);border-color:var(--cui-input-disabled-border-color, #b1b7c1);opacity:1}:host .form-multi-select-search[size]{display:inline}\n"] }]
405
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.FocusMonitor }, { type: i2.MultiSelectService }]; }, propDecorators: { cleaner: [{
406
+ type: Input
407
+ }], disabled: [{
408
+ type: Input
409
+ }], multiple: [{
410
+ type: Input
411
+ }], nativeName: [{
412
+ type: Input
413
+ }], nativeId: [{
414
+ type: Input
415
+ }], optionsMaxHeight: [{
416
+ type: Input
417
+ }], optionsStyle: [{
418
+ type: Input
419
+ }], placeholder: [{
420
+ type: Input
421
+ }], search: [{
422
+ type: Input
423
+ }], searchNoResultsLabel: [{
424
+ type: Input
425
+ }], selectAll: [{
426
+ type: Input
427
+ }], selectAllLabel: [{
428
+ type: Input
429
+ }], selectionType: [{
430
+ type: Input
431
+ }], selectionTypeCounterText: [{
432
+ type: Input
433
+ }], selectionTypeCounterTextPluralMap: [{
434
+ type: Input
435
+ }], value: [{
436
+ type: Input
437
+ }], valueChange: [{
438
+ type: Output
439
+ }], visible: [{
440
+ type: Input
441
+ }], visibleChange: [{
442
+ type: Output
443
+ }], multiSelectOptions: [{
444
+ type: ContentChildren,
445
+ args: [MultiSelectOptionComponent, { descendants: true }]
446
+ }], inputElement: [{
447
+ type: ViewChild,
448
+ args: ['inputElement']
449
+ }], dropdownElement: [{
450
+ type: ViewChild,
451
+ args: ['dropdownElement']
452
+ }], hostClasses: [{
453
+ type: HostBinding,
454
+ args: ['class']
455
+ }], tabIndex: [{
456
+ type: HostBinding,
457
+ args: ['attr.tabindex']
458
+ }], onKeyUp: [{
459
+ type: HostListener,
460
+ args: ['keyup', ['$event']]
461
+ }], onKeyDown: [{
462
+ type: HostListener,
463
+ args: ['keydown', ['$event']]
464
+ }], onClick: [{
465
+ type: HostListener,
466
+ args: ['click', ['$event']]
467
+ }] } });
468
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7OztBQW9DdEgsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNVLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxpQkFBb0MsRUFDcEMsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGtCQUFzQztJQUM5Qyw2Q0FBNkM7O1FBUHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdB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WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gaW1wb3J0IHsgTGlzdGVuZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpc3RlbmVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSU11bHRpU2VsZWN0LCBJT3B0aW9uIH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LnR5cGUnO1xyXG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpU2VsZWN0TmF0aXZlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcbi8vIGNvbnN0IGZsYXR0ZW5BcnJheSA9IChvcHRpb25zOiBJT3B0aW9uW10pOiBJT3B0aW9uW10gPT4ge1xyXG4vLyAgIHJldHVybiBvcHRpb25zLnJlZHVjZSgoYWNjOiBJT3B0aW9uW10sIHZhbDogSU9wdGlvbikgPT4ge1xyXG4vLyAgICAgcmV0dXJuIGFjYy5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWwub3B0aW9ucykgPyBmbGF0dGVuQXJyYXkodmFsLm9wdGlvbnMpIDogdmFsKTtcclxuLy8gICB9LCBbXSk7XHJcbi8vIH07XHJcbi8vXHJcbi8vIGNvbnN0IGdldFNlbGVjdGVkT3B0aW9ucyA9IChvcHRpb25zOiBJT3B0aW9uW10pID0+IHtcclxuLy8gICByZXR1cm4gZmxhdHRlbkFycmF5KG9wdGlvbnMpLmZpbHRlcigob3B0aW9uOiBJT3B0aW9uKSA9PiB7XHJcbi8vICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XHJcbi8vICAgICAgIHJldHVybiBvcHRpb247XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm47XHJcbi8vICAgfSk7XHJcbi8vIH07XHJcblxyXG5pbnRlcmZhY2UgSVBsdXJhbE1hcCB7XHJcbiAgW2s6IHN0cmluZ106IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjTXVsdGlTZWxlY3QnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTXVsdGlTZWxlY3RTZXJ2aWNlLFxyXG4gICAgLy8gTGlzdGVuZXJzU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgSU11bHRpU2VsZWN0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXHJcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlXHJcbiAgICAvLyBwcml2YXRlIGxpc3RlbmVyc1NlcnZpY2U6IExpc3RlbmVyc1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tdWx0aXBsZTogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiAoc3RyaW5nIHwgc3RyaW5nW10pKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgY2xlYW5lciA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbXVsdGlwbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBuYXRpdmVOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgbmF0aXZlSWQgPSAnJztcclxuICAvLyBASW5wdXQoKSBvcHRpb25zID0gW107XHJcbiAgQElucHV0KCkgb3B0aW9uc01heEhlaWdodCA9ICdhdXRvJztcclxuICBASW5wdXQoKSBvcHRpb25zU3R5bGU6ICdjaGVja2JveCcgfCAndGV4dCcgPSAnY2hlY2tib3gnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XHJcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWFyY2hOb1Jlc3VsdHNMYWJlbCA9ICdubyBpdGVtcyc7XHJcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3RBbGxMYWJlbCA9ICdTZWxlY3QgYWxsIG9wdGlvbnMnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGU6ICdjb3VudGVyJyB8ICd0YWdzJyB8ICd0ZXh0JyA9ICd0YWdzJztcclxuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHQ6IHN0cmluZyA9ICdpdGVtKHMpIHNlbGVjdGVkJztcclxuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXA/OiBJUGx1cmFsTWFwID0geyAnPTEnOiAnaXRlbSBzZWxlY3RlZCcsICdvdGhlcic6ICdpdGVtcyBzZWxlY3RlZCcgfTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gWy4uLnZhbHVlXSA6IFt2YWx1ZSA/PyAnJ107XHJcbiAgICBpZiAodGhpcy5fdmFsdWUudG9TdHJpbmcoKSAhPT0gbmV3VmFsdWUudG9TdHJpbmcoKSkge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXT8udG9TdHJpbmcoKSA/PyAnJztcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZ1tdID0gWycnXTtcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBzdHJpbmdbXT4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl92aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuX3Zpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlcnZpY2UudG9nZ2xlVmlzaWJsZShuZXdWYWx1ZSk7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgc2V0IHNlbGVjdGVkT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zID0gdmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE9wdGlvbnM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9uc1RleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbCkuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVyVGV4dCgpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGh9ICR7dGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHR9YDtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVyVGV4dFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0eXBlb2YgdGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXAgPz8gdHlwZW9mIHRoaXMuc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0O1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgbXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBtdWx0aVNlbGVjdE9wdGlvbnMhOiBRdWVyeUxpc3Q8TXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQ+O1xyXG5cclxuICBwcml2YXRlIGxpc3RLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93bkVsZW1lbnQnKSBkcm9wZG93bkVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0JzogdHJ1ZSxcclxuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0LXNlbGVjdGlvbi10YWdzJzogdGhpcy5zZWxlY3Rpb25UeXBlID09PSAndGFncycsXHJcbiAgICAgIHNob3c6IHRoaXMudmlzaWJsZSxcclxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxyXG4gIHByaXZhdGUgZ2V0IHRhYkluZGV4KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIHNldCB0YWJJbmRleCh2YWx1ZSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNlYXJjaCA/ICctMScgOiB2YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiAnMCc7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGFiSW5kZXg6IHN0cmluZyB8IG51bGwgPSAnLTEnO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNldEZvY3VzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChbJ0VudGVyJywgJyAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkgJiYgW3RoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50ID8/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XS5pbmNsdWRlcygkZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnVGFiJyAmJiAkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5vbktleWRvd24oJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHZpc2libGVPcHRpb25zID0gMDtcclxuXHJcbiAgc2V0IHNlYXJjaFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9zZWFyY2hWYWx1ZSA9IHZhbHVlLnRyaW0oKTtcclxuICAgIHRoaXMudmlzaWJsZSA9ICEhdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggfHwgdGhpcy52aXNpYmxlO1xyXG4gICAgdGhpcy5maWx0ZXJPcHRpb25zKHRoaXMuc2VhcmNoVmFsdWUpO1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XHJcbiAgfVxyXG4gIGdldCBzZWFyY2hWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hWYWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBnZXQgc3VidHJlZUZvY3VzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VidHJlZUZvY3VzZWQ7XHJcbiAgfVxyXG4gIHNldCBzdWJ0cmVlRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc3VidHJlZUZvY3VzZWQgPSB0aGlzLmRpc2FibGVkID8gZmFsc2UgOiB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlID09PSBmYWxzZSA/IGZhbHNlIDogdGhpcy52aXNpYmxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9zdWJ0cmVlRm9jdXNlZCA9IHRoaXMuZm9jdXNPcmlnaW4obnVsbCk7XHJcblxyXG4gIHByaXZhdGUgbmF0aXZlU2VsZWN0UmVmITogYW55O1xyXG5cclxuICBmb2N1c09yaWdpbihvcmlnaW46IEZvY3VzT3JpZ2luKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gZm9jdXNlZCA/IHRoaXMuc2VhcmNoVmFsdWUgOiAnJztcclxuICAgIHJldHVybiBmb2N1c2VkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhYkluZGV4ID0gJzAnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm11bHRpc2VsZWN0U3Vic2NyaWJlKGZhbHNlKTtcclxuICAgIC8vIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcclxuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5sZW5ndGg7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIG9wdGlvbi5vcHRpb25zU3R5bGUgPSB0aGlzLm9wdGlvbnNTdHlsZTtcclxuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgPyB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkgfHwgb3B0aW9uLnNlbGVjdGVkIDogb3B0aW9uLnNlbGVjdGVkO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XHJcblxyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkud2l0aFR5cGVBaGVhZCgpO1xyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5za2lwUHJlZGljYXRlKGl0ZW0gPT4gKCFpdGVtLnZpc2libGUgfHwgaXRlbS5kaXNhYmxlZCkpO1xyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcclxuICAgIHRoaXMubXVsdGlzZWxlY3RTdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuY3JlYXRlTmF0aXZlU2VsZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLnNldExpc3RlbmVycygpO1xyXG4gICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24gPSB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKChvcmlnaW4pID0+XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnRyZWVGb2N1c2VkID0gdGhpcy5mb2N1c09yaWdpbihvcmlnaW4pO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG11bHRpc2VsZWN0U3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmIChzdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFZpc2libGUkLnN1YnNjcmliZShcclxuICAgICAgICAodmlzaWJsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2aXNpYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLm11bHRpc2VsZWN0U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFN0YXRlJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKG9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCA9PT0gdHJ1ZSAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy50b0FycmF5KCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcclxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25zLnJldmVyc2UoKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RWaXNpYmxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGxPcHRpb25zKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmICghb3B0aW9uLl9kaXNhYmxlZCkgb3B0aW9uLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFsbE9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIHNldExpc3RlbmVycygpIHtcclxuICAvLyAgIGlmICh0aGlzLnNlYXJjaCkge1xyXG4gIC8vICAgICBjb25zdCBjb25maWdGb3JJbnB1dDogSUxpc3RlbmVyc0NvbmZpZyA9IHtcclxuICAvLyAgICAgICBob3N0RWxlbWVudDogdGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLFxyXG4gIC8vICAgICAgIHRyaWdnZXI6IFsnZm9jdXMnLCAnY2xpY2snXSxcclxuICAvLyAgICAgICBjYWxsYmFja09uOiAoKSA9PiB7XHJcbiAgLy8gICAgICAgICBjb25zb2xlLmxvZygnZm9jdXMgaW5wdXQnKTtcclxuICAvLyAgICAgICAgIHRoaXMudGFiSW5kZXggPSBudWxsO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH07XHJcbiAgLy8gICAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5zZXRMaXN0ZW5lcnMoY29uZmlnRm9ySW5wdXQpO1xyXG4gIC8vICAgfVxyXG4gIC8vXHJcbiAgLy8gICBjb25zdCBjb25maWdGb3JIb3N0OiBJTGlzdGVuZXJzQ29uZmlnID0ge1xyXG4gIC8vICAgICBob3N0RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxyXG4gIC8vICAgICB0cmlnZ2VyOiBbJ2ZvY3VzJ10sXHJcbiAgLy8gICAgIGNhbGxiYWNrT246ICgpID0+IHtcclxuICAvLyAgICAgICBjb25zb2xlLmxvZygnZm9jdXMnKTtcclxuICAvLyAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcclxuICAvLyAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICAvLyB0aGlzLmlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIC8vICAgICB9LFxyXG4gIC8vICAgICBjYWxsYmFja09mZjogKCkgPT4ge1xyXG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdibHVyJyk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH07XHJcbiAgLy8gICB0aGlzLmxpc3RlbmVyc1NlcnZpY2Uuc2V0TGlzdGVuZXJzKGNvbmZpZ0Zvckhvc3QpO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpIHtcclxuICAvLyAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5jbGVhckxpc3RlbmVycygpO1xyXG4gIC8vIH1cclxuXHJcbiAgaGFuZGxlVGFnUmVtb3ZlKCRldmVudDogSU9wdGlvbikge1xyXG4gICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLCAncHJvZ3JhbScpO1xyXG4gIH1cclxuXHJcbiAgLy8gc2V0Rmlyc3RTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIHtcclxuICAvLyAgIGNvbnN0IGZpcnN0U2VsZWN0ZWRPcHRpb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKSA/P1xyXG4gIC8vICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maW5kKChpdGVtLCBpbmRleCkgPT4gaW5kZXggPT09IDApO1xyXG4gIC8vICAgaWYgKGZpcnN0U2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xyXG4gIC8vICAgICAvLyB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xyXG4gIC8vICAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oZmlyc3RTZWxlY3RlZE9wdGlvbik7XHJcbiAgLy8gICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICAvLyB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xyXG4gIC8vICAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xyXG4gIC8vICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgZmlsdGVyT3B0aW9ucyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID8/ICcnO1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghIXNlYXJjaFN0cmluZykge1xyXG4gICAgICAgIGl0ZW0udmlzaWJsZSA9IGl0ZW0ubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSA/PyB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0ZW0udmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zPy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmlzaWJsZSkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTmF0aXZlU2VsZWN0KCkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQpO1xyXG4gICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU5hdGl2ZVNlbGVjdCgpIHtcclxuICAgIGlmICghdGhpcy5uYXRpdmVTZWxlY3RSZWYpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfSA9IGl0ZW07XHJcbiAgICAgIHJldHVybiB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm5hbWUgPSB0aGlzLm5hdGl2ZU5hbWU7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5uYXRpdmVJZDtcclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm9wdGlvbnMgPSBbLi4ub3B0aW9uc107XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBpbnB1dEVsZW1lbnRTaXplKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwIHx8IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ2NvdW50ZXInKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NpemUnLCAodGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggKyAyKS50b1N0cmluZygpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2l6ZScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoIHx8IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChbJ0JhY2tzcGFjZScsICdEZWxldGUnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+ICFvcHRpb24uZGlzYWJsZWQpLnBvcCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbihsYXN0LCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdE9wdGlvbihvcHRpb246IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0gPT09IG9wdGlvbikge1xyXG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhIW9wdGlvbi5zZWxlY3RlZCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uXCI+XHJcbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGlvblR5cGUgPT09ICd0YWdzJ1wiPlxyXG4gICAgPGMtbXVsdGktc2VsZWN0LXRhZyAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uczsgaW5kZXggYXMgaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiaGFuZGxlVGFnUmVtb3ZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cclxuICAgIDwvYy1tdWx0aS1zZWxlY3QtdGFnPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGlvblR5cGUgPT09ICd0ZXh0JyAmJiAhIXNlbGVjdGVkT3B0aW9uc1RleHRcIj5cclxuICAgIDxzcGFuPnt7IHNlbGVjdGVkT3B0aW9uc1RleHQgfX08L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2NvdW50ZXInXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXJUZXh0VHlwZSA9PT0gJ3N0cmluZyc7IGVsc2UgcGx1cmFsTWFwXCI+e3sgY291bnRlclRleHQgfX08L3NwYW4+XHJcbiAgICA8bmctdGVtcGxhdGUgI3BsdXJhbE1hcD5cclxuICAgICAgPHNwYW4+e3tzZWxlY3RlZE9wdGlvbnMubGVuZ3RofX0ge3sgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCB8IGkxOG5QbHVyYWw6IHNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcCA/PyB7IG90aGVyOiBjb3VudGVyVGV4dCB9IH19PC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhc2VhcmNoICYmIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDAgJiYgc2VsZWN0aW9uVHlwZSAhPT0gJ2NvdW50ZXInXCI+XHJcbiAgICA8c3Bhbj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuXHJcbjxpbnB1dFxyXG4gICNpbnB1dEVsZW1lbnRcclxuICAoa2V5ZG93bik9XCJoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudClcIlxyXG4gICpuZ0lmPVwic2VhcmNoICYmICFkaXNhYmxlZFwiXHJcbiAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZWFyY2hcIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ2Zvcm0tbXVsdGktc2VsZWN0LXNlYXJjaCc6IHRydWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcclxuICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlICE9PSAnY291bnRlcicgPyBwbGFjZWhvbGRlciA6ICcnXCJcclxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gIHRhYmluZGV4PVwie3sgZGlzYWJsZWQgPyAnLTEnIDogJzAnIH19XCJcclxuICB0eXBlPVwidGV4dFwiXHJcbj5cclxuXHJcbjxidXR0b25cclxuICAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxyXG4gICpuZ0lmPVwiY2xlYW5lciAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCAmJiAhZGlzYWJsZWRcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhaXNEcm9wZG93blZpc2libGVcIlxyXG4gIGFyaWEtbGFiZWw9XCJDbGVhciBhbGxcIlxyXG4gIGNCdXR0b25DbG9zZVxyXG4gIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLWNsZWFuZXJcIlxyXG4gIHNpemU9XCJzbVwiXHJcbj48L2J1dHRvbj5cclxuXHJcbjxkaXYgI2Ryb3Bkb3duRWxlbWVudCAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtZHJvcGRvd25cIj5cclxuICA8bmctdGVtcGxhdGUgW25nSWZFbHNlXT1cIm9wdGlvbnNFbXB0eVwiIFtuZ0lmXT1cInZpc2libGVPcHRpb25zID4gMFwiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0QWxsT3B0aW9ucygpXCIgKm5nSWY9XCJzZWxlY3RBbGwgJiYgbXVsdGlwbGVcIiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LWFsbFwiPlxyXG4gICAgICB7eyBzZWxlY3RBbGxMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2ICNtdWx0aXNlbGVjdE9wdGlvbnNEaXZcclxuICAgICAgICAgW25nU3R5bGVdPVwib3B0aW9uc01heEhlaWdodCAhPT0gJ2F1dG8nID8geyAnbWF4SGVpZ2h0LnB4Jzogb3B0aW9uc01heEhlaWdodCwgb3ZlcmZsb3c6ICdzY3JvbGwnIH0gOiB7fVwiXHJcbiAgICAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9uc1wiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNvcHRpb25zRW1wdHk+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9ucy1lbXB0eVwiPnt7IHNlYXJjaE5vUmVzdWx0c0xhYmVsIH19PC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ export class MultiSelectNativeSelectComponent {
6
+ constructor(changeDetectorRef) {
7
+ this.changeDetectorRef = changeDetectorRef;
8
+ this.form = '';
9
+ this.id = '';
10
+ }
11
+ }
12
+ MultiSelectNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13
+ MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: MultiSelectNativeSelectComponent, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options", disabled: "disabled" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [label]=\"option.label\"\r\n [attr.selected]=\"option.selected ? '' : null\"\r\n [value]=\"option.value\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"-1\"\r\n ></option>\r\n</select>\r\n\r\n", styles: [":host{display:none}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectNativeSelectComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [label]=\"option.label\"\r\n [attr.selected]=\"option.selected ? '' : null\"\r\n [value]=\"option.value\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"-1\"\r\n ></option>\r\n</select>\r\n\r\n", styles: [":host{display:none}\n"] }]
17
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { form: [{
18
+ type: Input
19
+ }], id: [{
20
+ type: Input
21
+ }], multiple: [{
22
+ type: Input
23
+ }], name: [{
24
+ type: Input
25
+ }], options: [{
26
+ type: Input
27
+ }], disabled: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc0xDUjdDLHFZQVdBOzJGREhhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07d0dBSXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm0/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG59XHJcbiIsIjxzZWxlY3QgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW25hbWVdPVwibmFtZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwiaWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8b3B0aW9uXHJcbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxyXG4gICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXHJcbiAgICBbYXR0ci5zZWxlY3RlZF09XCJvcHRpb24uc2VsZWN0ZWQgPyAnJyA6IG51bGxcIlxyXG4gICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgPjwvb3B0aW9uPlxyXG48L3NlbGVjdD5cclxuXHJcbiJdfQ==