ngx-bootstrap 5.3.2 → 5.6.1

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 (439) hide show
  1. package/CHANGELOG.md +148 -99
  2. package/README.md +14 -10
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  8. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  10. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  11. package/accordion/package.json +2 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  13. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  15. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  16. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  17. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  19. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  20. package/alert/package.json +2 -2
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  24. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  25. package/buttons/button-radio-group.directive.d.ts +4 -1
  26. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  27. package/buttons/esm5/button-radio-group.directive.js +30 -2
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  29. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  31. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  32. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  33. package/buttons/package.json +2 -2
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  37. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  38. package/carousel/carousel.component.d.ts +2 -0
  39. package/carousel/esm2015/carousel.component.js +15 -2
  40. package/carousel/esm2015/slide.component.js +21 -2
  41. package/carousel/esm5/carousel.component.js +15 -2
  42. package/carousel/esm5/slide.component.js +6 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  44. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  46. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  47. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  48. package/carousel/package.json +2 -2
  49. package/carousel/slide.component.d.ts +1 -0
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  53. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  54. package/chronos/esm2015/format/format.js +1 -1
  55. package/chronos/esm2015/i18n/ka.js +108 -0
  56. package/chronos/esm2015/i18n/kk.js +89 -0
  57. package/chronos/esm2015/i18n/sq.js +62 -0
  58. package/chronos/esm2015/i18n/th-be.js +85 -0
  59. package/chronos/esm2015/index.js +2 -2
  60. package/chronos/esm2015/locale/locale.class.js +16 -2
  61. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  62. package/chronos/esm2015/public_api.js +5 -1
  63. package/chronos/esm2015/units/year.js +4 -1
  64. package/chronos/esm5/format/format.js +1 -1
  65. package/chronos/esm5/i18n/ka.js +108 -0
  66. package/chronos/esm5/i18n/kk.js +89 -0
  67. package/chronos/esm5/i18n/sq.js +62 -0
  68. package/chronos/esm5/i18n/th-be.js +86 -0
  69. package/chronos/esm5/index.js +2 -2
  70. package/chronos/esm5/locale/locale.class.js +22 -2
  71. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  72. package/chronos/esm5/public_api.js +5 -1
  73. package/chronos/esm5/units/year.js +4 -1
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  75. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  77. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  78. package/chronos/i18n/ka.d.ts +2 -0
  79. package/chronos/i18n/kk.d.ts +2 -0
  80. package/chronos/i18n/sq.d.ts +2 -0
  81. package/chronos/i18n/th-be.d.ts +2 -0
  82. package/chronos/locale/locale.class.d.ts +2 -0
  83. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  84. package/chronos/package.json +2 -2
  85. package/chronos/public_api.d.ts +4 -0
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  89. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  90. package/collapse/collapse.directive.d.ts +1 -0
  91. package/collapse/esm2015/collapse.directive.js +14 -1
  92. package/collapse/esm5/collapse.directive.js +14 -1
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  94. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  96. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  97. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  98. package/collapse/package.json +2 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  102. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  104. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  106. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  107. package/component-loader/package.json +2 -2
  108. package/datepicker/base/bs-datepicker-container.d.ts +2 -1
  109. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  110. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  111. package/datepicker/bs-datepicker.component.d.ts +12 -3
  112. package/datepicker/bs-datepicker.config.d.ts +31 -1
  113. package/datepicker/bs-datepicker.css +19 -1
  114. package/datepicker/bs-datepicker.css.map +3 -3
  115. package/datepicker/bs-datepicker.scss +0 -1
  116. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  117. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  118. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2100 -99
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  122. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  123. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  124. package/datepicker/esm2015/base/bs-datepicker-container.js +10 -3
  125. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  126. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  127. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  128. package/datepicker/esm2015/bs-datepicker.config.js +42 -3
  129. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  130. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  131. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  132. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  133. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  134. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  135. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  136. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +28 -6
  137. package/datepicker/esm2015/reducer/bs-datepicker.state.js +7 -1
  138. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  141. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  143. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  144. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  145. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  146. package/datepicker/esm5/base/bs-datepicker-container.js +14 -3
  147. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  148. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  149. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  150. package/datepicker/esm5/bs-datepicker.config.js +42 -3
  151. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  152. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  153. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  154. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  155. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  156. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  157. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  158. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +28 -6
  159. package/datepicker/esm5/reducer/bs-datepicker.state.js +7 -1
  160. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  161. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  165. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  166. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  167. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1953 -91
  169. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1985 -98
  171. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  172. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  173. package/datepicker/package.json +2 -2
  174. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  175. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  176. package/datepicker/reducer/bs-datepicker.state.d.ts +3 -0
  177. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  178. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  179. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  180. package/datepicker/utils/scss/mixins.css.map +1 -1
  181. package/datepicker/utils/scss/mixins.scss +9 -0
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +387 -3
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  185. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  186. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +234 -1
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  190. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +234 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  192. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  193. package/dropdown/package.json +2 -2
  194. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  196. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  197. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  198. package/locale/esm2015/public_api.js +5 -1
  199. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  200. package/locale/esm5/public_api.js +5 -1
  201. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  203. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  205. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  206. package/locale/package.json +2 -2
  207. package/locale/public_api.d.ts +4 -0
  208. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  212. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  214. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  216. package/mini-ngrx/package.json +2 -2
  217. package/modal/bs-modal.service.d.ts +1 -2
  218. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  220. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  222. package/modal/esm2015/bs-modal.service.js +13 -4
  223. package/modal/esm2015/modal-container.component.js +24 -5
  224. package/modal/esm2015/modal-options.class.js +16 -1
  225. package/modal/esm2015/modal.directive.js +21 -4
  226. package/modal/esm2015/modal.module.js +10 -1
  227. package/modal/esm5/bs-modal.service.js +28 -8
  228. package/modal/esm5/modal-container.component.js +28 -5
  229. package/modal/esm5/modal-options.class.js +16 -1
  230. package/modal/esm5/modal.directive.js +25 -4
  231. package/modal/esm5/modal.module.js +13 -1
  232. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  233. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  234. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  235. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  236. package/modal/modal-container.component.d.ts +3 -1
  237. package/modal/modal-options.class.d.ts +13 -0
  238. package/modal/modal.directive.d.ts +3 -1
  239. package/modal/modal.module.d.ts +1 -0
  240. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  241. package/modal/package.json +2 -2
  242. package/package.json +2 -2
  243. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  247. package/pagination/esm2015/models/index.js +49 -4
  248. package/pagination/esm2015/pager.component.js +2 -2
  249. package/pagination/esm2015/pagination.component.js +33 -3
  250. package/pagination/esm2015/public_api.js +1 -1
  251. package/pagination/esm5/models/index.js +49 -4
  252. package/pagination/esm5/pager.component.js +2 -2
  253. package/pagination/esm5/pagination.component.js +33 -3
  254. package/pagination/esm5/public_api.js +1 -1
  255. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  257. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  259. package/pagination/models/index.d.ts +28 -0
  260. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  261. package/pagination/package.json +2 -2
  262. package/pagination/pagination.component.d.ts +12 -2
  263. package/pagination/public_api.d.ts +1 -0
  264. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  266. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  268. package/popover/esm2015/popover.config.js +10 -1
  269. package/popover/esm2015/popover.directive.js +97 -16
  270. package/popover/esm5/popover.config.js +10 -1
  271. package/popover/esm5/popover.directive.js +98 -16
  272. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  274. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  275. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  276. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  277. package/popover/package.json +2 -2
  278. package/popover/popover.config.d.ts +2 -0
  279. package/popover/popover.directive.d.ts +9 -1
  280. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  284. package/positioning/esm2015/modifiers/arrow.js +19 -5
  285. package/positioning/esm2015/modifiers/initData.js +12 -2
  286. package/positioning/esm2015/modifiers/shift.js +6 -4
  287. package/positioning/esm5/modifiers/arrow.js +19 -5
  288. package/positioning/esm5/modifiers/initData.js +12 -2
  289. package/positioning/esm5/modifiers/shift.js +8 -6
  290. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  292. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  294. package/positioning/package.json +2 -2
  295. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  299. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  301. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  303. package/progressbar/package.json +2 -2
  304. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  306. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  308. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  309. package/rating/esm2015/public_api.js +2 -1
  310. package/rating/esm2015/rating.component.js +14 -5
  311. package/rating/esm2015/rating.config.js +27 -0
  312. package/rating/esm2015/rating.module.js +3 -2
  313. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  314. package/rating/esm5/public_api.js +2 -1
  315. package/rating/esm5/rating.component.js +13 -5
  316. package/rating/esm5/rating.config.js +29 -0
  317. package/rating/esm5/rating.module.js +3 -2
  318. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  319. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  320. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  321. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  322. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  323. package/rating/package.json +2 -2
  324. package/rating/public_api.d.ts +1 -0
  325. package/rating/rating.component.d.ts +4 -1
  326. package/rating/rating.config.d.ts +5 -0
  327. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  331. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  333. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  335. package/sortable/package.json +2 -2
  336. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  340. package/tabs/esm2015/tab.directive.js +13 -2
  341. package/tabs/esm2015/tabset.component.js +7 -2
  342. package/tabs/esm2015/tabset.config.js +10 -1
  343. package/tabs/esm5/tab.directive.js +17 -2
  344. package/tabs/esm5/tabset.component.js +7 -2
  345. package/tabs/esm5/tabset.config.js +10 -1
  346. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  348. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  350. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  351. package/tabs/package.json +2 -2
  352. package/tabs/tab.directive.d.ts +2 -0
  353. package/tabs/tabset.component.d.ts +2 -0
  354. package/tabs/tabset.config.d.ts +2 -0
  355. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  359. package/timepicker/esm2015/timepicker.component.js +8 -2
  360. package/timepicker/esm2015/timepicker.config.js +28 -1
  361. package/timepicker/esm2015/timepicker.utils.js +9 -6
  362. package/timepicker/esm5/timepicker.component.js +8 -2
  363. package/timepicker/esm5/timepicker.config.js +28 -1
  364. package/timepicker/esm5/timepicker.utils.js +9 -6
  365. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  367. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  369. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  370. package/timepicker/package.json +2 -2
  371. package/timepicker/timepicker.component.d.ts +3 -0
  372. package/timepicker/timepicker.config.d.ts +6 -0
  373. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +356 -8
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  377. package/tooltip/esm2015/tooltip.directive.js +48 -10
  378. package/tooltip/esm5/tooltip.directive.js +51 -10
  379. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +201 -7
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  381. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +204 -7
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  383. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  384. package/tooltip/package.json +2 -2
  385. package/tooltip/tooltip.directive.d.ts +3 -1
  386. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +748 -69
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  390. package/typeahead/esm2015/models/index.js +87 -0
  391. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  392. package/typeahead/esm2015/public_api.js +2 -1
  393. package/typeahead/esm2015/typeahead-container.component.js +82 -37
  394. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  395. package/typeahead/esm2015/typeahead.config.js +10 -1
  396. package/typeahead/esm2015/typeahead.directive.js +133 -30
  397. package/typeahead/esm5/models/index.js +87 -0
  398. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  399. package/typeahead/esm5/public_api.js +2 -1
  400. package/typeahead/esm5/typeahead-container.component.js +92 -37
  401. package/typeahead/esm5/typeahead-order.class.js +23 -0
  402. package/typeahead/esm5/typeahead.config.js +10 -1
  403. package/typeahead/esm5/typeahead.directive.js +140 -36
  404. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +574 -61
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  406. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +594 -67
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  408. package/typeahead/models/index.d.ts +41 -0
  409. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  410. package/typeahead/package.json +2 -2
  411. package/typeahead/public_api.d.ts +2 -0
  412. package/typeahead/typeahead-container.component.d.ts +15 -7
  413. package/typeahead/typeahead-order.class.d.ts +6 -0
  414. package/typeahead/typeahead.config.d.ts +2 -0
  415. package/typeahead/typeahead.directive.d.ts +28 -10
  416. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  418. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  420. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  421. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  422. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  423. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  424. package/utils/package.json +2 -2
  425. package/bundles/ngx-bootstrap.umd.js +0 -1037
  426. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  427. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  428. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  429. package/esm2015/ngx-bootstrap.js +0 -9
  430. package/esm2015/public_api.js +0 -30
  431. package/esm5/ngx-bootstrap.js +0 -9
  432. package/esm5/public_api.js +0 -30
  433. package/fesm2015/ngx-bootstrap.js +0 -24
  434. package/fesm2015/ngx-bootstrap.js.map +0 -1
  435. package/fesm5/ngx-bootstrap.js +0 -24
  436. package/fesm5/ngx-bootstrap.js.map +0 -1
  437. package/ngx-bootstrap.d.ts +0 -4
  438. package/ngx-bootstrap.metadata.json +0 -1
  439. package/public_api.d.ts +0 -25
