ngx-bootstrap 5.6.1 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +8 -1
  3. package/accordion/accordion-group.component.d.ts +3 -2
  4. package/accordion/accordion.module.d.ts +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +5 -2
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  7. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  8. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  9. package/accordion/esm2015/accordion.config.js +6 -2
  10. package/accordion/esm2015/accordion.module.js +2 -3
  11. package/accordion/esm5/accordion.config.js +6 -2
  12. package/accordion/esm5/accordion.module.js +2 -3
  13. package/accordion/fesm2015/ngx-bootstrap-accordion.js +6 -3
  14. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  15. package/accordion/fesm5/ngx-bootstrap-accordion.js +6 -3
  16. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  17. package/accordion/ngx-bootstrap-accordion.metadata.json +1 -1
  18. package/accordion/package.json +2 -2
  19. package/alert/alert.module.d.ts +1 -1
  20. package/alert/bundles/ngx-bootstrap-alert.umd.js +5 -2
  21. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  22. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +2 -2
  23. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  24. package/alert/esm2015/alert.component.js +3 -3
  25. package/alert/esm2015/alert.config.js +6 -2
  26. package/alert/esm2015/alert.module.js +2 -3
  27. package/alert/esm5/alert.component.js +3 -3
  28. package/alert/esm5/alert.config.js +6 -2
  29. package/alert/esm5/alert.module.js +2 -3
  30. package/alert/fesm2015/ngx-bootstrap-alert.js +6 -3
  31. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  32. package/alert/fesm5/ngx-bootstrap-alert.js +6 -3
  33. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  34. package/alert/ngx-bootstrap-alert.metadata.json +1 -1
  35. package/alert/package.json +2 -2
  36. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +293 -16
  37. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  38. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  39. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  40. package/buttons/button-checkbox.directive.d.ts +2 -2
  41. package/buttons/button-radio-group.directive.d.ts +12 -1
  42. package/buttons/button-radio.directive.d.ts +19 -7
  43. package/buttons/buttons.module.d.ts +1 -1
  44. package/buttons/esm2015/button-radio-group.directive.js +140 -3
  45. package/buttons/esm2015/button-radio.directive.js +98 -18
  46. package/buttons/esm2015/buttons.module.js +1 -1
  47. package/buttons/esm5/button-radio-group.directive.js +171 -3
  48. package/buttons/esm5/button-radio.directive.js +126 -17
  49. package/buttons/esm5/buttons.module.js +1 -1
  50. package/buttons/fesm2015/ngx-bootstrap-buttons.js +235 -18
  51. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  52. package/buttons/fesm5/ngx-bootstrap-buttons.js +294 -17
  53. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  54. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  55. package/buttons/package.json +2 -2
  56. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +5 -3
  57. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  58. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +1 -1
  59. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  60. package/carousel/carousel.component.d.ts +7 -5
  61. package/carousel/carousel.module.d.ts +1 -1
  62. package/carousel/esm2015/carousel.config.js +6 -2
  63. package/carousel/esm2015/carousel.module.js +2 -4
  64. package/carousel/esm5/carousel.component.js +4 -4
  65. package/carousel/esm5/carousel.config.js +6 -2
  66. package/carousel/esm5/carousel.module.js +2 -4
  67. package/carousel/fesm2015/ngx-bootstrap-carousel.js +6 -4
  68. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  69. package/carousel/fesm5/ngx-bootstrap-carousel.js +6 -4
  70. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  71. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  72. package/carousel/package.json +2 -2
  73. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +90 -73
  74. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  75. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +69 -1
  76. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  77. package/chronos/esm2015/create/from-anything.js +2 -2
  78. package/chronos/esm2015/duration/valid.js +4 -6
  79. package/chronos/esm2015/i18n/ar.js +1 -4
  80. package/chronos/esm2015/i18n/bg.js +18 -20
  81. package/chronos/esm2015/i18n/cs.js +45 -47
  82. package/chronos/esm2015/i18n/et.js +1 -3
  83. package/chronos/esm2015/i18n/th-be.js +21 -1
  84. package/chronos/esm2015/locale/locale.class.js +5 -3
  85. package/chronos/esm5/create/from-anything.js +2 -2
  86. package/chronos/esm5/duration/valid.js +4 -6
  87. package/chronos/esm5/i18n/ar.js +1 -4
  88. package/chronos/esm5/i18n/bg.js +18 -20
  89. package/chronos/esm5/i18n/cs.js +45 -47
  90. package/chronos/esm5/i18n/et.js +1 -3
  91. package/chronos/esm5/i18n/th-be.js +21 -1
  92. package/chronos/esm5/locale/locale.class.js +6 -3
  93. package/chronos/esm5/test/chain.js +4 -4
  94. package/chronos/fesm2015/ngx-bootstrap-chronos.js +89 -73
  95. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  96. package/chronos/fesm5/ngx-bootstrap-chronos.js +90 -73
  97. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  98. package/chronos/locale/locale.class.d.ts +4 -3
  99. package/chronos/package.json +2 -2
  100. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  101. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  102. package/collapse/collapse.directive.d.ts +3 -2
  103. package/collapse/collapse.module.d.ts +1 -1
  104. package/collapse/esm2015/collapse.module.js +1 -1
  105. package/collapse/esm5/collapse.module.js +1 -1
  106. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  107. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  108. package/collapse/package.json +2 -2
  109. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +5 -4
  110. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  111. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  112. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  113. package/component-loader/component-loader.class.d.ts +4 -3
  114. package/component-loader/esm2015/component-loader.class.js +5 -5
  115. package/component-loader/esm5/component-loader.class.js +6 -5
  116. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +4 -4
  117. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  118. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +5 -4
  119. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  120. package/component-loader/package.json +2 -2
  121. package/datepicker/base/bs-datepicker-container.d.ts +20 -8
  122. package/datepicker/bs-datepicker-inline.component.d.ts +6 -2
  123. package/datepicker/bs-datepicker.component.d.ts +14 -5
  124. package/datepicker/bs-datepicker.config.d.ts +41 -1
  125. package/datepicker/bs-datepicker.css +126 -5
  126. package/datepicker/bs-datepicker.css.map +4 -4
  127. package/datepicker/bs-datepicker.module.d.ts +1 -1
  128. package/datepicker/bs-datepicker.scss +25 -5
  129. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  130. package/datepicker/bs-daterangepicker.component.d.ts +9 -4
  131. package/datepicker/bs-locale.service.d.ts +3 -3
  132. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +604 -93
  133. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  134. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +2 -2
  135. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  136. package/datepicker/datepicker-inner.component.d.ts +2 -1
  137. package/datepicker/datepicker.component.d.ts +2 -1
  138. package/datepicker/datepicker.module.d.ts +1 -1
  139. package/datepicker/daypicker.component.d.ts +1 -1
  140. package/datepicker/engine/flag-days-calendar.d.ts +2 -1
  141. package/datepicker/engine/flag-months-calendar.d.ts +1 -0
  142. package/datepicker/engine/flag-years-calendar.d.ts +1 -0
  143. package/datepicker/esm2015/base/bs-datepicker-container.js +38 -1
  144. package/datepicker/esm2015/bs-datepicker-inline.component.js +12 -1
  145. package/datepicker/esm2015/bs-datepicker-inline.config.js +6 -2
  146. package/datepicker/esm2015/bs-datepicker-input.directive.js +9 -1
  147. package/datepicker/esm2015/bs-datepicker.component.js +45 -6
  148. package/datepicker/esm2015/bs-datepicker.config.js +88 -2
  149. package/datepicker/esm2015/bs-datepicker.module.js +3 -10
  150. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +3 -2
  151. package/datepicker/esm2015/bs-daterangepicker-inline.config.js +6 -2
  152. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +11 -3
  153. package/datepicker/esm2015/bs-daterangepicker.component.js +36 -7
  154. package/datepicker/esm2015/bs-daterangepicker.config.js +6 -2
  155. package/datepicker/esm2015/datepicker.config.js +6 -2
  156. package/datepicker/esm2015/datepicker.module.js +1 -1
  157. package/datepicker/esm2015/engine/flag-days-calendar.js +22 -3
  158. package/datepicker/esm2015/engine/flag-months-calendar.js +14 -3
  159. package/datepicker/esm2015/engine/flag-years-calendar.js +14 -3
  160. package/datepicker/esm2015/models/index.js +13 -1
  161. package/datepicker/esm2015/public_api.js +1 -1
  162. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  163. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +27 -33
  164. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +10 -2
  165. package/datepicker/esm2015/reducer/bs-datepicker.state.js +3 -1
  166. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
  167. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +57 -5
  168. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  169. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +73 -4
  170. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  171. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +42 -4
  172. package/datepicker/esm5/base/bs-datepicker-container.js +52 -1
  173. package/datepicker/esm5/bs-datepicker-inline.component.js +12 -1
  174. package/datepicker/esm5/bs-datepicker-inline.config.js +8 -4
  175. package/datepicker/esm5/bs-datepicker-input.directive.js +9 -1
  176. package/datepicker/esm5/bs-datepicker.component.js +58 -8
  177. package/datepicker/esm5/bs-datepicker.config.js +88 -2
  178. package/datepicker/esm5/bs-datepicker.module.js +3 -10
  179. package/datepicker/esm5/bs-daterangepicker-inline.component.js +3 -2
  180. package/datepicker/esm5/bs-daterangepicker-inline.config.js +8 -4
  181. package/datepicker/esm5/bs-daterangepicker-input.directive.js +11 -3
  182. package/datepicker/esm5/bs-daterangepicker.component.js +49 -9
  183. package/datepicker/esm5/bs-daterangepicker.config.js +8 -4
  184. package/datepicker/esm5/datepicker.config.js +6 -2
  185. package/datepicker/esm5/datepicker.module.js +1 -1
  186. package/datepicker/esm5/engine/flag-days-calendar.js +22 -3
  187. package/datepicker/esm5/engine/flag-months-calendar.js +14 -3
  188. package/datepicker/esm5/engine/flag-years-calendar.js +14 -3
  189. package/datepicker/esm5/engine/format-days-calendar.js +3 -3
  190. package/datepicker/esm5/models/index.js +13 -1
  191. package/datepicker/esm5/public_api.js +1 -1
  192. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  193. package/datepicker/esm5/reducer/bs-datepicker.effects.js +33 -35
  194. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +10 -2
  195. package/datepicker/esm5/reducer/bs-datepicker.state.js +3 -1
  196. package/datepicker/esm5/reducer/bs-datepicker.store.js +3 -3
  197. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
  198. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +74 -8
  199. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +4 -4
  200. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +92 -7
  201. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +4 -4
  202. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +25 -2
  203. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +549 -96
  204. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  205. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +606 -94
  206. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  207. package/datepicker/models/index.d.ts +5 -0
  208. package/datepicker/monthpicker.component.d.ts +1 -1
  209. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  210. package/datepicker/package.json +2 -2
  211. package/datepicker/public_api.d.ts +1 -1
  212. package/datepicker/reducer/bs-datepicker.actions.d.ts +3 -1
  213. package/datepicker/reducer/bs-datepicker.effects.d.ts +2 -1
  214. package/datepicker/reducer/bs-datepicker.state.d.ts +2 -1
  215. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  216. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +9 -5
  217. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +9 -5
  218. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +2 -0
  219. package/datepicker/utils/scss/mixins.css.map +2 -2
  220. package/datepicker/utils/scss/mixins.scss +98 -0
  221. package/datepicker/utils/scss/variables.css.map +1 -1
  222. package/datepicker/utils/scss/variables.scss +14 -0
  223. package/datepicker/yearpicker.component.d.ts +1 -1
  224. package/dropdown/bs-dropdown-container.component.d.ts +1 -1
  225. package/dropdown/bs-dropdown.directive.d.ts +12 -7
  226. package/dropdown/bs-dropdown.module.d.ts +1 -1
  227. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +13 -8
  228. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  229. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
  230. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  231. package/dropdown/esm2015/bs-dropdown.config.js +6 -2
  232. package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
  233. package/dropdown/esm2015/bs-dropdown.module.js +2 -7
  234. package/dropdown/esm5/bs-dropdown-toggle.directive.js +3 -3
  235. package/dropdown/esm5/bs-dropdown.config.js +6 -2
  236. package/dropdown/esm5/bs-dropdown.directive.js +11 -5
  237. package/dropdown/esm5/bs-dropdown.module.js +2 -7
  238. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +13 -9
  239. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  240. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +14 -9
  241. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  242. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  243. package/dropdown/package.json +2 -2
  244. package/locale/package.json +2 -2
  245. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  246. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  247. package/mini-ngrx/esm5/state.class.js +3 -3
  248. package/mini-ngrx/esm5/store.class.js +3 -3
  249. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  250. package/mini-ngrx/package.json +2 -2
  251. package/modal/bs-modal-ref.service.d.ts +15 -2
  252. package/modal/bs-modal.service.d.ts +7 -4
  253. package/modal/bundles/ngx-bootstrap-modal.umd.js +154 -59
  254. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  255. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  256. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  257. package/modal/esm2015/bs-modal-ref.service.js +20 -1
  258. package/modal/esm2015/bs-modal.service.js +102 -47
  259. package/modal/esm2015/modal-container.component.js +10 -2
  260. package/modal/esm2015/modal-options.class.js +14 -3
  261. package/modal/esm2015/modal.directive.js +10 -7
  262. package/modal/esm2015/modal.module.js +1 -1
  263. package/modal/esm2015/models/index.js +3 -1
  264. package/modal/esm2015/ngx-bootstrap-modal.js +2 -2
  265. package/modal/esm2015/public_api.js +2 -2
  266. package/modal/esm5/bs-modal-ref.service.js +19 -1
  267. package/modal/esm5/bs-modal.service.js +109 -57
  268. package/modal/esm5/modal-container.component.js +13 -2
  269. package/modal/esm5/modal-options.class.js +14 -3
  270. package/modal/esm5/modal.directive.js +9 -7
  271. package/modal/esm5/modal.module.js +1 -1
  272. package/modal/esm5/models/index.js +3 -1
  273. package/modal/esm5/ngx-bootstrap-modal.js +2 -2
  274. package/modal/esm5/public_api.js +2 -2
  275. package/modal/fesm2015/ngx-bootstrap-modal.js +148 -52
  276. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  277. package/modal/fesm5/ngx-bootstrap-modal.js +155 -61
  278. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  279. package/modal/modal-backdrop.component.d.ts +4 -2
  280. package/modal/modal-container.component.d.ts +1 -0
  281. package/modal/modal-options.class.d.ts +8 -3
  282. package/modal/modal.directive.d.ts +5 -4
  283. package/modal/modal.module.d.ts +2 -2
  284. package/modal/models/index.d.ts +1 -0
  285. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  286. package/modal/package.json +2 -2
  287. package/modal/public_api.d.ts +1 -1
  288. package/package.json +2 -2
  289. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +5 -2
  290. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  291. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  292. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  293. package/pagination/esm2015/pagination.config.js +6 -2
  294. package/pagination/esm2015/pagination.module.js +2 -3
  295. package/pagination/esm5/pagination.config.js +6 -2
  296. package/pagination/esm5/pagination.module.js +2 -3
  297. package/pagination/fesm2015/ngx-bootstrap-pagination.js +6 -3
  298. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  299. package/pagination/fesm5/ngx-bootstrap-pagination.js +6 -3
  300. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  301. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  302. package/pagination/package.json +2 -2
  303. package/pagination/pager.component.d.ts +8 -4
  304. package/pagination/pagination.component.d.ts +8 -4
  305. package/pagination/pagination.module.d.ts +1 -1
  306. package/popover/bundles/ngx-bootstrap-popover.umd.js +55 -3
  307. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  308. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  309. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  310. package/popover/esm2015/popover-container.component.js +4 -1
  311. package/popover/esm2015/popover.config.js +6 -2
  312. package/popover/esm2015/popover.directive.js +39 -2
  313. package/popover/esm2015/popover.module.js +2 -3
  314. package/popover/esm5/popover-container.component.js +4 -1
  315. package/popover/esm5/popover.config.js +6 -2
  316. package/popover/esm5/popover.directive.js +48 -2
  317. package/popover/esm5/popover.module.js +2 -3
  318. package/popover/fesm2015/ngx-bootstrap-popover.js +47 -4
  319. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  320. package/popover/fesm5/ngx-bootstrap-popover.js +56 -4
  321. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  322. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  323. package/popover/package.json +2 -2
  324. package/popover/popover-container.component.d.ts +2 -1
  325. package/popover/popover.directive.d.ts +10 -1
  326. package/popover/popover.module.d.ts +1 -1
  327. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +7 -7
  328. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  329. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
  330. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  331. package/positioning/esm2015/modifiers/flip.js +3 -3
  332. package/positioning/esm2015/modifiers/preventOverflow.js +2 -2
  333. package/positioning/esm2015/modifiers/shift.js +2 -2
  334. package/positioning/esm2015/utils/computeAutoPlacement.js +2 -2
  335. package/positioning/esm2015/utils/getClientRect.js +2 -2
  336. package/positioning/esm5/modifiers/flip.js +4 -4
  337. package/positioning/esm5/modifiers/preventOverflow.js +4 -4
  338. package/positioning/esm5/modifiers/shift.js +3 -3
  339. package/positioning/esm5/utils/computeAutoPlacement.js +3 -3
  340. package/positioning/esm5/utils/getClientRect.js +3 -3
  341. package/positioning/fesm2015/ngx-bootstrap-positioning.js +6 -6
  342. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  343. package/positioning/fesm5/ngx-bootstrap-positioning.js +7 -7
  344. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  345. package/positioning/package.json +2 -2
  346. package/positioning/positioning.service.d.ts +1 -1
  347. package/progressbar/bar.component.d.ts +4 -5
  348. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +45 -66
  349. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  350. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  351. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  352. package/progressbar/esm2015/bar.component.js +33 -48
  353. package/progressbar/esm2015/progressbar.component.js +5 -8
  354. package/progressbar/esm2015/progressbar.config.js +6 -2
  355. package/progressbar/esm2015/progressbar.module.js +2 -3
  356. package/progressbar/esm5/bar.component.js +37 -58
  357. package/progressbar/esm5/progressbar.component.js +5 -8
  358. package/progressbar/esm5/progressbar.config.js +6 -2
  359. package/progressbar/esm5/progressbar.module.js +2 -3
  360. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +42 -57
  361. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  362. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +46 -67
  363. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  364. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
  365. package/progressbar/package.json +2 -2
  366. package/progressbar/progressbar.component.d.ts +7 -6
  367. package/progressbar/progressbar.module.d.ts +1 -1
  368. package/rating/bundles/ngx-bootstrap-rating.umd.js +5 -2
  369. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  370. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  371. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  372. package/rating/esm2015/rating.config.js +6 -2
  373. package/rating/esm2015/rating.module.js +2 -3
  374. package/rating/esm5/rating.config.js +6 -2
  375. package/rating/esm5/rating.module.js +2 -3
  376. package/rating/fesm2015/ngx-bootstrap-rating.js +6 -3
  377. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  378. package/rating/fesm5/ngx-bootstrap-rating.js +6 -3
  379. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  380. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  381. package/rating/package.json +2 -2
  382. package/rating/rating.module.d.ts +1 -1
  383. package/schematics/ng-add/index.spec.js +30 -27
  384. package/schematics/ng-add/index.spec.js.map +1 -1
  385. package/schematics/utils/index.js +18 -5
  386. package/schematics/utils/index.js.map +1 -1
  387. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  388. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  389. package/sortable/esm2015/sortable.module.js +1 -1
  390. package/sortable/esm5/sortable.component.js +4 -4
  391. package/sortable/esm5/sortable.module.js +1 -1
  392. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  393. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  394. package/sortable/package.json +2 -2
  395. package/sortable/sortable.component.d.ts +2 -1
  396. package/sortable/sortable.module.d.ts +1 -1
  397. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +40 -3
  398. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  399. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  400. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  401. package/tabs/esm2015/tab.directive.js +2 -2
  402. package/tabs/esm2015/tabs.module.js +2 -3
  403. package/tabs/esm2015/tabset.component.js +22 -1
  404. package/tabs/esm2015/tabset.config.js +15 -2
  405. package/tabs/esm5/tab.directive.js +2 -2
  406. package/tabs/esm5/tabs.module.js +2 -3
  407. package/tabs/esm5/tabset.component.js +26 -1
  408. package/tabs/esm5/tabset.config.js +15 -2
  409. package/tabs/fesm2015/ngx-bootstrap-tabs.js +37 -4
  410. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  411. package/tabs/fesm5/ngx-bootstrap-tabs.js +41 -4
  412. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  413. package/tabs/ng-transclude.directive.d.ts +2 -2
  414. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  415. package/tabs/package.json +2 -2
  416. package/tabs/tab.directive.d.ts +5 -3
  417. package/tabs/tabs.module.d.ts +1 -1
  418. package/tabs/tabset.component.d.ts +9 -3
  419. package/tabs/tabset.config.d.ts +2 -0
  420. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +11 -6
  421. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  422. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +1 -1
  423. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  424. package/timepicker/esm2015/timepicker-controls.util.js +4 -2
  425. package/timepicker/esm2015/timepicker.component.js +2 -2
  426. package/timepicker/esm2015/timepicker.config.js +8 -4
  427. package/timepicker/esm2015/timepicker.module.js +2 -3
  428. package/timepicker/esm5/reducer/timepicker.store.js +3 -3
  429. package/timepicker/esm5/timepicker-controls.util.js +4 -2
  430. package/timepicker/esm5/timepicker.component.js +2 -2
  431. package/timepicker/esm5/timepicker.config.js +8 -4
  432. package/timepicker/esm5/timepicker.module.js +2 -3
  433. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +12 -7
  434. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  435. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +12 -7
  436. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  437. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  438. package/timepicker/package.json +2 -2
  439. package/timepicker/timepicker.component.d.ts +3 -3
  440. package/timepicker/timepicker.config.d.ts +1 -1
  441. package/timepicker/timepicker.module.d.ts +1 -1
  442. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +5 -2
  443. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  444. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
  445. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  446. package/tooltip/esm2015/tooltip.config.js +6 -2
  447. package/tooltip/esm2015/tooltip.directive.js +3 -3
  448. package/tooltip/esm2015/tooltip.module.js +2 -3
  449. package/tooltip/esm5/tooltip.config.js +6 -2
  450. package/tooltip/esm5/tooltip.directive.js +3 -3
  451. package/tooltip/esm5/tooltip.module.js +2 -3
  452. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +6 -3
  453. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  454. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +6 -3
  455. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  456. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  457. package/tooltip/package.json +2 -2
  458. package/tooltip/tooltip-container.component.d.ts +1 -1
  459. package/tooltip/tooltip.directive.d.ts +15 -10
  460. package/tooltip/tooltip.module.d.ts +1 -1
  461. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +170 -19
  462. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  463. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
  464. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  465. package/typeahead/esm2015/typeahead-utils.js +35 -4
  466. package/typeahead/esm2015/typeahead.config.js +6 -2
  467. package/typeahead/esm2015/typeahead.directive.js +121 -16
  468. package/typeahead/esm2015/typeahead.module.js +2 -3
  469. package/typeahead/esm5/typeahead-utils.js +37 -6
  470. package/typeahead/esm5/typeahead.config.js +6 -2
  471. package/typeahead/esm5/typeahead.directive.js +135 -18
  472. package/typeahead/esm5/typeahead.module.js +2 -3
  473. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +160 -21
  474. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  475. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +172 -21
  476. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  477. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  478. package/typeahead/package.json +2 -2
  479. package/typeahead/typeahead-container.component.d.ts +14 -12
  480. package/typeahead/typeahead-utils.d.ts +1 -1
  481. package/typeahead/typeahead.directive.d.ts +20 -1
  482. package/typeahead/typeahead.module.d.ts +1 -1
  483. package/utils/package.json +2 -2
