ngx-bootstrap 5.6.1 → 6.2.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 (483) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +8 -1
  3. package/accordion/accordion-group.component.d.ts +3 -2
  4. package/accordion/accordion.module.d.ts +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +5 -2
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  7. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  8. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  9. package/accordion/esm2015/accordion.config.js +6 -2
  10. package/accordion/esm2015/accordion.module.js +2 -3
  11. package/accordion/esm5/accordion.config.js +6 -2
  12. package/accordion/esm5/accordion.module.js +2 -3
  13. package/accordion/fesm2015/ngx-bootstrap-accordion.js +6 -3
  14. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  15. package/accordion/fesm5/ngx-bootstrap-accordion.js +6 -3
  16. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  17. package/accordion/ngx-bootstrap-accordion.metadata.json +1 -1
  18. package/accordion/package.json +2 -2
  19. package/alert/alert.module.d.ts +1 -1
  20. package/alert/bundles/ngx-bootstrap-alert.umd.js +5 -2
  21. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  22. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +2 -2
  23. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  24. package/alert/esm2015/alert.component.js +3 -3
  25. package/alert/esm2015/alert.config.js +6 -2
  26. package/alert/esm2015/alert.module.js +2 -3
  27. package/alert/esm5/alert.component.js +3 -3
  28. package/alert/esm5/alert.config.js +6 -2
  29. package/alert/esm5/alert.module.js +2 -3
  30. package/alert/fesm2015/ngx-bootstrap-alert.js +6 -3
  31. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  32. package/alert/fesm5/ngx-bootstrap-alert.js +6 -3
  33. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  34. package/alert/ngx-bootstrap-alert.metadata.json +1 -1
  35. package/alert/package.json +2 -2
  36. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +293 -16
  37. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  38. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  39. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  40. package/buttons/button-checkbox.directive.d.ts +2 -2
  41. package/buttons/button-radio-group.directive.d.ts +12 -1
  42. package/buttons/button-radio.directive.d.ts +19 -7
  43. package/buttons/buttons.module.d.ts +1 -1
  44. package/buttons/esm2015/button-radio-group.directive.js +140 -3
  45. package/buttons/esm2015/button-radio.directive.js +98 -18
  46. package/buttons/esm2015/buttons.module.js +1 -1
  47. package/buttons/esm5/button-radio-group.directive.js +171 -3
  48. package/buttons/esm5/button-radio.directive.js +126 -17
  49. package/buttons/esm5/buttons.module.js +1 -1
  50. package/buttons/fesm2015/ngx-bootstrap-buttons.js +235 -18
  51. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  52. package/buttons/fesm5/ngx-bootstrap-buttons.js +294 -17
  53. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  54. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  55. package/buttons/package.json +2 -2
  56. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +5 -3
  57. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  58. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +1 -1
  59. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  60. package/carousel/carousel.component.d.ts +7 -5
  61. package/carousel/carousel.module.d.ts +1 -1
  62. package/carousel/esm2015/carousel.config.js +6 -2
  63. package/carousel/esm2015/carousel.module.js +2 -4
  64. package/carousel/esm5/carousel.component.js +4 -4
  65. package/carousel/esm5/carousel.config.js +6 -2
  66. package/carousel/esm5/carousel.module.js +2 -4
  67. package/carousel/fesm2015/ngx-bootstrap-carousel.js +6 -4
  68. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  69. package/carousel/fesm5/ngx-bootstrap-carousel.js +6 -4
  70. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  71. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  72. package/carousel/package.json +2 -2
  73. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +90 -73
  74. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  75. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +69 -1
  76. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  77. package/chronos/esm2015/create/from-anything.js +2 -2
  78. package/chronos/esm2015/duration/valid.js +4 -6
  79. package/chronos/esm2015/i18n/ar.js +1 -4
  80. package/chronos/esm2015/i18n/bg.js +18 -20
  81. package/chronos/esm2015/i18n/cs.js +45 -47
  82. package/chronos/esm2015/i18n/et.js +1 -3
  83. package/chronos/esm2015/i18n/th-be.js +21 -1
  84. package/chronos/esm2015/locale/locale.class.js +5 -3
  85. package/chronos/esm5/create/from-anything.js +2 -2
  86. package/chronos/esm5/duration/valid.js +4 -6
  87. package/chronos/esm5/i18n/ar.js +1 -4
  88. package/chronos/esm5/i18n/bg.js +18 -20
  89. package/chronos/esm5/i18n/cs.js +45 -47
  90. package/chronos/esm5/i18n/et.js +1 -3
  91. package/chronos/esm5/i18n/th-be.js +21 -1
  92. package/chronos/esm5/locale/locale.class.js +6 -3
  93. package/chronos/esm5/test/chain.js +4 -4
  94. package/chronos/fesm2015/ngx-bootstrap-chronos.js +89 -73
  95. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  96. package/chronos/fesm5/ngx-bootstrap-chronos.js +90 -73
  97. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  98. package/chronos/locale/locale.class.d.ts +4 -3
  99. package/chronos/package.json +2 -2
  100. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  101. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  102. package/collapse/collapse.directive.d.ts +3 -2
  103. package/collapse/collapse.module.d.ts +1 -1
  104. package/collapse/esm2015/collapse.module.js +1 -1
  105. package/collapse/esm5/collapse.module.js +1 -1
  106. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  107. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  108. package/collapse/package.json +2 -2
  109. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +5 -4
  110. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  111. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  112. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  113. package/component-loader/component-loader.class.d.ts +4 -3
  114. package/component-loader/esm2015/component-loader.class.js +5 -5
  115. package/component-loader/esm5/component-loader.class.js +6 -5
  116. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +4 -4
  117. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  118. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +5 -4
  119. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  120. package/component-loader/package.json +2 -2
  121. package/datepicker/base/bs-datepicker-container.d.ts +20 -8
  122. package/datepicker/bs-datepicker-inline.component.d.ts +6 -2
  123. package/datepicker/bs-datepicker.component.d.ts +14 -5
  124. package/datepicker/bs-datepicker.config.d.ts +41 -1
  125. package/datepicker/bs-datepicker.css +126 -5
  126. package/datepicker/bs-datepicker.css.map +4 -4
  127. package/datepicker/bs-datepicker.module.d.ts +1 -1
  128. package/datepicker/bs-datepicker.scss +25 -5
  129. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  130. package/datepicker/bs-daterangepicker.component.d.ts +9 -4
  131. package/datepicker/bs-locale.service.d.ts +3 -3
  132. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +604 -93
  133. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  134. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +2 -2
  135. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  136. package/datepicker/datepicker-inner.component.d.ts +2 -1
  137. package/datepicker/datepicker.component.d.ts +2 -1
  138. package/datepicker/datepicker.module.d.ts +1 -1
  139. package/datepicker/daypicker.component.d.ts +1 -1
  140. package/datepicker/engine/flag-days-calendar.d.ts +2 -1
  141. package/datepicker/engine/flag-months-calendar.d.ts +1 -0
  142. package/datepicker/engine/flag-years-calendar.d.ts +1 -0
  143. package/datepicker/esm2015/base/bs-datepicker-container.js +38 -1
  144. package/datepicker/esm2015/bs-datepicker-inline.component.js +12 -1
  145. package/datepicker/esm2015/bs-datepicker-inline.config.js +6 -2
  146. package/datepicker/esm2015/bs-datepicker-input.directive.js +9 -1
  147. package/datepicker/esm2015/bs-datepicker.component.js +45 -6
  148. package/datepicker/esm2015/bs-datepicker.config.js +88 -2
  149. package/datepicker/esm2015/bs-datepicker.module.js +3 -10
  150. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +3 -2
  151. package/datepicker/esm2015/bs-daterangepicker-inline.config.js +6 -2
  152. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +11 -3
  153. package/datepicker/esm2015/bs-daterangepicker.component.js +36 -7
  154. package/datepicker/esm2015/bs-daterangepicker.config.js +6 -2
  155. package/datepicker/esm2015/datepicker.config.js +6 -2
  156. package/datepicker/esm2015/datepicker.module.js +1 -1
  157. package/datepicker/esm2015/engine/flag-days-calendar.js +22 -3
  158. package/datepicker/esm2015/engine/flag-months-calendar.js +14 -3
  159. package/datepicker/esm2015/engine/flag-years-calendar.js +14 -3
  160. package/datepicker/esm2015/models/index.js +13 -1
  161. package/datepicker/esm2015/public_api.js +1 -1
  162. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  163. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +27 -33
  164. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +10 -2
  165. package/datepicker/esm2015/reducer/bs-datepicker.state.js +3 -1
  166. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
  167. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +57 -5
  168. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  169. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +73 -4
  170. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  171. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +42 -4
  172. package/datepicker/esm5/base/bs-datepicker-container.js +52 -1
  173. package/datepicker/esm5/bs-datepicker-inline.component.js +12 -1
  174. package/datepicker/esm5/bs-datepicker-inline.config.js +8 -4
  175. package/datepicker/esm5/bs-datepicker-input.directive.js +9 -1
  176. package/datepicker/esm5/bs-datepicker.component.js +58 -8
  177. package/datepicker/esm5/bs-datepicker.config.js +88 -2
  178. package/datepicker/esm5/bs-datepicker.module.js +3 -10
  179. package/datepicker/esm5/bs-daterangepicker-inline.component.js +3 -2
  180. package/datepicker/esm5/bs-daterangepicker-inline.config.js +8 -4
  181. package/datepicker/esm5/bs-daterangepicker-input.directive.js +11 -3
  182. package/datepicker/esm5/bs-daterangepicker.component.js +49 -9
  183. package/datepicker/esm5/bs-daterangepicker.config.js +8 -4
  184. package/datepicker/esm5/datepicker.config.js +6 -2
  185. package/datepicker/esm5/datepicker.module.js +1 -1
  186. package/datepicker/esm5/engine/flag-days-calendar.js +22 -3
  187. package/datepicker/esm5/engine/flag-months-calendar.js +14 -3
  188. package/datepicker/esm5/engine/flag-years-calendar.js +14 -3
  189. package/datepicker/esm5/engine/format-days-calendar.js +3 -3
  190. package/datepicker/esm5/models/index.js +13 -1
  191. package/datepicker/esm5/public_api.js +1 -1
  192. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  193. package/datepicker/esm5/reducer/bs-datepicker.effects.js +33 -35
  194. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +10 -2
  195. package/datepicker/esm5/reducer/bs-datepicker.state.js +3 -1
  196. package/datepicker/esm5/reducer/bs-datepicker.store.js +3 -3
  197. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
  198. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +74 -8
  199. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +4 -4
  200. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +92 -7
  201. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +4 -4
  202. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +25 -2
  203. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +549 -96
  204. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  205. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +606 -94
  206. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  207. package/datepicker/models/index.d.ts +5 -0
  208. package/datepicker/monthpicker.component.d.ts +1 -1
  209. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  210. package/datepicker/package.json +2 -2
  211. package/datepicker/public_api.d.ts +1 -1
  212. package/datepicker/reducer/bs-datepicker.actions.d.ts +3 -1
  213. package/datepicker/reducer/bs-datepicker.effects.d.ts +2 -1
  214. package/datepicker/reducer/bs-datepicker.state.d.ts +2 -1
  215. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  216. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +9 -5
  217. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +9 -5
  218. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +2 -0
  219. package/datepicker/utils/scss/mixins.css.map +2 -2
  220. package/datepicker/utils/scss/mixins.scss +98 -0
  221. package/datepicker/utils/scss/variables.css.map +1 -1
  222. package/datepicker/utils/scss/variables.scss +14 -0
  223. package/datepicker/yearpicker.component.d.ts +1 -1
  224. package/dropdown/bs-dropdown-container.component.d.ts +1 -1
  225. package/dropdown/bs-dropdown.directive.d.ts +12 -7
  226. package/dropdown/bs-dropdown.module.d.ts +1 -1
  227. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +13 -8
  228. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  229. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
  230. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  231. package/dropdown/esm2015/bs-dropdown.config.js +6 -2
  232. package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
  233. package/dropdown/esm2015/bs-dropdown.module.js +2 -7
  234. package/dropdown/esm5/bs-dropdown-toggle.directive.js +3 -3
  235. package/dropdown/esm5/bs-dropdown.config.js +6 -2
  236. package/dropdown/esm5/bs-dropdown.directive.js +11 -5
  237. package/dropdown/esm5/bs-dropdown.module.js +2 -7
  238. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +13 -9
  239. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  240. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +14 -9
  241. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  242. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  243. package/dropdown/package.json +2 -2
  244. package/locale/package.json +2 -2
  245. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  246. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  247. package/mini-ngrx/esm5/state.class.js +3 -3
  248. package/mini-ngrx/esm5/store.class.js +3 -3
  249. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  250. package/mini-ngrx/package.json +2 -2
  251. package/modal/bs-modal-ref.service.d.ts +15 -2
  252. package/modal/bs-modal.service.d.ts +7 -4
  253. package/modal/bundles/ngx-bootstrap-modal.umd.js +154 -59
  254. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  255. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  256. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  257. package/modal/esm2015/bs-modal-ref.service.js +20 -1
  258. package/modal/esm2015/bs-modal.service.js +102 -47
  259. package/modal/esm2015/modal-container.component.js +10 -2
  260. package/modal/esm2015/modal-options.class.js +14 -3
  261. package/modal/esm2015/modal.directive.js +10 -7
  262. package/modal/esm2015/modal.module.js +1 -1
  263. package/modal/esm2015/models/index.js +3 -1
  264. package/modal/esm2015/ngx-bootstrap-modal.js +2 -2
  265. package/modal/esm2015/public_api.js +2 -2
  266. package/modal/esm5/bs-modal-ref.service.js +19 -1
  267. package/modal/esm5/bs-modal.service.js +109 -57
  268. package/modal/esm5/modal-container.component.js +13 -2
  269. package/modal/esm5/modal-options.class.js +14 -3
  270. package/modal/esm5/modal.directive.js +9 -7
  271. package/modal/esm5/modal.module.js +1 -1
  272. package/modal/esm5/models/index.js +3 -1
  273. package/modal/esm5/ngx-bootstrap-modal.js +2 -2
  274. package/modal/esm5/public_api.js +2 -2
  275. package/modal/fesm2015/ngx-bootstrap-modal.js +148 -52
  276. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  277. package/modal/fesm5/ngx-bootstrap-modal.js +155 -61
  278. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  279. package/modal/modal-backdrop.component.d.ts +4 -2
  280. package/modal/modal-container.component.d.ts +1 -0
  281. package/modal/modal-options.class.d.ts +8 -3
  282. package/modal/modal.directive.d.ts +5 -4
  283. package/modal/modal.module.d.ts +2 -2
  284. package/modal/models/index.d.ts +1 -0
  285. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  286. package/modal/package.json +2 -2
  287. package/modal/public_api.d.ts +1 -1
  288. package/package.json +2 -2
  289. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +5 -2
  290. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  291. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  292. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  293. package/pagination/esm2015/pagination.config.js +6 -2
  294. package/pagination/esm2015/pagination.module.js +2 -3
  295. package/pagination/esm5/pagination.config.js +6 -2
  296. package/pagination/esm5/pagination.module.js +2 -3
  297. package/pagination/fesm2015/ngx-bootstrap-pagination.js +6 -3
  298. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  299. package/pagination/fesm5/ngx-bootstrap-pagination.js +6 -3
  300. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  301. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  302. package/pagination/package.json +2 -2
  303. package/pagination/pager.component.d.ts +8 -4
  304. package/pagination/pagination.component.d.ts +8 -4
  305. package/pagination/pagination.module.d.ts +1 -1
  306. package/popover/bundles/ngx-bootstrap-popover.umd.js +55 -3
  307. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  308. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  309. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  310. package/popover/esm2015/popover-container.component.js +4 -1
  311. package/popover/esm2015/popover.config.js +6 -2
  312. package/popover/esm2015/popover.directive.js +39 -2
  313. package/popover/esm2015/popover.module.js +2 -3
  314. package/popover/esm5/popover-container.component.js +4 -1
  315. package/popover/esm5/popover.config.js +6 -2
  316. package/popover/esm5/popover.directive.js +48 -2
  317. package/popover/esm5/popover.module.js +2 -3
  318. package/popover/fesm2015/ngx-bootstrap-popover.js +47 -4
  319. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  320. package/popover/fesm5/ngx-bootstrap-popover.js +56 -4
  321. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  322. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  323. package/popover/package.json +2 -2
  324. package/popover/popover-container.component.d.ts +2 -1
  325. package/popover/popover.directive.d.ts +10 -1
  326. package/popover/popover.module.d.ts +1 -1
  327. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +7 -7
  328. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  329. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
  330. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  331. package/positioning/esm2015/modifiers/flip.js +3 -3
  332. package/positioning/esm2015/modifiers/preventOverflow.js +2 -2
  333. package/positioning/esm2015/modifiers/shift.js +2 -2
  334. package/positioning/esm2015/utils/computeAutoPlacement.js +2 -2
  335. package/positioning/esm2015/utils/getClientRect.js +2 -2
  336. package/positioning/esm5/modifiers/flip.js +4 -4
  337. package/positioning/esm5/modifiers/preventOverflow.js +4 -4
  338. package/positioning/esm5/modifiers/shift.js +3 -3
  339. package/positioning/esm5/utils/computeAutoPlacement.js +3 -3
  340. package/positioning/esm5/utils/getClientRect.js +3 -3
  341. package/positioning/fesm2015/ngx-bootstrap-positioning.js +6 -6
  342. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  343. package/positioning/fesm5/ngx-bootstrap-positioning.js +7 -7
  344. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  345. package/positioning/package.json +2 -2
  346. package/positioning/positioning.service.d.ts +1 -1
  347. package/progressbar/bar.component.d.ts +4 -5
  348. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +45 -66
  349. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  350. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  351. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  352. package/progressbar/esm2015/bar.component.js +33 -48
  353. package/progressbar/esm2015/progressbar.component.js +5 -8
  354. package/progressbar/esm2015/progressbar.config.js +6 -2
  355. package/progressbar/esm2015/progressbar.module.js +2 -3
  356. package/progressbar/esm5/bar.component.js +37 -58
  357. package/progressbar/esm5/progressbar.component.js +5 -8
  358. package/progressbar/esm5/progressbar.config.js +6 -2
  359. package/progressbar/esm5/progressbar.module.js +2 -3
  360. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +42 -57
  361. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  362. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +46 -67
  363. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  364. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
  365. package/progressbar/package.json +2 -2
  366. package/progressbar/progressbar.component.d.ts +7 -6
  367. package/progressbar/progressbar.module.d.ts +1 -1
  368. package/rating/bundles/ngx-bootstrap-rating.umd.js +5 -2
  369. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  370. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  371. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  372. package/rating/esm2015/rating.config.js +6 -2
  373. package/rating/esm2015/rating.module.js +2 -3
  374. package/rating/esm5/rating.config.js +6 -2
  375. package/rating/esm5/rating.module.js +2 -3
  376. package/rating/fesm2015/ngx-bootstrap-rating.js +6 -3
  377. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  378. package/rating/fesm5/ngx-bootstrap-rating.js +6 -3
  379. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  380. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  381. package/rating/package.json +2 -2
  382. package/rating/rating.module.d.ts +1 -1
  383. package/schematics/ng-add/index.spec.js +30 -27
  384. package/schematics/ng-add/index.spec.js.map +1 -1
  385. package/schematics/utils/index.js +18 -5
  386. package/schematics/utils/index.js.map +1 -1
  387. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  388. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  389. package/sortable/esm2015/sortable.module.js +1 -1
  390. package/sortable/esm5/sortable.component.js +4 -4
  391. package/sortable/esm5/sortable.module.js +1 -1
  392. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  393. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  394. package/sortable/package.json +2 -2
  395. package/sortable/sortable.component.d.ts +2 -1
  396. package/sortable/sortable.module.d.ts +1 -1
  397. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +40 -3
  398. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  399. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  400. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  401. package/tabs/esm2015/tab.directive.js +2 -2
  402. package/tabs/esm2015/tabs.module.js +2 -3
  403. package/tabs/esm2015/tabset.component.js +22 -1
  404. package/tabs/esm2015/tabset.config.js +15 -2
  405. package/tabs/esm5/tab.directive.js +2 -2
  406. package/tabs/esm5/tabs.module.js +2 -3
  407. package/tabs/esm5/tabset.component.js +26 -1
  408. package/tabs/esm5/tabset.config.js +15 -2
  409. package/tabs/fesm2015/ngx-bootstrap-tabs.js +37 -4
  410. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  411. package/tabs/fesm5/ngx-bootstrap-tabs.js +41 -4
  412. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  413. package/tabs/ng-transclude.directive.d.ts +2 -2
  414. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  415. package/tabs/package.json +2 -2
  416. package/tabs/tab.directive.d.ts +5 -3
  417. package/tabs/tabs.module.d.ts +1 -1
  418. package/tabs/tabset.component.d.ts +9 -3
  419. package/tabs/tabset.config.d.ts +2 -0
  420. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +11 -6
  421. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  422. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +1 -1
  423. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  424. package/timepicker/esm2015/timepicker-controls.util.js +4 -2
  425. package/timepicker/esm2015/timepicker.component.js +2 -2
  426. package/timepicker/esm2015/timepicker.config.js +8 -4
  427. package/timepicker/esm2015/timepicker.module.js +2 -3
  428. package/timepicker/esm5/reducer/timepicker.store.js +3 -3
  429. package/timepicker/esm5/timepicker-controls.util.js +4 -2
  430. package/timepicker/esm5/timepicker.component.js +2 -2
  431. package/timepicker/esm5/timepicker.config.js +8 -4
  432. package/timepicker/esm5/timepicker.module.js +2 -3
  433. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +12 -7
  434. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  435. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +12 -7
  436. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  437. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  438. package/timepicker/package.json +2 -2
  439. package/timepicker/timepicker.component.d.ts +3 -3
  440. package/timepicker/timepicker.config.d.ts +1 -1
  441. package/timepicker/timepicker.module.d.ts +1 -1
  442. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +5 -2
  443. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  444. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
  445. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  446. package/tooltip/esm2015/tooltip.config.js +6 -2
  447. package/tooltip/esm2015/tooltip.directive.js +3 -3
  448. package/tooltip/esm2015/tooltip.module.js +2 -3
  449. package/tooltip/esm5/tooltip.config.js +6 -2
  450. package/tooltip/esm5/tooltip.directive.js +3 -3
  451. package/tooltip/esm5/tooltip.module.js +2 -3
  452. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +6 -3
  453. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  454. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +6 -3
  455. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  456. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  457. package/tooltip/package.json +2 -2
  458. package/tooltip/tooltip-container.component.d.ts +1 -1
  459. package/tooltip/tooltip.directive.d.ts +15 -10
  460. package/tooltip/tooltip.module.d.ts +1 -1
  461. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +170 -19
  462. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  463. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
  464. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  465. package/typeahead/esm2015/typeahead-utils.js +35 -4
  466. package/typeahead/esm2015/typeahead.config.js +6 -2
  467. package/typeahead/esm2015/typeahead.directive.js +121 -16
  468. package/typeahead/esm2015/typeahead.module.js +2 -3
  469. package/typeahead/esm5/typeahead-utils.js +37 -6
  470. package/typeahead/esm5/typeahead.config.js +6 -2
  471. package/typeahead/esm5/typeahead.directive.js +135 -18
  472. package/typeahead/esm5/typeahead.module.js +2 -3
  473. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +160 -21
  474. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  475. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +172 -21
  476. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  477. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  478. package/typeahead/package.json +2 -2
  479. package/typeahead/typeahead-container.component.d.ts +14 -12
  480. package/typeahead/typeahead-utils.d.ts +1 -1
  481. package/typeahead/typeahead.directive.d.ts +20 -1
  482. package/typeahead/typeahead.module.d.ts +1 -1
  483. package/utils/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-tabs.umd.js","sources":["ng://ngx-bootstrap/tabs/ng-transclude.directive.ts","ng://ngx-bootstrap/tabs/tabset.config.ts","ng://ngx-bootstrap/tabs/tabset.component.ts","ng://ngx-bootstrap/tabs/tab.directive.ts","ng://ngx-bootstrap/tabs/tab-heading.directive.ts","ng://ngx-bootstrap/tabs/tabs.module.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngTransclude]'\n})\nexport class NgTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n /* tslint:disable-next-line:no-any */\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n /* tslint:disable-next-line:no-any */\n set ngTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n /* tslint:disable-next-line:no-any */\n get ngTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor(viewRef: ViewContainerRef) {\n this.viewRef = viewRef;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TabsetConfig {\n /** provides default navigation context class: 'tabs' or 'pills' */\n type = 'tabs';\n /** aria label for tab list */\n ariaLabel = 'Tabs';\n}\n","import { Component, HostBinding, Input, OnDestroy, Renderer2, ElementRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\nimport { TabsetConfig } from './tabset.config';\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\n@Component({\n selector: 'tabset',\n templateUrl: './tabset.component.html',\n styleUrls: ['./tabs.scss']\n})\nexport class TabsetComponent implements OnDestroy {\n /** if true tabs will be placed vertically */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: boolean) {\n this._vertical = value;\n this.setClassMap();\n }\n\n /** if true tabs fill the container and have a consistent width */\n @Input()\n get justified(): boolean {\n return this._justified;\n }\n set justified(value: boolean) {\n this._justified = value;\n this.setClassMap();\n }\n\n /** navigation context class: 'tabs' or 'pills' */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value;\n this.setClassMap();\n }\n\n @HostBinding('class.tab-container') clazz = true;\n\n tabs: TabDirective[] = [];\n classMap: { [key: string]: boolean } = {};\n\n /** aria label for tab list */\n ariaLabel: string;\n\n protected isDestroyed: boolean;\n protected _vertical: boolean;\n protected _justified: boolean;\n protected _type: string;\n\n constructor(\n config: TabsetConfig,\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {\n Object.assign(this, config);\n }\n\n ngOnDestroy(): void {\n this.isDestroyed = true;\n }\n\n addTab(tab: TabDirective): void {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && typeof tab.active === 'undefined';\n }\n\n removeTab(\n tab: TabDirective,\n options = { reselect: true, emit: true }\n ): void {\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(\n tab.elementRef.nativeElement.parentNode,\n tab.elementRef.nativeElement\n );\n }\n }\n\n /* tslint:disable-next-line: cyclomatic-complexity */\n keyNavActions(event: KeyboardEvent, index: number) {\n const list: HTMLElement[] = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n\n // tslint:disable-next-line:deprecation\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\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab: any;\n let shift = 1;\n\n do {\n nextTab = list[(index + shift) % list.length];\n\n shift++;\n } while (nextTab.classList.contains('disabled'));\n\n nextTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n } else {\n previousTab = list[i - shift];\n }\n\n shift++;\n } while (previousTab.classList.contains('disabled'));\n\n previousTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n\n let firstTab: any;\n let shift = 0;\n\n do {\n firstTab = list[shift % list.length];\n\n shift++;\n } while (firstTab.classList.contains('disabled'));\n\n firstTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n\n let lastTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n } else {\n lastTab = list[i - shift];\n }\n\n shift++;\n } while (lastTab.classList.contains('disabled'));\n\n lastTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n\n return;\n }\n\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n\n protected getClosestTabIndex(index: number): number {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\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\n return -1;\n }\n\n protected hasAvailableTabs(index: number): boolean {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n\n return false;\n }\n\n protected setClassMap(): void {\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}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n OnInit,\n OnDestroy,\n ElementRef,\n Renderer2\n} from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\n\n@Directive({ selector: 'tab, [tab]' })\nexport class TabDirective implements OnInit, OnDestroy {\n /** tab header text */\n @Input() heading: string;\n /** tab id. The same id with suffix '-link' will be added to the corresponding &lt;li&gt; element */\n @HostBinding('attr.id')\n @Input() id: string;\n /** if true tab can not be activated */\n @Input() disabled: boolean;\n /** if true tab can be removable, additional button will appear */\n @Input() removable: boolean;\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n @Input()\n get customClass(): string {\n return this._customClass;\n }\n\n set customClass(customClass: string) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n\n this._customClass = customClass ? customClass.trim() : null;\n\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n\n /** tab active state toggle */\n @HostBinding('class.active')\n @Input()\n get active(): boolean {\n return this._active;\n }\n\n set active(active: boolean) {\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\n return;\n }\n\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach((tab: TabDirective) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n @Output() selectTab: EventEmitter<TabDirective> = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n @Output() deselect: EventEmitter<TabDirective> = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n @Output() removed: EventEmitter<TabDirective> = new EventEmitter();\n\n @HostBinding('class.tab-pane') addClass = true;\n @HostBinding('attr.role') role = 'tabpanel';\n @HostBinding('attr.aria-labelledby') get ariaLabelledby(): string {\n return this.id ? `${this.id}-link` : '';\n }\n\n /* tslint:disable-next-line:no-any */\n headingRef: TemplateRef<any>;\n tabset: TabsetComponent;\n protected _active: boolean;\n protected _customClass: string;\n\n constructor(\n tabset: TabsetComponent,\n public elementRef: ElementRef,\n public renderer: Renderer2\n ) {\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n\n ngOnInit(): void {\n this.removable = this.removable;\n }\n\n ngOnDestroy(): void {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\n\n/** Should be used to mark <ng-template> element as a template for tab heading */\n@Directive({ selector: '[tabHeading]' })\nexport class TabHeadingDirective {\n /* tslint:disable-next-line:no-any */\n templateRef: TemplateRef<any>;\n\n /* tslint:disable-next-line:no-any */\n constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\n tab.headingRef = templateRef;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\nimport { TabsetConfig } from './tabset.config';\n\n@NgModule({\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})\nexport class TabsModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TabsModule,\n providers: [TabsetConfig]\n };\n }\n}\n"],"names":["Directive","ViewContainerRef","Input","Injectable","Component","Renderer2","ElementRef","HostBinding","EventEmitter","Output","TemplateRef","NgModule","CommonModule"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-tabs.umd.js","sources":["ng://ngx-bootstrap/tabs/ng-transclude.directive.ts","ng://ngx-bootstrap/tabs/tabset.config.ts","ng://ngx-bootstrap/tabs/tabset.component.ts","ng://ngx-bootstrap/tabs/tab.directive.ts","ng://ngx-bootstrap/tabs/tab-heading.directive.ts","ng://ngx-bootstrap/tabs/tabs.module.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngTransclude]'\n})\nexport class NgTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n /* tslint:disable-next-line:no-any */\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n /* tslint:disable-next-line:no-any */\n set ngTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n /* tslint:disable-next-line:no-any */\n get ngTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor(viewRef: ViewContainerRef) {\n this.viewRef = viewRef;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TabsetConfig {\n /** provides default navigation context class: 'tabs' or 'pills' */\n type = 'tabs';\n /** provides possibility to set keyNavigations enable or disable, by default is enable */\n isKeysAllowed = true;\n /** aria label for tab list */\n ariaLabel = 'Tabs';\n}\n","import { Component, HostBinding, Input, OnDestroy, Renderer2, ElementRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\nimport { TabsetConfig } from './tabset.config';\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\n@Component({\n selector: 'tabset',\n templateUrl: './tabset.component.html',\n styleUrls: ['./tabs.scss']\n})\nexport class TabsetComponent implements OnDestroy {\n /** if true tabs will be placed vertically */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: boolean) {\n this._vertical = value;\n this.setClassMap();\n }\n\n /** if true tabs fill the container and have a consistent width */\n @Input()\n get justified(): boolean {\n return this._justified;\n }\n set justified(value: boolean) {\n this._justified = value;\n this.setClassMap();\n }\n\n /** navigation context class: 'tabs' or 'pills' */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value;\n this.setClassMap();\n }\n\n get isKeysAllowed(): boolean {\n return this._isKeysAllowed;\n }\n\n set isKeysAllowed(value: boolean) {\n this._isKeysAllowed = value;\n }\n\n\n @HostBinding('class.tab-container') clazz = true;\n\n tabs: TabDirective[] = [];\n classMap: { [key: string]: boolean } = {};\n\n /** aria label for tab list */\n ariaLabel: string;\n\n protected isDestroyed: boolean;\n protected _vertical: boolean;\n protected _justified: boolean;\n protected _type: string;\n protected _isKeysAllowed: boolean;\n\n constructor(\n config: TabsetConfig,\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {\n Object.assign(this, config);\n }\n\n ngOnDestroy(): void {\n this.isDestroyed = true;\n }\n\n addTab(tab: TabDirective): void {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && typeof tab.active === 'undefined';\n }\n\n removeTab(\n tab: TabDirective,\n options = { reselect: true, emit: true }\n ): void {\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(\n tab.elementRef.nativeElement.parentNode,\n tab.elementRef.nativeElement\n );\n }\n }\n\n /* tslint:disable-next-line: cyclomatic-complexity */\n keyNavActions(event: KeyboardEvent, index: number) {\n if (!this.isKeysAllowed) {\n return;\n }\n const list: HTMLElement[] = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n\n // tslint:disable-next-line:deprecation\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\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab: any;\n let shift = 1;\n\n do {\n nextTab = list[(index + shift) % list.length];\n\n shift++;\n } while (nextTab.classList.contains('disabled'));\n\n nextTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n } else {\n previousTab = list[i - shift];\n }\n\n shift++;\n } while (previousTab.classList.contains('disabled'));\n\n previousTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n\n let firstTab: any;\n let shift = 0;\n\n do {\n firstTab = list[shift % list.length];\n\n shift++;\n } while (firstTab.classList.contains('disabled'));\n\n firstTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n\n let lastTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n } else {\n lastTab = list[i - shift];\n }\n\n shift++;\n } while (lastTab.classList.contains('disabled'));\n\n lastTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n\n return;\n }\n\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n\n protected getClosestTabIndex(index: number): number {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\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\n return -1;\n }\n\n protected hasAvailableTabs(index: number): boolean {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n\n return false;\n }\n\n protected setClassMap(): void {\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}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n OnInit,\n OnDestroy,\n ElementRef,\n Renderer2\n} from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\n\n@Directive({ selector: 'tab, [tab]', exportAs: 'tab' })\nexport class TabDirective implements OnInit, OnDestroy {\n /** tab header text */\n @Input() heading: string;\n /** tab id. The same id with suffix '-link' will be added to the corresponding &lt;li&gt; element */\n @HostBinding('attr.id')\n @Input() id: string;\n /** if true tab can not be activated */\n @Input() disabled: boolean;\n /** if true tab can be removable, additional button will appear */\n @Input() removable: boolean;\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n @Input()\n get customClass(): string {\n return this._customClass;\n }\n\n set customClass(customClass: string) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n\n this._customClass = customClass ? customClass.trim() : null;\n\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n\n /** tab active state toggle */\n @HostBinding('class.active')\n @Input()\n get active(): boolean {\n return this._active;\n }\n\n set active(active: boolean) {\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\n return;\n }\n\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach((tab: TabDirective) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n @Output() selectTab: EventEmitter<TabDirective> = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n @Output() deselect: EventEmitter<TabDirective> = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n @Output() removed: EventEmitter<TabDirective> = new EventEmitter();\n\n @HostBinding('class.tab-pane') addClass = true;\n @HostBinding('attr.role') role = 'tabpanel';\n @HostBinding('attr.aria-labelledby') get ariaLabelledby(): string {\n return this.id ? `${this.id}-link` : '';\n }\n\n /* tslint:disable-next-line:no-any */\n headingRef: TemplateRef<any>;\n tabset: TabsetComponent;\n protected _active: boolean;\n protected _customClass: string;\n\n constructor(\n tabset: TabsetComponent,\n public elementRef: ElementRef,\n public renderer: Renderer2\n ) {\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n\n ngOnInit(): void {\n this.removable = this.removable;\n }\n\n ngOnDestroy(): void {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\n\n/** Should be used to mark <ng-template> element as a template for tab heading */\n@Directive({ selector: '[tabHeading]' })\nexport class TabHeadingDirective {\n /* tslint:disable-next-line:no-any */\n templateRef: TemplateRef<any>;\n\n /* tslint:disable-next-line:no-any */\n constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\n tab.headingRef = templateRef;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\n\n@NgModule({\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})\nexport class TabsModule {\n static forRoot(): ModuleWithProviders<TabsModule> {\n return {\n ngModule: TabsModule,\n providers: []\n };\n }\n}\n"],"names":["Directive","ViewContainerRef","Input","Injectable","Component","Renderer2","ElementRef","HostBinding","EventEmitter","Output","TemplateRef","NgModule","CommonModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-bootstrap/tabs",["exports","@angular/core","@angular/common"],t):t(((e=e||self)["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"].tabs={}),e.ng.core,e.ng.common)}(this,(function(e,t,a){"use strict";var s=function(){function e(e){this.viewRef=e}return Object.defineProperty(e.prototype,"ngTransclude",{get:function(){return this._ngTransclude},set:function(e){this._ngTransclude=e,e&&this.viewRef.createEmbeddedView(e)},enumerable:!0,configurable:!0}),e.decorators=[{type:t.Directive,args:[{selector:"[ngTransclude]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef}]},e.propDecorators={ngTransclude:[{type:t.Input}]},e}();var n=function(){function e(){this.type="tabs",this.ariaLabel="Tabs"}return e.decorators=[{type:t.Injectable}],e}();var i=function(){function e(e,t,a){this.renderer=t,this.elementRef=a,this.clazz=!0,this.tabs=[],this.classMap={},Object.assign(this,e)}return Object.defineProperty(e.prototype,"vertical",{get:function(){return this._vertical},set:function(e){this._vertical=e,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"justified",{get:function(){return this._justified},set:function(e){this._justified=e,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this._type},set:function(e){this._type=e,this.setClassMap()},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.isDestroyed=!0},e.prototype.addTab=function(e){this.tabs.push(e),e.active=1===this.tabs.length&&void 0===e.active},e.prototype.removeTab=function(e,t){void 0===t&&(t={reselect:!0,emit:!0});var a=this.tabs.indexOf(e);if(-1!==a&&!this.isDestroyed){if(t.reselect&&e.active&&this.hasAvailableTabs(a)){var s=this.getClosestTabIndex(a);this.tabs[s].active=!0}t.emit&&e.removed.emit(e),this.tabs.splice(a,1),e.elementRef.nativeElement.parentNode&&this.renderer.removeChild(e.elementRef.nativeElement.parentNode,e.elementRef.nativeElement)}},e.prototype.keyNavActions=function(e,t){var a=Array.from(this.elementRef.nativeElement.querySelectorAll(".nav-link"));if(13===e.keyCode||"Enter"===e.key||32===e.keyCode||"Space"===e.key)return e.preventDefault(),void a[t%a.length].click();if(39!==e.keyCode&&"RightArrow"!==e.key)if(37!==e.keyCode&&"LeftArrow"!==e.key)if(36!==e.keyCode&&"Home"!==e.key)if(35!==e.keyCode&&"End"!==e.key){if((46===e.keyCode||"Delete"===e.key)&&this.tabs[t].removable){if(this.removeTab(this.tabs[t]),a[t+1])return void a[(t+1)%a.length].focus();a[a.length-1]&&a[0].focus()}}else{e.preventDefault();var s=void 0;r=1,o=t;do{o-r<0?(s=a[o=a.length-1],r=0):s=a[o-r],r++}while(s.classList.contains("disabled"));s.focus()}else{e.preventDefault();var n=void 0;r=0;do{n=a[r%a.length],r++}while(n.classList.contains("disabled"));n.focus()}else{var i=void 0,r=1,o=t;do{o-r<0?(i=a[o=a.length-1],r=0):i=a[o-r],r++}while(i.classList.contains("disabled"));i.focus()}else{var l=void 0,r=1;do{l=a[(t+r)%a.length],r++}while(l.classList.contains("disabled"));l.focus()}},e.prototype.getClosestTabIndex=function(e){var t=this.tabs.length;if(!t)return-1;for(var a=1;a<=t;a+=1){var s=e-a,n=e+a;if(this.tabs[s]&&!this.tabs[s].disabled)return s;if(this.tabs[n]&&!this.tabs[n].disabled)return n}return-1},e.prototype.hasAvailableTabs=function(e){var t=this.tabs.length;if(!t)return!1;for(var a=0;a<t;a+=1)if(!this.tabs[a].disabled&&a!==e)return!0;return!1},e.prototype.setClassMap=function(){var e;this.classMap=((e={"nav-stacked":this.vertical,"flex-column":this.vertical,"nav-justified":this.justified})["nav-"+this.type]=!0,e)},e.decorators=[{type:t.Component,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}"]}]}],e.ctorParameters=function(){return[{type:n},{type:t.Renderer2},{type:t.ElementRef}]},e.propDecorators={vertical:[{type:t.Input}],justified:[{type:t.Input}],type:[{type:t.Input}],clazz:[{type:t.HostBinding,args:["class.tab-container"]}]},e}();var r=function(){function e(e,a,s){this.elementRef=a,this.renderer=s,this.selectTab=new t.EventEmitter,this.deselect=new t.EventEmitter,this.removed=new t.EventEmitter,this.addClass=!0,this.role="tabpanel",this.tabset=e,this.tabset.addTab(this)}return Object.defineProperty(e.prototype,"customClass",{get:function(){return this._customClass},set:function(e){var t=this;this.customClass&&this.customClass.split(" ").forEach((function(e){t.renderer.removeClass(t.elementRef.nativeElement,e)})),this._customClass=e?e.trim():null,this.customClass&&this.customClass.split(" ").forEach((function(e){t.renderer.addClass(t.elementRef.nativeElement,e)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"active",{get:function(){return this._active},set:function(e){var t=this;this._active!==e&&(this.disabled&&e||!e?this._active&&!e&&(this.deselect.emit(this),this._active=e):(this._active=e,this.selectTab.emit(this),this.tabset.tabs.forEach((function(e){e!==t&&(e.active=!1)}))))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ariaLabelledby",{get:function(){return this.id?this.id+"-link":""},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.removable=this.removable},e.prototype.ngOnDestroy=function(){this.tabset.removeTab(this,{reselect:!1,emit:!1})},e.decorators=[{type:t.Directive,args:[{selector:"tab, [tab]"}]}],e.ctorParameters=function(){return[{type:i},{type:t.ElementRef},{type:t.Renderer2}]},e.propDecorators={heading:[{type:t.Input}],id:[{type:t.HostBinding,args:["attr.id"]},{type:t.Input}],disabled:[{type:t.Input}],removable:[{type:t.Input}],customClass:[{type:t.Input}],active:[{type:t.HostBinding,args:["class.active"]},{type:t.Input}],selectTab:[{type:t.Output}],deselect:[{type:t.Output}],removed:[{type:t.Output}],addClass:[{type:t.HostBinding,args:["class.tab-pane"]}],role:[{type:t.HostBinding,args:["attr.role"]}],ariaLabelledby:[{type:t.HostBinding,args:["attr.aria-labelledby"]}]},e}();var o=function(){function e(e,t){t.headingRef=e}return e.decorators=[{type:t.Directive,args:[{selector:"[tabHeading]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef},{type:r}]},e}();var l=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[n]}},e.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule],declarations:[s,r,i,o],exports:[r,i,o,s]}]}],e}();e.NgTranscludeDirective=s,e.TabDirective=r,e.TabHeadingDirective=o,e.TabsModule=l,e.TabsetComponent=i,e.TabsetConfig=n,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-bootstrap/tabs",["exports","@angular/core","@angular/common"],t):t(((e=e||self)["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"].tabs={}),e.ng.core,e.ng.common)}(this,(function(e,t,s){"use strict";var n=function(){function e(e){this.viewRef=e}return Object.defineProperty(e.prototype,"ngTransclude",{get:function(){return this._ngTransclude},set:function(e){this._ngTransclude=e,e&&this.viewRef.createEmbeddedView(e)},enumerable:!0,configurable:!0}),e.decorators=[{type:t.Directive,args:[{selector:"[ngTransclude]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef}]},e.propDecorators={ngTransclude:[{type:t.Input}]},e}();var i=function(){function e(){this.type="tabs",this.isKeysAllowed=!0,this.ariaLabel="Tabs"}return e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ɵprov=t["ɵɵdefineInjectable"]({factory:function(){return new e},token:e,providedIn:"root"}),e}();var a=function(){function e(e,t,s){this.renderer=t,this.elementRef=s,this.clazz=!0,this.tabs=[],this.classMap={},Object.assign(this,e)}return Object.defineProperty(e.prototype,"vertical",{get:function(){return this._vertical},set:function(e){this._vertical=e,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"justified",{get:function(){return this._justified},set:function(e){this._justified=e,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this._type},set:function(e){this._type=e,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isKeysAllowed",{get:function(){return this._isKeysAllowed},set:function(e){this._isKeysAllowed=e},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.isDestroyed=!0},e.prototype.addTab=function(e){this.tabs.push(e),e.active=1===this.tabs.length&&void 0===e.active},e.prototype.removeTab=function(e,t){void 0===t&&(t={reselect:!0,emit:!0});var s=this.tabs.indexOf(e);if(-1!==s&&!this.isDestroyed){if(t.reselect&&e.active&&this.hasAvailableTabs(s)){var n=this.getClosestTabIndex(s);this.tabs[n].active=!0}t.emit&&e.removed.emit(e),this.tabs.splice(s,1),e.elementRef.nativeElement.parentNode&&this.renderer.removeChild(e.elementRef.nativeElement.parentNode,e.elementRef.nativeElement)}},e.prototype.keyNavActions=function(e,t){if(this.isKeysAllowed){var s=Array.from(this.elementRef.nativeElement.querySelectorAll(".nav-link"));if(13===e.keyCode||"Enter"===e.key||32===e.keyCode||"Space"===e.key)return e.preventDefault(),void s[t%s.length].click();if(39!==e.keyCode&&"RightArrow"!==e.key)if(37!==e.keyCode&&"LeftArrow"!==e.key)if(36!==e.keyCode&&"Home"!==e.key)if(35!==e.keyCode&&"End"!==e.key){if((46===e.keyCode||"Delete"===e.key)&&this.tabs[t].removable){if(this.removeTab(this.tabs[t]),s[t+1])return void s[(t+1)%s.length].focus();s[s.length-1]&&s[0].focus()}}else{e.preventDefault();var n=void 0;r=1,o=t;do{o-r<0?(n=s[o=s.length-1],r=0):n=s[o-r],r++}while(n.classList.contains("disabled"));n.focus()}else{e.preventDefault();var i=void 0;r=0;do{i=s[r%s.length],r++}while(i.classList.contains("disabled"));i.focus()}else{var a=void 0,r=1,o=t;do{o-r<0?(a=s[o=s.length-1],r=0):a=s[o-r],r++}while(a.classList.contains("disabled"));a.focus()}else{var l=void 0,r=1;do{l=s[(t+r)%s.length],r++}while(l.classList.contains("disabled"));l.focus()}}},e.prototype.getClosestTabIndex=function(e){var t=this.tabs.length;if(!t)return-1;for(var s=1;s<=t;s+=1){var n=e-s,i=e+s;if(this.tabs[n]&&!this.tabs[n].disabled)return n;if(this.tabs[i]&&!this.tabs[i].disabled)return i}return-1},e.prototype.hasAvailableTabs=function(e){var t=this.tabs.length;if(!t)return!1;for(var s=0;s<t;s+=1)if(!this.tabs[s].disabled&&s!==e)return!0;return!1},e.prototype.setClassMap=function(){var e;this.classMap=((e={"nav-stacked":this.vertical,"flex-column":this.vertical,"nav-justified":this.justified})["nav-"+this.type]=!0,e)},e.decorators=[{type:t.Component,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}"]}]}],e.ctorParameters=function(){return[{type:i},{type:t.Renderer2},{type:t.ElementRef}]},e.propDecorators={vertical:[{type:t.Input}],justified:[{type:t.Input}],type:[{type:t.Input}],clazz:[{type:t.HostBinding,args:["class.tab-container"]}]},e}();var r=function(){function e(e,s,n){this.elementRef=s,this.renderer=n,this.selectTab=new t.EventEmitter,this.deselect=new t.EventEmitter,this.removed=new t.EventEmitter,this.addClass=!0,this.role="tabpanel",this.tabset=e,this.tabset.addTab(this)}return Object.defineProperty(e.prototype,"customClass",{get:function(){return this._customClass},set:function(e){var t=this;this.customClass&&this.customClass.split(" ").forEach((function(e){t.renderer.removeClass(t.elementRef.nativeElement,e)})),this._customClass=e?e.trim():null,this.customClass&&this.customClass.split(" ").forEach((function(e){t.renderer.addClass(t.elementRef.nativeElement,e)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"active",{get:function(){return this._active},set:function(e){var t=this;this._active!==e&&(this.disabled&&e||!e?this._active&&!e&&(this.deselect.emit(this),this._active=e):(this._active=e,this.selectTab.emit(this),this.tabset.tabs.forEach((function(e){e!==t&&(e.active=!1)}))))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ariaLabelledby",{get:function(){return this.id?this.id+"-link":""},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.removable=this.removable},e.prototype.ngOnDestroy=function(){this.tabset.removeTab(this,{reselect:!1,emit:!1})},e.decorators=[{type:t.Directive,args:[{selector:"tab, [tab]",exportAs:"tab"}]}],e.ctorParameters=function(){return[{type:a},{type:t.ElementRef},{type:t.Renderer2}]},e.propDecorators={heading:[{type:t.Input}],id:[{type:t.HostBinding,args:["attr.id"]},{type:t.Input}],disabled:[{type:t.Input}],removable:[{type:t.Input}],customClass:[{type:t.Input}],active:[{type:t.HostBinding,args:["class.active"]},{type:t.Input}],selectTab:[{type:t.Output}],deselect:[{type:t.Output}],removed:[{type:t.Output}],addClass:[{type:t.HostBinding,args:["class.tab-pane"]}],role:[{type:t.HostBinding,args:["attr.role"]}],ariaLabelledby:[{type:t.HostBinding,args:["attr.aria-labelledby"]}]},e}();var o=function(){function e(e,t){t.headingRef=e}return e.decorators=[{type:t.Directive,args:[{selector:"[tabHeading]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef},{type:r}]},e}();var l=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:t.NgModule,args:[{imports:[s.CommonModule],declarations:[n,r,a,o],exports:[r,a,o,n]}]}],e}();e.NgTranscludeDirective=n,e.TabDirective=r,e.TabHeadingDirective=o,e.TabsModule=l,e.TabsetComponent=a,e.TabsetConfig=i,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=ngx-bootstrap-tabs.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://ngx-bootstrap/tabs/ng-transclude.directive.ts","ng://ngx-bootstrap/tabs/tabset.config.ts","ng://ngx-bootstrap/tabs/tabset.component.ts","ng://ngx-bootstrap/tabs/tab.directive.ts","ng://ngx-bootstrap/tabs/tab-heading.directive.ts","ng://ngx-bootstrap/tabs/tabs.module.ts"],"names":["NgTranscludeDirective","viewRef","this","Object","defineProperty","prototype","_ngTransclude","templateRef","createEmbeddedView","Directive","args","selector","ViewContainerRef","Input","TabsetConfig","type","ariaLabel","Injectable","TabsetComponent","config","renderer","elementRef","clazz","tabs","classMap","assign","_vertical","value","setClassMap","_justified","_type","ngOnDestroy","isDestroyed","addTab","tab","push","active","length","removeTab","options","reselect","emit","index","indexOf","hasAvailableTabs","newActiveIndex","getClosestTabIndex","removed","splice","nativeElement","parentNode","removeChild","keyNavActions","event","list","Array","from","querySelectorAll","keyCode","key","preventDefault","click","removable","focus","lastTab","shift","i","classList","contains","firstTab","previousTab","nextTab","tabsLength","step","prevIndex","nextIndex","disabled","_a","nav-stacked","vertical","flex-column","nav-justified","justified","Component","template","Renderer2","ElementRef","HostBinding","TabDirective","tabset","selectTab","EventEmitter","deselect","addClass","role","_customClass","customClass","_this","split","forEach","cssClass","removeClass","trim","_active","id","ngOnInit","Output","TabHeadingDirective","headingRef","TemplateRef","TabsModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","declarations","exports"],"mappings":"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","sourcesContent":["import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngTransclude]'\n})\nexport class NgTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n /* tslint:disable-next-line:no-any */\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n /* tslint:disable-next-line:no-any */\n set ngTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n /* tslint:disable-next-line:no-any */\n get ngTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor(viewRef: ViewContainerRef) {\n this.viewRef = viewRef;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TabsetConfig {\n /** provides default navigation context class: 'tabs' or 'pills' */\n type = 'tabs';\n /** aria label for tab list */\n ariaLabel = 'Tabs';\n}\n","import { Component, HostBinding, Input, OnDestroy, Renderer2, ElementRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\nimport { TabsetConfig } from './tabset.config';\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\n@Component({\n selector: 'tabset',\n templateUrl: './tabset.component.html',\n styleUrls: ['./tabs.scss']\n})\nexport class TabsetComponent implements OnDestroy {\n /** if true tabs will be placed vertically */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: boolean) {\n this._vertical = value;\n this.setClassMap();\n }\n\n /** if true tabs fill the container and have a consistent width */\n @Input()\n get justified(): boolean {\n return this._justified;\n }\n set justified(value: boolean) {\n this._justified = value;\n this.setClassMap();\n }\n\n /** navigation context class: 'tabs' or 'pills' */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value;\n this.setClassMap();\n }\n\n @HostBinding('class.tab-container') clazz = true;\n\n tabs: TabDirective[] = [];\n classMap: { [key: string]: boolean } = {};\n\n /** aria label for tab list */\n ariaLabel: string;\n\n protected isDestroyed: boolean;\n protected _vertical: boolean;\n protected _justified: boolean;\n protected _type: string;\n\n constructor(\n config: TabsetConfig,\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {\n Object.assign(this, config);\n }\n\n ngOnDestroy(): void {\n this.isDestroyed = true;\n }\n\n addTab(tab: TabDirective): void {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && typeof tab.active === 'undefined';\n }\n\n removeTab(\n tab: TabDirective,\n options = { reselect: true, emit: true }\n ): void {\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(\n tab.elementRef.nativeElement.parentNode,\n tab.elementRef.nativeElement\n );\n }\n }\n\n /* tslint:disable-next-line: cyclomatic-complexity */\n keyNavActions(event: KeyboardEvent, index: number) {\n const list: HTMLElement[] = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n\n // tslint:disable-next-line:deprecation\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\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab: any;\n let shift = 1;\n\n do {\n nextTab = list[(index + shift) % list.length];\n\n shift++;\n } while (nextTab.classList.contains('disabled'));\n\n nextTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n } else {\n previousTab = list[i - shift];\n }\n\n shift++;\n } while (previousTab.classList.contains('disabled'));\n\n previousTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n\n let firstTab: any;\n let shift = 0;\n\n do {\n firstTab = list[shift % list.length];\n\n shift++;\n } while (firstTab.classList.contains('disabled'));\n\n firstTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n\n let lastTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n } else {\n lastTab = list[i - shift];\n }\n\n shift++;\n } while (lastTab.classList.contains('disabled'));\n\n lastTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n\n return;\n }\n\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n\n protected getClosestTabIndex(index: number): number {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\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\n return -1;\n }\n\n protected hasAvailableTabs(index: number): boolean {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n\n return false;\n }\n\n protected setClassMap(): void {\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}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n OnInit,\n OnDestroy,\n ElementRef,\n Renderer2\n} from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\n\n@Directive({ selector: 'tab, [tab]' })\nexport class TabDirective implements OnInit, OnDestroy {\n /** tab header text */\n @Input() heading: string;\n /** tab id. The same id with suffix '-link' will be added to the corresponding &lt;li&gt; element */\n @HostBinding('attr.id')\n @Input() id: string;\n /** if true tab can not be activated */\n @Input() disabled: boolean;\n /** if true tab can be removable, additional button will appear */\n @Input() removable: boolean;\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n @Input()\n get customClass(): string {\n return this._customClass;\n }\n\n set customClass(customClass: string) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n\n this._customClass = customClass ? customClass.trim() : null;\n\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n\n /** tab active state toggle */\n @HostBinding('class.active')\n @Input()\n get active(): boolean {\n return this._active;\n }\n\n set active(active: boolean) {\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\n return;\n }\n\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach((tab: TabDirective) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n @Output() selectTab: EventEmitter<TabDirective> = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n @Output() deselect: EventEmitter<TabDirective> = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n @Output() removed: EventEmitter<TabDirective> = new EventEmitter();\n\n @HostBinding('class.tab-pane') addClass = true;\n @HostBinding('attr.role') role = 'tabpanel';\n @HostBinding('attr.aria-labelledby') get ariaLabelledby(): string {\n return this.id ? `${this.id}-link` : '';\n }\n\n /* tslint:disable-next-line:no-any */\n headingRef: TemplateRef<any>;\n tabset: TabsetComponent;\n protected _active: boolean;\n protected _customClass: string;\n\n constructor(\n tabset: TabsetComponent,\n public elementRef: ElementRef,\n public renderer: Renderer2\n ) {\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n\n ngOnInit(): void {\n this.removable = this.removable;\n }\n\n ngOnDestroy(): void {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\n\n/** Should be used to mark <ng-template> element as a template for tab heading */\n@Directive({ selector: '[tabHeading]' })\nexport class TabHeadingDirective {\n /* tslint:disable-next-line:no-any */\n templateRef: TemplateRef<any>;\n\n /* tslint:disable-next-line:no-any */\n constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\n tab.headingRef = templateRef;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\nimport { TabsetConfig } from './tabset.config';\n\n@NgModule({\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})\nexport class TabsModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TabsModule,\n providers: [TabsetConfig]\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["ng://ngx-bootstrap/tabs/ng-transclude.directive.ts","ng://ngx-bootstrap/tabs/tabset.config.ts","ng://ngx-bootstrap/tabs/tabset.component.ts","ng://ngx-bootstrap/tabs/tab.directive.ts","ng://ngx-bootstrap/tabs/tab-heading.directive.ts","ng://ngx-bootstrap/tabs/tabs.module.ts"],"names":["NgTranscludeDirective","viewRef","this","Object","defineProperty","prototype","_ngTransclude","templateRef","createEmbeddedView","Directive","args","selector","ViewContainerRef","Input","TabsetConfig","type","isKeysAllowed","ariaLabel","Injectable","providedIn","TabsetComponent","config","renderer","elementRef","clazz","tabs","classMap","assign","_vertical","value","setClassMap","_justified","_type","_isKeysAllowed","ngOnDestroy","isDestroyed","addTab","tab","push","active","length","removeTab","options","reselect","emit","index","indexOf","hasAvailableTabs","newActiveIndex","getClosestTabIndex","removed","splice","nativeElement","parentNode","removeChild","keyNavActions","event","list","Array","from","querySelectorAll","keyCode","key","preventDefault","click","removable","focus","lastTab","shift","i","classList","contains","firstTab","previousTab","nextTab","tabsLength","step","prevIndex","nextIndex","disabled","_a","nav-stacked","vertical","flex-column","nav-justified","justified","Component","template","Renderer2","ElementRef","HostBinding","TabDirective","tabset","selectTab","EventEmitter","deselect","addClass","role","_customClass","customClass","_this","split","forEach","cssClass","removeClass","trim","_active","id","ngOnInit","exportAs","Output","TabHeadingDirective","headingRef","TemplateRef","TabsModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","declarations","exports"],"mappings":"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","sourcesContent":["import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngTransclude]'\n})\nexport class NgTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n /* tslint:disable-next-line:no-any */\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n /* tslint:disable-next-line:no-any */\n set ngTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n /* tslint:disable-next-line:no-any */\n get ngTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor(viewRef: ViewContainerRef) {\n this.viewRef = viewRef;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TabsetConfig {\n /** provides default navigation context class: 'tabs' or 'pills' */\n type = 'tabs';\n /** provides possibility to set keyNavigations enable or disable, by default is enable */\n isKeysAllowed = true;\n /** aria label for tab list */\n ariaLabel = 'Tabs';\n}\n","import { Component, HostBinding, Input, OnDestroy, Renderer2, ElementRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\nimport { TabsetConfig } from './tabset.config';\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\n@Component({\n selector: 'tabset',\n templateUrl: './tabset.component.html',\n styleUrls: ['./tabs.scss']\n})\nexport class TabsetComponent implements OnDestroy {\n /** if true tabs will be placed vertically */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: boolean) {\n this._vertical = value;\n this.setClassMap();\n }\n\n /** if true tabs fill the container and have a consistent width */\n @Input()\n get justified(): boolean {\n return this._justified;\n }\n set justified(value: boolean) {\n this._justified = value;\n this.setClassMap();\n }\n\n /** navigation context class: 'tabs' or 'pills' */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value;\n this.setClassMap();\n }\n\n get isKeysAllowed(): boolean {\n return this._isKeysAllowed;\n }\n\n set isKeysAllowed(value: boolean) {\n this._isKeysAllowed = value;\n }\n\n\n @HostBinding('class.tab-container') clazz = true;\n\n tabs: TabDirective[] = [];\n classMap: { [key: string]: boolean } = {};\n\n /** aria label for tab list */\n ariaLabel: string;\n\n protected isDestroyed: boolean;\n protected _vertical: boolean;\n protected _justified: boolean;\n protected _type: string;\n protected _isKeysAllowed: boolean;\n\n constructor(\n config: TabsetConfig,\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {\n Object.assign(this, config);\n }\n\n ngOnDestroy(): void {\n this.isDestroyed = true;\n }\n\n addTab(tab: TabDirective): void {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && typeof tab.active === 'undefined';\n }\n\n removeTab(\n tab: TabDirective,\n options = { reselect: true, emit: true }\n ): void {\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(\n tab.elementRef.nativeElement.parentNode,\n tab.elementRef.nativeElement\n );\n }\n }\n\n /* tslint:disable-next-line: cyclomatic-complexity */\n keyNavActions(event: KeyboardEvent, index: number) {\n if (!this.isKeysAllowed) {\n return;\n }\n const list: HTMLElement[] = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n\n // tslint:disable-next-line:deprecation\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\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab: any;\n let shift = 1;\n\n do {\n nextTab = list[(index + shift) % list.length];\n\n shift++;\n } while (nextTab.classList.contains('disabled'));\n\n nextTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n } else {\n previousTab = list[i - shift];\n }\n\n shift++;\n } while (previousTab.classList.contains('disabled'));\n\n previousTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n\n let firstTab: any;\n let shift = 0;\n\n do {\n firstTab = list[shift % list.length];\n\n shift++;\n } while (firstTab.classList.contains('disabled'));\n\n firstTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n\n let lastTab: any;\n let shift = 1;\n let i = index;\n\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n } else {\n lastTab = list[i - shift];\n }\n\n shift++;\n } while (lastTab.classList.contains('disabled'));\n\n lastTab.focus();\n\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n\n return;\n }\n\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n\n protected getClosestTabIndex(index: number): number {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\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\n return -1;\n }\n\n protected hasAvailableTabs(index: number): boolean {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n\n return false;\n }\n\n protected setClassMap(): void {\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}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n OnInit,\n OnDestroy,\n ElementRef,\n Renderer2\n} from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\n\n@Directive({ selector: 'tab, [tab]', exportAs: 'tab' })\nexport class TabDirective implements OnInit, OnDestroy {\n /** tab header text */\n @Input() heading: string;\n /** tab id. The same id with suffix '-link' will be added to the corresponding &lt;li&gt; element */\n @HostBinding('attr.id')\n @Input() id: string;\n /** if true tab can not be activated */\n @Input() disabled: boolean;\n /** if true tab can be removable, additional button will appear */\n @Input() removable: boolean;\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n @Input()\n get customClass(): string {\n return this._customClass;\n }\n\n set customClass(customClass: string) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n\n this._customClass = customClass ? customClass.trim() : null;\n\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n\n /** tab active state toggle */\n @HostBinding('class.active')\n @Input()\n get active(): boolean {\n return this._active;\n }\n\n set active(active: boolean) {\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\n return;\n }\n\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach((tab: TabDirective) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n @Output() selectTab: EventEmitter<TabDirective> = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n @Output() deselect: EventEmitter<TabDirective> = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n @Output() removed: EventEmitter<TabDirective> = new EventEmitter();\n\n @HostBinding('class.tab-pane') addClass = true;\n @HostBinding('attr.role') role = 'tabpanel';\n @HostBinding('attr.aria-labelledby') get ariaLabelledby(): string {\n return this.id ? `${this.id}-link` : '';\n }\n\n /* tslint:disable-next-line:no-any */\n headingRef: TemplateRef<any>;\n tabset: TabsetComponent;\n protected _active: boolean;\n protected _customClass: string;\n\n constructor(\n tabset: TabsetComponent,\n public elementRef: ElementRef,\n public renderer: Renderer2\n ) {\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n\n ngOnInit(): void {\n this.removable = this.removable;\n }\n\n ngOnDestroy(): void {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\n\n/** Should be used to mark <ng-template> element as a template for tab heading */\n@Directive({ selector: '[tabHeading]' })\nexport class TabHeadingDirective {\n /* tslint:disable-next-line:no-any */\n templateRef: TemplateRef<any>;\n\n /* tslint:disable-next-line:no-any */\n constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\n tab.headingRef = templateRef;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\n\n@NgModule({\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})\nexport class TabsModule {\n static forRoot(): ModuleWithProviders<TabsModule> {\n return {\n ngModule: TabsModule,\n providers: []\n };\n }\n}\n"]}