@@ -1,4 +1,4 @@
1
- import { Injectable, Component, forwardRef, Input, Output, EventEmitter, NgModule } from '@angular/core';
1
+ import { Injectable, EventEmitter, Component, forwardRef, Input, Output, NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { __spread } from 'tslib';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
@@ -68,6 +68,18 @@ var DraggableItemService = /** @class */ (function () {
68
68
  ];
69
69
  return DraggableItemService;
70
70
  }());
71
+ if (false) {
72
+ /**
73
+ * @type {?}
74
+ * @private
75
+ */
76
+ DraggableItemService.prototype.draggableItem;
77
+ /**
78
+ * @type {?}
79
+ * @private
80
+ */
81
+ DraggableItemService.prototype.onCapture;
82
+ }
71
83
 
72
84
  /**
73
85
  * @fileoverview added by tsickle
@@ -404,6 +416,97 @@ var SortableComponent = /** @class */ (function () {
404
416
  };
405
417
  return SortableComponent;
406
418
  }());
419
+ if (false) {
420
+ /**
421
+ * @type {?}
422
+ * @private
423
+ */
424
+ SortableComponent.globalZoneIndex;
425
+ /**
426
+ * field name if input array consists of objects
427
+ * @type {?}
428
+ */
429
+ SortableComponent.prototype.fieldName;
430
+ /**
431
+ * class name for items wrapper
432
+ * @type {?}
433
+ */
434
+ SortableComponent.prototype.wrapperClass;
435
+ /**
436
+ * style object for items wrapper
437
+ * @type {?}
438
+ */
439
+ SortableComponent.prototype.wrapperStyle;
440
+ /**
441
+ * class name for item
442
+ * @type {?}
443
+ */
444
+ SortableComponent.prototype.itemClass;
445
+ /**
446
+ * style object for item
447
+ * @type {?}
448
+ */
449
+ SortableComponent.prototype.itemStyle;
450
+ /**
451
+ * class name for active item
452
+ * @type {?}
453
+ */
454
+ SortableComponent.prototype.itemActiveClass;
455
+ /**
456
+ * style object for active item
457
+ * @type {?}
458
+ */
459
+ SortableComponent.prototype.itemActiveStyle;
460
+ /**
461
+ * class name for placeholder
462
+ * @type {?}
463
+ */
464
+ SortableComponent.prototype.placeholderClass;
465
+ /**
466
+ * style object for placeholder
467
+ * @type {?}
468
+ */
469
+ SortableComponent.prototype.placeholderStyle;
470
+ /**
471
+ * placeholder item which will be shown if collection is empty
472
+ * @type {?}
473
+ */
474
+ SortableComponent.prototype.placeholderItem;
475
+ /**
476
+ * used to specify a custom item template. Template variables: item and index;
477
+ * @type {?}
478
+ */
479
+ SortableComponent.prototype.itemTemplate;
480
+ /**
481
+ * fired on array change (reordering, insert, remove), same as <code>ngModelChange</code>.
482
+ * Returns new items collection as a payload.
483
+ * @type {?}
484
+ */
485
+ SortableComponent.prototype.onChange;
486
+ /** @type {?} */
487
+ SortableComponent.prototype.showPlaceholder;
488
+ /** @type {?} */
489
+ SortableComponent.prototype.activeItem;
490
+ /** @type {?} */
491
+ SortableComponent.prototype.onTouched;
492
+ /** @type {?} */
493
+ SortableComponent.prototype.onChanged;
494
+ /**
495
+ * @type {?}
496
+ * @private
497
+ */
498
+ SortableComponent.prototype.transfer;
499
+ /**
500
+ * @type {?}
501
+ * @private
502
+ */
503
+ SortableComponent.prototype.currentZoneIndex;
504
+ /**
505
+ * @type {?}
506
+ * @private
507
+ */
508
+ SortableComponent.prototype._items;
509
+ }
407
510
 
