@coreui/angular-pro 4.0.0-alpha.2 → 4.0.0-alpha.6

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 (390) hide show
  1. package/README.md +2 -2
  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/{esm2015/lib/accordion/accordion-button/accordion-button.directive.js → esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs} +4 -4
  5. package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +55 -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} +4 -4
  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 +170 -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/{esm2015/lib/backdrop/backdrop.service.js → esm2020/lib/backdrop/backdrop.service.mjs} +4 -4
  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} +4 -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 +134 -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 +60 -0
  68. package/esm2020/lib/carousel/carousel-state.mjs +71 -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/{esm2015/lib/carousel/public_api.js → esm2020/lib/carousel/public_api.mjs} +0 -0
  76. package/{esm2015/lib/collapse/collapse.animations.js → esm2020/lib/collapse/collapse.animations.mjs} +0 -0
  77. package/esm2020/lib/collapse/collapse.directive.mjs +125 -0
  78. package/{esm2015/lib/collapse/collapse.module.js → esm2020/lib/collapse/collapse.module.mjs} +5 -5
  79. package/{esm2015/lib/collapse/index.js → esm2020/lib/collapse/index.mjs} +0 -0
  80. package/{esm2015/lib/collapse/public_api.js → esm2020/lib/collapse/public_api.mjs} +0 -0
  81. package/{esm2015/lib/coreui.types.js → esm2020/lib/coreui.types.mjs} +0 -0
  82. package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +296 -0
  83. package/{esm2015/lib/dropdown/dropdown-divider/dropdown-divider.directive.js → esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs} +4 -4
  84. package/{esm2015/lib/dropdown/dropdown-header/dropdown-header.directive.js → esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs} +4 -4
  85. package/{esm2015/lib/dropdown/dropdown-item/dropdown-item-plain.directive.js → esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs} +4 -4
  86. package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +68 -0
  87. package/{esm2015/lib/dropdown/dropdown-menu/dropdown-menu.directive.js → esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs} +4 -4
  88. package/{esm2015/lib/dropdown/dropdown.module.js → esm2020/lib/dropdown/dropdown.module.mjs} +5 -5
  89. package/{esm2015/lib/dropdown/dropdown.service.js → esm2020/lib/dropdown/dropdown.service.mjs} +4 -4
  90. package/{esm2015/lib/dropdown/index.js → esm2020/lib/dropdown/index.mjs} +0 -0
  91. package/{esm2015/lib/dropdown/public_api.js → esm2020/lib/dropdown/public_api.mjs} +0 -0
  92. package/{esm2015/lib/footer/footer.component.js → esm2020/lib/footer/footer.component.mjs} +4 -4
  93. package/{esm2015/lib/footer/footer.module.js → esm2020/lib/footer/footer.module.mjs} +5 -5
  94. package/{esm2015/lib/footer/index.js → esm2020/lib/footer/index.mjs} +0 -0
  95. package/{esm2015/lib/footer/public_api.js → esm2020/lib/footer/public_api.mjs} +0 -0
  96. package/{esm2015/lib/form/form/form.directive.js → esm2020/lib/form/form/form.directive.mjs} +4 -4
  97. package/esm2020/lib/form/form-check/form-check-input.directive.mjs +59 -0
  98. package/{esm2015/lib/form/form-check/form-check-label.directive.js → esm2020/lib/form/form-check/form-check-label.directive.mjs} +4 -4
  99. package/{esm2015/lib/form/form-check/form-check.component.js → esm2020/lib/form/form-check/form-check.component.mjs} +4 -4
  100. package/{esm2015/lib/form/form-control/form-control.directive.js → esm2020/lib/form/form-control/form-control.directive.mjs} +4 -4
  101. package/{esm2015/lib/form/form-feedback/form-feedback.component.js → esm2020/lib/form/form-feedback/form-feedback.component.mjs} +4 -4
  102. package/{esm2015/lib/form/form-floating/form-floating.directive.js → esm2020/lib/form/form-floating/form-floating.directive.mjs} +4 -4
  103. package/{esm2015/lib/form/form-label/form-label.directive.js → esm2020/lib/form/form-label/form-label.directive.mjs} +4 -4
  104. package/{esm2015/lib/form/form-select/form-select.directive.js → esm2020/lib/form/form-select/form-select.directive.mjs} +4 -4
  105. package/{esm2015/lib/form/form-text/form-text.directive.js → esm2020/lib/form/form-text/form-text.directive.mjs} +4 -4
  106. package/{esm2015/lib/form/form.module.js → esm2020/lib/form/form.module.mjs} +5 -5
  107. package/{esm2015/lib/form/index.js → esm2020/lib/form/index.mjs} +0 -0
  108. package/{esm2015/lib/form/input-group/input-group.component.js → esm2020/lib/form/input-group/input-group.component.mjs} +4 -4
  109. 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
  110. package/{esm2015/lib/form/public_api.js → esm2020/lib/form/public_api.mjs} +0 -0
  111. package/esm2020/lib/grid/col.component.mjs +12 -0
  112. package/esm2020/lib/grid/col.directive.mjs +151 -0
  113. package/{esm2015/lib/grid/col.type.js → esm2020/lib/grid/col.type.mjs} +0 -0
  114. package/esm2020/lib/grid/container.component.mjs +43 -0
  115. package/{esm2015/lib/grid/container.type.js → esm2020/lib/grid/container.type.mjs} +0 -0
  116. package/{esm2015/lib/grid/grid.module.js → esm2020/lib/grid/grid.module.mjs} +5 -5
  117. package/esm2020/lib/grid/gutter.directive.mjs +56 -0
  118. package/{esm2015/lib/grid/gutter.type.js → esm2020/lib/grid/gutter.type.mjs} +0 -0
  119. package/{esm2015/lib/grid/index.js → esm2020/lib/grid/index.mjs} +0 -0
  120. package/{esm2015/lib/grid/public_api.js → esm2020/lib/grid/public_api.mjs} +0 -0
  121. package/esm2020/lib/grid/row.component.mjs +12 -0
  122. package/{esm2015/lib/grid/row.directive.js → esm2020/lib/grid/row.directive.mjs} +4 -4
  123. package/{esm2015/lib/grid/row.type.js → esm2020/lib/grid/row.type.mjs} +0 -0
  124. package/esm2020/lib/header/header/header.component.mjs +47 -0
  125. package/{esm2015/lib/header/header-brand/header-brand.component.js → esm2020/lib/header/header-brand/header-brand.component.mjs} +4 -4
  126. package/{esm2015/lib/header/header-divider/header-divider.component.js → esm2020/lib/header/header-divider/header-divider.component.mjs} +4 -4
  127. package/esm2020/lib/header/header-nav/header-nav.component.mjs +28 -0
  128. package/{esm2015/lib/header/header-text/header-text.component.js → esm2020/lib/header/header-text/header-text.component.mjs} +4 -4
  129. package/{esm2015/lib/header/header-toggler/header-toggler.directive.js → esm2020/lib/header/header-toggler/header-toggler.directive.mjs} +4 -4
  130. package/{esm2015/lib/header/header.module.js → esm2020/lib/header/header.module.mjs} +5 -5
  131. package/{esm2015/lib/header/index.js → esm2020/lib/header/index.mjs} +0 -0
  132. package/{esm2015/lib/header/public_api.js → esm2020/lib/header/public_api.mjs} +0 -0
  133. package/{esm2015/lib/image/img.directive.js → esm2020/lib/image/img.directive.mjs} +4 -4
  134. package/{esm2015/lib/image/img.module.js → esm2020/lib/image/img.module.mjs} +5 -5
  135. package/{esm2015/lib/image/index.js → esm2020/lib/image/index.mjs} +0 -0
  136. package/{esm2015/lib/image/public_api.js → esm2020/lib/image/public_api.mjs} +0 -0
  137. package/{esm2015/lib/list-group/index.js → esm2020/lib/list-group/index.mjs} +0 -0
  138. package/{esm2015/lib/list-group/list-group-item.directive.js → esm2020/lib/list-group/list-group-item.directive.mjs} +4 -4
  139. package/{esm2015/lib/list-group/list-group.directive.js → esm2020/lib/list-group/list-group.directive.mjs} +4 -4
  140. package/{esm2015/lib/list-group/list-group.module.js → esm2020/lib/list-group/list-group.module.mjs} +5 -5
  141. package/{esm2015/lib/list-group/public_api.js → esm2020/lib/list-group/public_api.mjs} +0 -0
  142. package/{esm2015/lib/loading-button/index.js → esm2020/lib/loading-button/index.mjs} +0 -0
  143. package/esm2020/lib/loading-button/loading-button.component.mjs +84 -0
  144. package/{esm2015/lib/loading-button/loading-button.module.js → esm2020/lib/loading-button/loading-button.module.mjs} +5 -5
  145. package/{esm2015/lib/loading-button/public_api.js → esm2020/lib/loading-button/public_api.mjs} +0 -0
  146. package/{esm2015/lib/modal/index.js → esm2020/lib/modal/index.mjs} +0 -0
  147. package/esm2020/lib/modal/modal/modal.component.mjs +314 -0
  148. package/esm2020/lib/modal/modal-body/modal-body.component.mjs +19 -0
  149. package/esm2020/lib/modal/modal-content/modal-content.component.mjs +36 -0
  150. package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +32 -0
  151. package/{esm2015/lib/modal/modal-dismiss/modal-toggle.directive.js → esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs} +4 -4
  152. package/{esm2015/lib/modal/modal-footer/modal-footer.component.js → esm2020/lib/modal/modal-footer/modal-footer.component.mjs} +4 -4
  153. package/{esm2015/lib/modal/modal-header/modal-header.component.js → esm2020/lib/modal/modal-header/modal-header.component.mjs} +4 -4
  154. package/{esm2015/lib/modal/modal-title/modal-title.directive.js → esm2020/lib/modal/modal-title/modal-title.directive.mjs} +4 -4
  155. package/{esm2015/lib/modal/modal.module.js → esm2020/lib/modal/modal.module.mjs} +5 -5
  156. package/{esm2015/lib/modal/modal.service.js → esm2020/lib/modal/modal.service.mjs} +4 -4
  157. package/{esm2015/lib/modal/public_api.js → esm2020/lib/modal/public_api.mjs} +0 -0
  158. package/esm2020/lib/multi-select/index.mjs +2 -0
  159. package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +465 -0
  160. package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +30 -0
  161. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +20 -0
  162. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +52 -0
  163. package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +141 -0
  164. package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +56 -0
  165. package/esm2020/lib/multi-select/multi-select.module.mjs +50 -0
  166. package/esm2020/lib/multi-select/multi-select.service.mjs +23 -0
  167. package/esm2020/lib/multi-select/multi-select.type.mjs +2 -0
  168. package/esm2020/lib/multi-select/public_api.mjs +7 -0
  169. package/{esm2015/lib/nav/index.js → esm2020/lib/nav/index.mjs} +0 -0
  170. package/esm2020/lib/nav/nav-item.component.mjs +19 -0
  171. package/esm2020/lib/nav/nav-link.directive.mjs +87 -0
  172. package/esm2020/lib/nav/nav.component.mjs +27 -0
  173. package/{esm2015/lib/nav/nav.module.js → esm2020/lib/nav/nav.module.mjs} +5 -5
  174. package/{esm2015/lib/nav/public_api.js → esm2020/lib/nav/public_api.mjs} +0 -0
  175. package/{esm2015/lib/navbar/index.js → esm2020/lib/navbar/index.mjs} +0 -0
  176. package/{esm2015/lib/navbar/navbar-brand/navbar-brand.directive.js → esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs} +4 -4
  177. package/{esm2015/lib/navbar/navbar-nav/navbar-nav.component.js → esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs} +4 -4
  178. package/{esm2015/lib/navbar/navbar-text/navbar-text.component.js → esm2020/lib/navbar/navbar-text/navbar-text.component.mjs} +4 -4
  179. package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +63 -0
  180. package/esm2020/lib/navbar/navbar.component.mjs +84 -0
  181. package/{esm2015/lib/navbar/navbar.module.js → esm2020/lib/navbar/navbar.module.mjs} +5 -5
  182. package/{esm2015/lib/navbar/public_api.js → esm2020/lib/navbar/public_api.mjs} +0 -0
  183. package/{esm2015/lib/offcanvas/index.js → esm2020/lib/offcanvas/index.mjs} +0 -0
  184. package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +244 -0
  185. package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +19 -0
  186. package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +19 -0
  187. package/{esm2015/lib/offcanvas/offcanvas-title/offcanvas-title.directive.js → esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs} +4 -4
  188. package/{esm2015/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.js → esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs} +4 -4
  189. package/{esm2015/lib/offcanvas/offcanvas.module.js → esm2020/lib/offcanvas/offcanvas.module.mjs} +5 -5
  190. package/{esm2015/lib/offcanvas/offcanvas.service.js → esm2020/lib/offcanvas/offcanvas.service.mjs} +4 -4
  191. package/{esm2015/lib/offcanvas/public_api.js → esm2020/lib/offcanvas/public_api.mjs} +0 -0
  192. package/{esm2015/lib/pagination/index.js → esm2020/lib/pagination/index.mjs} +0 -0
  193. package/esm2020/lib/pagination/page-item/page-item.component.mjs +12 -0
  194. package/esm2020/lib/pagination/page-item/page-item.directive.mjs +62 -0
  195. package/{esm2015/lib/pagination/page-link/page-link.directive.js → esm2020/lib/pagination/page-link/page-link.directive.mjs} +4 -4
  196. package/esm2020/lib/pagination/pagination/pagination.component.mjs +41 -0
  197. package/{esm2015/lib/pagination/pagination.module.js → esm2020/lib/pagination/pagination.module.mjs} +5 -5
  198. package/{esm2015/lib/pagination/public_api.js → esm2020/lib/pagination/public_api.mjs} +0 -0
  199. package/{esm2015/lib/popover/index.js → esm2020/lib/popover/index.mjs} +0 -0
  200. package/esm2020/lib/popover/popover/popover.component.mjs +92 -0
  201. package/esm2020/lib/popover/popover.directive.mjs +191 -0
  202. package/{esm2015/lib/popover/popover.module.js → esm2020/lib/popover/popover.module.mjs} +5 -5
  203. package/{esm2015/lib/popover/public_api.js → esm2020/lib/popover/public_api.mjs} +0 -0
  204. package/{esm2015/lib/progress/index.js → esm2020/lib/progress/index.mjs} +0 -0
  205. package/{esm2015/lib/progress/progress-bar.component.js → esm2020/lib/progress/progress-bar.component.mjs} +4 -4
  206. package/{esm2015/lib/progress/progress-bar.js → esm2020/lib/progress/progress-bar.mjs} +0 -0
  207. package/{esm2015/lib/progress/progress.component.js → esm2020/lib/progress/progress.component.mjs} +4 -4
  208. package/{esm2015/lib/progress/progress.module.js → esm2020/lib/progress/progress.module.mjs} +5 -5
  209. package/{esm2015/lib/progress/public_api.js → esm2020/lib/progress/public_api.mjs} +0 -0
  210. package/{esm2015/lib/services/class-toggle.service.js → esm2020/lib/services/class-toggle.service.mjs} +4 -4
  211. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
  212. package/esm2020/lib/services/listeners.service.mjs +43 -0
  213. package/{esm2015/lib/services/public_api.js → esm2020/lib/services/public_api.mjs} +0 -0
  214. package/{esm2015/lib/shared/html-attr.directive.js → esm2020/lib/shared/html-attr.directive.mjs} +4 -4
  215. package/{esm2015/lib/shared/index.js → esm2020/lib/shared/index.mjs} +0 -0
  216. package/{esm2015/lib/shared/public_api.js → esm2020/lib/shared/public_api.mjs} +0 -0
  217. package/{esm2015/lib/shared/shared.module.js → esm2020/lib/shared/shared.module.mjs} +5 -5
  218. package/{esm2015/lib/shared/template-id.directive.js → esm2020/lib/shared/template-id.directive.mjs} +4 -4
  219. package/{esm2015/lib/sidebar/index.js → esm2020/lib/sidebar/index.mjs} +0 -0
  220. package/{esm2015/lib/sidebar/public_api.js → esm2020/lib/sidebar/public_api.mjs} +0 -0
  221. package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +223 -0
  222. package/{esm2015/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.js → esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs} +4 -4
  223. package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +30 -0
  224. package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +20 -0
  225. package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +20 -0
  226. package/{esm2015/lib/sidebar/sidebar-nav/index.js → esm2020/lib/sidebar/sidebar-nav/index.mjs} +0 -0
  227. package/{esm2015/lib/sidebar/sidebar-nav/public_api.js → esm2020/lib/sidebar/sidebar-nav/public_api.mjs} +0 -0
  228. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs} +4 -4
  229. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs} +4 -4
  230. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs} +4 -4
  231. 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
  232. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +43 -0
  233. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +94 -0
  234. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +23 -0
  235. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-title.component.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs} +4 -4
  236. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +137 -0
  237. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav.mjs} +0 -0
  238. package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav.service.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs} +7 -7
  239. package/{esm2015/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.js → esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs} +4 -4
  240. package/{esm2015/lib/sidebar/sidebar-toggler/sidebar-toggler.component.js → esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs} +4 -4
  241. package/{esm2015/lib/sidebar/sidebar.module.js → esm2020/lib/sidebar/sidebar.module.mjs} +5 -5
  242. package/{esm2015/lib/sidebar/sidebar.service.js → esm2020/lib/sidebar/sidebar.service.mjs} +4 -4
  243. package/{esm2015/lib/spinner/index.js → esm2020/lib/spinner/index.mjs} +0 -0
  244. package/{esm2015/lib/spinner/public_api.js → esm2020/lib/spinner/public_api.mjs} +0 -0
  245. package/esm2020/lib/spinner/spinner.component.mjs +49 -0
  246. package/{esm2015/lib/spinner/spinner.module.js → esm2020/lib/spinner/spinner.module.mjs} +5 -5
  247. package/{esm2015/lib/table/index.js → esm2020/lib/table/index.mjs} +0 -0
  248. package/{esm2015/lib/table/public_api.js → esm2020/lib/table/public_api.mjs} +0 -0
  249. package/{esm2015/lib/table/table-active.directive.js → esm2020/lib/table/table-active.directive.mjs} +4 -4
  250. package/{esm2015/lib/table/table-color.directive.js → esm2020/lib/table/table-color.directive.mjs} +4 -4
  251. package/{esm2015/lib/table/table.directive.js → esm2020/lib/table/table.directive.mjs} +4 -4
  252. package/{esm2015/lib/table/table.module.js → esm2020/lib/table/table.module.mjs} +5 -5
  253. package/{esm2015/lib/tabs/index.js → esm2020/lib/tabs/index.mjs} +0 -0
  254. package/{esm2015/lib/tabs/public_api.js → esm2020/lib/tabs/public_api.mjs} +0 -0
  255. package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +92 -0
  256. package/esm2020/lib/tabs/tab-content-ref.directive.mjs +128 -0
  257. package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +57 -0
  258. package/{esm2015/lib/tabs/tab.service.js → esm2020/lib/tabs/tab.service.mjs} +4 -4
  259. package/{esm2015/lib/tabs/tabs.module.js → esm2020/lib/tabs/tabs.module.mjs} +5 -5
  260. package/{esm2015/lib/toast/index.js → esm2020/lib/toast/index.mjs} +0 -0
  261. package/{esm2015/lib/toast/public_api.js → esm2020/lib/toast/public_api.mjs} +0 -0
  262. package/{esm2015/lib/toast/toast/toast.component.js → esm2020/lib/toast/toast/toast.component.mjs} +6 -12
  263. package/esm2020/lib/toast/toast-body/toast-body.component.mjs +21 -0
  264. package/{esm2015/lib/toast/toast-close.directive.js → esm2020/lib/toast/toast-close.directive.mjs} +4 -4
  265. package/esm2020/lib/toast/toast-header/toast-header.component.mjs +31 -0
  266. package/{esm2015/lib/toast/toast.module.js → esm2020/lib/toast/toast.module.mjs} +5 -5
  267. package/{esm2015/lib/toast/toaster/toaster-host.directive.js → esm2020/lib/toast/toaster/toaster-host.directive.mjs} +4 -4
  268. package/esm2020/lib/toast/toaster/toaster.component.mjs +140 -0
  269. package/esm2020/lib/toast/toaster/toaster.service.mjs +21 -0
  270. package/{esm2015/lib/tooltip/index.js → esm2020/lib/tooltip/index.mjs} +0 -0
  271. package/{esm2015/lib/tooltip/public_api.js → esm2020/lib/tooltip/public_api.mjs} +0 -0
  272. package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +88 -0
  273. package/esm2020/lib/tooltip/tooltip.directive.mjs +185 -0
  274. package/{esm2015/lib/tooltip/tooltip.module.js → esm2020/lib/tooltip/tooltip.module.mjs} +5 -5
  275. package/{esm2015/lib/utilities/align.directive.js → esm2020/lib/utilities/align.directive.mjs} +4 -4
  276. package/{esm2015/lib/utilities/bg-color.directive.js → esm2020/lib/utilities/bg-color.directive.mjs} +4 -4
  277. package/esm2020/lib/utilities/border.directive.mjs +66 -0
  278. package/{esm2015/lib/utilities/border.type.js → esm2020/lib/utilities/border.type.mjs} +0 -0
  279. package/{esm2015/lib/utilities/index.js → esm2020/lib/utilities/index.mjs} +0 -0
  280. package/{esm2015/lib/utilities/public_api.js → esm2020/lib/utilities/public_api.mjs} +0 -0
  281. package/esm2020/lib/utilities/rounded.directive.mjs +65 -0
  282. package/{esm2015/lib/utilities/rounded.type.js → esm2020/lib/utilities/rounded.type.mjs} +0 -0
  283. package/{esm2015/lib/utilities/text-color.directive.js → esm2020/lib/utilities/text-color.directive.mjs} +4 -4
  284. package/{esm2015/lib/utilities/utilities.module.js → esm2020/lib/utilities/utilities.module.mjs} +5 -5
  285. package/{esm2015/lib/widget/index.js → esm2020/lib/widget/index.mjs} +0 -0
  286. package/{esm2015/lib/widget/public_api.js → esm2020/lib/widget/public_api.mjs} +0 -0
  287. package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +49 -0
  288. package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +52 -0
  289. package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +80 -0
  290. package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +39 -0
  291. package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +30 -0
  292. package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +96 -0
  293. package/{esm2015/lib/widget/widget.module.js → esm2020/lib/widget/widget.module.mjs} +5 -5
  294. package/esm2020/public-api.mjs +42 -0
  295. package/fesm2015/{coreui-angular-pro.js → coreui-angular-pro.mjs} +1610 -1021
  296. package/fesm2015/coreui-angular-pro.mjs.map +1 -0
  297. package/fesm2020/coreui-angular-pro.mjs +10119 -0
  298. package/fesm2020/coreui-angular-pro.mjs.map +1 -0
  299. package/lib/multi-select/index.d.ts +1 -0
  300. package/lib/multi-select/multi-select/multi-select.component.d.ts +110 -0
  301. package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +14 -0
  302. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +9 -0
  303. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +20 -0
  304. package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +49 -0
  305. package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +21 -0
  306. package/lib/multi-select/multi-select.module.d.ts +16 -0
  307. package/lib/multi-select/multi-select.service.d.ts +12 -0
  308. package/lib/multi-select/multi-select.type.d.ts +34 -0
  309. package/lib/multi-select/public_api.d.ts +6 -0
  310. package/lib/nav/nav-link.directive.d.ts +1 -0
  311. package/package.json +25 -11
  312. package/public-api.d.ts +1 -0
  313. package/bundles/coreui-angular-pro.umd.js +0 -11658
  314. package/bundles/coreui-angular-pro.umd.js.map +0 -1
  315. package/esm2015/lib/accordion/accordion/accordion.component.js +0 -46
  316. package/esm2015/lib/accordion/accordion-item/accordion-item.component.js +0 -60
  317. package/esm2015/lib/alert/alert.component.js +0 -176
  318. package/esm2015/lib/avatar/avatar.component.js +0 -53
  319. package/esm2015/lib/badge/badge.component.js +0 -47
  320. package/esm2015/lib/breadcrumb/breadcrumb/breadcrumb.component.js +0 -47
  321. package/esm2015/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.js +0 -41
  322. package/esm2015/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.js +0 -45
  323. package/esm2015/lib/button/button-close.directive.js +0 -43
  324. package/esm2015/lib/callout/callout.component.js +0 -27
  325. package/esm2015/lib/card/card-img-overlay/card-img-overlay.component.js +0 -23
  326. package/esm2015/lib/carousel/carousel/carousel.component.js +0 -140
  327. package/esm2015/lib/carousel/carousel-caption/carousel-caption.component.js +0 -21
  328. package/esm2015/lib/carousel/carousel-control/carousel-control.component.js +0 -88
  329. package/esm2015/lib/carousel/carousel-indicators/carousel-indicators.component.js +0 -51
  330. package/esm2015/lib/carousel/carousel-inner/carousel-inner.component.js +0 -53
  331. package/esm2015/lib/carousel/carousel-item/carousel-item.component.js +0 -65
  332. package/esm2015/lib/carousel/carousel-state.js +0 -72
  333. package/esm2015/lib/collapse/collapse.directive.js +0 -125
  334. package/esm2015/lib/dropdown/dropdown/dropdown.component.js +0 -304
  335. package/esm2015/lib/dropdown/dropdown-item/dropdown-item.directive.js +0 -68
  336. package/esm2015/lib/form/form-check/form-check-input.directive.js +0 -60
  337. package/esm2015/lib/grid/col.component.js +0 -16
  338. package/esm2015/lib/grid/col.directive.js +0 -151
  339. package/esm2015/lib/grid/container.component.js +0 -47
  340. package/esm2015/lib/grid/gutter.directive.js +0 -56
  341. package/esm2015/lib/grid/row.component.js +0 -16
  342. package/esm2015/lib/header/header/header.component.js +0 -50
  343. package/esm2015/lib/header/header-nav/header-nav.component.js +0 -32
  344. package/esm2015/lib/loading-button/loading-button.component.js +0 -90
  345. package/esm2015/lib/modal/modal/modal.component.js +0 -322
  346. package/esm2015/lib/modal/modal-body/modal-body.component.js +0 -23
  347. package/esm2015/lib/modal/modal-content/modal-content.component.js +0 -37
  348. package/esm2015/lib/modal/modal-dialog/modal-dialog.component.js +0 -36
  349. package/esm2015/lib/nav/nav-item.component.js +0 -23
  350. package/esm2015/lib/nav/nav-link.directive.js +0 -81
  351. package/esm2015/lib/nav/nav.component.js +0 -31
  352. package/esm2015/lib/navbar/navbar-toggler/navbar-toggler.directive.js +0 -64
  353. package/esm2015/lib/navbar/navbar.component.js +0 -88
  354. package/esm2015/lib/offcanvas/offcanvas/offcanvas.component.js +0 -251
  355. package/esm2015/lib/offcanvas/offcanvas-body/offcanvas-body.component.js +0 -23
  356. package/esm2015/lib/offcanvas/offcanvas-header/offcanvas-header.component.js +0 -23
  357. package/esm2015/lib/pagination/page-item/page-item.component.js +0 -16
  358. package/esm2015/lib/pagination/page-item/page-item.directive.js +0 -62
  359. package/esm2015/lib/pagination/pagination/pagination.component.js +0 -45
  360. package/esm2015/lib/popover/popover/popover.component.js +0 -96
  361. package/esm2015/lib/popover/popover.directive.js +0 -193
  362. package/esm2015/lib/services/listeners.service.js +0 -44
  363. package/esm2015/lib/sidebar/sidebar/sidebar.component.js +0 -220
  364. package/esm2015/lib/sidebar/sidebar-brand/sidebar-brand.component.js +0 -33
  365. package/esm2015/lib/sidebar/sidebar-footer/sidebar-footer.component.js +0 -24
  366. package/esm2015/lib/sidebar/sidebar-header/sidebar-header.component.js +0 -24
  367. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-label.component.js +0 -46
  368. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-link.component.js +0 -99
  369. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.js +0 -24
  370. package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav.component.js +0 -147
  371. package/esm2015/lib/spinner/spinner.component.js +0 -52
  372. package/esm2015/lib/tabs/tab-content/tab-content.component.js +0 -101
  373. package/esm2015/lib/tabs/tab-content-ref.directive.js +0 -130
  374. package/esm2015/lib/tabs/tab-pane/tab-pane.component.js +0 -62
  375. package/esm2015/lib/toast/toast-body/toast-body.component.js +0 -26
  376. package/esm2015/lib/toast/toast-header/toast-header.component.js +0 -36
  377. package/esm2015/lib/toast/toaster/toaster.component.js +0 -149
  378. package/esm2015/lib/toast/toaster/toaster.service.js +0 -21
  379. package/esm2015/lib/tooltip/tooltip/tooltip.component.js +0 -92
  380. package/esm2015/lib/tooltip/tooltip.directive.js +0 -188
  381. package/esm2015/lib/utilities/border.directive.js +0 -66
  382. package/esm2015/lib/utilities/rounded.directive.js +0 -56
  383. package/esm2015/lib/widget/widget-stat-a/widget-stat-a.component.js +0 -54
  384. package/esm2015/lib/widget/widget-stat-b/widget-stat-b.component.js +0 -57
  385. package/esm2015/lib/widget/widget-stat-c/widget-stat-c.component.js +0 -85
  386. package/esm2015/lib/widget/widget-stat-d/widget-stat-d.component.js +0 -44
  387. package/esm2015/lib/widget/widget-stat-e/widget-stat-e.component.js +0 -35
  388. package/esm2015/lib/widget/widget-stat-f/widget-stat-f.component.js +0 -101
  389. package/esm2015/public-api.js +0 -41
  390. 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.0.3", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ModalService, providedIn: 'root' });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", 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,465 @@
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
+ this.selectedOptions = this.multiSelectOptions.filter((option) => !!option.selected);
379
+ }
380
+ }
381
+ MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", 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 });
382
+ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: [
383
+ MultiSelectService,
384
+ // ListenersService,
385
+ {
386
+ provide: NG_VALUE_ACCESSOR,
387
+ useExisting: forwardRef(() => MultiSelectComponent),
388
+ multi: true
389
+ }
390
+ ], 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\">\n <ng-template [ngIf]=\"selectionType === 'tags'\">\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\n (remove)=\"handleTagRemove($event)\"\n [option]=\"option\"\n tabindex=\"-1\">\n </c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\n <span>{{ selectedOptionsText }}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'counter'\">\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\n <ng-template #pluralMap>\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\n </ng-template>\n </ng-template>\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\n <span>{{ placeholder }}</span>\n </ng-template>\n</div>\n\n<input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n *ngIf=\"search && !disabled\"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\n autocomplete=\"off\"\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\n type=\"text\"\n>\n\n<button\n (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\n [disabled]=\"disabled || !isDropdownVisible\"\n aria-label=\"Clear all\"\n cButtonClose\n class=\"form-multi-select-selection-cleaner\"\n size=\"sm\"\n></button>\n\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\n {{ selectAllLabel }}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\n class=\"form-multi-select-options\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n </ng-template>\n</div>\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 } });
391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, decorators: [{
392
+ type: Component,
393
+ args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
394
+ MultiSelectService,
395
+ // ListenersService,
396
+ {
397
+ provide: NG_VALUE_ACCESSOR,
398
+ useExisting: forwardRef(() => MultiSelectComponent),
399
+ multi: true
400
+ }
401
+ ], template: "<div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType === 'tags'\">\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\n (remove)=\"handleTagRemove($event)\"\n [option]=\"option\"\n tabindex=\"-1\">\n </c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\n <span>{{ selectedOptionsText }}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'counter'\">\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\n <ng-template #pluralMap>\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\n </ng-template>\n </ng-template>\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\n <span>{{ placeholder }}</span>\n </ng-template>\n</div>\n\n<input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n *ngIf=\"search && !disabled\"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\n autocomplete=\"off\"\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\n type=\"text\"\n>\n\n<button\n (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\n [disabled]=\"disabled || !isDropdownVisible\"\n aria-label=\"Clear all\"\n cButtonClose\n class=\"form-multi-select-selection-cleaner\"\n size=\"sm\"\n></button>\n\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\n {{ selectAllLabel }}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\n class=\"form-multi-select-options\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n </ng-template>\n</div>\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"] }]
402
+ }], 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: [{
403
+ type: Input
404
+ }], disabled: [{
405
+ type: Input
406
+ }], multiple: [{
407
+ type: Input
408
+ }], nativeName: [{
409
+ type: Input
410
+ }], nativeId: [{
411
+ type: Input
412
+ }], optionsMaxHeight: [{
413
+ type: Input
414
+ }], optionsStyle: [{
415
+ type: Input
416
+ }], placeholder: [{
417
+ type: Input
418
+ }], search: [{
419
+ type: Input
420
+ }], searchNoResultsLabel: [{
421
+ type: Input
422
+ }], selectAll: [{
423
+ type: Input
424
+ }], selectAllLabel: [{
425
+ type: Input
426
+ }], selectionType: [{
427
+ type: Input
428
+ }], selectionTypeCounterText: [{
429
+ type: Input
430
+ }], selectionTypeCounterTextPluralMap: [{
431
+ type: Input
432
+ }], value: [{
433
+ type: Input
434
+ }], valueChange: [{
435
+ type: Output
436
+ }], visible: [{
437
+ type: Input
438
+ }], visibleChange: [{
439
+ type: Output
440
+ }], multiSelectOptions: [{
441
+ type: ContentChildren,
442
+ args: [MultiSelectOptionComponent, { descendants: true }]
443
+ }], inputElement: [{
444
+ type: ViewChild,
445
+ args: ['inputElement']
446
+ }], dropdownElement: [{
447
+ type: ViewChild,
448
+ args: ['dropdownElement']
449
+ }], hostClasses: [{
450
+ type: HostBinding,
451
+ args: ['class']
452
+ }], tabIndex: [{
453
+ type: HostBinding,
454
+ args: ['attr.tabindex']
455
+ }], onKeyUp: [{
456
+ type: HostListener,
457
+ args: ['keyup', ['$event']]
458
+ }], onKeyDown: [{
459
+ type: HostListener,
460
+ args: ['keydown', ['$event']]
461
+ }], onClick: [{
462
+ type: HostListener,
463
+ args: ['click', ['$event']]
464
+ }] } });
465
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7OztBQW9DdEgsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNVLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxpQkFBb0MsRUFDcEMsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGtCQUFzQztJQUM5Qyw2Q0FBNkM7O1FBUHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdB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QUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBU0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csaUNBQWlDO3NCQUF6QyxLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFlYSxXQUFXO3NCQUE3QixNQUFNO2dCQUdILE9BQU87c0JBRFYsS0FBSztnQkFnQmEsYUFBYTtzQkFBL0IsTUFBTTtnQkErQjZELGtCQUFrQjtzQkFBckYsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXZDLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFRixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU87Z0JBVVIsUUFBUTtzQkFEbkIsV0FBVzt1QkFBQyxlQUFlO2dCQVdPLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXlCSSxTQUFTO3NCQUE3QyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLQSxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyLCBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8vIGltcG9ydCB7IExpc3RlbmVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saXN0ZW5lcnMuc2VydmljZSc7XG5pbXBvcnQgeyBJTXVsdGlTZWxlY3QsIElPcHRpb24gfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QudHlwZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlbGVjdC1vcHRpb24vbXVsdGktc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQnO1xuXG4vLyBjb25zdCBmbGF0dGVuQXJyYXkgPSAob3B0aW9uczogSU9wdGlvbltdKTogSU9wdGlvbltdID0+IHtcbi8vICAgcmV0dXJuIG9wdGlvbnMucmVkdWNlKChhY2M6IElPcHRpb25bXSwgdmFsOiBJT3B0aW9uKSA9PiB7XG4vLyAgICAgcmV0dXJuIGFjYy5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWwub3B0aW9ucykgPyBmbGF0dGVuQXJyYXkodmFsLm9wdGlvbnMpIDogdmFsKTtcbi8vICAgfSwgW10pO1xuLy8gfTtcbi8vXG4vLyBjb25zdCBnZXRTZWxlY3RlZE9wdGlvbnMgPSAob3B0aW9uczogSU9wdGlvbltdKSA9PiB7XG4vLyAgIHJldHVybiBmbGF0dGVuQXJyYXkob3B0aW9ucykuZmlsdGVyKChvcHRpb246IElPcHRpb24pID0+IHtcbi8vICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XG4vLyAgICAgICByZXR1cm4gb3B0aW9uO1xuLy8gICAgIH1cbi8vICAgICByZXR1cm47XG4vLyAgIH0pO1xuLy8gfTtcblxuaW50ZXJmYWNlIElQbHVyYWxNYXAge1xuICBbazogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjTXVsdGlTZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICBNdWx0aVNlbGVjdFNlcnZpY2UsXG4gICAgLy8gTGlzdGVuZXJzU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSU11bHRpU2VsZWN0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlXG4gICAgLy8gcHJpdmF0ZSBsaXN0ZW5lcnNTZXJ2aWNlOiBMaXN0ZW5lcnNTZXJ2aWNlXG4gICkge31cblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbXVsdGlwbGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiAoc3RyaW5nIHwgc3RyaW5nW10pKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKSBjbGVhbmVyID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBtdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbmF0aXZlTmFtZSA9ICcnO1xuICBASW5wdXQoKSBuYXRpdmVJZCA9ICcnO1xuICAvLyBASW5wdXQoKSBvcHRpb25zID0gW107XG4gIEBJbnB1dCgpIG9wdGlvbnNNYXhIZWlnaHQgPSAnYXV0byc7XG4gIEBJbnB1dCgpIG9wdGlvbnNTdHlsZTogJ2NoZWNrYm94JyB8ICd0ZXh0JyA9ICdjaGVja2JveCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XG4gIEBJbnB1dCgpIHNlYXJjaCA9IHRydWU7XG4gIEBJbnB1dCgpIHNlYXJjaE5vUmVzdWx0c0xhYmVsID0gJ25vIGl0ZW1zJztcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VsZWN0QWxsTGFiZWwgPSAnU2VsZWN0IGFsbCBvcHRpb25zJztcbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZTogJ2NvdW50ZXInIHwgJ3RhZ3MnIHwgJ3RleHQnID0gJ3RhZ3MnO1xuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHQ6IHN0cmluZyA9ICdpdGVtKHMpIHNlbGVjdGVkJztcbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0UGx1cmFsTWFwPzogSVBsdXJhbE1hcCA9IHsgJz0xJzogJ2l0ZW0gc2VsZWN0ZWQnLCAnb3RoZXInOiAnaXRlbXMgc2VsZWN0ZWQnIH07XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW3ZhbHVlID8/ICcnXTtcbiAgICBpZiAodGhpcy5fdmFsdWUudG9TdHJpbmcoKSAhPT0gbmV3VmFsdWUudG9TdHJpbmcoKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gWy4uLnRoaXMuX3ZhbHVlXSA6IHRoaXMuX3ZhbHVlWzBdPy50b1N0cmluZygpID8/ICcnO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmdbXSA9IFsnJ107XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBzdHJpbmdbXT4oKTtcblxuICBASW5wdXQoKVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLnRvZ2dsZVZpc2libGUobmV3VmFsdWUpO1xuICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCB2aXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBpc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuXG4gIHNldCBzZWxlY3RlZE9wdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRPcHRpb25zO1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBnZXQgc2VsZWN0ZWRPcHRpb25zVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbCkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldCBjb3VudGVyVGV4dCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RofSAke3RoaXMuc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0fWA7XG4gIH1cblxuICBnZXQgY291bnRlclRleHRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcCA/PyB0eXBlb2YgdGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBtdWx0aVNlbGVjdE9wdGlvbnNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgbXVsdGlTZWxlY3RPcHRpb25zITogUXVlcnlMaXN0PE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGxpc3RLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bkVsZW1lbnQnKSBkcm9wZG93bkVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdCc6IHRydWUsXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLXRhZ3MnOiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd0YWdzJyxcbiAgICAgIHNob3c6IHRoaXMudmlzaWJsZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHByaXZhdGUgZ2V0IHRhYkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl90YWJJbmRleDtcbiAgfVxuICBwcml2YXRlIHNldCB0YWJJbmRleCh2YWx1ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuc2VhcmNoID8gJy0xJyA6IHZhbHVlID09PSBudWxsID8gbnVsbCA6ICcwJztcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIF90YWJJbmRleDogc3RyaW5nIHwgbnVsbCA9ICctMSc7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKSBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZXRGb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydFbnRlcicsICcgJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5rZXkpICYmIFt0aGlzLmlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudCA/PyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudF0uaW5jbHVkZXMoJGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdUYWInICYmICRldmVudC50YXJnZXQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMubGlzdEtleU1hbmFnZXIub25LZXlkb3duKCRldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmlzaWJsZU9wdGlvbnMgPSAwO1xuXG4gIHNldCBzZWFyY2hWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NlYXJjaFZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgIHRoaXMudmlzaWJsZSA9ICEhdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggfHwgdGhpcy52aXNpYmxlO1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcbiAgfVxuICBnZXQgc2VhcmNoVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3NlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBnZXQgc3VidHJlZUZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YnRyZWVGb2N1c2VkO1xuICB9XG4gIHNldCBzdWJ0cmVlRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3N1YnRyZWVGb2N1c2VkID0gdGhpcy5kaXNhYmxlZCA/IGZhbHNlIDogdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWUgPT09IGZhbHNlID8gZmFsc2UgOiB0aGlzLnZpc2libGU7XG4gIH1cbiAgcHJpdmF0ZSBfc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG51bGwpO1xuXG4gIHByaXZhdGUgbmF0aXZlU2VsZWN0UmVmITogYW55O1xuXG4gIGZvY3VzT3JpZ2luKG9yaWdpbjogRm9jdXNPcmlnaW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBmb2N1c2VkID0gISFvcmlnaW47XG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9IGZvY3VzZWQgPyB0aGlzLnNlYXJjaFZhbHVlIDogJyc7XG4gICAgcmV0dXJuIGZvY3VzZWQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkluZGV4ID0gJzAnO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tdWx0aXNlbGVjdFN1YnNjcmliZShmYWxzZSk7XG4gICAgLy8gdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XG4gICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmxlbmd0aDtcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBvcHRpb24ub3B0aW9uc1N0eWxlID0gdGhpcy5vcHRpb25zU3R5bGU7XG4gICAgICBvcHRpb24uc2VsZWN0ZWQgPSBvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCA/IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSB8fCBvcHRpb24uc2VsZWN0ZWQgOiBvcHRpb24uc2VsZWN0ZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcblxuICAgIHRoaXMubGlzdEtleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMubXVsdGlTZWxlY3RPcHRpb25zKS53aXRoSG9tZUFuZEVuZCgpLndpdGhUeXBlQWhlYWQoKTtcbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoaXRlbSA9PiAoIWl0ZW0udmlzaWJsZSB8fCBpdGVtLmRpc2FibGVkKSk7XG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB0aGlzLm11bHRpc2VsZWN0U3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jcmVhdGVOYXRpdmVTZWxlY3QoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnNldExpc3RlbmVycygpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uID0gdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZSgob3JpZ2luKSA9PlxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5zdWJ0cmVlRm9jdXNlZCA9IHRoaXMuZm9jdXNPcmlnaW4ob3JpZ2luKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpc2VsZWN0U3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLm11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLm11bHRpU2VsZWN0VmlzaWJsZSQuc3Vic2NyaWJlKFxuICAgICAgICAodmlzaWJsZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNEcm9wZG93blZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZpc2libGUpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLm11bHRpc2VsZWN0U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFN0YXRlJC5zdWJzY3JpYmUoXG4gICAgICAgIChvcHRpb24pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkID09PSB0cnVlICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy50b0FycmF5KCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9ucy5yZXZlcnNlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckFsbE9wdGlvbnMoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbi5fZGlzYWJsZWQpIG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbE9wdGlvbnMoKSB7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvLyBwcml2YXRlIHNldExpc3RlbmVycygpIHtcbiAgLy8gICBpZiAodGhpcy5zZWFyY2gpIHtcbiAgLy8gICAgIGNvbnN0IGNvbmZpZ0ZvcklucHV0OiBJTGlzdGVuZXJzQ29uZmlnID0ge1xuICAvLyAgICAgICBob3N0RWxlbWVudDogdGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLFxuICAvLyAgICAgICB0cmlnZ2VyOiBbJ2ZvY3VzJywgJ2NsaWNrJ10sXG4gIC8vICAgICAgIGNhbGxiYWNrT246ICgpID0+IHtcbiAgLy8gICAgICAgICBjb25zb2xlLmxvZygnZm9jdXMgaW5wdXQnKTtcbiAgLy8gICAgICAgICB0aGlzLnRhYkluZGV4ID0gbnVsbDtcbiAgLy8gICAgICAgICAvLyB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAvLyAgICAgICB9XG4gIC8vICAgICB9O1xuICAvLyAgICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWdGb3JJbnB1dCk7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIGNvbnN0IGNvbmZpZ0Zvckhvc3Q6IElMaXN0ZW5lcnNDb25maWcgPSB7XG4gIC8vICAgICBob3N0RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAvLyAgICAgdHJpZ2dlcjogWydmb2N1cyddLFxuICAvLyAgICAgY2FsbGJhY2tPbjogKCkgPT4ge1xuICAvLyAgICAgICBjb25zb2xlLmxvZygnZm9jdXMnKTtcbiAgLy8gICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gIC8vICAgICAgICAgdGhpcy5zZXRGb2N1cygpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgLy8gdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgLy8gICAgIH0sXG4gIC8vICAgICBjYWxsYmFja09mZjogKCkgPT4ge1xuICAvLyAgICAgICBjb25zb2xlLmxvZygnYmx1cicpO1xuICAvLyAgICAgfVxuICAvLyAgIH07XG4gIC8vICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWdGb3JIb3N0KTtcbiAgLy8gfVxuXG4gIC8vIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gIC8vICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLmNsZWFyTGlzdGVuZXJzKCk7XG4gIC8vIH1cblxuICBoYW5kbGVUYWdSZW1vdmUoJGV2ZW50OiBJT3B0aW9uKSB7XG4gICAgdGhpcy5zZXRGb2N1cygpO1xuICB9XG5cbiAgc2V0Rm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmlucHV0RWxlbWVudCA/PyB0aGlzLmVsZW1lbnRSZWYsICdwcm9ncmFtJyk7XG4gIH1cblxuICAvLyBzZXRGaXJzdFNlbGVjdGVkT3B0aW9uQWN0aXZlKCkge1xuICAvLyAgIGNvbnN0IGZpcnN0U2VsZWN0ZWRPcHRpb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKSA/P1xuICAvLyAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZmluZCgoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSAwKTtcbiAgLy8gICBpZiAoZmlyc3RTZWxlY3RlZE9wdGlvbiAmJiB0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XG4gIC8vICAgICAvLyB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xuICAvLyAgICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGZpcnN0U2VsZWN0ZWRPcHRpb24pO1xuICAvLyAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgLy8gdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGb2N1c09yaWdpbigna2V5Ym9hcmQnKTtcbiAgLy8gICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gIC8vICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIGZpbHRlck9wdGlvbnModmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHNlYXJjaFN0cmluZyA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPz8gJyc7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoISFzZWFyY2hTdHJpbmcpIHtcbiAgICAgICAgaXRlbS52aXNpYmxlID0gaXRlbS5sYWJlbD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpID8/IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtLnZpc2libGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZpc2libGUpLmxlbmd0aDtcbiAgfVxuXG4gIGNyZWF0ZU5hdGl2ZVNlbGVjdCgpIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQpO1xuICAgIHRoaXMudXBkYXRlTmF0aXZlU2VsZWN0KCk7XG4gIH1cblxuICB1cGRhdGVOYXRpdmVTZWxlY3QoKSB7XG4gICAgaWYgKCF0aGlzLm5hdGl2ZVNlbGVjdFJlZikgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHZhbHVlLCBsYWJlbCB9ID0gaXRlbTtcbiAgICAgIHJldHVybiB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfTtcbiAgICB9KTtcblxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYXRpdmVOYW1lO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLm5hdGl2ZUlkO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm9wdGlvbnMgPSBbLi4ub3B0aW9uc107XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlucHV0RWxlbWVudFNpemUoKSB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCB8fCB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdjb3VudGVyJykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2l6ZScsICh0aGlzLnNlYXJjaFZhbHVlLmxlbmd0aCArIDIpLnRvU3RyaW5nKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NpemUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnNlYXJjaFZhbHVlLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGlmIChbJ0JhY2tzcGFjZScsICdEZWxldGUnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgY29uc3QgbGFzdCA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gIW9wdGlvbi5kaXNhYmxlZCkucG9wKCk7XG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbihsYXN0LCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RPcHRpb24ob3B0aW9uOiBNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0gPT09IG9wdGlvbikge1xuICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZE9wdGlvbnNVcGRhdGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gISFvcHRpb24uc2VsZWN0ZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlID09PSAndGFncydcIj5cbiAgICA8Yy1tdWx0aS1zZWxlY3QtdGFnICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiaGFuZGxlVGFnUmVtb3ZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbl09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgIDwvYy1tdWx0aS1zZWxlY3QtdGFnPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3RleHQnICYmICEhc2VsZWN0ZWRPcHRpb25zVGV4dFwiPlxuICAgIDxzcGFuPnt7IHNlbGVjdGVkT3B0aW9uc1RleHQgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlID09PSAnY291bnRlcidcIj5cbiAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXJUZXh0VHlwZSA9PT0gJ3N0cmluZyc7IGVsc2UgcGx1cmFsTWFwXCI+e3sgY291bnRlclRleHQgfX08L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNwbHVyYWxNYXA+XG4gICAgICA8c3Bhbj57e3NlbGVjdGVkT3B0aW9ucy5sZW5ndGh9fSB7eyBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIHwgaTE4blBsdXJhbDogc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0UGx1cmFsTWFwID8/IHsgb3RoZXI6IGNvdW50ZXJUZXh0IH0gfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFzZWFyY2ggJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlICE9PSAnY291bnRlcidcIj5cbiAgICA8c3Bhbj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48aW5wdXRcbiAgI2lucHV0RWxlbWVudFxuICAoa2V5ZG93bik9XCJoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudClcIlxuICAqbmdJZj1cInNlYXJjaCAmJiAhZGlzYWJsZWRcIlxuICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZWFyY2hcIlxuICBbbmdDbGFzc109XCJ7ICdmb3JtLW11bHRpLXNlbGVjdC1zZWFyY2gnOiB0cnVlLCBkaXNhYmxlZDogZGlzYWJsZWQgfVwiXG4gIFtwbGFjZWhvbGRlcl09XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwICYmIHNlbGVjdGlvblR5cGUgIT09ICdjb3VudGVyJyA/IHBsYWNlaG9sZGVyIDogJydcIlxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICB0YWJpbmRleD1cInt7IGRpc2FibGVkID8gJy0xJyA6ICcwJyB9fVwiXG4gIHR5cGU9XCJ0ZXh0XCJcbj5cblxuPGJ1dHRvblxuICAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxuICAqbmdJZj1cImNsZWFuZXIgJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDAgJiYgIWRpc2FibGVkXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFpc0Ryb3Bkb3duVmlzaWJsZVwiXG4gIGFyaWEtbGFiZWw9XCJDbGVhciBhbGxcIlxuICBjQnV0dG9uQ2xvc2VcbiAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWxlY3Rpb24tY2xlYW5lclwiXG4gIHNpemU9XCJzbVwiXG4+PC9idXR0b24+XG5cbjxkaXYgI2Ryb3Bkb3duRWxlbWVudCAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtZHJvcGRvd25cIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmRWxzZV09XCJvcHRpb25zRW1wdHlcIiBbbmdJZl09XCJ2aXNpYmxlT3B0aW9ucyA+IDBcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RBbGxPcHRpb25zKClcIiAqbmdJZj1cInNlbGVjdEFsbCAmJiBtdWx0aXBsZVwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtYWxsXCI+XG4gICAgICB7eyBzZWxlY3RBbGxMYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgI211bHRpc2VsZWN0T3B0aW9uc0RpdlxuICAgICAgICAgW25nU3R5bGVdPVwib3B0aW9uc01heEhlaWdodCAhPT0gJ2F1dG8nID8geyAnbWF4SGVpZ2h0LnB4Jzogb3B0aW9uc01heEhlaWdodCwgb3ZlcmZsb3c6ICdzY3JvbGwnIH0gOiB7fVwiXG4gICAgICAgICBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LW9wdGlvbnNcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNvcHRpb25zRW1wdHk+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LW9wdGlvbnMtZW1wdHlcIj57eyBzZWFyY2hOb1Jlc3VsdHNMYWJlbCB9fTwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -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.0.3", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13
+ MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\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.0.3", 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\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc0xDUjdDLCtXQVdBOzJGREhhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07d0dBSXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm0/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG59XHJcbiIsIjxzZWxlY3QgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW25hbWVdPVwibmFtZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwiaWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG9wdGlvblxuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgW2F0dHIuc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkID8gJycgOiBudWxsXCJcbiAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICA+PC9vcHRpb24+XG48L3NlbGVjdD5cblxuIl19