ngx-bootstrap 10.3.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/README.md +3 -5
  2. package/accordion/accordion-group.component.d.ts +1 -1
  3. package/accordion/accordion.component.d.ts +1 -1
  4. package/accordion/esm2022/accordion-group.component.mjs +84 -0
  5. package/accordion/{esm2020 → esm2022}/accordion.component.mjs +4 -4
  6. package/accordion/{esm2020 → esm2022}/accordion.config.mjs +4 -4
  7. package/accordion/{esm2020 → esm2022}/accordion.module.mjs +5 -5
  8. package/accordion/{fesm2020 → fesm2022}/ngx-bootstrap-accordion.mjs +29 -29
  9. package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -0
  10. package/accordion/package.json +8 -14
  11. package/alert/alert.component.d.ts +1 -1
  12. package/alert/esm2022/alert.component.mjs +77 -0
  13. package/alert/{esm2020 → esm2022}/alert.config.mjs +4 -4
  14. package/alert/{esm2020 → esm2022}/alert.module.mjs +5 -5
  15. package/alert/{fesm2015 → fesm2022}/ngx-bootstrap-alert.mjs +10 -10
  16. package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -0
  17. package/alert/package.json +8 -14
  18. package/buttons/button-checkbox.directive.d.ts +2 -2
  19. package/buttons/button-radio.directive.d.ts +1 -1
  20. package/buttons/{esm2020 → esm2022}/button-checkbox.directive.mjs +4 -4
  21. package/buttons/{esm2020 → esm2022}/button-radio-group.directive.mjs +4 -4
  22. package/buttons/esm2022/button-radio.directive.mjs +188 -0
  23. package/buttons/{esm2020 → esm2022}/buttons.module.mjs +5 -5
  24. package/buttons/{fesm2020 → fesm2022}/ngx-bootstrap-buttons.mjs +26 -26
  25. package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -0
  26. package/buttons/package.json +7 -13
  27. package/carousel/carousel.component.d.ts +1 -1
  28. package/carousel/esm2022/carousel.component.mjs +713 -0
  29. package/carousel/{esm2020 → esm2022}/carousel.config.mjs +4 -4
  30. package/carousel/{esm2020 → esm2022}/carousel.module.mjs +5 -5
  31. package/carousel/{esm2020 → esm2022}/slide.component.mjs +6 -6
  32. package/carousel/{fesm2020 → fesm2022}/ngx-bootstrap-carousel.mjs +65 -56
  33. package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -0
  34. package/carousel/package.json +8 -14
  35. package/carousel/slide.component.d.ts +1 -1
  36. package/chronos/duration/create.d.ts +1 -1
  37. package/chronos/{fesm2020 → fesm2022}/ngx-bootstrap-chronos.mjs +4 -0
  38. package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -0
  39. package/chronos/locale/locale.class.d.ts +3 -3
  40. package/chronos/moment/calendar.d.ts +1 -1
  41. package/chronos/package.json +5 -11
  42. package/chronos/parse/regex.d.ts +1 -1
  43. package/chronos/testing/chain.d.ts +3 -3
  44. package/chronos/types.d.ts +4 -4
  45. package/chronos/units/aliases.d.ts +1 -1
  46. package/collapse/collapse.directive.d.ts +1 -1
  47. package/collapse/esm2022/collapse.directive.mjs +168 -0
  48. package/collapse/{esm2020 → esm2022}/collapse.module.mjs +5 -5
  49. package/collapse/{fesm2020 → fesm2022}/ngx-bootstrap-collapse.mjs +26 -26
  50. package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -0
  51. package/collapse/package.json +8 -14
  52. package/component-loader/{esm2020 → esm2022}/component-loader.factory.mjs +4 -4
  53. package/component-loader/{fesm2020 → fesm2022}/ngx-bootstrap-component-loader.mjs +5 -3
  54. package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -0
  55. package/component-loader/listen-options.model.d.ts +1 -1
  56. package/component-loader/package.json +7 -13
  57. package/datepicker/bs-datepicker-inline.component.d.ts +1 -1
  58. package/datepicker/bs-datepicker.component.d.ts +1 -1
  59. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  60. package/datepicker/bs-daterangepicker.component.d.ts +1 -1
  61. package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.component.mjs +4 -4
  62. package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.config.mjs +4 -4
  63. package/datepicker/{esm2020 → esm2022}/bs-datepicker-input.directive.mjs +4 -4
  64. package/datepicker/esm2022/bs-datepicker.component.mjs +303 -0
  65. package/datepicker/{esm2020 → esm2022}/bs-datepicker.config.mjs +4 -4
  66. package/datepicker/{esm2020 → esm2022}/bs-datepicker.module.mjs +32 -32
  67. package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +163 -0
  68. package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-inline.config.mjs +4 -4
  69. package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-input.directive.mjs +4 -4
  70. package/datepicker/esm2022/bs-daterangepicker.component.mjs +296 -0
  71. package/datepicker/{esm2020 → esm2022}/bs-daterangepicker.config.mjs +4 -4
  72. package/datepicker/{esm2020 → esm2022}/bs-locale.service.mjs +4 -4
  73. package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +143 -0
  74. package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.effects.mjs +4 -4
  75. package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.store.mjs +4 -4
  76. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-calendar-layout.component.mjs +6 -6
  77. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-current-date-view.component.mjs +4 -4
  78. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-custom-dates-view.component.mjs +6 -6
  79. package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +192 -0
  80. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-day-decorator.directive.mjs +4 -4
  81. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-inline-container.component.mjs +9 -9
  82. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-navigation-view.component.mjs +6 -6
  83. package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +261 -0
  84. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-daterangepicker-inline-container.component.mjs +9 -9
  85. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-days-calendar-view.component.mjs +6 -6
  86. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-months-calendar-view.component.mjs +6 -6
  87. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-timepicker-view.component.mjs +6 -6
  88. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-years-calendar-view.component.mjs +6 -6
  89. package/datepicker/{fesm2020 → fesm2022}/ngx-bootstrap-datepicker.mjs +226 -226
  90. package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -0
  91. package/datepicker/models/index.d.ts +1 -1
  92. package/datepicker/package.json +13 -19
  93. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +1 -1
  94. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -1
  95. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +1 -1
  96. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
  97. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +1 -1
  98. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
  99. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
  100. package/datepicker/utils/matrix-utils.d.ts +1 -1
  101. package/dropdown/bs-dropdown.directive.d.ts +1 -1
  102. package/dropdown/esm2022/bs-dropdown-container.component.mjs +79 -0
  103. package/dropdown/{esm2020 → esm2022}/bs-dropdown-menu.directive.mjs +4 -4
  104. package/dropdown/{esm2020 → esm2022}/bs-dropdown-toggle.directive.mjs +4 -4
  105. package/dropdown/{esm2020 → esm2022}/bs-dropdown.config.mjs +4 -4
  106. package/dropdown/esm2022/bs-dropdown.directive.mjs +340 -0
  107. package/dropdown/{esm2020 → esm2022}/bs-dropdown.module.mjs +10 -10
  108. package/dropdown/{esm2020 → esm2022}/bs-dropdown.state.mjs +4 -4
  109. package/dropdown/{fesm2020 → fesm2022}/ngx-bootstrap-dropdown.mjs +62 -62
  110. package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -0
  111. package/dropdown/package.json +10 -16
  112. package/fesm2022/ngx-bootstrap.mjs.map +1 -0
  113. package/focus-trap/boolean-property.d.ts +1 -1
  114. package/focus-trap/{esm2020 → esm2022}/focus-trap-manager.mjs +4 -4
  115. package/focus-trap/esm2022/focus-trap.mjs +399 -0
  116. package/focus-trap/{esm2020 → esm2022}/focus-trap.module.mjs +5 -5
  117. package/focus-trap/{esm2020 → esm2022}/interactivity-checker.mjs +4 -4
  118. package/focus-trap/{esm2020 → esm2022}/platform.mjs +4 -4
  119. package/focus-trap/{fesm2020 → fesm2022}/ngx-bootstrap-focus-trap.mjs +43 -39
  120. package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -0
  121. package/focus-trap/focus-trap.d.ts +1 -1
  122. package/focus-trap/package.json +8 -14
  123. package/locale/fesm2022/ngx-bootstrap-locale.mjs.map +1 -0
  124. package/locale/package.json +6 -12
  125. package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -0
  126. package/mini-ngrx/package.json +6 -12
  127. package/mini-ngrx/public_api.d.ts +1 -1
  128. package/modal/{esm2020 → esm2022}/bs-modal-ref.service.mjs +4 -4
  129. package/modal/{esm2020 → esm2022}/bs-modal.service.mjs +4 -4
  130. package/modal/esm2022/modal-backdrop.component.mjs +50 -0
  131. package/modal/{esm2020 → esm2022}/modal-container.component.mjs +6 -6
  132. package/modal/{esm2020 → esm2022}/modal-options.class.mjs +4 -4
  133. package/modal/esm2022/modal.directive.mjs +364 -0
  134. package/modal/{esm2020 → esm2022}/modal.module.mjs +7 -7
  135. package/modal/{fesm2020 → fesm2022}/ngx-bootstrap-modal.mjs +44 -42
  136. package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -0
  137. package/modal/modal.directive.d.ts +1 -1
  138. package/modal/models/index.d.ts +1 -1
  139. package/modal/package.json +8 -14
  140. package/package.json +9 -15
  141. package/pagination/{esm2020 → esm2022}/pager.component.mjs +4 -4
  142. package/pagination/{esm2020 → esm2022}/pagination.component.mjs +4 -4
  143. package/pagination/{esm2020 → esm2022}/pagination.config.mjs +4 -4
  144. package/pagination/{esm2020 → esm2022}/pagination.module.mjs +5 -5
  145. package/pagination/{fesm2020 → fesm2022}/ngx-bootstrap-pagination.mjs +13 -13
  146. package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -0
  147. package/pagination/package.json +8 -14
  148. package/pagination/pager.component.d.ts +1 -1
  149. package/pagination/pagination.component.d.ts +1 -1
  150. package/popover/esm2022/popover-container.component.mjs +46 -0
  151. package/popover/{esm2020 → esm2022}/popover.config.mjs +4 -4
  152. package/popover/esm2022/popover.directive.mjs +241 -0
  153. package/popover/{esm2020 → esm2022}/popover.module.mjs +5 -5
  154. package/popover/{fesm2020 → fesm2022}/ngx-bootstrap-popover.mjs +31 -31
  155. package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -0
  156. package/popover/package.json +9 -15
  157. package/popover/popover-container.component.d.ts +1 -1
  158. package/popover/popover.directive.d.ts +1 -1
  159. package/positioning/{esm2020 → esm2022}/positioning.service.mjs +4 -4
  160. package/positioning/{fesm2020 → fesm2022}/ngx-bootstrap-positioning.mjs +3 -3
  161. package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -0
  162. package/positioning/models/index.d.ts +1 -1
  163. package/positioning/package.json +10 -16
  164. package/progressbar/bar.component.d.ts +1 -1
  165. package/progressbar/{esm2020 → esm2022}/bar.component.mjs +4 -4
  166. package/progressbar/esm2022/progressbar.component.mjs +53 -0
  167. package/progressbar/{esm2020 → esm2022}/progressbar.config.mjs +4 -4
  168. package/progressbar/{esm2020 → esm2022}/progressbar.module.mjs +5 -5
  169. package/progressbar/{fesm2020 → fesm2022}/ngx-bootstrap-progressbar.mjs +24 -24
  170. package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -0
  171. package/progressbar/package.json +7 -13
  172. package/progressbar/progressbar-type.interface.d.ts +1 -1
  173. package/progressbar/progressbar.component.d.ts +1 -1
  174. package/rating/{esm2020 → esm2022}/rating.component.mjs +4 -4
  175. package/rating/{esm2020 → esm2022}/rating.config.mjs +4 -4
  176. package/rating/{esm2020 → esm2022}/rating.module.mjs +5 -5
  177. package/rating/{fesm2015 → fesm2022}/ngx-bootstrap-rating.mjs +10 -10
  178. package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -0
  179. package/rating/package.json +8 -14
  180. package/rating/rating.component.d.ts +1 -1
  181. package/schematics/collection.json +1 -1
  182. package/schematics/package.json +7 -7
  183. package/schematics/utils/current_dependency_versions.json +1 -1
  184. package/schematics/utils/index.d.ts +0 -2
  185. package/schematics/utils/index.js +1 -13
  186. package/schematics/utils/index.js.map +1 -1
  187. package/sortable/{esm2020 → esm2022}/draggable-item.service.mjs +4 -4
  188. package/sortable/esm2022/sortable.component.mjs +266 -0
  189. package/sortable/{esm2020 → esm2022}/sortable.module.mjs +5 -5
  190. package/sortable/{fesm2020 → fesm2022}/ngx-bootstrap-sortable.mjs +28 -28
  191. package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -0
  192. package/sortable/package.json +10 -16
  193. package/sortable/sortable.component.d.ts +1 -1
  194. package/tabs/esm2022/ng-transclude.directive.mjs +28 -0
  195. package/tabs/{esm2020 → esm2022}/tab-heading.directive.mjs +4 -4
  196. package/tabs/esm2022/tab.directive.mjs +115 -0
  197. package/tabs/{esm2020 → esm2022}/tabs.module.mjs +11 -11
  198. package/tabs/esm2022/tabset.component.mjs +216 -0
  199. package/tabs/{esm2020 → esm2022}/tabset.config.mjs +4 -4
  200. package/tabs/{fesm2015 → fesm2022}/ngx-bootstrap-tabs.mjs +63 -63
  201. package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -0
  202. package/tabs/ng-transclude.directive.d.ts +1 -1
  203. package/tabs/package.json +7 -13
  204. package/tabs/tab.directive.d.ts +1 -1
  205. package/tabs/tabset.component.d.ts +1 -1
  206. package/timepicker/esm2022/reducer/timepicker.actions.mjs +53 -0
  207. package/timepicker/{esm2020 → esm2022}/reducer/timepicker.store.mjs +4 -4
  208. package/timepicker/{esm2020 → esm2022}/timepicker.component.mjs +4 -4
  209. package/timepicker/{esm2020 → esm2022}/timepicker.config.mjs +4 -4
  210. package/timepicker/{esm2020 → esm2022}/timepicker.module.mjs +5 -5
  211. package/timepicker/{fesm2020 → fesm2022}/ngx-bootstrap-timepicker.mjs +22 -22
  212. package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -0
  213. package/timepicker/package.json +10 -16
  214. package/timepicker/reducer/timepicker.reducer.d.ts +1 -3
  215. package/timepicker/timepicker.component.d.ts +1 -1
  216. package/timepicker/timepicker.models.d.ts +1 -1
  217. package/tooltip/{esm2020 → esm2022}/tooltip-container.component.mjs +9 -9
  218. package/tooltip/{esm2020 → esm2022}/tooltip.config.mjs +4 -4
  219. package/tooltip/esm2022/tooltip.directive.mjs +342 -0
  220. package/tooltip/{esm2020 → esm2022}/tooltip.module.mjs +5 -5
  221. package/tooltip/{fesm2020 → fesm2022}/ngx-bootstrap-tooltip.mjs +61 -61
  222. package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -0
  223. package/tooltip/package.json +10 -16
  224. package/tooltip/tooltip.directive.d.ts +1 -1
  225. package/typeahead/esm2022/typeahead-container.component.mjs +311 -0
  226. package/typeahead/{esm2020 → esm2022}/typeahead.config.mjs +4 -4
  227. package/typeahead/{esm2020 → esm2022}/typeahead.directive.mjs +4 -4
  228. package/typeahead/{esm2020 → esm2022}/typeahead.module.mjs +5 -5
  229. package/typeahead/{fesm2020 → fesm2022}/ngx-bootstrap-typeahead.mjs +20 -20
  230. package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -0
  231. package/typeahead/package.json +12 -18
  232. package/typeahead/typeahead.directive.d.ts +3 -3
  233. package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -0
  234. package/utils/package.json +6 -12
  235. package/utils/theme-provider.d.ts +1 -1
  236. package/utils/triggers.d.ts +1 -1
  237. package/accordion/esm2020/accordion-group.component.mjs +0 -84
  238. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +0 -182
  239. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +0 -1
  240. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +0 -1
  241. package/alert/esm2020/alert.component.mjs +0 -77
  242. package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +0 -1
  243. package/alert/fesm2020/ngx-bootstrap-alert.mjs +0 -119
  244. package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +0 -1
  245. package/buttons/esm2020/button-radio.directive.mjs +0 -188
  246. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +0 -448
  247. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +0 -1
  248. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +0 -1
  249. package/carousel/esm2020/carousel.component.mjs +0 -713
  250. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +0 -851
  251. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +0 -1
  252. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +0 -1
  253. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs +0 -7384
  254. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +0 -1
  255. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +0 -1
  256. package/collapse/esm2020/collapse.directive.mjs +0 -168
  257. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +0 -200
  258. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +0 -1
  259. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +0 -1
  260. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +0 -345
  261. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +0 -1
  262. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +0 -1
  263. package/datepicker/esm2020/bs-datepicker.component.mjs +0 -303
  264. package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +0 -163
  265. package/datepicker/esm2020/bs-daterangepicker.component.mjs +0 -296
  266. package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +0 -143
  267. package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +0 -192
  268. package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +0 -261
  269. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +0 -3971
  270. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +0 -1
  271. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +0 -1
  272. package/dropdown/esm2020/bs-dropdown-container.component.mjs +0 -79
  273. package/dropdown/esm2020/bs-dropdown.directive.mjs +0 -340
  274. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +0 -603
  275. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +0 -1
  276. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +0 -1
  277. package/fesm2015/ngx-bootstrap.mjs.map +0 -1
  278. package/fesm2020/ngx-bootstrap.mjs +0 -6
  279. package/fesm2020/ngx-bootstrap.mjs.map +0 -1
  280. package/focus-trap/esm2020/focus-trap.mjs +0 -399
  281. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +0 -800
  282. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +0 -1
  283. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +0 -1
  284. package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +0 -1
  285. package/locale/fesm2020/ngx-bootstrap-locale.mjs +0 -6
  286. package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +0 -1
  287. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs +0 -64
  288. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
  289. package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
  290. package/modal/esm2020/modal-backdrop.component.mjs +0 -50
  291. package/modal/esm2020/modal.directive.mjs +0 -364
  292. package/modal/fesm2015/ngx-bootstrap-modal.mjs +0 -888
  293. package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +0 -1
  294. package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +0 -1
  295. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +0 -565
  296. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +0 -1
  297. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +0 -1
  298. package/popover/esm2020/popover-container.component.mjs +0 -46
  299. package/popover/esm2020/popover.directive.mjs +0 -241
  300. package/popover/fesm2015/ngx-bootstrap-popover.mjs +0 -339
  301. package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +0 -1
  302. package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +0 -1
  303. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +0 -1018
  304. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +0 -1
  305. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +0 -1
  306. package/progressbar/esm2020/progressbar.component.mjs +0 -53
  307. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +0 -163
  308. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +0 -1
  309. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +0 -1
  310. package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +0 -1
  311. package/rating/fesm2020/ngx-bootstrap-rating.mjs +0 -163
  312. package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +0 -1
  313. package/sortable/esm2020/sortable.component.mjs +0 -266
  314. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +0 -324
  315. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +0 -1
  316. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +0 -1
  317. package/tabs/esm2020/ng-transclude.directive.mjs +0 -28
  318. package/tabs/esm2020/tab.directive.mjs +0 -115
  319. package/tabs/esm2020/tabset.component.mjs +0 -216
  320. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +0 -1
  321. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +0 -427
  322. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +0 -1
  323. package/timepicker/esm2020/reducer/timepicker.actions.mjs +0 -53
  324. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +0 -830
  325. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +0 -1
  326. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +0 -1
  327. package/tooltip/esm2020/tooltip.directive.mjs +0 -342
  328. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +0 -431
  329. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +0 -1
  330. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +0 -1
  331. package/typeahead/esm2020/typeahead-container.component.mjs +0 -311
  332. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +0 -1890
  333. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +0 -1
  334. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +0 -1
  335. package/utils/fesm2015/ngx-bootstrap-utils.mjs +0 -523
  336. package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +0 -1
  337. package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +0 -1
  338. /package/accordion/{esm2020 → esm2022}/index.mjs +0 -0
  339. /package/accordion/{esm2020 → esm2022}/ngx-bootstrap-accordion.mjs +0 -0
  340. /package/accordion/{esm2020 → esm2022}/public_api.mjs +0 -0
  341. /package/alert/{esm2020 → esm2022}/index.mjs +0 -0
  342. /package/alert/{esm2020 → esm2022}/ngx-bootstrap-alert.mjs +0 -0
  343. /package/alert/{esm2020 → esm2022}/public_api.mjs +0 -0
  344. /package/buttons/{esm2020 → esm2022}/index.mjs +0 -0
  345. /package/buttons/{esm2020 → esm2022}/ngx-bootstrap-buttons.mjs +0 -0
  346. /package/buttons/{esm2020 → esm2022}/public_api.mjs +0 -0
  347. /package/carousel/{esm2020 → esm2022}/index.mjs +0 -0
  348. /package/carousel/{esm2020 → esm2022}/models/index.mjs +0 -0
  349. /package/carousel/{esm2020 → esm2022}/ngx-bootstrap-carousel.mjs +0 -0
  350. /package/carousel/{esm2020 → esm2022}/public_api.mjs +0 -0
  351. /package/carousel/{esm2020 → esm2022}/utils.mjs +0 -0
  352. /package/chronos/{esm2020 → esm2022}/create/check-overflow.mjs +0 -0
  353. /package/chronos/{esm2020 → esm2022}/create/clone.mjs +0 -0
  354. /package/chronos/{esm2020 → esm2022}/create/date-from-array.mjs +0 -0
  355. /package/chronos/{esm2020 → esm2022}/create/from-anything.mjs +0 -0
  356. /package/chronos/{esm2020 → esm2022}/create/from-array.mjs +0 -0
  357. /package/chronos/{esm2020 → esm2022}/create/from-object.mjs +0 -0
  358. /package/chronos/{esm2020 → esm2022}/create/from-string-and-array.mjs +0 -0
  359. /package/chronos/{esm2020 → esm2022}/create/from-string-and-format.mjs +0 -0
  360. /package/chronos/{esm2020 → esm2022}/create/from-string.mjs +0 -0
  361. /package/chronos/{esm2020 → esm2022}/create/local.mjs +0 -0
  362. /package/chronos/{esm2020 → esm2022}/create/parsing-flags.mjs +0 -0
  363. /package/chronos/{esm2020 → esm2022}/create/parsing.types.mjs +0 -0
  364. /package/chronos/{esm2020 → esm2022}/create/valid.mjs +0 -0
  365. /package/chronos/{esm2020 → esm2022}/duration/bubble.mjs +0 -0
  366. /package/chronos/{esm2020 → esm2022}/duration/constructor.mjs +0 -0
  367. /package/chronos/{esm2020 → esm2022}/duration/create.mjs +0 -0
  368. /package/chronos/{esm2020 → esm2022}/duration/humanize.mjs +0 -0
  369. /package/chronos/{esm2020 → esm2022}/duration/valid.mjs +0 -0
  370. /package/chronos/{esm2020 → esm2022}/format/format.mjs +0 -0
  371. /package/chronos/{esm2020 → esm2022}/format.mjs +0 -0
  372. /package/chronos/{esm2020 → esm2022}/i18n/ar.mjs +0 -0
  373. /package/chronos/{esm2020 → esm2022}/i18n/bg.mjs +0 -0
  374. /package/chronos/{esm2020 → esm2022}/i18n/ca.mjs +0 -0
  375. /package/chronos/{esm2020 → esm2022}/i18n/cs.mjs +0 -0
  376. /package/chronos/{esm2020 → esm2022}/i18n/da.mjs +0 -0
  377. /package/chronos/{esm2020 → esm2022}/i18n/de.mjs +0 -0
  378. /package/chronos/{esm2020 → esm2022}/i18n/en-gb.mjs +0 -0
  379. /package/chronos/{esm2020 → esm2022}/i18n/es-do.mjs +0 -0
  380. /package/chronos/{esm2020 → esm2022}/i18n/es-pr.mjs +0 -0
  381. /package/chronos/{esm2020 → esm2022}/i18n/es-us.mjs +0 -0
  382. /package/chronos/{esm2020 → esm2022}/i18n/es.mjs +0 -0
  383. /package/chronos/{esm2020 → esm2022}/i18n/et.mjs +0 -0
  384. /package/chronos/{esm2020 → esm2022}/i18n/fi.mjs +0 -0
  385. /package/chronos/{esm2020 → esm2022}/i18n/fr.mjs +0 -0
  386. /package/chronos/{esm2020 → esm2022}/i18n/gl.mjs +0 -0
  387. /package/chronos/{esm2020 → esm2022}/i18n/he.mjs +0 -0
  388. /package/chronos/{esm2020 → esm2022}/i18n/hi.mjs +0 -0
  389. /package/chronos/{esm2020 → esm2022}/i18n/hr.mjs +0 -0
  390. /package/chronos/{esm2020 → esm2022}/i18n/hu.mjs +0 -0
  391. /package/chronos/{esm2020 → esm2022}/i18n/id.mjs +0 -0
  392. /package/chronos/{esm2020 → esm2022}/i18n/it.mjs +0 -0
  393. /package/chronos/{esm2020 → esm2022}/i18n/ja.mjs +0 -0
  394. /package/chronos/{esm2020 → esm2022}/i18n/ka.mjs +0 -0
  395. /package/chronos/{esm2020 → esm2022}/i18n/kk.mjs +0 -0
  396. /package/chronos/{esm2020 → esm2022}/i18n/ko.mjs +0 -0
  397. /package/chronos/{esm2020 → esm2022}/i18n/lt.mjs +0 -0
  398. /package/chronos/{esm2020 → esm2022}/i18n/lv.mjs +0 -0
  399. /package/chronos/{esm2020 → esm2022}/i18n/mn.mjs +0 -0
  400. /package/chronos/{esm2020 → esm2022}/i18n/nb.mjs +0 -0
  401. /package/chronos/{esm2020 → esm2022}/i18n/nl-be.mjs +0 -0
  402. /package/chronos/{esm2020 → esm2022}/i18n/nl.mjs +0 -0
  403. /package/chronos/{esm2020 → esm2022}/i18n/pl.mjs +0 -0
  404. /package/chronos/{esm2020 → esm2022}/i18n/pt-br.mjs +0 -0
  405. /package/chronos/{esm2020 → esm2022}/i18n/ro.mjs +0 -0
  406. /package/chronos/{esm2020 → esm2022}/i18n/ru.mjs +0 -0
  407. /package/chronos/{esm2020 → esm2022}/i18n/sk.mjs +0 -0
  408. /package/chronos/{esm2020 → esm2022}/i18n/sl.mjs +0 -0
  409. /package/chronos/{esm2020 → esm2022}/i18n/sq.mjs +0 -0
  410. /package/chronos/{esm2020 → esm2022}/i18n/sv.mjs +0 -0
  411. /package/chronos/{esm2020 → esm2022}/i18n/th-be.mjs +0 -0
  412. /package/chronos/{esm2020 → esm2022}/i18n/th.mjs +0 -0
  413. /package/chronos/{esm2020 → esm2022}/i18n/tr.mjs +0 -0
  414. /package/chronos/{esm2020 → esm2022}/i18n/uk.mjs +0 -0
  415. /package/chronos/{esm2020 → esm2022}/i18n/vi.mjs +0 -0
  416. /package/chronos/{esm2020 → esm2022}/i18n/zh-cn.mjs +0 -0
  417. /package/chronos/{esm2020 → esm2022}/index.mjs +0 -0
  418. /package/chronos/{esm2020 → esm2022}/locale/calendar.mjs +0 -0
  419. /package/chronos/{esm2020 → esm2022}/locale/locale.class.mjs +0 -0
  420. /package/chronos/{esm2020 → esm2022}/locale/locale.defaults.mjs +0 -0
  421. /package/chronos/{esm2020 → esm2022}/locale/locales.mjs +0 -0
  422. /package/chronos/{esm2020 → esm2022}/moment/add-subtract.mjs +0 -0
  423. /package/chronos/{esm2020 → esm2022}/moment/calendar.mjs +0 -0
  424. /package/chronos/{esm2020 → esm2022}/moment/diff.mjs +0 -0
  425. /package/chronos/{esm2020 → esm2022}/moment/min-max.mjs +0 -0
  426. /package/chronos/{esm2020 → esm2022}/ngx-bootstrap-chronos.mjs +0 -0
  427. /package/chronos/{esm2020 → esm2022}/parse/regex.mjs +0 -0
  428. /package/chronos/{esm2020 → esm2022}/parse/token.mjs +0 -0
  429. /package/chronos/{esm2020 → esm2022}/public_api.mjs +0 -0
  430. /package/chronos/{esm2020 → esm2022}/testing/chain.mjs +0 -0
  431. /package/chronos/{esm2020 → esm2022}/types.mjs +0 -0
  432. /package/chronos/{esm2020 → esm2022}/units/aliases.mjs +0 -0
  433. /package/chronos/{esm2020 → esm2022}/units/constants.mjs +0 -0
  434. /package/chronos/{esm2020 → esm2022}/units/day-of-month.mjs +0 -0
  435. /package/chronos/{esm2020 → esm2022}/units/day-of-week.mjs +0 -0
  436. /package/chronos/{esm2020 → esm2022}/units/day-of-year.mjs +0 -0
  437. /package/chronos/{esm2020 → esm2022}/units/hour.mjs +0 -0
  438. /package/chronos/{esm2020 → esm2022}/units/index.mjs +0 -0
  439. /package/chronos/{esm2020 → esm2022}/units/millisecond.mjs +0 -0
  440. /package/chronos/{esm2020 → esm2022}/units/minute.mjs +0 -0
  441. /package/chronos/{esm2020 → esm2022}/units/month.mjs +0 -0
  442. /package/chronos/{esm2020 → esm2022}/units/offset.mjs +0 -0
  443. /package/chronos/{esm2020 → esm2022}/units/priorities.mjs +0 -0
  444. /package/chronos/{esm2020 → esm2022}/units/quarter.mjs +0 -0
  445. /package/chronos/{esm2020 → esm2022}/units/second.mjs +0 -0
  446. /package/chronos/{esm2020 → esm2022}/units/timestamp.mjs +0 -0
  447. /package/chronos/{esm2020 → esm2022}/units/timezone.mjs +0 -0
  448. /package/chronos/{esm2020 → esm2022}/units/week-calendar-utils.mjs +0 -0
  449. /package/chronos/{esm2020 → esm2022}/units/week-year.mjs +0 -0
  450. /package/chronos/{esm2020 → esm2022}/units/week.mjs +0 -0
  451. /package/chronos/{esm2020 → esm2022}/units/year.mjs +0 -0
  452. /package/chronos/{esm2020 → esm2022}/utils/abs-ceil.mjs +0 -0
  453. /package/chronos/{esm2020 → esm2022}/utils/abs-round.mjs +0 -0
  454. /package/chronos/{esm2020 → esm2022}/utils/compare-arrays.mjs +0 -0
  455. /package/chronos/{esm2020 → esm2022}/utils/date-compare.mjs +0 -0
  456. /package/chronos/{esm2020 → esm2022}/utils/date-getters.mjs +0 -0
  457. /package/chronos/{esm2020 → esm2022}/utils/date-setters.mjs +0 -0
  458. /package/chronos/{esm2020 → esm2022}/utils/defaults.mjs +0 -0
  459. /package/chronos/{esm2020 → esm2022}/utils/start-end-of.mjs +0 -0
  460. /package/chronos/{esm2020 → esm2022}/utils/type-checks.mjs +0 -0
  461. /package/chronos/{esm2020 → esm2022}/utils/zero-fill.mjs +0 -0
  462. /package/chronos/{esm2020 → esm2022}/utils.mjs +0 -0
  463. /package/collapse/{esm2020 → esm2022}/collapse-animations.mjs +0 -0
  464. /package/collapse/{esm2020 → esm2022}/index.mjs +0 -0
  465. /package/collapse/{esm2020 → esm2022}/ngx-bootstrap-collapse.mjs +0 -0
  466. /package/collapse/{esm2020 → esm2022}/public_api.mjs +0 -0
  467. /package/component-loader/{esm2020 → esm2022}/bs-component-ref.class.mjs +0 -0
  468. /package/component-loader/{esm2020 → esm2022}/component-loader.class.mjs +0 -0
  469. /package/component-loader/{esm2020 → esm2022}/content-ref.class.mjs +0 -0
  470. /package/component-loader/{esm2020 → esm2022}/index.mjs +0 -0
  471. /package/component-loader/{esm2020 → esm2022}/listen-options.model.mjs +0 -0
  472. /package/component-loader/{esm2020 → esm2022}/ngx-bootstrap-component-loader.mjs +0 -0
  473. /package/component-loader/{esm2020 → esm2022}/public_api.mjs +0 -0
  474. /package/datepicker/{esm2020 → esm2022}/base/bs-datepicker-container.mjs +0 -0
  475. /package/datepicker/{esm2020 → esm2022}/datepicker-animations.mjs +0 -0
  476. /package/datepicker/{esm2020 → esm2022}/engine/calc-days-calendar.mjs +0 -0
  477. /package/datepicker/{esm2020 → esm2022}/engine/flag-days-calendar.mjs +0 -0
  478. /package/datepicker/{esm2020 → esm2022}/engine/flag-months-calendar.mjs +0 -0
  479. /package/datepicker/{esm2020 → esm2022}/engine/flag-years-calendar.mjs +0 -0
  480. /package/datepicker/{esm2020 → esm2022}/engine/format-days-calendar.mjs +0 -0
  481. /package/datepicker/{esm2020 → esm2022}/engine/format-months-calendar.mjs +0 -0
  482. /package/datepicker/{esm2020 → esm2022}/engine/format-years-calendar.mjs +0 -0
  483. /package/datepicker/{esm2020 → esm2022}/engine/view-mode.mjs +0 -0
  484. /package/datepicker/{esm2020 → esm2022}/index.mjs +0 -0
  485. /package/datepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
  486. /package/datepicker/{esm2020 → esm2022}/ngx-bootstrap-datepicker.mjs +0 -0
  487. /package/datepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
  488. /package/datepicker/{esm2020 → esm2022}/reducer/_defaults.mjs +0 -0
  489. /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.reducer.mjs +0 -0
  490. /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.state.mjs +0 -0
  491. /package/datepicker/{esm2020 → esm2022}/utils/bs-calendar-utils.mjs +0 -0
  492. /package/datepicker/{esm2020 → esm2022}/utils/copy-time-utils.mjs +0 -0
  493. /package/datepicker/{esm2020 → esm2022}/utils/matrix-utils.mjs +0 -0
  494. /package/dropdown/{esm2020 → esm2022}/dropdown-animations.mjs +0 -0
  495. /package/dropdown/{esm2020 → esm2022}/index.mjs +0 -0
  496. /package/dropdown/{esm2020 → esm2022}/ngx-bootstrap-dropdown.mjs +0 -0
  497. /package/dropdown/{esm2020 → esm2022}/public_api.mjs +0 -0
  498. /package/{esm2020 → esm2022}/index.mjs +0 -0
  499. /package/{esm2020 → esm2022}/ngx-bootstrap.mjs +0 -0
  500. /package/{fesm2015 → fesm2022}/ngx-bootstrap.mjs +0 -0
  501. /package/focus-trap/{esm2020 → esm2022}/boolean-property.mjs +0 -0
  502. /package/focus-trap/{esm2020 → esm2022}/index.mjs +0 -0
  503. /package/focus-trap/{esm2020 → esm2022}/ngx-bootstrap-focus-trap.mjs +0 -0
  504. /package/focus-trap/{esm2020 → esm2022}/public_api.mjs +0 -0
  505. /package/locale/{esm2020 → esm2022}/index.mjs +0 -0
  506. /package/locale/{esm2020 → esm2022}/ngx-bootstrap-locale.mjs +0 -0
  507. /package/locale/{esm2020 → esm2022}/public_api.mjs +0 -0
  508. /package/locale/{fesm2015 → fesm2022}/ngx-bootstrap-locale.mjs +0 -0
  509. /package/mini-ngrx/{esm2020 → esm2022}/index.mjs +0 -0
  510. /package/mini-ngrx/{esm2020 → esm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
  511. /package/mini-ngrx/{esm2020 → esm2022}/public_api.mjs +0 -0
  512. /package/mini-ngrx/{esm2020 → esm2022}/state.class.mjs +0 -0
  513. /package/mini-ngrx/{esm2020 → esm2022}/store.class.mjs +0 -0
  514. /package/mini-ngrx/{fesm2020 → fesm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
  515. /package/modal/{esm2020 → esm2022}/index.mjs +0 -0
  516. /package/modal/{esm2020 → esm2022}/modal-backdrop.options.mjs +0 -0
  517. /package/modal/{esm2020 → esm2022}/models/index.mjs +0 -0
  518. /package/modal/{esm2020 → esm2022}/ngx-bootstrap-modal.mjs +0 -0
  519. /package/modal/{esm2020 → esm2022}/public_api.mjs +0 -0
  520. /package/pagination/{esm2020 → esm2022}/index.mjs +0 -0
  521. /package/pagination/{esm2020 → esm2022}/models/index.mjs +0 -0
  522. /package/pagination/{esm2020 → esm2022}/ngx-bootstrap-pagination.mjs +0 -0
  523. /package/pagination/{esm2020 → esm2022}/public_api.mjs +0 -0
  524. /package/popover/{esm2020 → esm2022}/index.mjs +0 -0
  525. /package/popover/{esm2020 → esm2022}/ngx-bootstrap-popover.mjs +0 -0
  526. /package/popover/{esm2020 → esm2022}/public_api.mjs +0 -0
  527. /package/positioning/{esm2020 → esm2022}/index.mjs +0 -0
  528. /package/positioning/{esm2020 → esm2022}/models/index.mjs +0 -0
  529. /package/positioning/{esm2020 → esm2022}/modifiers/arrow.mjs +0 -0
  530. /package/positioning/{esm2020 → esm2022}/modifiers/flip.mjs +0 -0
  531. /package/positioning/{esm2020 → esm2022}/modifiers/index.mjs +0 -0
  532. /package/positioning/{esm2020 → esm2022}/modifiers/initData.mjs +0 -0
  533. /package/positioning/{esm2020 → esm2022}/modifiers/preventOverflow.mjs +0 -0
  534. /package/positioning/{esm2020 → esm2022}/modifiers/shift.mjs +0 -0
  535. /package/positioning/{esm2020 → esm2022}/ng-positioning.mjs +0 -0
  536. /package/positioning/{esm2020 → esm2022}/ngx-bootstrap-positioning.mjs +0 -0
  537. /package/positioning/{esm2020 → esm2022}/public_api.mjs +0 -0
  538. /package/positioning/{esm2020 → esm2022}/utils/checkMargin.mjs +0 -0
  539. /package/positioning/{esm2020 → esm2022}/utils/computeAutoPlacement.mjs +0 -0
  540. /package/positioning/{esm2020 → esm2022}/utils/findCommonOffsetParent.mjs +0 -0
  541. /package/positioning/{esm2020 → esm2022}/utils/getBordersSize.mjs +0 -0
  542. /package/positioning/{esm2020 → esm2022}/utils/getBoundaries.mjs +0 -0
  543. /package/positioning/{esm2020 → esm2022}/utils/getBoundingClientRect.mjs +0 -0
  544. /package/positioning/{esm2020 → esm2022}/utils/getClientRect.mjs +0 -0
  545. /package/positioning/{esm2020 → esm2022}/utils/getFixedPositionOffsetParent.mjs +0 -0
  546. /package/positioning/{esm2020 → esm2022}/utils/getOffsetParent.mjs +0 -0
  547. /package/positioning/{esm2020 → esm2022}/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -0
  548. /package/positioning/{esm2020 → esm2022}/utils/getOffsets.mjs +0 -0
  549. /package/positioning/{esm2020 → esm2022}/utils/getOppositePlacement.mjs +0 -0
  550. /package/positioning/{esm2020 → esm2022}/utils/getOppositeVariation.mjs +0 -0
  551. /package/positioning/{esm2020 → esm2022}/utils/getOuterSizes.mjs +0 -0
  552. /package/positioning/{esm2020 → esm2022}/utils/getParentNode.mjs +0 -0
  553. /package/positioning/{esm2020 → esm2022}/utils/getReferenceOffsets.mjs +0 -0
  554. /package/positioning/{esm2020 → esm2022}/utils/getRoot.mjs +0 -0
  555. /package/positioning/{esm2020 → esm2022}/utils/getScroll.mjs +0 -0
  556. /package/positioning/{esm2020 → esm2022}/utils/getScrollParent.mjs +0 -0
  557. /package/positioning/{esm2020 → esm2022}/utils/getStyleComputedProperty.mjs +0 -0
  558. /package/positioning/{esm2020 → esm2022}/utils/getTargetOffsets.mjs +0 -0
  559. /package/positioning/{esm2020 → esm2022}/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -0
  560. /package/positioning/{esm2020 → esm2022}/utils/getWindowSizes.mjs +0 -0
  561. /package/positioning/{esm2020 → esm2022}/utils/includeScroll.mjs +0 -0
  562. /package/positioning/{esm2020 → esm2022}/utils/index.mjs +0 -0
  563. /package/positioning/{esm2020 → esm2022}/utils/isFixed.mjs +0 -0
  564. /package/positioning/{esm2020 → esm2022}/utils/isModifierEnabled.mjs +0 -0
  565. /package/positioning/{esm2020 → esm2022}/utils/isNumeric.mjs +0 -0
  566. /package/positioning/{esm2020 → esm2022}/utils/isOffsetContainer.mjs +0 -0
  567. /package/positioning/{esm2020 → esm2022}/utils/setStyles.mjs +0 -0
  568. /package/positioning/{esm2020 → esm2022}/utils/updateContainerClass.mjs +0 -0
  569. /package/progressbar/{esm2020 → esm2022}/index.mjs +0 -0
  570. /package/progressbar/{esm2020 → esm2022}/ngx-bootstrap-progressbar.mjs +0 -0
  571. /package/progressbar/{esm2020 → esm2022}/progressbar-type.interface.mjs +0 -0
  572. /package/progressbar/{esm2020 → esm2022}/public_api.mjs +0 -0
  573. /package/rating/{esm2020 → esm2022}/index.mjs +0 -0
  574. /package/rating/{esm2020 → esm2022}/models/index.mjs +0 -0
  575. /package/rating/{esm2020 → esm2022}/ngx-bootstrap-rating.mjs +0 -0
  576. /package/rating/{esm2020 → esm2022}/public_api.mjs +0 -0
  577. /package/sortable/{esm2020 → esm2022}/draggable-item.mjs +0 -0
  578. /package/sortable/{esm2020 → esm2022}/index.mjs +0 -0
  579. /package/sortable/{esm2020 → esm2022}/ngx-bootstrap-sortable.mjs +0 -0
  580. /package/sortable/{esm2020 → esm2022}/public_api.mjs +0 -0
  581. /package/tabs/{esm2020 → esm2022}/index.mjs +0 -0
  582. /package/tabs/{esm2020 → esm2022}/ngx-bootstrap-tabs.mjs +0 -0
  583. /package/tabs/{esm2020 → esm2022}/public_api.mjs +0 -0
  584. /package/timepicker/{esm2020 → esm2022}/index.mjs +0 -0
  585. /package/timepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
  586. /package/timepicker/{esm2020 → esm2022}/ngx-bootstrap-timepicker.mjs +0 -0
  587. /package/timepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
  588. /package/timepicker/{esm2020 → esm2022}/reducer/timepicker.reducer.mjs +0 -0
  589. /package/timepicker/{esm2020 → esm2022}/timepicker-controls.util.mjs +0 -0
  590. /package/timepicker/{esm2020 → esm2022}/timepicker.models.mjs +0 -0
  591. /package/timepicker/{esm2020 → esm2022}/timepicker.utils.mjs +0 -0
  592. /package/tooltip/{esm2020 → esm2022}/index.mjs +0 -0
  593. /package/tooltip/{esm2020 → esm2022}/ngx-bootstrap-tooltip.mjs +0 -0
  594. /package/tooltip/{esm2020 → esm2022}/public_api.mjs +0 -0
  595. /package/typeahead/{esm2020 → esm2022}/index.mjs +0 -0
  596. /package/typeahead/{esm2020 → esm2022}/latin-map.mjs +0 -0
  597. /package/typeahead/{esm2020 → esm2022}/models/index.mjs +0 -0
  598. /package/typeahead/{esm2020 → esm2022}/ngx-bootstrap-typeahead.mjs +0 -0
  599. /package/typeahead/{esm2020 → esm2022}/public_api.mjs +0 -0
  600. /package/typeahead/{esm2020 → esm2022}/typeahead-animations.mjs +0 -0
  601. /package/typeahead/{esm2020 → esm2022}/typeahead-match.class.mjs +0 -0
  602. /package/typeahead/{esm2020 → esm2022}/typeahead-options.class.mjs +0 -0
  603. /package/typeahead/{esm2020 → esm2022}/typeahead-order.class.mjs +0 -0
  604. /package/typeahead/{esm2020 → esm2022}/typeahead-utils.mjs +0 -0
  605. /package/utils/{esm2020 → esm2022}/decorators.mjs +0 -0
  606. /package/utils/{esm2020 → esm2022}/facade/browser.mjs +0 -0
  607. /package/utils/{esm2020 → esm2022}/index.mjs +0 -0
  608. /package/utils/{esm2020 → esm2022}/linked-list.class.mjs +0 -0
  609. /package/utils/{esm2020 → esm2022}/ngx-bootstrap-utils.mjs +0 -0
  610. /package/utils/{esm2020 → esm2022}/public_api.mjs +0 -0
  611. /package/utils/{esm2020 → esm2022}/theme-provider.mjs +0 -0
  612. /package/utils/{esm2020 → esm2022}/trigger.class.mjs +0 -0
  613. /package/utils/{esm2020 → esm2022}/triggers.mjs +0 -0
  614. /package/utils/{esm2020 → esm2022}/utils.class.mjs +0 -0
  615. /package/utils/{esm2020 → esm2022}/warn-once.mjs +0 -0
  616. /package/utils/{fesm2020 → fesm2022}/ngx-bootstrap-utils.mjs +0 -0
@@ -1,115 +0,0 @@
1
- import { Directive, EventEmitter, HostBinding, Input, Output, ElementRef, Renderer2 } from '@angular/core';
2
- import { TabsetComponent } from './tabset.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./tabset.component";
5
- export class TabDirective {
6
- constructor(tabset, elementRef, renderer) {
7
- this.elementRef = elementRef;
8
- this.renderer = renderer;
9
- /** if true tab can not be activated */
10
- this.disabled = false;
11
- /** if true tab can be removable, additional button will appear */
12
- this.removable = false;
13
- /** fired when tab became active, $event:Tab equals to selected instance of Tab component */
14
- this.selectTab = new EventEmitter();
15
- /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */
16
- this.deselect = new EventEmitter();
17
- /** fired before tab will be removed, $event:Tab equals to instance of removed tab */
18
- this.removed = new EventEmitter();
19
- this.addClass = true;
20
- this.role = 'tabpanel';
21
- this._active = false;
22
- this._customClass = '';
23
- this.tabset = tabset;
24
- this.tabset.addTab(this);
25
- }
26
- /** if set, will be added to the tab's class attribute. Multiple classes are supported. */
27
- get customClass() {
28
- return this._customClass;
29
- }
30
- set customClass(customClass) {
31
- if (this.customClass) {
32
- this.customClass.split(' ').forEach((cssClass) => {
33
- this.renderer.removeClass(this.elementRef.nativeElement, cssClass);
34
- });
35
- }
36
- this._customClass = customClass ? customClass.trim() : '';
37
- if (this.customClass) {
38
- this.customClass.split(' ').forEach((cssClass) => {
39
- this.renderer.addClass(this.elementRef.nativeElement, cssClass);
40
- });
41
- }
42
- }
43
- /** tab active state toggle */
44
- get active() {
45
- return this._active;
46
- }
47
- set active(active) {
48
- if (this._active === active) {
49
- return;
50
- }
51
- if ((this.disabled && active) || !active) {
52
- if (this._active && !active) {
53
- this.deselect.emit(this);
54
- this._active = active;
55
- }
56
- return;
57
- }
58
- this._active = active;
59
- this.selectTab.emit(this);
60
- this.tabset.tabs.forEach((tab) => {
61
- if (tab !== this) {
62
- tab.active = false;
63
- }
64
- });
65
- }
66
- get ariaLabelledby() {
67
- return this.id ? `${this.id}-link` : '';
68
- }
69
- ngOnInit() {
70
- this.removable = !!this.removable;
71
- }
72
- ngOnDestroy() {
73
- this.tabset.removeTab(this, { reselect: false, emit: false });
74
- }
75
- }
76
- TabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TabDirective, deps: [{ token: i1.TabsetComponent }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
77
- TabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: TabDirective, selector: "tab, [tab]", inputs: { heading: "heading", id: "id", disabled: "disabled", removable: "removable", customClass: "customClass", active: "active" }, outputs: { selectTab: "selectTab", deselect: "deselect", removed: "removed" }, host: { properties: { "attr.id": "this.id", "class.active": "this.active", "class.tab-pane": "this.addClass", "attr.role": "this.role", "attr.aria-labelledby": "this.ariaLabelledby" } }, exportAs: ["tab"], ngImport: i0 });
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TabDirective, decorators: [{
79
- type: Directive,
80
- args: [{ selector: 'tab, [tab]', exportAs: 'tab' }]
81
- }], ctorParameters: function () { return [{ type: i1.TabsetComponent }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { heading: [{
82
- type: Input
83
- }], id: [{
84
- type: HostBinding,
85
- args: ['attr.id']
86
- }, {
87
- type: Input
88
- }], disabled: [{
89
- type: Input
90
- }], removable: [{
91
- type: Input
92
- }], customClass: [{
93
- type: Input
94
- }], active: [{
95
- type: HostBinding,
96
- args: ['class.active']
97
- }, {
98
- type: Input
99
- }], selectTab: [{
100
- type: Output
101
- }], deselect: [{
102
- type: Output
103
- }], removed: [{
104
- type: Output
105
- }], addClass: [{
106
- type: HostBinding,
107
- args: ['class.tab-pane']
108
- }], role: [{
109
- type: HostBinding,
110
- args: ['attr.role']
111
- }], ariaLabelledby: [{
112
- type: HostBinding,
113
- args: ['attr.aria-labelledby']
114
- }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBSU4sVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUdyRCxNQUFNLE9BQU8sWUFBWTtJQWdGdkIsWUFDRSxNQUF1QixFQUNoQixVQUFzQixFQUN0QixRQUFtQjtRQURuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7UUE3RTVCLHVDQUF1QztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGtFQUFrRTtRQUN6RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBb0QzQiw0RkFBNEY7UUFDbEYsY0FBUyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JFLGdHQUFnRztRQUN0RixhQUFRLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEUscUZBQXFGO1FBQzNFLFlBQU8sR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFRbEMsWUFBTyxHQUFJLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQU8xQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBN0VELDBGQUEwRjtJQUMxRixJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElB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O3NCQUFsQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsT0FBTztzQkFBaEIsTUFBTTtnQkFFd0IsUUFBUTtzQkFBdEMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ0gsSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNpQixjQUFjO3NCQUF0RCxXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICd0YWIsIFt0YWJdJywgZXhwb3J0QXM6ICd0YWInIH0pXG5leHBvcnQgY2xhc3MgVGFiRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogdGFiIGhlYWRlciB0ZXh0ICovXG4gIEBJbnB1dCgpIGhlYWRpbmc/OiBzdHJpbmc7XG4gIC8qKiB0YWIgaWQuIFRoZSBzYW1lIGlkIHdpdGggc3VmZml4ICctbGluaycgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29ycmVzcG9uZGluZyAmbHQ7bGkmZ3Q7IGVsZW1lbnQgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xuICAvKiogaWYgdHJ1ZSB0YWIgY2FuIG5vdCBiZSBhY3RpdmF0ZWQgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqIGlmIHRydWUgdGFiIGNhbiBiZSByZW1vdmFibGUsIGFkZGl0aW9uYWwgYnV0dG9uIHdpbGwgYXBwZWFyICovXG4gIEBJbnB1dCgpIHJlbW92YWJsZSA9IGZhbHNlO1xuICAvKiogaWYgc2V0LCB3aWxsIGJlIGFkZGVkIHRvIHRoZSB0YWIncyBjbGFzcyBhdHRyaWJ1dGUuIE11bHRpcGxlIGNsYXNzZXMgYXJlIHN1cHBvcnRlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IGN1c3RvbUNsYXNzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbUNsYXNzO1xuICB9XG5cbiAgc2V0IGN1c3RvbUNsYXNzKGN1c3RvbUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjc3NDbGFzczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSBjdXN0b21DbGFzcyA/IGN1c3RvbUNsYXNzLnRyaW0oKSA6ICcnO1xuXG4gICAgICBpZiAodGhpcy5jdXN0b21DbGFzcykge1xuICAgICAgICB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gIH1cblxuICAvKiogdGFiIGFjdGl2ZSBzdGF0ZSB0b2dnbGUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKVxuICBASW5wdXQoKVxuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICBzZXQgYWN0aXZlKGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmUgPT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZGlzYWJsZWQgJiYgYWN0aXZlKSB8fCAhYWN0aXZlKSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlICYmICFhY3RpdmUpIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdC5lbWl0KHRoaXMpO1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgdGhpcy5zZWxlY3RUYWIuZW1pdCh0aGlzKTtcbiAgICB0aGlzLnRhYnNldC50YWJzLmZvckVhY2goKHRhYjogVGFiRGlyZWN0aXZlKSA9PiB7XG4gICAgICBpZiAodGFiICE9PSB0aGlzKSB7XG4gICAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBmaXJlZCB3aGVuIHRhYiBiZWNhbWUgYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBzZWxlY3RlZCBpbnN0YW5jZSBvZiBUYWIgY29tcG9uZW50ICovXG4gIEBPdXRwdXQoKSBzZWxlY3RUYWI6IEV2ZW50RW1pdHRlcjxUYWJEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogZmlyZWQgd2hlbiB0YWIgYmVjYW1lIGluYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBkZXNlbGVjdGVkIGluc3RhbmNlIG9mIFRhYiBjb21wb25lbnQgKi9cbiAgQE91dHB1dCgpIGRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8VGFiRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqIGZpcmVkIGJlZm9yZSB0YWIgd2lsbCBiZSByZW1vdmVkLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBpbnN0YW5jZSBvZiByZW1vdmVkIHRhYiAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlZDogRXZlbnRFbWl0dGVyPFRhYkRpcmVjdGl2ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWItcGFuZScpIGFkZENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ3RhYnBhbmVsJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpIGdldCBhcmlhTGFiZWxsZWRieSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gYCR7dGhpcy5pZH0tbGlua2AgOiAnJztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGhlYWRpbmdSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIF9hY3RpdmU/ID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfY3VzdG9tQ2xhc3MgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudCxcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLnRhYnNldCA9IHRhYnNldDtcbiAgICB0aGlzLnRhYnNldC5hZGRUYWIodGhpcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92YWJsZSA9ICEhdGhpcy5yZW1vdmFibGU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnNldC5yZW1vdmVUYWIodGhpcywgeyByZXNlbGVjdDogZmFsc2UsIGVtaXQ6IGZhbHNlIH0pO1xuICB9XG59XG4iXX0=
@@ -1,216 +0,0 @@
1
- import { Component, HostBinding, Input, Renderer2, ElementRef } from '@angular/core';
2
- import { TabsetConfig } from './tabset.config';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./tabset.config";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "./ng-transclude.directive";
7
- // todo: add active event to tab
8
- // todo: fix? mixing static and dynamic tabs position tabs in order of creation
9
- export class TabsetComponent {
10
- constructor(config, renderer, elementRef) {
11
- this.renderer = renderer;
12
- this.elementRef = elementRef;
13
- this.clazz = true;
14
- this.tabs = [];
15
- this.classMap = {};
16
- /** aria label for tab list */
17
- this.ariaLabel = 'Tabs';
18
- this.isDestroyed = false;
19
- this._vertical = false;
20
- this._justified = false;
21
- this._type = 'tabs';
22
- this._isKeysAllowed = true;
23
- Object.assign(this, config);
24
- }
25
- /** if true tabs will be placed vertically */
26
- get vertical() {
27
- return this._vertical;
28
- }
29
- set vertical(value) {
30
- this._vertical = value;
31
- this.setClassMap();
32
- }
33
- /** if true tabs fill the container and have a consistent width */
34
- get justified() {
35
- return this._justified;
36
- }
37
- set justified(value) {
38
- this._justified = value;
39
- this.setClassMap();
40
- }
41
- /** navigation context class: 'tabs' or 'pills' */
42
- get type() {
43
- return this._type;
44
- }
45
- set type(value) {
46
- this._type = value;
47
- this.setClassMap();
48
- }
49
- get isKeysAllowed() {
50
- return this._isKeysAllowed;
51
- }
52
- set isKeysAllowed(value) {
53
- this._isKeysAllowed = value;
54
- }
55
- ngOnDestroy() {
56
- this.isDestroyed = true;
57
- }
58
- addTab(tab) {
59
- this.tabs.push(tab);
60
- tab.active = this.tabs.length === 1 && !tab.active;
61
- }
62
- removeTab(tab, options = { reselect: true, emit: true }) {
63
- const index = this.tabs.indexOf(tab);
64
- if (index === -1 || this.isDestroyed) {
65
- return;
66
- }
67
- // Select a new tab if the tab to be removed is selected and not destroyed
68
- if (options.reselect && tab.active && this.hasAvailableTabs(index)) {
69
- const newActiveIndex = this.getClosestTabIndex(index);
70
- this.tabs[newActiveIndex].active = true;
71
- }
72
- if (options.emit) {
73
- tab.removed.emit(tab);
74
- }
75
- this.tabs.splice(index, 1);
76
- if (tab.elementRef.nativeElement.parentNode) {
77
- this.renderer.removeChild(tab.elementRef.nativeElement.parentNode, tab.elementRef.nativeElement);
78
- }
79
- }
80
- keyNavActions(event, index) {
81
- if (!this.isKeysAllowed) {
82
- return;
83
- }
84
- const list = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));
85
- // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));
86
- if (event.keyCode === 13 || event.key === 'Enter' || event.keyCode === 32 || event.key === 'Space') {
87
- event.preventDefault();
88
- const currentTab = list[(index) % list.length];
89
- currentTab.click();
90
- return;
91
- }
92
- if (event.keyCode === 39 || event.key === 'RightArrow') {
93
- let nextTab;
94
- let shift = 1;
95
- do {
96
- nextTab = list[(index + shift) % list.length];
97
- shift++;
98
- } while (nextTab.classList.contains('disabled'));
99
- nextTab.focus();
100
- return;
101
- }
102
- if (event.keyCode === 37 || event.key === 'LeftArrow') {
103
- let previousTab;
104
- let shift = 1;
105
- let i = index;
106
- do {
107
- if ((i - shift) < 0) {
108
- i = list.length - 1;
109
- previousTab = list[i];
110
- shift = 0;
111
- }
112
- else {
113
- previousTab = list[i - shift];
114
- }
115
- shift++;
116
- } while (previousTab.classList.contains('disabled'));
117
- previousTab.focus();
118
- return;
119
- }
120
- if (event.keyCode === 36 || event.key === 'Home') {
121
- event.preventDefault();
122
- let firstTab;
123
- let shift = 0;
124
- do {
125
- firstTab = list[shift % list.length];
126
- shift++;
127
- } while (firstTab.classList.contains('disabled'));
128
- firstTab.focus();
129
- return;
130
- }
131
- if (event.keyCode === 35 || event.key === 'End') {
132
- event.preventDefault();
133
- let lastTab;
134
- let shift = 1;
135
- let i = index;
136
- do {
137
- if ((i - shift) < 0) {
138
- i = list.length - 1;
139
- lastTab = list[i];
140
- shift = 0;
141
- }
142
- else {
143
- lastTab = list[i - shift];
144
- }
145
- shift++;
146
- } while (lastTab.classList.contains('disabled'));
147
- lastTab.focus();
148
- return;
149
- }
150
- if (event.keyCode === 46 || event.key === 'Delete') {
151
- if (this.tabs[index].removable) {
152
- this.removeTab(this.tabs[index]);
153
- if (list[index + 1]) {
154
- list[(index + 1) % list.length].focus();
155
- return;
156
- }
157
- if (list[list.length - 1]) {
158
- list[0].focus();
159
- }
160
- }
161
- }
162
- }
163
- getClosestTabIndex(index) {
164
- const tabsLength = this.tabs.length;
165
- if (!tabsLength) {
166
- return -1;
167
- }
168
- for (let step = 1; step <= tabsLength; step += 1) {
169
- const prevIndex = index - step;
170
- const nextIndex = index + step;
171
- if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {
172
- return prevIndex;
173
- }
174
- if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {
175
- return nextIndex;
176
- }
177
- }
178
- return -1;
179
- }
180
- hasAvailableTabs(index) {
181
- const tabsLength = this.tabs.length;
182
- if (!tabsLength) {
183
- return false;
184
- }
185
- for (let i = 0; i < tabsLength; i += 1) {
186
- if (!this.tabs[i].disabled && i !== index) {
187
- return true;
188
- }
189
- }
190
- return false;
191
- }
192
- setClassMap() {
193
- this.classMap = {
194
- 'nav-stacked': this.vertical,
195
- 'flex-column': this.vertical,
196
- 'nav-justified': this.justified,
197
- [`nav-${this.type}`]: true
198
- };
199
- }
200
- }
201
- TabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TabsetComponent, deps: [{ token: i1.TabsetConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
202
- TabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TabsetComponent, selector: "tabset", inputs: { vertical: "vertical", justified: "justified", type: "type" }, host: { properties: { "class.tab-container": "this.clazz" } }, ngImport: i0, template: "<ul class=\"nav\" [ngClass]=\"classMap\"\n (click)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"tablist\">\n <li *ngFor=\"let tabz of tabs; let i = index\" [ngClass]=\"['nav-item', tabz.customClass || '']\"\n [class.active]=\"tabz.active\" [class.disabled]=\"tabz.disabled\" (keydown)=\"keyNavActions($event, i)\">\n <a href=\"javascript:void(0);\" class=\"nav-link\" role=\"tab\"\n [attr.aria-controls]=\"tabz.id ? tabz.id : ''\"\n [attr.aria-selected]=\"!!tabz.active\"\n [attr.id]=\"tabz.id ? tabz.id + '-link' : ''\"\n [class.active]=\"tabz.active\" [class.disabled]=\"tabz.disabled\"\n (click)=\"tabz.active = true\">\n <span [ngTransclude]=\"tabz.headingRef\">{{ tabz.heading }}</span>\n <span *ngIf=\"tabz.removable\" (click)=\"$event.preventDefault(); removeTab(tabz);\" class=\"bs-remove-tab\"> &#10060;</span>\n </a>\n </li>\n</ul>\n<div class=\"tab-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTranscludeDirective, selector: "[ngTransclude]", inputs: ["ngTransclude"] }] });
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TabsetComponent, decorators: [{
204
- type: Component,
205
- args: [{ selector: 'tabset', template: "<ul class=\"nav\" [ngClass]=\"classMap\"\n (click)=\"$event.preventDefault()\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"tablist\">\n <li *ngFor=\"let tabz of tabs; let i = index\" [ngClass]=\"['nav-item', tabz.customClass || '']\"\n [class.active]=\"tabz.active\" [class.disabled]=\"tabz.disabled\" (keydown)=\"keyNavActions($event, i)\">\n <a href=\"javascript:void(0);\" class=\"nav-link\" role=\"tab\"\n [attr.aria-controls]=\"tabz.id ? tabz.id : ''\"\n [attr.aria-selected]=\"!!tabz.active\"\n [attr.id]=\"tabz.id ? tabz.id + '-link' : ''\"\n [class.active]=\"tabz.active\" [class.disabled]=\"tabz.disabled\"\n (click)=\"tabz.active = true\">\n <span [ngTransclude]=\"tabz.headingRef\">{{ tabz.heading }}</span>\n <span *ngIf=\"tabz.removable\" (click)=\"$event.preventDefault(); removeTab(tabz);\" class=\"bs-remove-tab\"> &#10060;</span>\n </a>\n </li>\n</ul>\n<div class=\"tab-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}\n"] }]
206
- }], ctorParameters: function () { return [{ type: i1.TabsetConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { vertical: [{
207
- type: Input
208
- }], justified: [{
209
- type: Input
210
- }], type: [{
211
- type: Input
212
- }], clazz: [{
213
- type: HostBinding,
214
- args: ['class.tab-container']
215
- }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYnNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdGFicy90YWJzZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUMvQyxnQ0FBZ0M7QUFDaEMsK0VBQStFO0FBTS9FLE1BQU0sT0FBTyxlQUFlO0lBcUQxQixZQUNFLE1BQW9CLEVBQ1osUUFBbUIsRUFDbkIsVUFBc0I7UUFEdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakJJLFVBQUssR0FBRyxJQUFJLENBQUM7UUFFakQsU0FBSSxHQUFtQixFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUErQixFQUFFLENBQUM7UUFFMUMsOEJBQThCO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFFVCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsVUFBSyxHQUFHLE1BQU0sQ0FBQztRQUNmLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBTzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUExREQsNkNBQTZDO0lBQzdDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJ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QixTQUFTOytCQUNFLFFBQVE7b0pBT2QsUUFBUTtzQkFEWCxLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSztnQkFXRixJQUFJO3NCQURQLEtBQUs7Z0JBaUI4QixLQUFLO3NCQUF4QyxXQUFXO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUYWJEaXJlY3RpdmUgfSBmcm9tICcuL3RhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFic2V0Q29uZmlnIH0gZnJvbSAnLi90YWJzZXQuY29uZmlnJztcbi8vIHRvZG86IGFkZCBhY3RpdmUgZXZlbnQgdG8gdGFiXG4vLyB0b2RvOiBmaXg/IG1peGluZyBzdGF0aWMgYW5kIGR5bmFtaWMgdGFicyBwb3NpdGlvbiB0YWJzIGluIG9yZGVyIG9mIGNyZWF0aW9uXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJzZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFic2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFicy5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFic2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqIGlmIHRydWUgdGFicyB3aWxsIGJlIHBsYWNlZCB2ZXJ0aWNhbGx5ICovXG4gIEBJbnB1dCgpXG4gIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmVydGljYWwgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICAvKiogaWYgdHJ1ZSB0YWJzIGZpbGwgdGhlIGNvbnRhaW5lciBhbmQgaGF2ZSBhIGNvbnNpc3RlbnQgd2lkdGggKi9cbiAgQElucHV0KClcbiAgZ2V0IGp1c3RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fanVzdGlmaWVkO1xuICB9XG4gIHNldCBqdXN0aWZpZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9qdXN0aWZpZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICAvKiogbmF2aWdhdGlvbiBjb250ZXh0IGNsYXNzOiAndGFicycgb3IgJ3BpbGxzJyAqL1xuICBASW5wdXQoKVxuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgZ2V0IGlzS2V5c0FsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzS2V5c0FsbG93ZWQ7XG4gIH1cblxuICBzZXQgaXNLZXlzQWxsb3dlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzS2V5c0FsbG93ZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFiLWNvbnRhaW5lcicpIGNsYXp6ID0gdHJ1ZTtcblxuICB0YWJzOiBUYWJEaXJlY3RpdmVbXSA9IFtdO1xuICBjbGFzc01hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKiogYXJpYSBsYWJlbCBmb3IgdGFiIGxpc3QgKi9cbiAgYXJpYUxhYmVsID0gJ1RhYnMnO1xuXG4gIHByb3RlY3RlZCBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3ZlcnRpY2FsID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfanVzdGlmaWVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfdHlwZSA9ICd0YWJzJztcbiAgcHJvdGVjdGVkIF9pc0tleXNBbGxvd2VkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IFRhYnNldENvbmZpZyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkVGFiKHRhYjogVGFiRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLnB1c2godGFiKTtcbiAgICB0YWIuYWN0aXZlID0gdGhpcy50YWJzLmxlbmd0aCA9PT0gMSAmJiAhdGFiLmFjdGl2ZTtcbiAgfVxuXG4gIHJlbW92ZVRhYihcbiAgICB0YWI6IFRhYkRpcmVjdGl2ZSxcbiAgICBvcHRpb25zID0geyByZXNlbGVjdDogdHJ1ZSwgZW1pdDogdHJ1ZSB9XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmluZGV4T2YodGFiKTtcbiAgICBpZiAoaW5kZXggPT09IC0xIHx8IHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gU2VsZWN0IGEgbmV3IHRhYiBpZiB0aGUgdGFiIHRvIGJlIHJlbW92ZWQgaXMgc2VsZWN0ZWQgYW5kIG5vdCBkZXN0cm95ZWRcbiAgICBpZiAob3B0aW9ucy5yZXNlbGVjdCAmJiB0YWIuYWN0aXZlICYmIHRoaXMuaGFzQXZhaWxhYmxlVGFicyhpbmRleCkpIHtcbiAgICAgIGNvbnN0IG5ld0FjdGl2ZUluZGV4ID0gdGhpcy5nZXRDbG9zZXN0VGFiSW5kZXgoaW5kZXgpO1xuICAgICAgdGhpcy50YWJzW25ld0FjdGl2ZUluZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lbWl0KSB7XG4gICAgICB0YWIucmVtb3ZlZC5lbWl0KHRhYik7XG4gICAgfVxuICAgIHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGlmICh0YWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoXG4gICAgICAgIHRhYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZSxcbiAgICAgICAgdGFiLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAgIGtleU5hdkFjdGlvbnMoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNLZXlzQWxsb3dlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsaXN0OiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubmF2LWxpbmsnKSk7XG4gICAgLy8gY29uc3QgYWN0aXZlRWxMaXN0ID0gbGlzdC5maWx0ZXIoKGVsOiBIVE1MRWxlbWVudCkgPT4gIWVsLmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSk7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzIHx8IGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXlDb2RlID09PSAzMiB8fCBldmVudC5rZXkgPT09ICdTcGFjZScpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBjdXJyZW50VGFiID0gbGlzdFsoaW5kZXgpICUgbGlzdC5sZW5ndGhdO1xuICAgICAgY3VycmVudFRhYi5jbGljaygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM5IHx8IGV2ZW50LmtleSA9PT0gJ1JpZ2h0QXJyb3cnKSB7XG4gICAgICBsZXQgbmV4dFRhYjogSFRNTEVsZW1lbnQ7XG4gICAgICBsZXQgc2hpZnQgPSAxO1xuXG4gICAgICBkbyB7XG4gICAgICAgIG5leHRUYWIgPSBsaXN0WyhpbmRleCArIHNoaWZ0KSAlIGxpc3QubGVuZ3RoXTtcblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAobmV4dFRhYi5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuXG4gICAgICBuZXh0VGFiLmZvY3VzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcgfHwgZXZlbnQua2V5ID09PSAnTGVmdEFycm93Jykge1xuICAgICAgbGV0IHByZXZpb3VzVGFiOiBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmICgoaSAtIHNoaWZ0KSA8IDApIHtcbiAgICAgICAgICBpID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgIHByZXZpb3VzVGFiID0gbGlzdFtpXTtcbiAgICAgICAgICBzaGlmdCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNUYWIgPSBsaXN0W2kgLSBzaGlmdF07XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAocHJldmlvdXNUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgcHJldmlvdXNUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNiB8fCBldmVudC5rZXkgPT09ICdIb21lJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgbGV0IGZpcnN0VGFiOiBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBzaGlmdCA9IDA7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgZmlyc3RUYWIgPSBsaXN0W3NoaWZ0ICUgbGlzdC5sZW5ndGhdO1xuXG4gICAgICAgIHNoaWZ0Kys7XG4gICAgICB9IHdoaWxlIChmaXJzdFRhYi5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuXG4gICAgICBmaXJzdFRhYi5mb2N1cygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM1IHx8IGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGxldCBsYXN0VGFiOiBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmICgoaSAtIHNoaWZ0KSA8IDApIHtcbiAgICAgICAgICBpID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgIGxhc3RUYWIgPSBsaXN0W2ldO1xuICAgICAgICAgIHNoaWZ0ID0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0VGFiID0gbGlzdFtpIC0gc2hpZnRdO1xuICAgICAgICB9XG5cbiAgICAgICAgc2hpZnQrKztcbiAgICAgIH0gd2hpbGUgKGxhc3RUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgbGFzdFRhYi5mb2N1cygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDQ2IHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGlmICh0aGlzLnRhYnNbaW5kZXhdLnJlbW92YWJsZSkge1xuICAgICAgICB0aGlzLnJlbW92ZVRhYih0aGlzLnRhYnNbaW5kZXhdKTtcblxuICAgICAgICBpZiAobGlzdFtpbmRleCArIDFdKSB7XG4gICAgICAgICAgbGlzdFsoaW5kZXggKyAxKSAlIGxpc3QubGVuZ3RoXS5mb2N1cygpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3RbbGlzdC5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIGxpc3RbMF0uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDbG9zZXN0VGFiSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgdGFic0xlbmd0aCA9IHRoaXMudGFicy5sZW5ndGg7XG4gICAgaWYgKCF0YWJzTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gdGFic0xlbmd0aDsgc3RlcCArPSAxKSB7XG4gICAgICBjb25zdCBwcmV2SW5kZXggPSBpbmRleCAtIHN0ZXA7XG4gICAgICBjb25zdCBuZXh0SW5kZXggPSBpbmRleCArIHN0ZXA7XG4gICAgICBpZiAodGhpcy50YWJzW3ByZXZJbmRleF0gJiYgIXRoaXMudGFic1twcmV2SW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBwcmV2SW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50YWJzW25leHRJbmRleF0gJiYgIXRoaXMudGFic1tuZXh0SW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBuZXh0SW5kZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0F2YWlsYWJsZVRhYnMoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRhYnNMZW5ndGggPSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgIGlmICghdGFic0xlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFic0xlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoIXRoaXMudGFic1tpXS5kaXNhYmxlZCAmJiBpICE9PSBpbmRleCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0Q2xhc3NNYXAoKTogdm9pZCB7XG4gICAgdGhpcy5jbGFzc01hcCA9IHtcbiAgICAgICduYXYtc3RhY2tlZCc6IHRoaXMudmVydGljYWwsXG4gICAgICAnZmxleC1jb2x1bW4nOiB0aGlzLnZlcnRpY2FsLFxuICAgICAgJ25hdi1qdXN0aWZpZWQnOiB0aGlzLmp1c3RpZmllZCxcbiAgICAgIFtgbmF2LSR7dGhpcy50eXBlfWBdOiB0cnVlXG4gICAgfTtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwibmF2XCIgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxuICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIHJvbGU9XCJ0YWJsaXN0XCI+XG4gIDxsaSAqbmdGb3I9XCJsZXQgdGFieiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiWyduYXYtaXRlbScsIHRhYnouY3VzdG9tQ2xhc3MgfHwgJyddXCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwidGFiei5hY3RpdmVcIiBbY2xhc3MuZGlzYWJsZWRdPVwidGFiei5kaXNhYmxlZFwiIChrZXlkb3duKT1cImtleU5hdkFjdGlvbnMoJGV2ZW50LCBpKVwiPlxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgY2xhc3M9XCJuYXYtbGlua1wiIHJvbGU9XCJ0YWJcIlxuICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwidGFiei5pZCA/IHRhYnouaWQgOiAnJ1wiXG4gICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCIhIXRhYnouYWN0aXZlXCJcbiAgICAgICBbYXR0ci5pZF09XCJ0YWJ6LmlkID8gdGFiei5pZCArICctbGluaycgOiAnJ1wiXG4gICAgICAgW2NsYXNzLmFjdGl2ZV09XCJ0YWJ6LmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJ0YWJ6LmRpc2FibGVkXCJcbiAgICAgICAoY2xpY2spPVwidGFiei5hY3RpdmUgPSB0cnVlXCI+XG4gICAgICA8c3BhbiBbbmdUcmFuc2NsdWRlXT1cInRhYnouaGVhZGluZ1JlZlwiPnt7IHRhYnouaGVhZGluZyB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwidGFiei5yZW1vdmFibGVcIiAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHJlbW92ZVRhYih0YWJ6KTtcIiBjbGFzcz1cImJzLXJlbW92ZS10YWJcIj4gJiMxMDA2MDs8L3NwYW4+XG4gICAgPC9hPlxuICA8L2xpPlxuPC91bD5cbjxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-bootstrap-tabs.mjs","sources":["../esm2020/ng-transclude.directive.mjs","../esm2020/tabset.config.mjs","../esm2020/tabset.component.mjs","../esm2020/tab.directive.mjs","../esm2020/tab-heading.directive.mjs","../esm2020/tabs.module.mjs","../esm2020/ngx-bootstrap-tabs.mjs"],"sourcesContent":["import { Directive, Input, ViewContainerRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class NgTranscludeDirective {\n constructor(viewRef) {\n this.viewRef = viewRef;\n }\n set ngTransclude(templateRef) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get ngTransclude() {\n return this._ngTransclude;\n }\n}\nNgTranscludeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: NgTranscludeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTranscludeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: NgTranscludeDirective, selector: \"[ngTransclude]\", inputs: { ngTransclude: \"ngTransclude\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: NgTranscludeDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTransclude]'\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTransclude: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdHJhbnNjbHVkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGFicy9uZy10cmFuc2NsdWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFBWSxPQUF5QjtRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBaEJELElBRUksWUFBWSxDQUFDLFdBQXlDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O2tIQWxCVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO3VHQVNLLFlBQVk7c0JBRmYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ1RyYW5zY2x1ZGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ1RyYW5zY2x1ZGVEaXJlY3RpdmUge1xuICB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByb3RlY3RlZCBfbmdUcmFuc2NsdWRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzZXQgbmdUcmFuc2NsdWRlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbmdUcmFuc2NsdWRlID0gdGVtcGxhdGVSZWY7XG4gICAgaWYgKHRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLnZpZXdSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBnZXQgbmdUcmFuc2NsdWRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9uZ1RyYW5zY2x1ZGU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgdGhpcy52aWV3UmVmID0gdmlld1JlZjtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TabsetConfig {\n constructor() {\n /** provides default navigation context class: 'tabs' or 'pills' */\n this.type = 'tabs';\n /** provides possibility to set keyNavigations enable or disable, by default is enable */\n this.isKeysAllowed = true;\n /** aria label for tab list */\n this.ariaLabel = 'Tabs';\n }\n}\nTabsetConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsetConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTabsetConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsetConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsetConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYnNldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJRSxtRUFBbUU7UUFDbkUsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLHlGQUF5RjtRQUN6RixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQiw4QkFBOEI7UUFDOUIsY0FBUyxHQUFHLE1BQU0sQ0FBQztLQUNwQjs7eUdBUFksWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGFic2V0Q29uZmlnIHtcbiAgLyoqIHByb3ZpZGVzIGRlZmF1bHQgbmF2aWdhdGlvbiBjb250ZXh0IGNsYXNzOiAndGFicycgb3IgJ3BpbGxzJyAqL1xuICB0eXBlID0gJ3RhYnMnO1xuICAvKiogcHJvdmlkZXMgcG9zc2liaWxpdHkgdG8gc2V0IGtleU5hdmlnYXRpb25zIGVuYWJsZSBvciBkaXNhYmxlLCBieSBkZWZhdWx0IGlzIGVuYWJsZSAqL1xuICBpc0tleXNBbGxvd2VkID0gdHJ1ZTtcbiAgLyoqIGFyaWEgbGFiZWwgZm9yIHRhYiBsaXN0ICovXG4gIGFyaWFMYWJlbCA9ICdUYWJzJztcbn1cbiJdfQ==","import { Component, HostBinding, Input, Renderer2, ElementRef } from '@angular/core';\nimport { TabsetConfig } from './tabset.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./tabset.config\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"./ng-transclude.directive\";\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\nexport class TabsetComponent {\n constructor(config, renderer, elementRef) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.clazz = true;\n this.tabs = [];\n this.classMap = {};\n /** aria label for tab list */\n this.ariaLabel = 'Tabs';\n this.isDestroyed = false;\n this._vertical = false;\n this._justified = false;\n this._type = 'tabs';\n this._isKeysAllowed = true;\n Object.assign(this, config);\n }\n /** if true tabs will be placed vertically */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = value;\n this.setClassMap();\n }\n /** if true tabs fill the container and have a consistent width */\n get justified() {\n return this._justified;\n }\n set justified(value) {\n this._justified = value;\n this.setClassMap();\n }\n /** navigation context class: 'tabs' or 'pills' */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value;\n this.setClassMap();\n }\n get isKeysAllowed() {\n return this._isKeysAllowed;\n }\n set isKeysAllowed(value) {\n this._isKeysAllowed = value;\n }\n ngOnDestroy() {\n this.isDestroyed = true;\n }\n addTab(tab) {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && !tab.active;\n }\n removeTab(tab, options = { reselect: true, emit: true }) {\n const index = this.tabs.indexOf(tab);\n if (index === -1 || this.isDestroyed) {\n return;\n }\n // Select a new tab if the tab to be removed is selected and not destroyed\n if (options.reselect && tab.active && this.hasAvailableTabs(index)) {\n const newActiveIndex = this.getClosestTabIndex(index);\n this.tabs[newActiveIndex].active = true;\n }\n if (options.emit) {\n tab.removed.emit(tab);\n }\n this.tabs.splice(index, 1);\n if (tab.elementRef.nativeElement.parentNode) {\n this.renderer.removeChild(tab.elementRef.nativeElement.parentNode, tab.elementRef.nativeElement);\n }\n }\n keyNavActions(event, index) {\n if (!this.isKeysAllowed) {\n return;\n }\n const list = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n if (event.keyCode === 13 || event.key === 'Enter' || event.keyCode === 32 || event.key === 'Space') {\n event.preventDefault();\n const currentTab = list[(index) % list.length];\n currentTab.click();\n return;\n }\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab;\n let shift = 1;\n do {\n nextTab = list[(index + shift) % list.length];\n shift++;\n } while (nextTab.classList.contains('disabled'));\n nextTab.focus();\n return;\n }\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab;\n let shift = 1;\n let i = index;\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n }\n else {\n previousTab = list[i - shift];\n }\n shift++;\n } while (previousTab.classList.contains('disabled'));\n previousTab.focus();\n return;\n }\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n let firstTab;\n let shift = 0;\n do {\n firstTab = list[shift % list.length];\n shift++;\n } while (firstTab.classList.contains('disabled'));\n firstTab.focus();\n return;\n }\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n let lastTab;\n let shift = 1;\n let i = index;\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n }\n else {\n lastTab = list[i - shift];\n }\n shift++;\n } while (lastTab.classList.contains('disabled'));\n lastTab.focus();\n return;\n }\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n return;\n }\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n getClosestTabIndex(index) {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\n for (let step = 1; step <= tabsLength; step += 1) {\n const prevIndex = index - step;\n const nextIndex = index + step;\n if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {\n return prevIndex;\n }\n if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {\n return nextIndex;\n }\n }\n return -1;\n }\n hasAvailableTabs(index) {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n return false;\n }\n setClassMap() {\n this.classMap = {\n 'nav-stacked': this.vertical,\n 'flex-column': this.vertical,\n 'nav-justified': this.justified,\n [`nav-${this.type}`]: true\n };\n }\n}\nTabsetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsetComponent, deps: [{ token: i1.TabsetConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nTabsetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: TabsetComponent, selector: \"tabset\", inputs: { vertical: \"vertical\", justified: \"justified\", type: \"type\" }, host: { properties: { \"class.tab-container\": \"this.clazz\" } }, ngImport: i0, template: \"<ul class=\\\"nav\\\" [ngClass]=\\\"classMap\\\"\\n (click)=\\\"$event.preventDefault()\\\"\\n [attr.aria-label]=\\\"ariaLabel\\\"\\n role=\\\"tablist\\\">\\n <li *ngFor=\\\"let tabz of tabs; let i = index\\\" [ngClass]=\\\"['nav-item', tabz.customClass || '']\\\"\\n [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\" (keydown)=\\\"keyNavActions($event, i)\\\">\\n <a href=\\\"javascript:void(0);\\\" class=\\\"nav-link\\\" role=\\\"tab\\\"\\n [attr.aria-controls]=\\\"tabz.id ? tabz.id : ''\\\"\\n [attr.aria-selected]=\\\"!!tabz.active\\\"\\n [attr.id]=\\\"tabz.id ? tabz.id + '-link' : ''\\\"\\n [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\"\\n (click)=\\\"tabz.active = true\\\">\\n <span [ngTransclude]=\\\"tabz.headingRef\\\">{{ tabz.heading }}</span>\\n <span *ngIf=\\\"tabz.removable\\\" (click)=\\\"$event.preventDefault(); removeTab(tabz);\\\" class=\\\"bs-remove-tab\\\"> &#10060;</span>\\n </a>\\n </li>\\n</ul>\\n<div class=\\\"tab-content\\\">\\n <ng-content></ng-content>\\n</div>\\n\", styles: [\":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i3.NgTranscludeDirective, selector: \"[ngTransclude]\", inputs: [\"ngTransclude\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsetComponent, decorators: [{\n type: Component,\n args: [{ selector: 'tabset', template: \"<ul class=\\\"nav\\\" [ngClass]=\\\"classMap\\\"\\n (click)=\\\"$event.preventDefault()\\\"\\n [attr.aria-label]=\\\"ariaLabel\\\"\\n role=\\\"tablist\\\">\\n <li *ngFor=\\\"let tabz of tabs; let i = index\\\" [ngClass]=\\\"['nav-item', tabz.customClass || '']\\\"\\n [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\" (keydown)=\\\"keyNavActions($event, i)\\\">\\n <a href=\\\"javascript:void(0);\\\" class=\\\"nav-link\\\" role=\\\"tab\\\"\\n [attr.aria-controls]=\\\"tabz.id ? tabz.id : ''\\\"\\n [attr.aria-selected]=\\\"!!tabz.active\\\"\\n [attr.id]=\\\"tabz.id ? tabz.id + '-link' : ''\\\"\\n [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\"\\n (click)=\\\"tabz.active = true\\\">\\n <span [ngTransclude]=\\\"tabz.headingRef\\\">{{ tabz.heading }}</span>\\n <span *ngIf=\\\"tabz.removable\\\" (click)=\\\"$event.preventDefault(); removeTab(tabz);\\\" class=\\\"bs-remove-tab\\\"> &#10060;</span>\\n </a>\\n </li>\\n</ul>\\n<div class=\\\"tab-content\\\">\\n <ng-content></ng-content>\\n</div>\\n\", styles: [\":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.TabsetConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { vertical: [{\n type: Input\n }], justified: [{\n type: Input\n }], type: [{\n type: Input\n }], clazz: [{\n type: HostBinding,\n args: ['class.tab-container']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYnNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdGFicy90YWJzZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUMvQyxnQ0FBZ0M7QUFDaEMsK0VBQStFO0FBTS9FLE1BQU0sT0FBTyxlQUFlO0lBcUQxQixZQUNFLE1BQW9CLEVBQ1osUUFBbUIsRUFDbkIsVUFBc0I7UUFEdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakJJLFVBQUssR0FBRyxJQUFJLENBQUM7UUFFakQsU0FBSSxHQUFtQixFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUErQixFQUFFLENBQUM7UUFFMUMsOEJBQThCO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFFVCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsVUFBSyxHQUFHLE1BQU0sQ0FBQztRQUNmLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBTzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUExREQsNkNBQTZDO0lBQzdDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJ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QixTQUFTOytCQUNFLFFBQVE7b0pBT2QsUUFBUTtzQkFEWCxLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSztnQkFXRixJQUFJO3NCQURQLEtBQUs7Z0JBaUI4QixLQUFLO3NCQUF4QyxXQUFXO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUYWJEaXJlY3RpdmUgfSBmcm9tICcuL3RhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFic2V0Q29uZmlnIH0gZnJvbSAnLi90YWJzZXQuY29uZmlnJztcbi8vIHRvZG86IGFkZCBhY3RpdmUgZXZlbnQgdG8gdGFiXG4vLyB0b2RvOiBmaXg/IG1peGluZyBzdGF0aWMgYW5kIGR5bmFtaWMgdGFicyBwb3NpdGlvbiB0YWJzIGluIG9yZGVyIG9mIGNyZWF0aW9uXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJzZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFic2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFicy5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFic2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqIGlmIHRydWUgdGFicyB3aWxsIGJlIHBsYWNlZCB2ZXJ0aWNhbGx5ICovXG4gIEBJbnB1dCgpXG4gIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmVydGljYWwgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICAvKiogaWYgdHJ1ZSB0YWJzIGZpbGwgdGhlIGNvbnRhaW5lciBhbmQgaGF2ZSBhIGNvbnNpc3RlbnQgd2lkdGggKi9cbiAgQElucHV0KClcbiAgZ2V0IGp1c3RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fanVzdGlmaWVkO1xuICB9XG4gIHNldCBqdXN0aWZpZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9qdXN0aWZpZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICAvKiogbmF2aWdhdGlvbiBjb250ZXh0IGNsYXNzOiAndGFicycgb3IgJ3BpbGxzJyAqL1xuICBASW5wdXQoKVxuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgZ2V0IGlzS2V5c0FsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzS2V5c0FsbG93ZWQ7XG4gIH1cblxuICBzZXQgaXNLZXlzQWxsb3dlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzS2V5c0FsbG93ZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFiLWNvbnRhaW5lcicpIGNsYXp6ID0gdHJ1ZTtcblxuICB0YWJzOiBUYWJEaXJlY3RpdmVbXSA9IFtdO1xuICBjbGFzc01hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKiogYXJpYSBsYWJlbCBmb3IgdGFiIGxpc3QgKi9cbiAgYXJpYUxhYmVsID0gJ1RhYnMnO1xuXG4gIHByb3RlY3RlZCBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3ZlcnRpY2FsID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfanVzdGlmaWVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfdHlwZSA9ICd0YWJzJztcbiAgcHJvdGVjdGVkIF9pc0tleXNBbGxvd2VkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IFRhYnNldENvbmZpZyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkVGFiKHRhYjogVGFiRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLnB1c2godGFiKTtcbiAgICB0YWIuYWN0aXZlID0gdGhpcy50YWJzLmxlbmd0aCA9PT0gMSAmJiAhdGFiLmFjdGl2ZTtcbiAgfVxuXG4gIHJlbW92ZVRhYihcbiAgICB0YWI6IFRhYkRpcmVjdGl2ZSxcbiAgICBvcHRpb25zID0geyByZXNlbGVjdDogdHJ1ZSwgZW1pdDogdHJ1ZSB9XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJzLmluZGV4T2YodGFiKTtcbiAgICBpZiAoaW5kZXggPT09IC0xIHx8IHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gU2VsZWN0IGEgbmV3IHRhYiBpZiB0aGUgdGFiIHRvIGJlIHJlbW92ZWQgaXMgc2VsZWN0ZWQgYW5kIG5vdCBkZXN0cm95ZWRcbiAgICBpZiAob3B0aW9ucy5yZXNlbGVjdCAmJiB0YWIuYWN0aXZlICYmIHRoaXMuaGFzQXZhaWxhYmxlVGFicyhpbmRleCkpIHtcbiAgICAgIGNvbnN0IG5ld0FjdGl2ZUluZGV4ID0gdGhpcy5nZXRDbG9zZXN0VGFiSW5kZXgoaW5kZXgpO1xuICAgICAgdGhpcy50YWJzW25ld0FjdGl2ZUluZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lbWl0KSB7XG4gICAgICB0YWIucmVtb3ZlZC5lbWl0KHRhYik7XG4gICAgfVxuICAgIHRoaXMudGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGlmICh0YWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoXG4gICAgICAgIHRhYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZSxcbiAgICAgICAgdGFiLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAgIGtleU5hdkFjdGlvbnMoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNLZXlzQWxsb3dlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsaXN0OiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubmF2LWxpbmsnKSk7XG4gICAgLy8gY29uc3QgYWN0aXZlRWxMaXN0ID0gbGlzdC5maWx0ZXIoKGVsOiBIVE1MRWxlbWVudCkgPT4gIWVsLmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSk7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzIHx8IGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXlDb2RlID09PSAzMiB8fCBldmVudC5rZXkgPT09ICdTcGFjZScpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBjdXJyZW50VGFiID0gbGlzdFsoaW5kZXgpICUgbGlzdC5sZW5ndGhdO1xuICAgICAgY3VycmVudFRhYi5jbGljaygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM5IHx8IGV2ZW50LmtleSA9PT0gJ1JpZ2h0QXJyb3cnKSB7XG4gICAgICBsZXQgbmV4dFRhYjogSFRNTEVsZW1lbnQ7XG4gICAgICBsZXQgc2hpZnQgPSAxO1xuXG4gICAgICBkbyB7XG4gICAgICAgIG5leHRUYWIgPSBsaXN0WyhpbmRleCArIHNoaWZ0KSAlIGxpc3QubGVuZ3RoXTtcblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAobmV4dFRhYi5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuXG4gICAgICBuZXh0VGFiLmZvY3VzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcgfHwgZXZlbnQua2V5ID09PSAnTGVmdEFycm93Jykge1xuICAgICAgbGV0IHByZXZpb3VzVGFiOiBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmICgoaSAtIHNoaWZ0KSA8IDApIHtcbiAgICAgICAgICBpID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgIHByZXZpb3VzVGFiID0gbGlzdFtpXTtcbiAgICAgICAgICBzaGlmdCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNUYWIgPSBsaXN0W2kgLSBzaGlmdF07XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAocHJldmlvdXNUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgcHJldmlvdXNUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNiB8fCBldmVudC5rZXkgPT09ICdIb21lJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgbGV0IGZpcnN0VGFiOiBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBzaGlmdCA9IDA7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgZmlyc3RUYWIgPSBsaXN0W3NoaWZ0ICUgbGlzdC5sZW5ndGhdO1xuXG4gICAgICAgIHNoaWZ0Kys7XG4gICAgICB9IHdoaWxlIChmaXJzdFRhYi5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuXG4gICAgICBmaXJzdFRhYi5mb2N1cygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM1IHx8IGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGxldCBsYXN0VGFiOiBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmICgoaSAtIHNoaWZ0KSA8IDApIHtcbiAgICAgICAgICBpID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgIGxhc3RUYWIgPSBsaXN0W2ldO1xuICAgICAgICAgIHNoaWZ0ID0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0VGFiID0gbGlzdFtpIC0gc2hpZnRdO1xuICAgICAgICB9XG5cbiAgICAgICAgc2hpZnQrKztcbiAgICAgIH0gd2hpbGUgKGxhc3RUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgbGFzdFRhYi5mb2N1cygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDQ2IHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGlmICh0aGlzLnRhYnNbaW5kZXhdLnJlbW92YWJsZSkge1xuICAgICAgICB0aGlzLnJlbW92ZVRhYih0aGlzLnRhYnNbaW5kZXhdKTtcblxuICAgICAgICBpZiAobGlzdFtpbmRleCArIDFdKSB7XG4gICAgICAgICAgbGlzdFsoaW5kZXggKyAxKSAlIGxpc3QubGVuZ3RoXS5mb2N1cygpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3RbbGlzdC5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIGxpc3RbMF0uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDbG9zZXN0VGFiSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgdGFic0xlbmd0aCA9IHRoaXMudGFicy5sZW5ndGg7XG4gICAgaWYgKCF0YWJzTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gdGFic0xlbmd0aDsgc3RlcCArPSAxKSB7XG4gICAgICBjb25zdCBwcmV2SW5kZXggPSBpbmRleCAtIHN0ZXA7XG4gICAgICBjb25zdCBuZXh0SW5kZXggPSBpbmRleCArIHN0ZXA7XG4gICAgICBpZiAodGhpcy50YWJzW3ByZXZJbmRleF0gJiYgIXRoaXMudGFic1twcmV2SW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBwcmV2SW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50YWJzW25leHRJbmRleF0gJiYgIXRoaXMudGFic1tuZXh0SW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBuZXh0SW5kZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0F2YWlsYWJsZVRhYnMoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRhYnNMZW5ndGggPSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgIGlmICghdGFic0xlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFic0xlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoIXRoaXMudGFic1tpXS5kaXNhYmxlZCAmJiBpICE9PSBpbmRleCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0Q2xhc3NNYXAoKTogdm9pZCB7XG4gICAgdGhpcy5jbGFzc01hcCA9IHtcbiAgICAgICduYXYtc3RhY2tlZCc6IHRoaXMudmVydGljYWwsXG4gICAgICAnZmxleC1jb2x1bW4nOiB0aGlzLnZlcnRpY2FsLFxuICAgICAgJ25hdi1qdXN0aWZpZWQnOiB0aGlzLmp1c3RpZmllZCxcbiAgICAgIFtgbmF2LSR7dGhpcy50eXBlfWBdOiB0cnVlXG4gICAgfTtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwibmF2XCIgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxuICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIHJvbGU9XCJ0YWJsaXN0XCI+XG4gIDxsaSAqbmdGb3I9XCJsZXQgdGFieiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwiWyduYXYtaXRlbScsIHRhYnouY3VzdG9tQ2xhc3MgfHwgJyddXCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwidGFiei5hY3RpdmVcIiBbY2xhc3MuZGlzYWJsZWRdPVwidGFiei5kaXNhYmxlZFwiIChrZXlkb3duKT1cImtleU5hdkFjdGlvbnMoJGV2ZW50LCBpKVwiPlxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgY2xhc3M9XCJuYXYtbGlua1wiIHJvbGU9XCJ0YWJcIlxuICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwidGFiei5pZCA/IHRhYnouaWQgOiAnJ1wiXG4gICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCIhIXRhYnouYWN0aXZlXCJcbiAgICAgICBbYXR0ci5pZF09XCJ0YWJ6LmlkID8gdGFiei5pZCArICctbGluaycgOiAnJ1wiXG4gICAgICAgW2NsYXNzLmFjdGl2ZV09XCJ0YWJ6LmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJ0YWJ6LmRpc2FibGVkXCJcbiAgICAgICAoY2xpY2spPVwidGFiei5hY3RpdmUgPSB0cnVlXCI+XG4gICAgICA8c3BhbiBbbmdUcmFuc2NsdWRlXT1cInRhYnouaGVhZGluZ1JlZlwiPnt7IHRhYnouaGVhZGluZyB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwidGFiei5yZW1vdmFibGVcIiAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHJlbW92ZVRhYih0YWJ6KTtcIiBjbGFzcz1cImJzLXJlbW92ZS10YWJcIj4gJiMxMDA2MDs8L3NwYW4+XG4gICAgPC9hPlxuICA8L2xpPlxuPC91bD5cbjxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==","import { Directive, EventEmitter, HostBinding, Input, Output, ElementRef, Renderer2 } from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./tabset.component\";\nexport class TabDirective {\n constructor(tabset, elementRef, renderer) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n /** if true tab can not be activated */\n this.disabled = false;\n /** if true tab can be removable, additional button will appear */\n this.removable = false;\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n this.selectTab = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n this.deselect = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n this.removed = new EventEmitter();\n this.addClass = true;\n this.role = 'tabpanel';\n this._active = false;\n this._customClass = '';\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n get customClass() {\n return this._customClass;\n }\n set customClass(customClass) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n this._customClass = customClass ? customClass.trim() : '';\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n /** tab active state toggle */\n get active() {\n return this._active;\n }\n set active(active) {\n if (this._active === active) {\n return;\n }\n if ((this.disabled && active) || !active) {\n if (this._active && !active) {\n this.deselect.emit(this);\n this._active = active;\n }\n return;\n }\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach((tab) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n get ariaLabelledby() {\n return this.id ? `${this.id}-link` : '';\n }\n ngOnInit() {\n this.removable = !!this.removable;\n }\n ngOnDestroy() {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n}\nTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabDirective, deps: [{ token: i1.TabsetComponent }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: TabDirective, selector: \"tab, [tab]\", inputs: { heading: \"heading\", id: \"id\", disabled: \"disabled\", removable: \"removable\", customClass: \"customClass\", active: \"active\" }, outputs: { selectTab: \"selectTab\", deselect: \"deselect\", removed: \"removed\" }, host: { properties: { \"attr.id\": \"this.id\", \"class.active\": \"this.active\", \"class.tab-pane\": \"this.addClass\", \"attr.role\": \"this.role\", \"attr.aria-labelledby\": \"this.ariaLabelledby\" } }, exportAs: [\"tab\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabDirective, decorators: [{\n type: Directive,\n args: [{ selector: 'tab, [tab]', exportAs: 'tab' }]\n }], ctorParameters: function () { return [{ type: i1.TabsetComponent }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { heading: [{\n type: Input\n }], id: [{\n type: HostBinding,\n args: ['attr.id']\n }, {\n type: Input\n }], disabled: [{\n type: Input\n }], removable: [{\n type: Input\n }], customClass: [{\n type: Input\n }], active: [{\n type: HostBinding,\n args: ['class.active']\n }, {\n type: Input\n }], selectTab: [{\n type: Output\n }], deselect: [{\n type: Output\n }], removed: [{\n type: Output\n }], addClass: [{\n type: HostBinding,\n args: ['class.tab-pane']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], ariaLabelledby: [{\n type: HostBinding,\n args: ['attr.aria-labelledby']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBSU4sVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUdyRCxNQUFNLE9BQU8sWUFBWTtJQWdGdkIsWUFDRSxNQUF1QixFQUNoQixVQUFzQixFQUN0QixRQUFtQjtRQURuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7UUE3RTVCLHVDQUF1QztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGtFQUFrRTtRQUN6RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBb0QzQiw0RkFBNEY7UUFDbEYsY0FBUyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JFLGdHQUFnRztRQUN0RixhQUFRLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEUscUZBQXFGO1FBQzNFLFlBQU8sR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFRbEMsWUFBTyxHQUFJLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQU8xQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBN0VELDBGQUEwRjtJQUMxRixJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElB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O3NCQUFsQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsT0FBTztzQkFBaEIsTUFBTTtnQkFFd0IsUUFBUTtzQkFBdEMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ0gsSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNpQixjQUFjO3NCQUF0RCxXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICd0YWIsIFt0YWJdJywgZXhwb3J0QXM6ICd0YWInIH0pXG5leHBvcnQgY2xhc3MgVGFiRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogdGFiIGhlYWRlciB0ZXh0ICovXG4gIEBJbnB1dCgpIGhlYWRpbmc/OiBzdHJpbmc7XG4gIC8qKiB0YWIgaWQuIFRoZSBzYW1lIGlkIHdpdGggc3VmZml4ICctbGluaycgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29ycmVzcG9uZGluZyAmbHQ7bGkmZ3Q7IGVsZW1lbnQgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xuICAvKiogaWYgdHJ1ZSB0YWIgY2FuIG5vdCBiZSBhY3RpdmF0ZWQgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqIGlmIHRydWUgdGFiIGNhbiBiZSByZW1vdmFibGUsIGFkZGl0aW9uYWwgYnV0dG9uIHdpbGwgYXBwZWFyICovXG4gIEBJbnB1dCgpIHJlbW92YWJsZSA9IGZhbHNlO1xuICAvKiogaWYgc2V0LCB3aWxsIGJlIGFkZGVkIHRvIHRoZSB0YWIncyBjbGFzcyBhdHRyaWJ1dGUuIE11bHRpcGxlIGNsYXNzZXMgYXJlIHN1cHBvcnRlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IGN1c3RvbUNsYXNzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbUNsYXNzO1xuICB9XG5cbiAgc2V0IGN1c3RvbUNsYXNzKGN1c3RvbUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjc3NDbGFzczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSBjdXN0b21DbGFzcyA/IGN1c3RvbUNsYXNzLnRyaW0oKSA6ICcnO1xuXG4gICAgICBpZiAodGhpcy5jdXN0b21DbGFzcykge1xuICAgICAgICB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gIH1cblxuICAvKiogdGFiIGFjdGl2ZSBzdGF0ZSB0b2dnbGUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKVxuICBASW5wdXQoKVxuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICBzZXQgYWN0aXZlKGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmUgPT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZGlzYWJsZWQgJiYgYWN0aXZlKSB8fCAhYWN0aXZlKSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlICYmICFhY3RpdmUpIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdC5lbWl0KHRoaXMpO1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgdGhpcy5zZWxlY3RUYWIuZW1pdCh0aGlzKTtcbiAgICB0aGlzLnRhYnNldC50YWJzLmZvckVhY2goKHRhYjogVGFiRGlyZWN0aXZlKSA9PiB7XG4gICAgICBpZiAodGFiICE9PSB0aGlzKSB7XG4gICAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBmaXJlZCB3aGVuIHRhYiBiZWNhbWUgYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBzZWxlY3RlZCBpbnN0YW5jZSBvZiBUYWIgY29tcG9uZW50ICovXG4gIEBPdXRwdXQoKSBzZWxlY3RUYWI6IEV2ZW50RW1pdHRlcjxUYWJEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogZmlyZWQgd2hlbiB0YWIgYmVjYW1lIGluYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBkZXNlbGVjdGVkIGluc3RhbmNlIG9mIFRhYiBjb21wb25lbnQgKi9cbiAgQE91dHB1dCgpIGRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8VGFiRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqIGZpcmVkIGJlZm9yZSB0YWIgd2lsbCBiZSByZW1vdmVkLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBpbnN0YW5jZSBvZiByZW1vdmVkIHRhYiAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlZDogRXZlbnRFbWl0dGVyPFRhYkRpcmVjdGl2ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWItcGFuZScpIGFkZENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ3RhYnBhbmVsJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpIGdldCBhcmlhTGFiZWxsZWRieSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gYCR7dGhpcy5pZH0tbGlua2AgOiAnJztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGhlYWRpbmdSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIF9hY3RpdmU/ID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfY3VzdG9tQ2xhc3MgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudCxcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLnRhYnNldCA9IHRhYnNldDtcbiAgICB0aGlzLnRhYnNldC5hZGRUYWIodGhpcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92YWJsZSA9ICEhdGhpcy5yZW1vdmFibGU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnNldC5yZW1vdmVUYWIodGhpcywgeyByZXNlbGVjdDogZmFsc2UsIGVtaXQ6IGZhbHNlIH0pO1xuICB9XG59XG4iXX0=","import { Directive, TemplateRef } from '@angular/core';\nimport { TabDirective } from './tab.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./tab.directive\";\n/** Should be used to mark <ng-template> element as a template for tab heading */\nexport class TabHeadingDirective {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(templateRef, tab) {\n tab.headingRef = templateRef;\n }\n}\nTabHeadingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabHeadingDirective, deps: [{ token: i0.TemplateRef }, { token: i1.TabDirective }], target: i0.ɵɵFactoryTarget.Directive });\nTabHeadingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: TabHeadingDirective, selector: \"[tabHeading]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabHeadingDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[tabHeading]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.TabDirective }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdGFiLWhlYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DLGlGQUFpRjtBQUVqRixNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLDhEQUE4RDtJQUM5RCxZQUFZLFdBQTZCLEVBQUUsR0FBaUI7UUFDMUQsR0FBRyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDL0IsQ0FBQzs7Z0hBUFUsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRhYkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLmRpcmVjdGl2ZSc7XG5cbi8qKiBTaG91bGQgYmUgdXNlZCB0byBtYXJrIDxuZy10ZW1wbGF0ZT4gZWxlbWVudCBhcyBhIHRlbXBsYXRlIGZvciB0YWIgaGVhZGluZyAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3RhYkhlYWRpbmddJyB9KVxuZXhwb3J0IGNsYXNzIFRhYkhlYWRpbmdEaXJlY3RpdmUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICB0ZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uc3RydWN0b3IodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHRhYjogVGFiRGlyZWN0aXZlKSB7XG4gICAgdGFiLmhlYWRpbmdSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\nimport * as i0 from \"@angular/core\";\nexport class TabsModule {\n static forRoot() {\n return {\n ngModule: TabsModule,\n providers: []\n };\n }\n}\nTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsModule, declarations: [NgTranscludeDirective,\n TabDirective,\n TabsetComponent,\n TabHeadingDirective], imports: [CommonModule], exports: [TabDirective,\n TabsetComponent,\n TabHeadingDirective,\n NgTranscludeDirective] });\nTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: TabsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [\n NgTranscludeDirective,\n TabDirective,\n TabsetComponent,\n TabHeadingDirective\n ],\n exports: [\n TabDirective,\n TabsetComponent,\n TabHeadingDirective,\n NgTranscludeDirective\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGFicy90YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFpQnJELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O3VHQU5VLFVBQVU7d0dBQVYsVUFBVSxpQkFabkIscUJBQXFCO1FBQ3JCLFlBQVk7UUFDWixlQUFlO1FBQ2YsbUJBQW1CLGFBTFgsWUFBWSxhQVFwQixZQUFZO1FBQ1osZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixxQkFBcUI7d0dBR1osVUFBVSxZQWRYLFlBQVk7MkZBY1gsVUFBVTtrQkFmdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nVHJhbnNjbHVkZURpcmVjdGl2ZSB9IGZyb20gJy4vbmctdHJhbnNjbHVkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFiSGVhZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLWhlYWRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmdUcmFuc2NsdWRlRGlyZWN0aXZlLFxuICAgIFRhYkRpcmVjdGl2ZSxcbiAgICBUYWJzZXRDb21wb25lbnQsXG4gICAgVGFiSGVhZGluZ0RpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGFiRGlyZWN0aXZlLFxuICAgIFRhYnNldENvbXBvbmVudCxcbiAgICBUYWJIZWFkaW5nRGlyZWN0aXZlLFxuICAgIE5nVHJhbnNjbHVkZURpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRhYnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFRhYnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdXG4gICAgfTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC10YWJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvbmd4LWJvb3RzdHJhcC10YWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.TabsetConfig","i3.NgTranscludeDirective","i1.TabsetComponent","i1.TabDirective"],"mappings":"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"}