408
511
  /**
409
512
  * @fileoverview added by tsickle
@@ -431,5 +534,15 @@ var SortableModule = /** @class */ (function () {
431
534
  return SortableModule;
432
535
  }());
433
536
 
537
+ /**
538
+ * @fileoverview added by tsickle
539
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
540
+ */
541
+
542
+ /**
543
+ * @fileoverview added by tsickle
544
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
545
+ */
546
+
434
547
  export { DraggableItemService, SortableComponent, SortableModule };
435
548
  //# sourceMappingURL=ngx-bootstrap-sortable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-sortable.js","sources":["ng://ngx-bootstrap/sortable/draggable-item.service.ts","ng://ngx-bootstrap/sortable/sortable.component.ts","ng://ngx-bootstrap/sortable/sortable.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DraggableItem } from './draggable-item';\n\n@Injectable()\nexport class DraggableItemService {\n private draggableItem: DraggableItem;\n\n private onCapture: Subject<DraggableItem> = new Subject<DraggableItem>();\n\n dragStart(item: DraggableItem): void {\n this.draggableItem = item;\n }\n\n getItem(): DraggableItem {\n return this.draggableItem;\n }\n\n captureItem(overZoneIndex: number, newIndex: number): DraggableItem {\n if (this.draggableItem.overZoneIndex !== overZoneIndex) {\n this.draggableItem.lastZoneIndex = this.draggableItem.overZoneIndex;\n this.draggableItem.overZoneIndex = overZoneIndex;\n this.onCapture.next(this.draggableItem);\n this.draggableItem = Object.assign({}, this.draggableItem, {\n overZoneIndex,\n i: newIndex\n });\n }\n\n return this.draggableItem;\n }\n\n onCaptureItem(): Subject<DraggableItem> {\n return this.onCapture;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n TemplateRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { DraggableItem } from './draggable-item';\nimport { DraggableItemService } from './draggable-item.service';\n\n/* tslint:disable */\n@Component({\n selector: 'bs-sortable',\n exportAs: 'bs-sortable',\n template: `\n<div\n [ngClass]=\"wrapperClass\"\n [ngStyle]=\"wrapperStyle\"\n (dragover)=\"cancelEvent($event)\"\n (dragenter)=\"cancelEvent($event)\"\n (drop)=\"resetActiveItem($event)\"\n (mouseleave)=\"resetActiveItem($event)\">\n <div\n *ngIf=\"showPlaceholder\"\n [ngClass]=\"placeholderClass\"\n [ngStyle]=\"placeholderStyle\"\n (dragover)=\"onItemDragover($event, 0)\"\n (dragenter)=\"cancelEvent($event)\"\n >{{placeholderItem}}</div>\n <div\n *ngFor=\"let item of items; let i=index;\"\n [ngClass]=\"[ itemClass, i === activeItem ? itemActiveClass : '' ]\"\n [ngStyle]=\"getItemStyle(i === activeItem)\"\n draggable=\"true\"\n (dragstart)=\"onItemDragstart($event, item, i)\"\n (dragend)=\"resetActiveItem($event)\"\n (dragover)=\"onItemDragover($event, i)\"\n (dragenter)=\"cancelEvent($event)\"\n aria-dropeffect=\"move\"\n [attr.aria-grabbed]=\"i === activeItem\"\n ><ng-template [ngTemplateOutlet]=\"itemTemplate || defItemTemplate\"\n [ngTemplateOutletContext]=\"{item:item, index: i}\"></ng-template></div>\n</div>\n\n<ng-template #defItemTemplate let-item=\"item\">{{item.value}}</ng-template> \n`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SortableComponent),\n multi: true\n }\n ]\n})\n/* tslint:enable */\nexport class SortableComponent implements ControlValueAccessor {\n private static globalZoneIndex = 0;\n /** field name if input array consists of objects */\n @Input() fieldName: string;\n\n /** class name for items wrapper */\n @Input() wrapperClass = '';\n\n /** style object for items wrapper */\n @Input() wrapperStyle: { [key: string]: string } = {};\n\n /** class name for item */\n @Input() itemClass = '';\n\n /** style object for item */\n @Input() itemStyle: { [key: string]: string } = {};\n\n /** class name for active item */\n @Input() itemActiveClass = '';\n\n /** style object for active item */\n @Input() itemActiveStyle: { [key: string]: string } = {};\n\n /** class name for placeholder */\n @Input() placeholderClass = '';\n\n /** style object for placeholder */\n @Input() placeholderStyle: { [key: string]: string } = {};\n\n /** placeholder item which will be shown if collection is empty */\n @Input() placeholderItem = '';\n\n /** used to specify a custom item template. Template variables: item and index; */\n /* tslint:disable-next-line: no-any */\n @Input() itemTemplate: TemplateRef<any>;\n\n /** fired on array change (reordering, insert, remove), same as <code>ngModelChange</code>.\n * Returns new items collection as a payload.\n */\n /* tslint:disable-next-line: no-any */\n @Output() onChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n showPlaceholder = false;\n activeItem = -1;\n\n get items(): SortableItem[] {\n return this._items;\n }\n\n set items(value: SortableItem[]) {\n this._items = value;\n const out = this.items.map((x: SortableItem) => x.initData);\n this.onChanged(out);\n this.onChange.emit(out);\n }\n\n /* tslint:disable-next-line: no-any */\n onTouched: any = Function.prototype;\n /* tslint:disable-next-line: no-any */\n onChanged: any = Function.prototype;\n\n private transfer: DraggableItemService;\n private currentZoneIndex: number;\n private _items: SortableItem[];\n\n constructor(transfer: DraggableItemService) {\n this.transfer = transfer;\n this.currentZoneIndex = SortableComponent.globalZoneIndex++;\n this.transfer\n .onCaptureItem()\n .subscribe((item: DraggableItem) => this.onDrop(item));\n }\n\n onItemDragstart(\n event: DragEvent,\n item: SortableItem,\n i: number\n ): void {\n this.initDragstartEvent(event);\n this.onTouched();\n this.transfer.dragStart({\n event,\n item,\n i,\n initialIndex: i,\n lastZoneIndex: this.currentZoneIndex,\n overZoneIndex: this.currentZoneIndex\n });\n }\n\n onItemDragover(event: DragEvent, i: number): void {\n if (!this.transfer.getItem()) {\n return;\n }\n event.preventDefault();\n const dragItem = this.transfer.captureItem(\n this.currentZoneIndex,\n this.items.length\n );\n\n /* tslint:disable-next-line: no-any */\n let newArray: any[] = [];\n\n if (!this.items.length) {\n newArray = [dragItem.item];\n } else if (dragItem.i > i) {\n newArray = [\n ...this.items.slice(0, i),\n dragItem.item,\n ...this.items.slice(i, dragItem.i),\n ...this.items.slice(dragItem.i + 1)\n ];\n } else {\n // this.draggedItem.i < i\n newArray = [\n ...this.items.slice(0, dragItem.i),\n ...this.items.slice(dragItem.i + 1, i + 1),\n dragItem.item,\n ...this.items.slice(i + 1)\n ];\n }\n this.items = newArray;\n dragItem.i = i;\n this.activeItem = i;\n this.updatePlaceholderState();\n }\n\n cancelEvent(event: DragEvent): void {\n if (!this.transfer.getItem() || !event) {\n return;\n }\n event.preventDefault();\n }\n\n onDrop(item: DraggableItem): void {\n if (\n item &&\n item.overZoneIndex !== this.currentZoneIndex &&\n item.lastZoneIndex === this.currentZoneIndex\n ) {\n this.items = this.items.filter(\n (x: SortableItem, i: number) => i !== item.i\n );\n this.updatePlaceholderState();\n }\n this.resetActiveItem(undefined);\n }\n\n resetActiveItem(event: DragEvent): void {\n this.cancelEvent(event);\n this.activeItem = -1;\n }\n\n registerOnChange(callback: () => void): void {\n this.onChanged = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this.onTouched = callback;\n }\n\n /* tslint:disable-next-line: no-any */\n writeValue(value: any[]): void {\n if (value) {\n /* tslint:disable-next-line: no-any */\n this.items = value.map((x: any, i: number) => ({\n id: i,\n initData: x,\n value: this.fieldName ? x[this.fieldName] : x\n }));\n } else {\n this.items = [];\n }\n this.updatePlaceholderState();\n }\n\n updatePlaceholderState(): void {\n this.showPlaceholder = !this._items.length;\n }\n\n getItemStyle(isActive: boolean): {} {\n return isActive\n ? Object.assign({}, this.itemStyle, this.itemActiveStyle)\n : this.itemStyle;\n }\n\n // tslint:disable-next-line\n private initDragstartEvent(event: DragEvent): void {\n // it is necessary for mozilla\n // data type should be 'Text' instead of 'text/plain' to keep compatibility\n // with IE\n event.dataTransfer.setData('Text', 'placeholder');\n }\n}\n\nexport declare interface SortableItem {\n id: number;\n value: string;\n /* tslint:disable-next-line: no-any */\n initData: any;\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SortableComponent } from './sortable.component';\nimport { DraggableItemService } from './draggable-item.service';\n\n@NgModule({\n declarations: [SortableComponent],\n imports: [CommonModule],\n exports: [SortableComponent]\n})\nexport class SortableModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: SortableModule, providers: [DraggableItemService] };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-sortable.js","sources":["ng://ngx-bootstrap/sortable/draggable-item.service.ts","ng://ngx-bootstrap/sortable/sortable.component.ts","ng://ngx-bootstrap/sortable/sortable.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DraggableItem } from './draggable-item';\n\n@Injectable()\nexport class DraggableItemService {\n private draggableItem: DraggableItem;\n\n private onCapture: Subject<DraggableItem> = new Subject<DraggableItem>();\n\n dragStart(item: DraggableItem): void {\n this.draggableItem = item;\n }\n\n getItem(): DraggableItem {\n return this.draggableItem;\n }\n\n captureItem(overZoneIndex: number, newIndex: number): DraggableItem {\n if (this.draggableItem.overZoneIndex !== overZoneIndex) {\n this.draggableItem.lastZoneIndex = this.draggableItem.overZoneIndex;\n this.draggableItem.overZoneIndex = overZoneIndex;\n this.onCapture.next(this.draggableItem);\n this.draggableItem = Object.assign({}, this.draggableItem, {\n overZoneIndex,\n i: newIndex\n });\n }\n\n return this.draggableItem;\n }\n\n onCaptureItem(): Subject<DraggableItem> {\n return this.onCapture;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n TemplateRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { DraggableItem } from './draggable-item';\nimport { DraggableItemService } from './draggable-item.service';\n\n/* tslint:disable */\n@Component({\n selector: 'bs-sortable',\n exportAs: 'bs-sortable',\n template: `\n<div\n [ngClass]=\"wrapperClass\"\n [ngStyle]=\"wrapperStyle\"\n (dragover)=\"cancelEvent($event)\"\n (dragenter)=\"cancelEvent($event)\"\n (drop)=\"resetActiveItem($event)\"\n (mouseleave)=\"resetActiveItem($event)\">\n <div\n *ngIf=\"showPlaceholder\"\n [ngClass]=\"placeholderClass\"\n [ngStyle]=\"placeholderStyle\"\n (dragover)=\"onItemDragover($event, 0)\"\n (dragenter)=\"cancelEvent($event)\"\n >{{placeholderItem}}</div>\n <div\n *ngFor=\"let item of items; let i=index;\"\n [ngClass]=\"[ itemClass, i === activeItem ? itemActiveClass : '' ]\"\n [ngStyle]=\"getItemStyle(i === activeItem)\"\n draggable=\"true\"\n (dragstart)=\"onItemDragstart($event, item, i)\"\n (dragend)=\"resetActiveItem($event)\"\n (dragover)=\"onItemDragover($event, i)\"\n (dragenter)=\"cancelEvent($event)\"\n aria-dropeffect=\"move\"\n [attr.aria-grabbed]=\"i === activeItem\"\n ><ng-template [ngTemplateOutlet]=\"itemTemplate || defItemTemplate\"\n [ngTemplateOutletContext]=\"{item:item, index: i}\"></ng-template></div>\n</div>\n\n<ng-template #defItemTemplate let-item=\"item\">{{item.value}}</ng-template> \n`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SortableComponent),\n multi: true\n }\n ]\n})\n/* tslint:enable */\nexport class SortableComponent implements ControlValueAccessor {\n private static globalZoneIndex = 0;\n /** field name if input array consists of objects */\n @Input() fieldName: string;\n\n /** class name for items wrapper */\n @Input() wrapperClass = '';\n\n /** style object for items wrapper */\n @Input() wrapperStyle: { [key: string]: string } = {};\n\n /** class name for item */\n @Input() itemClass = '';\n\n /** style object for item */\n @Input() itemStyle: { [key: string]: string } = {};\n\n /** class name for active item */\n @Input() itemActiveClass = '';\n\n /** style object for active item */\n @Input() itemActiveStyle: { [key: string]: string } = {};\n\n /** class name for placeholder */\n @Input() placeholderClass = '';\n\n /** style object for placeholder */\n @Input() placeholderStyle: { [key: string]: string } = {};\n\n /** placeholder item which will be shown if collection is empty */\n @Input() placeholderItem = '';\n\n /** used to specify a custom item template. Template variables: item and index; */\n /* tslint:disable-next-line: no-any */\n @Input() itemTemplate: TemplateRef<any>;\n\n /** fired on array change (reordering, insert, remove), same as <code>ngModelChange</code>.\n * Returns new items collection as a payload.\n */\n /* tslint:disable-next-line: no-any */\n @Output() onChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n showPlaceholder = false;\n activeItem = -1;\n\n get items(): SortableItem[] {\n return this._items;\n }\n\n set items(value: SortableItem[]) {\n this._items = value;\n const out = this.items.map((x: SortableItem) => x.initData);\n this.onChanged(out);\n this.onChange.emit(out);\n }\n\n /* tslint:disable-next-line: no-any */\n onTouched: any = Function.prototype;\n /* tslint:disable-next-line: no-any */\n onChanged: any = Function.prototype;\n\n private transfer: DraggableItemService;\n private currentZoneIndex: number;\n private _items: SortableItem[];\n\n constructor(transfer: DraggableItemService) {\n this.transfer = transfer;\n this.currentZoneIndex = SortableComponent.globalZoneIndex++;\n this.transfer\n .onCaptureItem()\n .subscribe((item: DraggableItem) => this.onDrop(item));\n }\n\n onItemDragstart(\n event: DragEvent,\n item: SortableItem,\n i: number\n ): void {\n this.initDragstartEvent(event);\n this.onTouched();\n this.transfer.dragStart({\n event,\n item,\n i,\n initialIndex: i,\n lastZoneIndex: this.currentZoneIndex,\n overZoneIndex: this.currentZoneIndex\n });\n }\n\n onItemDragover(event: DragEvent, i: number): void {\n if (!this.transfer.getItem()) {\n return;\n }\n event.preventDefault();\n const dragItem = this.transfer.captureItem(\n this.currentZoneIndex,\n this.items.length\n );\n\n /* tslint:disable-next-line: no-any */\n let newArray: any[] = [];\n\n if (!this.items.length) {\n newArray = [dragItem.item];\n } else if (dragItem.i > i) {\n newArray = [\n ...this.items.slice(0, i),\n dragItem.item,\n ...this.items.slice(i, dragItem.i),\n ...this.items.slice(dragItem.i + 1)\n ];\n } else {\n // this.draggedItem.i < i\n newArray = [\n ...this.items.slice(0, dragItem.i),\n ...this.items.slice(dragItem.i + 1, i + 1),\n dragItem.item,\n ...this.items.slice(i + 1)\n ];\n }\n this.items = newArray;\n dragItem.i = i;\n this.activeItem = i;\n this.updatePlaceholderState();\n }\n\n cancelEvent(event: DragEvent): void {\n if (!this.transfer.getItem() || !event) {\n return;\n }\n event.preventDefault();\n }\n\n onDrop(item: DraggableItem): void {\n if (\n item &&\n item.overZoneIndex !== this.currentZoneIndex &&\n item.lastZoneIndex === this.currentZoneIndex\n ) {\n this.items = this.items.filter(\n (x: SortableItem, i: number) => i !== item.i\n );\n this.updatePlaceholderState();\n }\n this.resetActiveItem(undefined);\n }\n\n resetActiveItem(event: DragEvent): void {\n this.cancelEvent(event);\n this.activeItem = -1;\n }\n\n registerOnChange(callback: () => void): void {\n this.onChanged = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this.onTouched = callback;\n }\n\n /* tslint:disable-next-line: no-any */\n writeValue(value: any[]): void {\n if (value) {\n /* tslint:disable-next-line: no-any */\n this.items = value.map((x: any, i: number) => ({\n id: i,\n initData: x,\n value: this.fieldName ? x[this.fieldName] : x\n }));\n } else {\n this.items = [];\n }\n this.updatePlaceholderState();\n }\n\n updatePlaceholderState(): void {\n this.showPlaceholder = !this._items.length;\n }\n\n getItemStyle(isActive: boolean): {} {\n return isActive\n ? Object.assign({}, this.itemStyle, this.itemActiveStyle)\n : this.itemStyle;\n }\n\n // tslint:disable-next-line\n private initDragstartEvent(event: DragEvent): void {\n // it is necessary for mozilla\n // data type should be 'Text' instead of 'text/plain' to keep compatibility\n // with IE\n event.dataTransfer.setData('Text', 'placeholder');\n }\n}\n\nexport declare interface SortableItem {\n id: number;\n value: string;\n /* tslint:disable-next-line: no-any */\n initData: any;\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SortableComponent } from './sortable.component';\nimport { DraggableItemService } from './draggable-item.service';\n\n@NgModule({\n declarations: [SortableComponent],\n imports: [CommonModule],\n exports: [SortableComponent]\n})\nexport class SortableModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: SortableModule, providers: [DraggableItemService] };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/sortable",