@@ -116,7 +116,7 @@ export class TabDirective {
116
116
  }
117
117
  }
118
118
  TabDirective.decorators = [
119
- { type: Directive, args: [{ selector: 'tab, [tab]' },] }
119
+ { type: Directive, args: [{ selector: 'tab, [tab]', exportAs: 'tab' },] }
120
120
  ];
121
121
  /** @nocollapse */
122
122
  TabDirective.ctorParameters = () => [
@@ -197,4 +197,4 @@ if (false) {
197
197
  /** @type {?} */
198
198
  TabDirective.prototype.renderer;
199
199
  }
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFVBQVUsRUFDVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3JELE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFnRnZCLFlBQ0UsTUFBdUIsRUFDaEIsVUFBc0IsRUFDdEIsUUFBbUI7UUFEbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXOzs7O1FBckJsQixjQUFTLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7Ozs7UUFFM0QsYUFBUSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDOzs7O1FBRTFELFlBQU8sR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFnQjFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Ozs7O0lBNUVELElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELElBQUksV0FBVyxDQUFDLFdBQW1CO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O1lBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxRQUFR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NUMsa0NBQTZCOztJQUM3Qiw4QkFBd0I7Ozs7O0lBQ3hCLCtCQUEyQjs7Ozs7SUFDM0Isb0NBQStCOztJQUk3QixrQ0FBNkI7O0lBQzdCLGdDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICd0YWIsIFt0YWJdJyB9KVxuZXhwb3J0IGNsYXNzIFRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIHRhYiBoZWFkZXIgdGV4dCAqL1xuICBASW5wdXQoKSBoZWFkaW5nOiBzdHJpbmc7XG4gIC8qKiB0YWIgaWQuIFRoZSBzYW1lIGlkIHdpdGggc3VmZml4ICctbGluaycgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29ycmVzcG9uZGluZyAmbHQ7bGkmZ3Q7IGVsZW1lbnQgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIC8qKiBpZiB0cnVlIHRhYiBjYW4gbm90IGJlIGFjdGl2YXRlZCAqL1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGFiIGNhbiBiZSByZW1vdmFibGUsIGFkZGl0aW9uYWwgYnV0dG9uIHdpbGwgYXBwZWFyICovXG4gIEBJbnB1dCgpIHJlbW92YWJsZTogYm9vbGVhbjtcbiAgLyoqIGlmIHNldCwgd2lsbCBiZSBhZGRlZCB0byB0aGUgdGFiJ3MgY2xhc3MgYXR0cmlidXRlLiBNdWx0aXBsZSBjbGFzc2VzIGFyZSBzdXBwb3J0ZWQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBjdXN0b21DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21DbGFzcztcbiAgfVxuXG4gIHNldCBjdXN0b21DbGFzcyhjdXN0b21DbGFzczogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tQ2xhc3MpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjc3NDbGFzczogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX2N1c3RvbUNsYXNzID0gY3VzdG9tQ2xhc3MgPyBjdXN0b21DbGFzcy50cmltKCkgOiBudWxsO1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tQ2xhc3MpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjc3NDbGFzczogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiB0YWIgYWN0aXZlIHN0YXRlIHRvZ2dsZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gIEBJbnB1dCgpXG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuXG4gIHNldCBhY3RpdmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSA9PT0gYWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICgodGhpcy5kaXNhYmxlZCAmJiBhY3RpdmUpIHx8ICFhY3RpdmUpIHtcbiAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgIWFjdGl2ZSkge1xuICAgICAgICB0aGlzLmRlc2VsZWN0LmVtaXQodGhpcyk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLnNlbGVjdFRhYi5lbWl0KHRoaXMpO1xuICAgIHRoaXMudGFic2V0LnRhYnMuZm9yRWFjaCgodGFiOiBUYWJEaXJlY3RpdmUpID0+IHtcbiAgICAgIGlmICh0YWIgIT09IHRoaXMpIHtcbiAgICAgICAgdGFiLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIGZpcmVkIHdoZW4gdGFiIGJlY2FtZSBhY3RpdmUsICRldmVudDpUYWIgZXF1YWxzIHRvIHNlbGVjdGVkIGluc3RhbmNlIG9mIFRhYiBjb21wb25lbnQgKi9cbiAgQE91dHB1dCgpIHNlbGVjdFRhYjogRXZlbnRFbWl0dGVyPFRhYkRpcmVjdGl2ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8qKiBmaXJlZCB3aGVuIHRhYiBiZWNhbWUgaW5hY3RpdmUsICRldmVudDpUYWIgZXF1YWxzIHRvIGRlc2VsZWN0ZWQgaW5zdGFuY2Ugb2YgVGFiIGNvbXBvbmVudCAqL1xuICBAT3V0cHV0KCkgZGVzZWxlY3Q6IEV2ZW50RW1pdHRlcjxUYWJEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogZmlyZWQgYmVmb3JlIHRhYiB3aWxsIGJlIHJlbW92ZWQsICRldmVudDpUYWIgZXF1YWxzIHRvIGluc3RhbmNlIG9mIHJlbW92ZWQgdGFiICovXG4gIEBPdXRwdXQoKSByZW1vdmVkOiBFdmVudEVtaXR0ZXI8VGFiRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRhYi1wYW5lJykgYWRkQ2xhc3MgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAndGFicGFuZWwnO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgZ2V0IGFyaWFMYWJlbGxlZGJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyBgJHt0aGlzLmlkfS1saW5rYCA6ICcnO1xuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xuICBoZWFkaW5nUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIF9hY3RpdmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfY3VzdG9tQ2xhc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudCxcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLnRhYnNldCA9IHRhYnNldDtcbiAgICB0aGlzLnRhYnNldC5hZGRUYWIodGhpcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92YWJsZSA9IHRoaXMucmVtb3ZhYmxlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50YWJzZXQucmVtb3ZlVGFiKHRoaXMsIHsgcmVzZWxlY3Q6IGZhbHNlLCBlbWl0OiBmYWxzZSB9KTtcbiAgfVxufVxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFVBQVUsRUFDVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3JELE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFnRnZCLFlBQ0UsTUFBdUIsRUFDaEIsVUFBc0IsRUFDdEIsUUFBbUI7UUFEbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXOzs7O1FBckJsQixjQUFTLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7Ozs7UUFFM0QsYUFBUSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDOzs7O1FBRTFELFlBQU8sR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFnQjFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Ozs7O0lBNUVELElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELElBQUksV0FBVyxDQUFDLFdBQW1CO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O1lBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxRQUFR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Qzs7SUFDL0MsNEJBQTRDOztJQU01QyxrQ0FBNkI7O0lBQzdCLDhCQUF3Qjs7Ozs7SUFDeEIsK0JBQTJCOzs7OztJQUMzQixvQ0FBK0I7O0lBSTdCLGtDQUE2Qjs7SUFDN0IsZ0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYnNldENvbXBvbmVudCB9IGZyb20gJy4vdGFic2V0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ3RhYiwgW3RhYl0nLCBleHBvcnRBczogJ3RhYicgfSlcbmV4cG9ydCBjbGFzcyBUYWJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKiB0YWIgaGVhZGVyIHRleHQgKi9cbiAgQElucHV0KCkgaGVhZGluZzogc3RyaW5nO1xuICAvKiogdGFiIGlkLiBUaGUgc2FtZSBpZCB3aXRoIHN1ZmZpeCAnLWxpbmsnIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgJmx0O2xpJmd0OyBlbGVtZW50ICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAvKiogaWYgdHJ1ZSB0YWIgY2FuIG5vdCBiZSBhY3RpdmF0ZWQgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8qKiBpZiB0cnVlIHRhYiBjYW4gYmUgcmVtb3ZhYmxlLCBhZGRpdGlvbmFsIGJ1dHRvbiB3aWxsIGFwcGVhciAqL1xuICBASW5wdXQoKSByZW1vdmFibGU6IGJvb2xlYW47XG4gIC8qKiBpZiBzZXQsIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHRhYidzIGNsYXNzIGF0dHJpYnV0ZS4gTXVsdGlwbGUgY2xhc3NlcyBhcmUgc3VwcG9ydGVkLiAqL1xuICBASW5wdXQoKVxuICBnZXQgY3VzdG9tQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ2xhc3M7XG4gIH1cblxuICBzZXQgY3VzdG9tQ2xhc3MoY3VzdG9tQ2xhc3M6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjc3NDbGFzcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9jdXN0b21DbGFzcyA9IGN1c3RvbUNsYXNzID8gY3VzdG9tQ2xhc3MudHJpbSgpIDogbnVsbDtcblxuICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjc3NDbGFzcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogdGFiIGFjdGl2ZSBzdGF0ZSB0b2dnbGUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKVxuICBASW5wdXQoKVxuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICBzZXQgYWN0aXZlKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9hY3RpdmUgPT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZGlzYWJsZWQgJiYgYWN0aXZlKSB8fCAhYWN0aXZlKSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlICYmICFhY3RpdmUpIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdC5lbWl0KHRoaXMpO1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgdGhpcy5zZWxlY3RUYWIuZW1pdCh0aGlzKTtcbiAgICB0aGlzLnRhYnNldC50YWJzLmZvckVhY2goKHRhYjogVGFiRGlyZWN0aXZlKSA9PiB7XG4gICAgICBpZiAodGFiICE9PSB0aGlzKSB7XG4gICAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBmaXJlZCB3aGVuIHRhYiBiZWNhbWUgYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBzZWxlY3RlZCBpbnN0YW5jZSBvZiBUYWIgY29tcG9uZW50ICovXG4gIEBPdXRwdXQoKSBzZWxlY3RUYWI6IEV2ZW50RW1pdHRlcjxUYWJEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogZmlyZWQgd2hlbiB0YWIgYmVjYW1lIGluYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBkZXNlbGVjdGVkIGluc3RhbmNlIG9mIFRhYiBjb21wb25lbnQgKi9cbiAgQE91dHB1dCgpIGRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8VGFiRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqIGZpcmVkIGJlZm9yZSB0YWIgd2lsbCBiZSByZW1vdmVkLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBpbnN0YW5jZSBvZiByZW1vdmVkIHRhYiAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlZDogRXZlbnRFbWl0dGVyPFRhYkRpcmVjdGl2ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWItcGFuZScpIGFkZENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ3RhYnBhbmVsJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpIGdldCBhcmlhTGFiZWxsZWRieSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gYCR7dGhpcy5pZH0tbGlua2AgOiAnJztcbiAgfVxuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgaGVhZGluZ1JlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgdGFic2V0OiBUYWJzZXRDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBfYWN0aXZlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX2N1c3RvbUNsYXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGFic2V0OiBUYWJzZXRDb21wb25lbnQsXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy50YWJzZXQgPSB0YWJzZXQ7XG4gICAgdGhpcy50YWJzZXQuYWRkVGFiKHRoaXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmFibGUgPSB0aGlzLnJlbW92YWJsZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGFic2V0LnJlbW92ZVRhYih0aGlzLCB7IHJlc2VsZWN0OiBmYWxzZSwgZW1pdDogZmFsc2UgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -8,7 +8,6 @@ import { NgTranscludeDirective } from './ng-transclude.directive';
8
8
  import { TabHeadingDirective } from './tab-heading.directive';
9
9
  import { TabDirective } from './tab.directive';
10
10
  import { TabsetComponent } from './tabset.component';
11
- import { TabsetConfig } from './tabset.config';
12
11
  export class TabsModule {
13
12
  /**
14
13
  * @return {?}
@@ -16,7 +15,7 @@ export class TabsModule {
16
15
  static forRoot() {
17
16
  return {
18
17
  ngModule: TabsModule,
19
- providers: [TabsetConfig]
18
+ providers: []
20
19
  };
21
20
  }
22
21
  }
@@ -37,4 +36,4 @@ TabsModule.decorators = [
37
36
  ]
38
37
  },] }
39
38
  ];
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL3RhYnMvIiwic291cmNlcyI6WyJ0YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBaUIvQyxNQUFNLE9BQU8sVUFBVTs7OztJQUNyQixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDMUIsQ0FBQztJQUNKLENBQUM7OztZQXJCRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQixZQUFZO29CQUNaLGVBQWU7b0JBQ2YsbUJBQW1CO2lCQUNwQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlO29CQUNmLG1CQUFtQjtvQkFDbkIscUJBQXFCO2lCQUN0QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nVHJhbnNjbHVkZURpcmVjdGl2ZSB9IGZyb20gJy4vbmctdHJhbnNjbHVkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFiSGVhZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLWhlYWRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFic2V0Q29uZmlnIH0gZnJvbSAnLi90YWJzZXQuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5nVHJhbnNjbHVkZURpcmVjdGl2ZSxcbiAgICBUYWJEaXJlY3RpdmUsXG4gICAgVGFic2V0Q29tcG9uZW50LFxuICAgIFRhYkhlYWRpbmdEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRhYkRpcmVjdGl2ZSxcbiAgICBUYWJzZXRDb21wb25lbnQsXG4gICAgVGFiSGVhZGluZ0RpcmVjdGl2ZSxcbiAgICBOZ1RyYW5zY2x1ZGVEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBUYWJzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbVGFic2V0Q29uZmlnXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL3RhYnMvIiwic291cmNlcyI6WyJ0YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFpQnJELE1BQU0sT0FBTyxVQUFVOzs7O0lBQ3JCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7OztZQXJCRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQixZQUFZO29CQUNaLGVBQWU7b0JBQ2YsbUJBQW1CO2lCQUNwQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlO29CQUNmLG1CQUFtQjtvQkFDbkIscUJBQXFCO2lCQUN0QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nVHJhbnNjbHVkZURpcmVjdGl2ZSB9IGZyb20gJy4vbmctdHJhbnNjbHVkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFiSGVhZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLWhlYWRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmdUcmFuc2NsdWRlRGlyZWN0aXZlLFxuICAgIFRhYkRpcmVjdGl2ZSxcbiAgICBUYWJzZXRDb21wb25lbnQsXG4gICAgVGFiSGVhZGluZ0RpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGFiRGlyZWN0aXZlLFxuICAgIFRhYnNldENvbXBvbmVudCxcbiAgICBUYWJIZWFkaW5nRGlyZWN0aXZlLFxuICAgIE5nVHJhbnNjbHVkZURpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRhYnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFRhYnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -65,6 +65,19 @@ export class TabsetComponent {
65
65
  this._type = value;
66
66
  this.setClassMap();
67
67
  }
68
+ /**
69
+ * @return {?}
70
+ */
71
+ get isKeysAllowed() {
72
+ return this._isKeysAllowed;
73
+ }
74
+ /**
75
+ * @param {?} value
76
+ * @return {?}
77
+ */
78
+ set isKeysAllowed(value) {
79
+ this._isKeysAllowed = value;
80
+ }
68
81
  /**
69
82
  * @return {?}
70
83
  */
@@ -111,6 +124,9 @@ export class TabsetComponent {
111
124
  * @return {?}
112
125
  */
113
126
  keyNavActions(event, index) {
127
+ if (!this.isKeysAllowed) {
128
+ return;
129
+ }
114
130
  /** @type {?} */
115
131
  const list = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));
116
132
  // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));
@@ -315,6 +331,11 @@ if (false) {
315
331
  * @protected
316
332
  */
317
333
  TabsetComponent.prototype._type;
334
+ /**
335
+ * @type {?}
336
+ * @protected
337
+ */
338
+ TabsetComponent.prototype._isKeysAllowed;
318
339
  /**
319
340
  * @type {?}
320
341
  * @private
@@ -326,4 +347,4 @@ if (false) {
326
347
  */
327
348
  TabsetComponent.prototype.elementRef;
328
349
  }
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYnNldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUS9DLE1BQU0sT0FBTyxlQUFlOzs7Ozs7SUE0QzFCLFlBQ0UsTUFBb0IsRUFDWixRQUFtQixFQUNuQixVQUFzQjtRQUR0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFoQkksVUFBSyxHQUFHLElBQUksQ0FBQztRQUVqRCxTQUFJLEdBQW1CLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQStCLEVBQUUsQ0FBQztRQWV4QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7OztJQWhERCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQzs7Ozs7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7OztJQUdELElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDOzs7OztJQUNELElBQUksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBR0QsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENB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Q0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO2dCQUN6QyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQzVCLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDL0IsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUk7U0FDM0IsQ0FBQztJQUNKLENBQUM7OztZQXZQRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGkvQkFBc0M7O2FBRXZDOzs7O1lBUFEsWUFBWTtZQUg4QixTQUFTO1lBQUUsVUFBVTs7O3VCQWFyRSxLQUFLO3dCQVVMLEtBQUs7bUJBVUwsS0FBSztvQkFTTCxXQUFXLFNBQUMscUJBQXFCOzs7O0lBQWxDLGdDQUFpRDs7SUFFakQsK0JBQTBCOztJQUMxQixtQ0FBMEM7Ozs7O0lBRzFDLG9DQUFrQjs7Ozs7SUFFbEIsc0NBQStCOzs7OztJQUMvQixvQ0FBNkI7Ozs7O0lBQzdCLHFDQUE4Qjs7Ozs7SUFDOUIsZ0NBQXdCOzs7OztJQUl0QixtQ0FBMkI7Ozs7O0lBQzNCLHFDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUYWJEaXJlY3RpdmUgfSBmcm9tICcuL3RhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFic2V0Q29uZmlnIH0gZnJvbSAnLi90YWJzZXQuY29uZmlnJztcbi8vIHRvZG86IGFkZCBhY3RpdmUgZXZlbnQgdG8gdGFiXG4vLyB0b2RvOiBmaXg/IG1peGluZyBzdGF0aWMgYW5kIGR5bmFtaWMgdGFicyBwb3NpdGlvbiB0YWJzIGluIG9yZGVyIG9mIGNyZWF0aW9uXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJzZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFic2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFicy5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFic2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqIGlmIHRydWUgdGFicyB3aWxsIGJlIHBsYWNlZCB2ZXJ0aWNhbGx5ICovXG4gIEBJbnB1dCgpXG4gIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmVydGljYWwgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICAvKiogaWYgdHJ1ZSB0YWJzIGZpbGwgdGhlIGNvbnRhaW5lciBhbmQgaGF2ZSBhIGNvbnNpc3RlbnQgd2lkdGggKi9cbiAgQElucHV0KClcbiAgZ2V0IGp1c3RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fanVzdGlmaWVkO1xuICB9XG4gIHNldCBqdXN0aWZpZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9qdXN0aWZpZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICAvKiogbmF2aWdhdGlvbiBjb250ZXh0IGNsYXNzOiAndGFicycgb3IgJ3BpbGxzJyAqL1xuICBASW5wdXQoKVxuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWItY29udGFpbmVyJykgY2xhenogPSB0cnVlO1xuXG4gIHRhYnM6IFRhYkRpcmVjdGl2ZVtdID0gW107XG4gIGNsYXNzTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIC8qKiBhcmlhIGxhYmVsIGZvciB0YWIgbGlzdCAqL1xuICBhcmlhTGFiZWw6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgaXNEZXN0cm95ZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfdmVydGljYWw6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfanVzdGlmaWVkOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX3R5cGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IFRhYnNldENvbmZpZyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkVGFiKHRhYjogVGFiRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLnB1c2godGFiKTtcbiAgICB0YWIuYWN0aXZlID0gdGhpcy50YWJzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgdGFiLmFjdGl2ZSA9PT0gJ3VuZGVmaW5lZCc7XG4gIH1cblxuICByZW1vdmVUYWIoXG4gICAgdGFiOiBUYWJEaXJlY3RpdmUsXG4gICAgb3B0aW9ucyA9IHsgcmVzZWxlY3Q6IHRydWUsIGVtaXQ6IHRydWUgfVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudGFicy5pbmRleE9mKHRhYik7XG4gICAgaWYgKGluZGV4ID09PSAtMSB8fCB0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFNlbGVjdCBhIG5ldyB0YWIgaWYgdGhlIHRhYiB0byBiZSByZW1vdmVkIGlzIHNlbGVjdGVkIGFuZCBub3QgZGVzdHJveWVkXG4gICAgaWYgKG9wdGlvbnMucmVzZWxlY3QgJiYgdGFiLmFjdGl2ZSAmJiB0aGlzLmhhc0F2YWlsYWJsZVRhYnMoaW5kZXgpKSB7XG4gICAgICBjb25zdCBuZXdBY3RpdmVJbmRleCA9IHRoaXMuZ2V0Q2xvc2VzdFRhYkluZGV4KGluZGV4KTtcbiAgICAgIHRoaXMudGFic1tuZXdBY3RpdmVJbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZW1pdCkge1xuICAgICAgdGFiLnJlbW92ZWQuZW1pdCh0YWIpO1xuICAgIH1cbiAgICB0aGlzLnRhYnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBpZiAodGFiLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKFxuICAgICAgICB0YWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICAgIHRhYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjeWNsb21hdGljLWNvbXBsZXhpdHkgKi9cbiAga2V5TmF2QWN0aW9ucyhldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGxpc3Q6IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uYXYtbGluaycpKTtcbiAgICAvLyBjb25zdCBhY3RpdmVFbExpc3QgPSBsaXN0LmZpbHRlcigoZWw6IEhUTUxFbGVtZW50KSA9PiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5Q29kZSA9PT0gMzIgfHwgZXZlbnQua2V5ID09PSAnU3BhY2UnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgY3VycmVudFRhYiA9IGxpc3RbKGluZGV4KSAlIGxpc3QubGVuZ3RoXTtcbiAgICAgIGN1cnJlbnRUYWIuY2xpY2soKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzOSB8fCBldmVudC5rZXkgPT09ICdSaWdodEFycm93Jykge1xuICAgICAgbGV0IG5leHRUYWI6IGFueTtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgbmV4dFRhYiA9IGxpc3RbKGluZGV4ICsgc2hpZnQpICUgbGlzdC5sZW5ndGhdO1xuXG4gICAgICAgIHNoaWZ0Kys7XG4gICAgICB9IHdoaWxlIChuZXh0VGFiLmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSk7XG5cbiAgICAgIG5leHRUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNyB8fCBldmVudC5rZXkgPT09ICdMZWZ0QXJyb3cnKSB7XG4gICAgICBsZXQgcHJldmlvdXNUYWI6IGFueTtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmICgoaSAtIHNoaWZ0KSA8IDApIHtcbiAgICAgICAgICBpID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgIHByZXZpb3VzVGFiID0gbGlzdFtpXTtcbiAgICAgICAgICBzaGlmdCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNUYWIgPSBsaXN0W2kgLSBzaGlmdF07XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAocHJldmlvdXNUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgcHJldmlvdXNUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNiB8fCBldmVudC5rZXkgPT09ICdIb21lJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgbGV0IGZpcnN0VGFiOiBhbnk7XG4gICAgICBsZXQgc2hpZnQgPSAwO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGZpcnN0VGFiID0gbGlzdFtzaGlmdCAlIGxpc3QubGVuZ3RoXTtcblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAoZmlyc3RUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgZmlyc3RUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNSB8fCBldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBsZXQgbGFzdFRhYjogYW55O1xuICAgICAgbGV0IHNoaWZ0ID0gMTtcbiAgICAgIGxldCBpID0gaW5kZXg7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKChpIC0gc2hpZnQpIDwgMCkge1xuICAgICAgICAgIGkgPSBsaXN0Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgbGFzdFRhYiA9IGxpc3RbaV07XG4gICAgICAgICAgc2hpZnQgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxhc3RUYWIgPSBsaXN0W2kgLSBzaGlmdF07XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAobGFzdFRhYi5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuXG4gICAgICBsYXN0VGFiLmZvY3VzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gNDYgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xuICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0ucmVtb3ZhYmxlKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVGFiKHRoaXMudGFic1tpbmRleF0pO1xuXG4gICAgICAgIGlmIChsaXN0W2luZGV4ICsgMV0pIHtcbiAgICAgICAgICBsaXN0WyhpbmRleCArIDEpICUgbGlzdC5sZW5ndGhdLmZvY3VzKCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdFtsaXN0Lmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgbGlzdFswXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldENsb3Nlc3RUYWJJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWJzTGVuZ3RoID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICBpZiAoIXRhYnNMZW5ndGgpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSB0YWJzTGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgIGNvbnN0IHByZXZJbmRleCA9IGluZGV4IC0gc3RlcDtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgc3RlcDtcbiAgICAgIGlmICh0aGlzLnRhYnNbcHJldkluZGV4XSAmJiAhdGhpcy50YWJzW3ByZXZJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIHByZXZJbmRleDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRhYnNbbmV4dEluZGV4XSAmJiAhdGhpcy50YWJzW25leHRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIG5leHRJbmRleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQXZhaWxhYmxlVGFicyhpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFic0xlbmd0aCA9IHRoaXMudGFicy5sZW5ndGg7XG4gICAgaWYgKCF0YWJzTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJzTGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICghdGhpcy50YWJzW2ldLmRpc2FibGVkICYmIGkgIT09IGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRDbGFzc01hcCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsYXNzTWFwID0ge1xuICAgICAgJ25hdi1zdGFja2VkJzogdGhpcy52ZXJ0aWNhbCxcbiAgICAgICdmbGV4LWNvbHVtbic6IHRoaXMudmVydGljYWwsXG4gICAgICAnbmF2LWp1c3RpZmllZCc6IHRoaXMuanVzdGlmaWVkLFxuICAgICAgW2BuYXYtJHt0aGlzLnR5cGV9YF06IHRydWVcbiAgICB9O1xuICB9XG59XG4iXX0=
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYnNldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUS9DLE1BQU0sT0FBTyxlQUFlOzs7Ozs7SUFzRDFCLFlBQ0UsTUFBb0IsRUFDWixRQUFtQixFQUNuQixVQUFzQjtRQUR0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqQkksVUFBSyxHQUFHLElBQUksQ0FBQztRQUVqRCxTQUFJLEdBQW1CLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQStCLEVBQUUsQ0FBQztRQWdCeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUExREQsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFHRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Ozs7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7OztJQUdELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxD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QixxQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGFiRGlyZWN0aXZlIH0gZnJvbSAnLi90YWIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYnNldENvbmZpZyB9IGZyb20gJy4vdGFic2V0LmNvbmZpZyc7XG4vLyB0b2RvOiBhZGQgYWN0aXZlIGV2ZW50IHRvIHRhYlxuLy8gdG9kbzogZml4PyBtaXhpbmcgc3RhdGljIGFuZCBkeW5hbWljIHRhYnMgcG9zaXRpb24gdGFicyBpbiBvcmRlciBvZiBjcmVhdGlvblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFic2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnNldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYnMuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKiBpZiB0cnVlIHRhYnMgd2lsbCBiZSBwbGFjZWQgdmVydGljYWxseSAqL1xuICBASW5wdXQoKVxuICBnZXQgdmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsO1xuICB9XG4gIHNldCB2ZXJ0aWNhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZlcnRpY2FsID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgLyoqIGlmIHRydWUgdGFicyBmaWxsIHRoZSBjb250YWluZXIgYW5kIGhhdmUgYSBjb25zaXN0ZW50IHdpZHRoICovXG4gIEBJbnB1dCgpXG4gIGdldCBqdXN0aWZpZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2p1c3RpZmllZDtcbiAgfVxuICBzZXQganVzdGlmaWVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fanVzdGlmaWVkID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgLyoqIG5hdmlnYXRpb24gY29udGV4dCBjbGFzczogJ3RhYnMnIG9yICdwaWxscycgKi9cbiAgQElucHV0KClcbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuICBzZXQgdHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuXG4gIGdldCBpc0tleXNBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0tleXNBbGxvd2VkO1xuICB9XG5cbiAgc2V0IGlzS2V5c0FsbG93ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0tleXNBbGxvd2VkID0gdmFsdWU7XG4gIH1cblxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFiLWNvbnRhaW5lcicpIGNsYXp6ID0gdHJ1ZTtcblxuICB0YWJzOiBUYWJEaXJlY3RpdmVbXSA9IFtdO1xuICBjbGFzc01hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKiogYXJpYSBsYWJlbCBmb3IgdGFiIGxpc3QgKi9cbiAgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGlzRGVzdHJveWVkOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX3ZlcnRpY2FsOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX2p1c3RpZmllZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfaXNLZXlzQWxsb3dlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IFRhYnNldENvbmZpZyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkVGFiKHRhYjogVGFiRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLnB1c2godGFiKTtcbiAgICB0YWIuYWN0aXZlID0gdGhpcy50YWJzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgdGFiLmFjdGl2ZSA9PT0gJ3VuZGVmaW5lZCc7XG4gIH1cblxuICByZW1vdmVUYWIoXG4gICAgdGFiOiBUYWJEaXJlY3RpdmUsXG4gICAgb3B0aW9ucyA9IHsgcmVzZWxlY3Q6IHRydWUsIGVtaXQ6IHRydWUgfVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudGFicy5pbmRleE9mKHRhYik7XG4gICAgaWYgKGluZGV4ID09PSAtMSB8fCB0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFNlbGVjdCBhIG5ldyB0YWIgaWYgdGhlIHRhYiB0byBiZSByZW1vdmVkIGlzIHNlbGVjdGVkIGFuZCBub3QgZGVzdHJveWVkXG4gICAgaWYgKG9wdGlvbnMucmVzZWxlY3QgJiYgdGFiLmFjdGl2ZSAmJiB0aGlzLmhhc0F2YWlsYWJsZVRhYnMoaW5kZXgpKSB7XG4gICAgICBjb25zdCBuZXdBY3RpdmVJbmRleCA9IHRoaXMuZ2V0Q2xvc2VzdFRhYkluZGV4KGluZGV4KTtcbiAgICAgIHRoaXMudGFic1tuZXdBY3RpdmVJbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZW1pdCkge1xuICAgICAgdGFiLnJlbW92ZWQuZW1pdCh0YWIpO1xuICAgIH1cbiAgICB0aGlzLnRhYnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBpZiAodGFiLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKFxuICAgICAgICB0YWIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICAgIHRhYi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjeWNsb21hdGljLWNvbXBsZXhpdHkgKi9cbiAga2V5TmF2QWN0aW9ucyhldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pc0tleXNBbGxvd2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxpc3Q6IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uYXYtbGluaycpKTtcbiAgICAvLyBjb25zdCBhY3RpdmVFbExpc3QgPSBsaXN0LmZpbHRlcigoZWw6IEhUTUxFbGVtZW50KSA9PiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5Q29kZSA9PT0gMzIgfHwgZXZlbnQua2V5ID09PSAnU3BhY2UnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgY3VycmVudFRhYiA9IGxpc3RbKGluZGV4KSAlIGxpc3QubGVuZ3RoXTtcbiAgICAgIGN1cnJlbnRUYWIuY2xpY2soKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzOSB8fCBldmVudC5rZXkgPT09ICdSaWdodEFycm93Jykge1xuICAgICAgbGV0IG5leHRUYWI6IGFueTtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgbmV4dFRhYiA9IGxpc3RbKGluZGV4ICsgc2hpZnQpICUgbGlzdC5sZW5ndGhdO1xuXG4gICAgICAgIHNoaWZ0Kys7XG4gICAgICB9IHdoaWxlIChuZXh0VGFiLmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSk7XG5cbiAgICAgIG5leHRUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNyB8fCBldmVudC5rZXkgPT09ICdMZWZ0QXJyb3cnKSB7XG4gICAgICBsZXQgcHJldmlvdXNUYWI6IGFueTtcbiAgICAgIGxldCBzaGlmdCA9IDE7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmICgoaSAtIHNoaWZ0KSA8IDApIHtcbiAgICAgICAgICBpID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgICAgIHByZXZpb3VzVGFiID0gbGlzdFtpXTtcbiAgICAgICAgICBzaGlmdCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNUYWIgPSBsaXN0W2kgLSBzaGlmdF07XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAocHJldmlvdXNUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgcHJldmlvdXNUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNiB8fCBldmVudC5rZXkgPT09ICdIb21lJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgbGV0IGZpcnN0VGFiOiBhbnk7XG4gICAgICBsZXQgc2hpZnQgPSAwO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGZpcnN0VGFiID0gbGlzdFtzaGlmdCAlIGxpc3QubGVuZ3RoXTtcblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAoZmlyc3RUYWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcblxuICAgICAgZmlyc3RUYWIuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAzNSB8fCBldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBsZXQgbGFzdFRhYjogYW55O1xuICAgICAgbGV0IHNoaWZ0ID0gMTtcbiAgICAgIGxldCBpID0gaW5kZXg7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKChpIC0gc2hpZnQpIDwgMCkge1xuICAgICAgICAgIGkgPSBsaXN0Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgbGFzdFRhYiA9IGxpc3RbaV07XG4gICAgICAgICAgc2hpZnQgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxhc3RUYWIgPSBsaXN0W2kgLSBzaGlmdF07XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCsrO1xuICAgICAgfSB3aGlsZSAobGFzdFRhYi5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuXG4gICAgICBsYXN0VGFiLmZvY3VzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gNDYgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xuICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0ucmVtb3ZhYmxlKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVGFiKHRoaXMudGFic1tpbmRleF0pO1xuXG4gICAgICAgIGlmIChsaXN0W2luZGV4ICsgMV0pIHtcbiAgICAgICAgICBsaXN0WyhpbmRleCArIDEpICUgbGlzdC5sZW5ndGhdLmZvY3VzKCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdFtsaXN0Lmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgbGlzdFswXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldENsb3Nlc3RUYWJJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWJzTGVuZ3RoID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICBpZiAoIXRhYnNMZW5ndGgpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSB0YWJzTGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgIGNvbnN0IHByZXZJbmRleCA9IGluZGV4IC0gc3RlcDtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgc3RlcDtcbiAgICAgIGlmICh0aGlzLnRhYnNbcHJldkluZGV4XSAmJiAhdGhpcy50YWJzW3ByZXZJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIHByZXZJbmRleDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRhYnNbbmV4dEluZGV4XSAmJiAhdGhpcy50YWJzW25leHRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIG5leHRJbmRleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQXZhaWxhYmxlVGFicyhpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFic0xlbmd0aCA9IHRoaXMudGFicy5sZW5ndGg7XG4gICAgaWYgKCF0YWJzTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJzTGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICghdGhpcy50YWJzW2ldLmRpc2FibGVkICYmIGkgIT09IGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRDbGFzc01hcCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsYXNzTWFwID0ge1xuICAgICAgJ25hdi1zdGFja2VkJzogdGhpcy52ZXJ0aWNhbCxcbiAgICAgICdmbGV4LWNvbHVtbic6IHRoaXMudmVydGljYWwsXG4gICAgICAnbmF2LWp1c3RpZmllZCc6IHRoaXMuanVzdGlmaWVkLFxuICAgICAgW2BuYXYtJHt0aGlzLnR5cGV9YF06IHRydWVcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -3,12 +3,17 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable } from '@angular/core';
6
+ import * as i0 from "@angular/core";
6
7
  export class TabsetConfig {
7
8
  constructor() {
8
9
  /**
9
10
  * provides default navigation context class: 'tabs' or 'pills'
10
11
  */
11
12
  this.type = 'tabs';
13
+ /**
14
+ * provides possibility to set keyNavigations enable or disable, by default is enable
15
+ */
16
+ this.isKeysAllowed = true;
12
17
  /**
13
18
  * aria label for tab list
14
19
  */
@@ -16,18 +21,26 @@ export class TabsetConfig {
16
21
  }
17
22
  }
18
23
  TabsetConfig.decorators = [
19
- { type: Injectable }
24
+ { type: Injectable, args: [{
25
+ providedIn: 'root'
26
+ },] }
20
27
  ];
28
+ /** @nocollapse */ TabsetConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function TabsetConfig_Factory() { return new TabsetConfig(); }, token: TabsetConfig, providedIn: "root" });
21
29
  if (false) {
22
30
  /**
23
31
  * provides default navigation context class: 'tabs' or 'pills'
24
32
  * @type {?}
25
33
  */
26
34
  TabsetConfig.prototype.type;
35
+ /**
36
+ * provides possibility to set keyNavigations enable or disable, by default is enable
37
+ * @type {?}
38
+ */
39
+ TabsetConfig.prototype.isKeysAllowed;
27
40
  /**
28
41
  * aria label for tab list
29
42
  * @type {?}
30
43
  */
31
44
  TabsetConfig.prototype.ariaLabel;
32
45
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYnNldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLFlBQVk7SUFEekI7Ozs7UUFHRSxTQUFJLEdBQUcsTUFBTSxDQUFDOzs7O1FBRWQsY0FBUyxHQUFHLE1BQU0sQ0FBQztJQUNyQixDQUFDOzs7WUFOQSxVQUFVOzs7Ozs7O0lBR1QsNEJBQWM7Ozs7O0lBRWQsaUNBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFic2V0Q29uZmlnIHtcbiAgLyoqIHByb3ZpZGVzIGRlZmF1bHQgbmF2aWdhdGlvbiBjb250ZXh0IGNsYXNzOiAndGFicycgb3IgJ3BpbGxzJyAqL1xuICB0eXBlID0gJ3RhYnMnO1xuICAvKiogYXJpYSBsYWJlbCBmb3IgdGFiIGxpc3QgKi9cbiAgYXJpYUxhYmVsID0gJ1RhYnMnO1xufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYnNldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxZQUFZO0lBSHpCOzs7O1FBS0UsU0FBSSxHQUFHLE1BQU0sQ0FBQzs7OztRQUVkLGtCQUFhLEdBQUcsSUFBSSxDQUFDOzs7O1FBRXJCLGNBQVMsR0FBRyxNQUFNLENBQUM7S0FDcEI7OztZQVZBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7Ozs7SUFHQyw0QkFBYzs7Ozs7SUFFZCxxQ0FBcUI7Ozs7O0lBRXJCLGlDQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGFic2V0Q29uZmlnIHtcbiAgLyoqIHByb3ZpZGVzIGRlZmF1bHQgbmF2aWdhdGlvbiBjb250ZXh0IGNsYXNzOiAndGFicycgb3IgJ3BpbGxzJyAqL1xuICB0eXBlID0gJ3RhYnMnO1xuICAvKiogcHJvdmlkZXMgcG9zc2liaWxpdHkgdG8gc2V0IGtleU5hdmlnYXRpb25zIGVuYWJsZSBvciBkaXNhYmxlLCBieSBkZWZhdWx0IGlzIGVuYWJsZSAqL1xuICBpc0tleXNBbGxvd2VkID0gdHJ1ZTtcbiAgLyoqIGFyaWEgbGFiZWwgZm9yIHRhYiBsaXN0ICovXG4gIGFyaWFMYWJlbCA9ICdUYWJzJztcbn1cbiJdfQ==
@@ -132,7 +132,7 @@ var TabDirective = /** @class */ (function () {
132
132
  this.tabset.removeTab(this, { reselect: false, emit: false });
133
133
  };
134
134
  TabDirective.decorators = [
135
- { type: Directive, args: [{ selector: 'tab, [tab]' },] }
135
+ { type: Directive, args: [{ selector: 'tab, [tab]', exportAs: 'tab' },] }
136
136
  ];
137
137
  /** @nocollapse */
138
138
  TabDirective.ctorParameters = function () { return [
@@ -216,4 +216,4 @@ if (false) {
216
216
  /** @type {?} */
217
217
  TabDirective.prototype.renderer;
218
218
  }
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFVBQVUsRUFDVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJEO0lBaUZFLHNCQUNFLE1BQXVCLEVBQ2hCLFVBQXNCLEVBQ3RCLFFBQW1CO1FBRG5CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVzs7OztRQXJCbEIsY0FBUyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDOzs7O1FBRTNELGFBQVEsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7OztRQUUxRCxZQUFPLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBZ0IxQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBNUVELHNCQUNJLHFDQUFXO1FBRmYsMEZBQTBGOzs7OztRQUMxRjtZQUVFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDOzs7OztRQUVELFVBQWdCLFdBQW1CO1lBQW5DLGlCQWNDO1lBYkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUMsUUFBZ0I7b0JBQ25ELEtBQUksQ0FBQyxRQUFRLENBQUMs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QixpQ0FBNEI7Ozs7O0lBcUQ1QixpQ0FBcUU7Ozs7O0lBRXJFLGdDQUFvRTs7Ozs7SUFFcEUsK0JBQW1FOztJQUVuRSxnQ0FBK0M7O0lBQy9DLDRCQUE0Qzs7SUFNNUMsa0NBQTZCOztJQUM3Qiw4QkFBd0I7Ozs7O0lBQ3hCLCtCQUEyQjs7Ozs7SUFDM0Isb0NBQStCOztJQUk3QixrQ0FBNkI7O0lBQzdCLGdDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICd0YWIsIFt0YWJdJyB9KVxuZXhwb3J0IGNsYXNzIFRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIHRhYiBoZWFkZXIgdGV4dCAqL1xuICBASW5wdXQoKSBoZWFkaW5nOiBzdHJpbmc7XG4gIC8qKiB0YWIgaWQuIFRoZSBzYW1lIGlkIHdpdGggc3VmZml4ICctbGluaycgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29ycmVzcG9uZGluZyAmbHQ7bGkmZ3Q7IGVsZW1lbnQgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIC8qKiBpZiB0cnVlIHRhYiBjYW4gbm90IGJlIGFjdGl2YXRlZCAqL1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGFiIGNhbiBiZSByZW1vdmFibGUsIGFkZGl0aW9uYWwgYnV0dG9uIHdpbGwgYXBwZWFyICovXG4gIEBJbnB1dCgpIHJlbW92YWJsZTogYm9vbGVhbjtcbiAgLyoqIGlmIHNldCwgd2lsbCBiZSBhZGRlZCB0byB0aGUgdGFiJ3MgY2xhc3MgYXR0cmlidXRlLiBNdWx0aXBsZSBjbGFzc2VzIGFyZSBzdXBwb3J0ZWQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBjdXN0b21DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21DbGFzcztcbiAgfVxuXG4gIHNldCBjdXN0b21DbGFzcyhjdXN0b21DbGFzczogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tQ2xhc3MpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjc3NDbGFzczogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX2N1c3RvbUNsYXNzID0gY3VzdG9tQ2xhc3MgPyBjdXN0b21DbGFzcy50cmltKCkgOiBudWxsO1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tQ2xhc3MpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjc3NDbGFzczogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiB0YWIgYWN0aXZlIHN0YXRlIHRvZ2dsZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gIEBJbnB1dCgpXG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuXG4gIHNldCBhY3RpdmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSA9PT0gYWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICgodGhpcy5kaXNhYmxlZCAmJiBhY3RpdmUpIHx8ICFhY3RpdmUpIHtcbiAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgIWFjdGl2ZSkge1xuICAgICAgICB0aGlzLmRlc2VsZWN0LmVtaXQodGhpcyk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLnNlbGVjdFRhYi5lbWl0KHRoaXMpO1xuICAgIHRoaXMudGFic2V0LnRhYnMuZm9yRWFjaCgodGFiOiBUYWJEaXJlY3RpdmUpID0+IHtcbiAgICAgIGlmICh0YWIgIT09IHRoaXMpIHtcbiAgICAgICAgdGFiLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIGZpcmVkIHdoZW4gdGFiIGJlY2FtZSBhY3RpdmUsICRldmVudDpUYWIgZXF1YWxzIHRvIHNlbGVjdGVkIGluc3RhbmNlIG9mIFRhYiBjb21wb25lbnQgKi9cbiAgQE91dHB1dCgpIHNlbGVjdFRhYjogRXZlbnRFbWl0dGVyPFRhYkRpcmVjdGl2ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8qKiBmaXJlZCB3aGVuIHRhYiBiZWNhbWUgaW5hY3RpdmUsICRldmVudDpUYWIgZXF1YWxzIHRvIGRlc2VsZWN0ZWQgaW5zdGFuY2Ugb2YgVGFiIGNvbXBvbmVudCAqL1xuICBAT3V0cHV0KCkgZGVzZWxlY3Q6IEV2ZW50RW1pdHRlcjxUYWJEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogZmlyZWQgYmVmb3JlIHRhYiB3aWxsIGJlIHJlbW92ZWQsICRldmVudDpUYWIgZXF1YWxzIHRvIGluc3RhbmNlIG9mIHJlbW92ZWQgdGFiICovXG4gIEBPdXRwdXQoKSByZW1vdmVkOiBFdmVudEVtaXR0ZXI8VGFiRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRhYi1wYW5lJykgYWRkQ2xhc3MgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAndGFicGFuZWwnO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgZ2V0IGFyaWFMYWJlbGxlZGJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyBgJHt0aGlzLmlkfS1saW5rYCA6ICcnO1xuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xuICBoZWFkaW5nUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIF9hY3RpdmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfY3VzdG9tQ2xhc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0YWJzZXQ6IFRhYnNldENvbXBvbmVudCxcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLnRhYnNldCA9IHRhYnNldDtcbiAgICB0aGlzLnRhYnNldC5hZGRUYWIodGhpcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92YWJsZSA9IHRoaXMucmVtb3ZhYmxlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50YWJzZXQucmVtb3ZlVGFiKHRoaXMsIHsgcmVzZWxlY3Q6IGZhbHNlLCBlbWl0OiBmYWxzZSB9KTtcbiAgfVxufVxuIl19
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvdGFicy8iLCJzb3VyY2VzIjpbInRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFVBQVUsRUFDVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJEO0lBaUZFLHNCQUNFLE1BQXVCLEVBQ2hCLFVBQXNCLEVBQ3RCLFFBQW1CO1FBRG5CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVzs7OztRQXJCbEIsY0FBUyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDOzs7O1FBRTNELGFBQVEsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7OztRQUUxRCxZQUFPLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBZ0IxQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBNUVELHNCQUNJLHFDQUFXO1FBRmYsMEZBQTBGOzs7OztRQUMxRjtZQUVFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDOzs7OztRQUVELFVBQWdCLFdBQW1CO1lBQW5DLGlCQWNDO1lBYkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUMsUUFBZ0I7b0JBQ25ELEtBQUksQ0FBQyxRQUFRLENBQUMs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QUVwQixnQ0FBMkI7Ozs7O0lBRTNCLGlDQUE0Qjs7Ozs7SUFxRDVCLGlDQUFxRTs7Ozs7SUFFckUsZ0NBQW9FOzs7OztJQUVwRSwrQkFBbUU7O0lBRW5FLGdDQUErQzs7SUFDL0MsNEJBQTRDOztJQU01QyxrQ0FBNkI7O0lBQzdCLDhCQUF3Qjs7Ozs7SUFDeEIsK0JBQTJCOzs7OztJQUMzQixvQ0FBK0I7O0lBSTdCLGtDQUE2Qjs7SUFDN0IsZ0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYnNldENvbXBvbmVudCB9IGZyb20gJy4vdGFic2V0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ3RhYiwgW3RhYl0nLCBleHBvcnRBczogJ3RhYicgfSlcbmV4cG9ydCBjbGFzcyBUYWJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKiB0YWIgaGVhZGVyIHRleHQgKi9cbiAgQElucHV0KCkgaGVhZGluZzogc3RyaW5nO1xuICAvKiogdGFiIGlkLiBUaGUgc2FtZSBpZCB3aXRoIHN1ZmZpeCAnLWxpbmsnIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgJmx0O2xpJmd0OyBlbGVtZW50ICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAvKiogaWYgdHJ1ZSB0YWIgY2FuIG5vdCBiZSBhY3RpdmF0ZWQgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8qKiBpZiB0cnVlIHRhYiBjYW4gYmUgcmVtb3ZhYmxlLCBhZGRpdGlvbmFsIGJ1dHRvbiB3aWxsIGFwcGVhciAqL1xuICBASW5wdXQoKSByZW1vdmFibGU6IGJvb2xlYW47XG4gIC8qKiBpZiBzZXQsIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHRhYidzIGNsYXNzIGF0dHJpYnV0ZS4gTXVsdGlwbGUgY2xhc3NlcyBhcmUgc3VwcG9ydGVkLiAqL1xuICBASW5wdXQoKVxuICBnZXQgY3VzdG9tQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ2xhc3M7XG4gIH1cblxuICBzZXQgY3VzdG9tQ2xhc3MoY3VzdG9tQ2xhc3M6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjc3NDbGFzcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9jdXN0b21DbGFzcyA9IGN1c3RvbUNsYXNzID8gY3VzdG9tQ2xhc3MudHJpbSgpIDogbnVsbDtcblxuICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjc3NDbGFzcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogdGFiIGFjdGl2ZSBzdGF0ZSB0b2dnbGUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKVxuICBASW5wdXQoKVxuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICBzZXQgYWN0aXZlKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9hY3RpdmUgPT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZGlzYWJsZWQgJiYgYWN0aXZlKSB8fCAhYWN0aXZlKSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlICYmICFhY3RpdmUpIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdC5lbWl0KHRoaXMpO1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7XG4gICAgdGhpcy5zZWxlY3RUYWIuZW1pdCh0aGlzKTtcbiAgICB0aGlzLnRhYnNldC50YWJzLmZvckVhY2goKHRhYjogVGFiRGlyZWN0aXZlKSA9PiB7XG4gICAgICBpZiAodGFiICE9PSB0aGlzKSB7XG4gICAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBmaXJlZCB3aGVuIHRhYiBiZWNhbWUgYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBzZWxlY3RlZCBpbnN0YW5jZSBvZiBUYWIgY29tcG9uZW50ICovXG4gIEBPdXRwdXQoKSBzZWxlY3RUYWI6IEV2ZW50RW1pdHRlcjxUYWJEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKiogZmlyZWQgd2hlbiB0YWIgYmVjYW1lIGluYWN0aXZlLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBkZXNlbGVjdGVkIGluc3RhbmNlIG9mIFRhYiBjb21wb25lbnQgKi9cbiAgQE91dHB1dCgpIGRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8VGFiRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqIGZpcmVkIGJlZm9yZSB0YWIgd2lsbCBiZSByZW1vdmVkLCAkZXZlbnQ6VGFiIGVxdWFscyB0byBpbnN0YW5jZSBvZiByZW1vdmVkIHRhYiAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlZDogRXZlbnRFbWl0dGVyPFRhYkRpcmVjdGl2ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWItcGFuZScpIGFkZENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ3RhYnBhbmVsJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpIGdldCBhcmlhTGFiZWxsZWRieSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gYCR7dGhpcy5pZH0tbGlua2AgOiAnJztcbiAgfVxuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgaGVhZGluZ1JlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgdGFic2V0OiBUYWJzZXRDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBfYWN0aXZlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX2N1c3RvbUNsYXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGFic2V0OiBUYWJzZXRDb21wb25lbnQsXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy50YWJzZXQgPSB0YWJzZXQ7XG4gICAgdGhpcy50YWJzZXQuYWRkVGFiKHRoaXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmFibGUgPSB0aGlzLnJlbW92YWJsZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGFic2V0LnJlbW92ZVRhYih0aGlzLCB7IHJlc2VsZWN0OiBmYWxzZSwgZW1pdDogZmFsc2UgfSk7XG4gIH1cbn1cbiJdfQ==