@@ -195,6 +195,9 @@
195
195
  * @fileoverview added by tsickle
196
196
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
197
197
  */
198
+ /**
199
+ * @template T
200
+ */
198
201
  var BsModalRef = /** @class */ (function () {
199
202
  function BsModalRef() {
200
203
  /**
@@ -212,6 +215,11 @@
212
215
  return BsModalRef;
213
216
  }());
214
217
  if (false) {
218
+ /**
219
+ * Allow user to ID for the modal. Otherwise, a unique number will be given
220
+ * @type {?}
221
+ */
222
+ BsModalRef.prototype.id;
215
223
  /**
216
224
  * Reference to a component inside the modal. Null if modal's been created with TemplateRef
217
225
  * @type {?}
@@ -227,6 +235,16 @@
227
235
  * @type {?}
228
236
  */
229
237
  BsModalRef.prototype.setClass;
238
+ /**
239
+ * Event that is fired when the modal behind the ref starts hiding
240
+ * @type {?}
241
+ */
242
+ BsModalRef.prototype.onHide;
243
+ /**
244
+ * Event that is fired when the modal behind the ref finishes hiding
245
+ * @type {?}
246
+ */
247
+ BsModalRef.prototype.onHidden;
230
248
  }
231
249
 
232
250
  /**
@@ -249,6 +267,9 @@
249
267
  * @fileoverview added by tsickle
250
268
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
251
269
  */
270
+ /**
271
+ * @template T
272
+ */
252
273
  var ModalOptions = /** @class */ (function () {
253
274
  function ModalOptions() {
254
275
  }
@@ -258,6 +279,11 @@
258
279
  return ModalOptions;
259
280
  }());
260
281
  if (false) {
282
+ /**
283
+ * Allow user to ID for the modal. Otherwise, a unique number will be given
284
+ * @type {?}
285
+ */
286
+ ModalOptions.prototype.id;
261
287
  /**
262
288
  * Includes a modal-backdrop element. Alternatively,
263
289
  * specify static for a backdrop which doesn't close the modal on click.
@@ -324,6 +350,8 @@
324
350
  initialState: {}
325
351
  };
326
352
  /** @type {?} */
353
+ var MODAL_CONFIG_DEFAULT_OVERRIDE = new core.InjectionToken('override-default-config');
354
+ /** @type {?} */
327
355
  var CLASS_NAME = {
328
356
  SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
329
357
  BACKDROP: 'modal-backdrop',
@@ -348,7 +376,8 @@
348
376
  /** @type {?} */
349
377
  var DISMISS_REASONS = {
350
378
  BACKRDOP: 'backdrop-click',
351
- ESC: 'esc'
379
+ ESC: 'esc',
380
+ BACK: 'browser-back-navigation-clicked'
352
381
  };
353
382
 
354
383
  /**
@@ -425,6 +454,16 @@
425
454
  this.bsModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);
426
455
  this.hide();
427
456
  };
457
+ /**
458
+ * @return {?}
459
+ */
460
+ ModalContainerComponent.prototype.onPopState = /**
461
+ * @return {?}
462
+ */
463
+ function () {
464
+ this.bsModalService.setDismissReason(DISMISS_REASONS.BACK);
465
+ this.hide();
466
+ };
428
467
  /**
429
468
  * @param {?} event
430
469
  * @return {?}
@@ -481,7 +520,7 @@
481
520
  _this.bsModalService.getModalsCount() === 1) {
482
521
  _this._renderer.removeClass(document.body, CLASS_NAME.OPEN);
483
522
  }
484
- _this.bsModalService.hide(_this.level);
523
+ _this.bsModalService.hide(_this.config.id);
485
524
  _this.isModalHiding = false;
486
525
  }), this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);
487
526
  };
@@ -508,6 +547,7 @@
508
547
  ModalContainerComponent.propDecorators = {
509
548
  onClickStarted: [{ type: core.HostListener, args: ['mousedown', ['$event'],] }],
510
549
  onClickStop: [{ type: core.HostListener, args: ['mouseup', ['$event'],] }],
550
+ onPopState: [{ type: core.HostListener, args: ['window:popstate',] }],
511
551
  onEsc: [{ type: core.HostListener, args: ['window:keydown.esc', ['$event'],] }]
512
552
  };
513
553
  return ModalContainerComponent;
@@ -663,7 +703,7 @@
663
703
  * Mark any code with directive to show it's content in modal
664
704
  */
665
705
  var ModalDirective = /** @class */ (function () {
666
- function ModalDirective(_element, _viewContainerRef, _renderer, clf) {
706
+ function ModalDirective(_element, _viewContainerRef, _renderer, clf, modalDefaultOption) {
667
707
  this._element = _element;
668
708
  this._renderer = _renderer;
669
709
  /**
@@ -694,6 +734,7 @@
694
734
  this.isNested = false;
695
735
  this.clickStartedInContent = false;
696
736
  this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);
737
+ this._config = modalDefaultOption || modalConfigDefaults;
697
738
  }
698
739
  Object.defineProperty(ModalDirective.prototype, "config", {
699
740
  get: /**
@@ -916,7 +957,7 @@
916
957
  * @return {?}
917
958
  */
918
959
  function (config) {
919
- return Object.assign({}, modalConfigDefaults, config);
960
+ return Object.assign({}, this._config, config);
920
961
  };
921
962
  /**
922
963
  * Show dialog
@@ -1262,7 +1303,8 @@
1262
1303
  { type: core.ElementRef },
1263
1304
  { type: core.ViewContainerRef },
1264
1305
  { type: core.Renderer2 },
1265
- { type: componentLoader.ComponentLoaderFactory }
1306
+ { type: componentLoader.ComponentLoaderFactory },
1307
+ { type: ModalOptions, decorators: [{ type: core.Optional }, { type: core.Inject, args: [MODAL_CONFIG_DEFAULT_OVERRIDE,] }] }
1266
1308
  ]; };
1267
1309
  ModalDirective.propDecorators = {
1268
1310
  config: [{ type: core.Input }],
@@ -1302,7 +1344,7 @@
1302
1344
  ModalDirective.prototype.onHidden;
1303
1345
  /**
1304
1346
  * This field contains last dismiss reason.
1305
- * Possible values: `backdrop-click`, `esc` and `null`
1347
+ * Possible values: `backdrop-click`, `esc` and `id: number`
1306
1348
  * (if modal was closed by direct call of `.hide()`).
1307
1349
  * @type {?}
1308
1350
  */
@@ -1379,10 +1421,9 @@
1379
1421
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1380
1422
  */
1381
1423
  var BsModalService = /** @class */ (function () {
1382
- function BsModalService(rendererFactory, clf) {
1424
+ function BsModalService(rendererFactory, clf, modalDefaultOption) {
1383
1425
  this.clf = clf;
1384
- // constructor props
1385
- this.config = modalConfigDefaults;
1426
+ this.modalDefaultOption = modalDefaultOption;
1386
1427
  // tslint:disable-next-line:no-any
1387
1428
  this.onShow = new core.EventEmitter();
1388
1429
  // tslint:disable-next-line:no-any
@@ -1395,56 +1436,65 @@
1395
1436
  this.originalBodyPadding = 0;
1396
1437
  this.scrollbarWidth = 0;
1397
1438
  this.modalsCount = 0;
1398
- this.lastDismissReason = '';
1439
+ this.lastDismissReason = null;
1399
1440
  this.loaders = [];
1400
1441
  this._backdropLoader = this.clf.createLoader(null, null, null);
1401
1442
  this._renderer = rendererFactory.createRenderer(null, null);
1443
+ this.config = modalDefaultOption ?
1444
+ (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :
1445
+ modalConfigDefaults;
1402
1446
  }
1403
1447
  /** Shows a modal */
1404
- // tslint:disable-next-line:no-any
1405
1448
  /**
1406
1449
  * Shows a modal
1450
+ * @template T
1407
1451
  * @param {?} content
1408
1452
  * @param {?=} config
1409
1453
  * @return {?}
1410
1454
  */
1411
- // tslint:disable-next-line:no-any
1412
1455
  BsModalService.prototype.show = /**
1413
1456
  * Shows a modal
1457
+ * @template T
1414
1458
  * @param {?} content
1415
1459
  * @param {?=} config
1416
1460
  * @return {?}
1417
1461
  */
1462
+ function (
1418
1463
  // tslint:disable-next-line:no-any
1419
- function (content, config) {
1464
+ content, config) {
1420
1465
  this.modalsCount++;
1421
1466
  this._createLoaders();
1422
- this.config = Object.assign({}, modalConfigDefaults, config);
1467
+ /** @type {?} */
1468
+ var id = (config === null || config === void 0 ? void 0 : config.id) || (new Date()).getUTCMilliseconds();
1469
+ this.config = this.modalDefaultOption ?
1470
+ Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :
1471
+ Object.assign({}, modalConfigDefaults, config);
1472
+ this.config.id = id;
1423
1473
  this._showBackdrop();
1424
1474
  this.lastDismissReason = null;
1425
1475
  return this._showModal(content);
1426
1476
  };
1427
1477
  /**
1428
- * @param {?} level
1478
+ * @param {?=} id
1429
1479
  * @return {?}
1430
1480
  */
1431
1481
  BsModalService.prototype.hide = /**
1432
- * @param {?} level
1482
+ * @param {?=} id
1433
1483
  * @return {?}
1434
1484
  */
1435
- function (level) {
1485
+ function (id) {
1436
1486
  var _this = this;
1437
- if (this.modalsCount === 1) {
1487
+ if (this.modalsCount === 1 || id == null) {
1438
1488
  this._hideBackdrop();
1439
1489
  this.resetScrollbar();
1440
1490
  }
1441
- this.modalsCount = this.modalsCount >= 1 ? this.modalsCount - 1 : 0;
1491
+ this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;
1442
1492
  setTimeout((/**
1443
1493
  * @return {?}
1444
1494
  */
1445
1495
  function () {
1446
- _this._hideModal(level);
1447
- _this.removeLoaders(level);
1496
+ _this._hideModal(id);
1497
+ _this.removeLoaders(id);
1448
1498
  }), this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);
1449
1499
  };
1450
1500
  /**
@@ -1502,20 +1552,20 @@
1502
1552
  */
1503
1553
  function (content) {
1504
1554
  var e_1, _a;
1505
- var _this = this;
1555
+ var _b;
1506
1556
  /** @type {?} */
1507
1557
  var modalLoader = this.loaders[this.loaders.length - 1];
1508
1558
  if (this.config && this.config.providers) {
1509
1559
  try {
1510
- for (var _b = __values(this.config.providers), _c = _b.next(); !_c.done; _c = _b.next()) {
1511
- var provider = _c.value;
1560
+ for (var _c = __values(this.config.providers), _d = _c.next(); !_d.done; _d = _c.next()) {
1561
+ var provider = _d.value;
1512
1562
  modalLoader.provide(provider);
1513
1563
  }
1514
1564
  }
1515
1565
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
1516
1566
  finally {
1517
1567
  try {
1518
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1568
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
1519
1569
  }
1520
1570
  finally { if (e_1) throw e_1.error; }
1521
1571
  }
@@ -1527,21 +1577,11 @@
1527
1577
  .provide({ provide: ModalOptions, useValue: this.config })
1528
1578
  .provide({ provide: BsModalRef, useValue: bsModalRef })
1529
1579
  .attach(ModalContainerComponent)
1530
- .to('body')
1531
- .show({ content: content, isAnimated: this.config.animated, initialState: this.config.initialState, bsModalService: this });
1532
- modalContainerRef.instance.level = this.getModalsCount();
1580
+ .to('body');
1533
1581
  bsModalRef.hide = (/**
1534
1582
  * @return {?}
1535
1583
  */
1536
- function () {
1537
- /** @type {?} */
1538
- var duration = _this.config.animated ? TRANSITION_DURATIONS.MODAL : 0;
1539
- setTimeout((/**
1540
- * @return {?}
1541
- */
1542
- function () { return modalContainerRef.instance.hide(); }), duration);
1543
- });
1544
- bsModalRef.content = modalLoader.getInnerComponent() || null;
1584
+ function () { return modalContainerRef.instance.hide(); });
1545
1585
  bsModalRef.setClass = (/**
1546
1586
  * @param {?} newClass
1547
1587
  * @return {?}
@@ -1549,21 +1589,54 @@
1549
1589
  function (newClass) {
1550
1590
  modalContainerRef.instance.config.class = newClass;
1551
1591
  });
1592
+ bsModalRef.onHidden = new core.EventEmitter();
1593
+ bsModalRef.onHide = new core.EventEmitter();
1594
+ this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);
1595
+ this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);
1596
+ // call 'show' method after assign setClass in bsModalRef.
1597
+ // it makes modal component's bsModalRef available to call setClass method
1598
+ modalContainerRef.show({
1599
+ content: content,
1600
+ isAnimated: this.config.animated,
1601
+ initialState: this.config.initialState,
1602
+ bsModalService: this,
1603
+ id: this.config.id
1604
+ });
1605
+ modalContainerRef.instance.level = this.getModalsCount();
1606
+ bsModalRef.content = modalLoader.getInnerComponent() || null;
1607
+ bsModalRef.id = (_b = modalContainerRef.instance.config) === null || _b === void 0 ? void 0 : _b.id;
1552
1608
  return bsModalRef;
1553
1609
  };
1554
1610
  /**
1555
- * @param {?} level
1611
+ * @param {?=} id
1556
1612
  * @return {?}
1557
1613
  */
1558
1614
  BsModalService.prototype._hideModal = /**
1559
- * @param {?} level
1615
+ * @param {?=} id
1560
1616
  * @return {?}
1561
1617
  */
1562
- function (level) {
1563
- /** @type {?} */
1564
- var modalLoader = this.loaders[level - 1];
1565
- if (modalLoader) {
1566
- modalLoader.hide();
1618
+ function (id) {
1619
+ if (id != null) {
1620
+ /** @type {?} */
1621
+ var indexToRemove = this.loaders.findIndex((/**
1622
+ * @param {?} loader
1623
+ * @return {?}
1624
+ */
1625
+ function (loader) { return loader.instance.config.id === id; }));
1626
+ /** @type {?} */
1627
+ var modalLoader = this.loaders[indexToRemove];
1628
+ if (modalLoader) {
1629
+ modalLoader.hide(id);
1630
+ }
1631
+ }
1632
+ else {
1633
+ this.loaders.forEach((/**
1634
+ * @param {?} loader
1635
+ * @return {?}
1636
+ */
1637
+ function (loader) {
1638
+ loader.hide(loader.instance.config.id);
1639
+ }));
1567
1640
  }
1568
1641
  };
1569
1642
  /**
@@ -1593,6 +1666,7 @@
1593
1666
  * @return {?}
1594
1667
  */
1595
1668
  function () {
1669
+ this._renderer.removeClass(document.body, CLASS_NAME.OPEN);
1596
1670
  this._backdropLoader.hide();
1597
1671
  this.backdropRef = null;
1598
1672
  };
@@ -1682,24 +1756,37 @@
1682
1756
  };
1683
1757
  /**
1684
1758
  * @private
1685
- * @param {?} level
1759
+ * @param {?=} id
1686
1760
  * @return {?}
1687
1761
  */
1688
1762
  BsModalService.prototype.removeLoaders = /**
1689
1763
  * @private
1690
- * @param {?} level
1764
+ * @param {?=} id
1691
1765
  * @return {?}
1692
1766
  */
1693
- function (level) {
1694
- this.loaders.splice(level - 1, 1);
1695
- this.loaders.forEach((/**
1696
- * @param {?} loader
1697
- * @param {?} i
1698
- * @return {?}
1699
- */
1700
- function (loader, i) {
1701
- loader.instance.level = i + 1;
1702
- }));
1767
+ function (id) {
1768
+ if (id != null) {
1769
+ /** @type {?} */
1770
+ var indexToRemove = this.loaders.findIndex((/**
1771
+ * @param {?} loader
1772
+ * @return {?}
1773
+ */
1774
+ function (loader) { return loader.instance.config.id === id; }));
1775
+ if (indexToRemove >= 0) {
1776
+ this.loaders.splice(indexToRemove, 1);
1777
+ this.loaders.forEach((/**
1778
+ * @param {?} loader
1779
+ * @param {?} i
1780
+ * @return {?}
1781
+ */
1782
+ function (loader, i) {
1783
+ loader.instance.level = i + 1;
1784
+ }));
1785
+ }
1786
+ }
1787
+ else {
1788
+ this.loaders.splice(0, this.loaders.length);
1789
+ }
1703
1790
  };
1704
1791
  // tslint:disable-next-line:no-any
1705
1792
  // tslint:disable-next-line:no-any
@@ -1720,10 +1807,11 @@
1720
1807
  function (from, to) {
1721
1808
  var _this = this;
1722
1809
  from.subscribe((/**
1810
+ * @param {?} data
1723
1811
  * @return {?}
1724
1812
  */
1725
- function () {
1726
- to.emit(_this.lastDismissReason);
1813
+ function (data) {
1814
+ to.emit(_this.lastDismissReason || data);
1727
1815
  }));
1728
1816
  };
1729
1817
  BsModalService.decorators = [
@@ -1732,7 +1820,8 @@
1732
1820
  /** @nocollapse */
1733
1821
  BsModalService.ctorParameters = function () { return [
1734
1822
  { type: core.RendererFactory2 },
1735
- { type: componentLoader.ComponentLoaderFactory }
1823
+ { type: componentLoader.ComponentLoaderFactory },
1824
+ { type: ModalOptions, decorators: [{ type: core.Optional }, { type: core.Inject, args: [MODAL_CONFIG_DEFAULT_OVERRIDE,] }] }
1736
1825
  ]; };
1737
1826
  return BsModalService;
1738
1827
  }());
@@ -1797,6 +1886,11 @@
1797
1886
  * @private
1798
1887
  */
1799
1888
  BsModalService.prototype.clf;
1889
+ /**
1890
+ * @type {?}
1891
+ * @private
1892
+ */
1893
+ BsModalService.prototype.modalDefaultOption;
1800
1894
  }
1801
1895
 
1802
1896
  /**
@@ -1846,6 +1940,7 @@
1846
1940
 
1847
1941
  exports.BsModalRef = BsModalRef;
1848
1942
  exports.BsModalService = BsModalService;
1943
+ exports.MODAL_CONFIG_DEFAULT_OVERRIDE = MODAL_CONFIG_DEFAULT_OVERRIDE;
1849
1944
  exports.ModalBackdropComponent = ModalBackdropComponent;
1850
1945
  exports.ModalBackdropOptions = ModalBackdropOptions;
1851
1946
  exports.ModalContainerComponent = ModalContainerComponent;