3
- "version": "5.3.2",
3
+ "version": "5.6.1",
4
4
  "description": "Native Angular Bootstrap Components",
5
5
  "private": true,
6
6
  "main": "bundles/ngx-bootstrap-sortable.umd.js",
@@ -13,7 +13,7 @@
13
13
  "typings": "ngx-bootstrap-sortable.d.ts",
14
14
  "metadata": "ngx-bootstrap-sortable.metadata.json",
15
15
  "sideEffects": false,
16
- "dependencies": {
16
+ "peerDependencies": {
17
17
  "tslib": "^1.9.0"
18
18
  }
19
19
  }
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :
3
3
  typeof define === 'function' && define.amd ? define('ngx-bootstrap/tabs', ['exports', '@angular/core', '@angular/common'], factory) :
4
4
  (global = global || self, factory((global['ngx-bootstrap'] = global['ngx-bootstrap'] || {}, global['ngx-bootstrap'].tabs = {}), global.ng.core, global.ng.common));
5
- }(this, function (exports, core, common) { 'use strict';
5
+ }(this, (function (exports, core, common) { 'use strict';
6
6
 
7
7
  /**
8
8
  * @fileoverview added by tsickle
@@ -48,6 +48,20 @@
48
48
  };
49
49
  return NgTranscludeDirective;
50
50
  }());
51
+ if (false) {
52
+ /** @type {?} */
53
+ NgTranscludeDirective.prototype.viewRef;
54
+ /**
55
+ * @type {?}
56
+ * @protected
57
+ */
58
+ NgTranscludeDirective.prototype._viewRef;
59
+ /**
60
+ * @type {?}
61
+ * @protected
62
+ */
63
+ NgTranscludeDirective.prototype._ngTransclude;
64
+ }
51
65
 
52
66
  /**
53
67
  * @fileoverview added by tsickle
@@ -59,12 +73,28 @@
59
73
  * provides default navigation context class: 'tabs' or 'pills'
60
74
  */
61
75
  this.type = 'tabs';
76
+ /**
77
+ * aria label for tab list
78
+ */
79
+ this.ariaLabel = 'Tabs';
62
80
  }
63
81
  TabsetConfig.decorators = [
64
82
  { type: core.Injectable }
65
83
  ];
66
84
  return TabsetConfig;
67
85
  }());
86
+ if (false) {
87
+ /**
88
+ * provides default navigation context class: 'tabs' or 'pills'
89
+ * @type {?}
90
+ */
91
+ TabsetConfig.prototype.type;
92
+ /**
93
+ * aria label for tab list
94
+ * @type {?}
95
+ */
96
+ TabsetConfig.prototype.ariaLabel;
97
+ }
68
98
 
69
99
  /**
70
100
  * @fileoverview added by tsickle
@@ -378,7 +408,7 @@
378
408
  TabsetComponent.decorators = [
379
409
  { type: core.Component, args: [{
380
410
  selector: 'tabset',
381
- template: "<ul class=\"nav\" [ngClass]=\"classMap\" (click)=\"$event.preventDefault()\">\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\"\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",
411
+ 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",
382
412
  styles: [":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}"]
383
413
  }] }
384
414
  ];
@@ -396,6 +426,49 @@
396
426
  };
397
427
  return TabsetComponent;
398
428
  }());
429
+ if (false) {
430
+ /** @type {?} */
431
+ TabsetComponent.prototype.clazz;
432
+ /** @type {?} */
433
+ TabsetComponent.prototype.tabs;
434
+ /** @type {?} */
435
+ TabsetComponent.prototype.classMap;
436
+ /**
437
+ * aria label for tab list
438
+ * @type {?}
439
+ */
440
+ TabsetComponent.prototype.ariaLabel;
441
+ /**
442
+ * @type {?}
443
+ * @protected
444
+ */
445
+ TabsetComponent.prototype.isDestroyed;
446
+ /**
447
+ * @type {?}
448
+ * @protected
449
+ */
450
+ TabsetComponent.prototype._vertical;
451
+ /**
452
+ * @type {?}
453
+ * @protected
454
+ */
455
+ TabsetComponent.prototype._justified;
456
+ /**
457
+ * @type {?}
458
+ * @protected
459
+ */
460
+ TabsetComponent.prototype._type;
461
+ /**
462
+ * @type {?}
463
+ * @private
464
+ */
465
+ TabsetComponent.prototype.renderer;
466
+ /**
467
+ * @type {?}
468
+ * @private
469
+ */
470
+ TabsetComponent.prototype.elementRef;
471
+ }
399
472
 
400
473
  /**
401
474
  * @fileoverview added by tsickle
@@ -418,6 +491,7 @@
418
491
  */
419
492
  this.removed = new core.EventEmitter();
420
493
  this.addClass = true;
494
+ this.role = 'tabpanel';
421
495
  this.tabset = tabset;
422
496
  this.tabset.addTab(this);
423
497
  }
@@ -499,6 +573,16 @@
499
573
  enumerable: true,
500
574
  configurable: true
501
575
  });
576
+ Object.defineProperty(TabDirective.prototype, "ariaLabelledby", {
577
+ get: /**
578
+ * @return {?}
579
+ */
580
+ function () {
581
+ return this.id ? this.id + "-link" : '';
582
+ },
583
+ enumerable: true,
584
+ configurable: true
585
+ });
502
586
  /**
503
587
  * @return {?}
504
588
  */
@@ -536,10 +620,71 @@
536
620
  selectTab: [{ type: core.Output }],
537
621
  deselect: [{ type: core.Output }],
538
622
  removed: [{ type: core.Output }],
539
- addClass: [{ type: core.HostBinding, args: ['class.tab-pane',] }]
623
+ addClass: [{ type: core.HostBinding, args: ['class.tab-pane',] }],
624
+ role: [{ type: core.HostBinding, args: ['attr.role',] }],
625
+ ariaLabelledby: [{ type: core.HostBinding, args: ['attr.aria-labelledby',] }]
540
626
  };
541
627
  return TabDirective;
542
628
  }());
629
+ if (false) {
630
+ /**
631
+ * tab header text
632
+ * @type {?}
633
+ */
634
+ TabDirective.prototype.heading;
635
+ /**
636
+ * tab id. The same id with suffix '-link' will be added to the corresponding &lt;li&gt; element
637
+ * @type {?}
638
+ */
639
+ TabDirective.prototype.id;
640
+ /**
641
+ * if true tab can not be activated
642
+ * @type {?}
643
+ */
644
+ TabDirective.prototype.disabled;
645
+ /**
646
+ * if true tab can be removable, additional button will appear
647
+ * @type {?}
648
+ */
649
+ TabDirective.prototype.removable;
650
+ /**
651
+ * fired when tab became active, $event:Tab equals to selected instance of Tab component
652
+ * @type {?}
653
+ */
654
+ TabDirective.prototype.selectTab;
655
+ /**
656
+ * fired when tab became inactive, $event:Tab equals to deselected instance of Tab component
657
+ * @type {?}
658
+ */
659
+ TabDirective.prototype.deselect;
660
+ /**
661
+ * fired before tab will be removed, $event:Tab equals to instance of removed tab
662
+ * @type {?}
663
+ */
664
+ TabDirective.prototype.removed;
665
+ /** @type {?} */
666
+ TabDirective.prototype.addClass;
667
+ /** @type {?} */
668
+ TabDirective.prototype.role;
669
+ /** @type {?} */
670
+ TabDirective.prototype.headingRef;
671
+ /** @type {?} */
672
+ TabDirective.prototype.tabset;
673
+ /**
674
+ * @type {?}
675
+ * @protected
676
+ */
677
+ TabDirective.prototype._active;
678
+ /**
679
+ * @type {?}
680
+ * @protected
681
+ */
682
+ TabDirective.prototype._customClass;
683
+ /** @type {?} */
684
+ TabDirective.prototype.elementRef;
685
+ /** @type {?} */
686
+ TabDirective.prototype.renderer;
687
+ }
543
688
 
544
689
  /**
545
690
  * @fileoverview added by tsickle
@@ -563,6 +708,10 @@
563
708
  ]; };
564
709
  return TabHeadingDirective;
565
710
  }());
711
+ if (false) {
712
+ /** @type {?} */
713
+ TabHeadingDirective.prototype.templateRef;
714
+ }
566
715
 
567
716
  /**
568
717
  * @fileoverview added by tsickle
@@ -612,5 +761,5 @@
612
761
 
613
762
  Object.defineProperty(exports, '__esModule', { value: true });
614
763
 
615
- }));
764
+ })));
616
765
  //# sourceMappingURL=ngx-bootstrap-tabs.umd.js.map
@@ -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}\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 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\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()\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,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,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}(),i=function(){function e(){this.type="tabs"}return e.decorators=[{type:t.Injectable}],e}(),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}),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){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 c=void 0,r=1;do{c=s[(t+r)%s.length],r++}while(c.classList.contains("disabled"));c.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" (click)="$event.preventDefault()">\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"\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}(),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.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}),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: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"]}]},e}(),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}(),c=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[i]}},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=c,e.TabsetComponent=a,e.TabsetConfig=i,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,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})}));
2
2
  //# sourceMappingURL=ngx-bootstrap-tabs.umd.min.js.map