ngx-bootstrap 10.2.1 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (625) hide show
  1. package/README.md +3 -5
  2. package/accordion/accordion-group.component.d.ts +1 -1
  3. package/accordion/accordion.component.d.ts +1 -1
  4. package/accordion/esm2022/accordion-group.component.mjs +84 -0
  5. package/accordion/{esm2020 → esm2022}/accordion.component.mjs +4 -4
  6. package/accordion/{esm2020 → esm2022}/accordion.config.mjs +4 -4
  7. package/accordion/{esm2020 → esm2022}/accordion.module.mjs +5 -5
  8. package/accordion/{fesm2020 → fesm2022}/ngx-bootstrap-accordion.mjs +29 -29
  9. package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -0
  10. package/accordion/package.json +8 -14
  11. package/alert/alert.component.d.ts +1 -1
  12. package/alert/esm2022/alert.component.mjs +77 -0
  13. package/alert/{esm2020 → esm2022}/alert.config.mjs +4 -4
  14. package/alert/{esm2020 → esm2022}/alert.module.mjs +5 -5
  15. package/alert/{fesm2015 → fesm2022}/ngx-bootstrap-alert.mjs +10 -10
  16. package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -0
  17. package/alert/package.json +8 -14
  18. package/buttons/button-checkbox.directive.d.ts +2 -2
  19. package/buttons/button-radio.directive.d.ts +1 -1
  20. package/buttons/{esm2020 → esm2022}/button-checkbox.directive.mjs +4 -4
  21. package/buttons/{esm2020 → esm2022}/button-radio-group.directive.mjs +4 -4
  22. package/buttons/esm2022/button-radio.directive.mjs +188 -0
  23. package/buttons/{esm2020 → esm2022}/buttons.module.mjs +5 -5
  24. package/buttons/{fesm2020 → fesm2022}/ngx-bootstrap-buttons.mjs +26 -26
  25. package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -0
  26. package/buttons/package.json +7 -13
  27. package/carousel/carousel.component.d.ts +1 -1
  28. package/carousel/esm2022/carousel.component.mjs +713 -0
  29. package/carousel/{esm2020 → esm2022}/carousel.config.mjs +4 -4
  30. package/carousel/{esm2020 → esm2022}/carousel.module.mjs +5 -5
  31. package/carousel/{esm2020 → esm2022}/slide.component.mjs +6 -6
  32. package/carousel/{fesm2020 → fesm2022}/ngx-bootstrap-carousel.mjs +65 -56
  33. package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -0
  34. package/carousel/package.json +8 -14
  35. package/carousel/slide.component.d.ts +1 -1
  36. package/chronos/duration/create.d.ts +1 -1
  37. package/chronos/{fesm2020 → fesm2022}/ngx-bootstrap-chronos.mjs +4 -0
  38. package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -0
  39. package/chronos/locale/locale.class.d.ts +3 -3
  40. package/chronos/moment/calendar.d.ts +1 -1
  41. package/chronos/package.json +5 -11
  42. package/chronos/parse/regex.d.ts +1 -1
  43. package/chronos/testing/chain.d.ts +3 -3
  44. package/chronos/types.d.ts +4 -4
  45. package/chronos/units/aliases.d.ts +1 -1
  46. package/collapse/collapse.directive.d.ts +1 -1
  47. package/collapse/esm2022/collapse.directive.mjs +168 -0
  48. package/collapse/{esm2020 → esm2022}/collapse.module.mjs +5 -5
  49. package/collapse/{fesm2020 → fesm2022}/ngx-bootstrap-collapse.mjs +26 -26
  50. package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -0
  51. package/collapse/package.json +8 -14
  52. package/component-loader/{esm2020 → esm2022}/component-loader.factory.mjs +4 -4
  53. package/component-loader/{fesm2020 → fesm2022}/ngx-bootstrap-component-loader.mjs +5 -3
  54. package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -0
  55. package/component-loader/listen-options.model.d.ts +1 -1
  56. package/component-loader/package.json +7 -13
  57. package/datepicker/bs-datepicker-inline.component.d.ts +1 -1
  58. package/datepicker/bs-datepicker.component.d.ts +1 -1
  59. package/datepicker/bs-datepicker.config.d.ts +4 -0
  60. package/datepicker/bs-datepicker.css +6 -3
  61. package/datepicker/bs-datepicker.css.map +1 -1
  62. package/datepicker/bs-datepicker.scss +7 -2
  63. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  64. package/datepicker/bs-daterangepicker.component.d.ts +1 -1
  65. package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.component.mjs +4 -4
  66. package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.config.mjs +4 -4
  67. package/datepicker/{esm2020 → esm2022}/bs-datepicker-input.directive.mjs +4 -4
  68. package/datepicker/esm2022/bs-datepicker.component.mjs +303 -0
  69. package/datepicker/esm2022/bs-datepicker.config.mjs +101 -0
  70. package/datepicker/{esm2020 → esm2022}/bs-datepicker.module.mjs +32 -32
  71. package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +163 -0
  72. package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-inline.config.mjs +4 -4
  73. package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-input.directive.mjs +4 -4
  74. package/datepicker/esm2022/bs-daterangepicker.component.mjs +296 -0
  75. package/datepicker/{esm2020 → esm2022}/bs-daterangepicker.config.mjs +4 -4
  76. package/datepicker/{esm2020 → esm2022}/bs-locale.service.mjs +4 -4
  77. package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +143 -0
  78. package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.effects.mjs +4 -4
  79. package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.store.mjs +4 -4
  80. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-calendar-layout.component.mjs +6 -6
  81. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-current-date-view.component.mjs +4 -4
  82. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-custom-dates-view.component.mjs +6 -6
  83. package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +192 -0
  84. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-day-decorator.directive.mjs +4 -4
  85. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-inline-container.component.mjs +9 -9
  86. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-navigation-view.component.mjs +6 -6
  87. package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +261 -0
  88. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-daterangepicker-inline-container.component.mjs +9 -9
  89. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-days-calendar-view.component.mjs +6 -6
  90. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-months-calendar-view.component.mjs +6 -6
  91. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-timepicker-view.component.mjs +6 -6
  92. package/datepicker/{esm2020 → esm2022}/themes/bs/bs-years-calendar-view.component.mjs +6 -6
  93. package/datepicker/{fesm2020 → fesm2022}/ngx-bootstrap-datepicker.mjs +236 -230
  94. package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -0
  95. package/datepicker/models/index.d.ts +1 -1
  96. package/datepicker/package.json +13 -19
  97. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +1 -1
  98. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -1
  99. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +1 -1
  100. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
  101. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +1 -1
  102. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
  103. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
  104. package/datepicker/utils/matrix-utils.d.ts +1 -1
  105. package/dropdown/bs-dropdown.directive.d.ts +1 -1
  106. package/dropdown/esm2022/bs-dropdown-container.component.mjs +79 -0
  107. package/dropdown/{esm2020 → esm2022}/bs-dropdown-menu.directive.mjs +4 -4
  108. package/dropdown/{esm2020 → esm2022}/bs-dropdown-toggle.directive.mjs +4 -4
  109. package/dropdown/{esm2020 → esm2022}/bs-dropdown.config.mjs +4 -4
  110. package/dropdown/esm2022/bs-dropdown.directive.mjs +340 -0
  111. package/dropdown/{esm2020 → esm2022}/bs-dropdown.module.mjs +10 -10
  112. package/dropdown/{esm2020 → esm2022}/bs-dropdown.state.mjs +4 -4
  113. package/dropdown/{fesm2020 → fesm2022}/ngx-bootstrap-dropdown.mjs +62 -62
  114. package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -0
  115. package/dropdown/package.json +10 -16
  116. package/fesm2022/ngx-bootstrap.mjs.map +1 -0
  117. package/focus-trap/boolean-property.d.ts +1 -1
  118. package/focus-trap/{esm2020 → esm2022}/focus-trap-manager.mjs +4 -4
  119. package/focus-trap/esm2022/focus-trap.mjs +399 -0
  120. package/focus-trap/{esm2020 → esm2022}/focus-trap.module.mjs +5 -5
  121. package/focus-trap/{esm2020 → esm2022}/interactivity-checker.mjs +4 -4
  122. package/focus-trap/{esm2020 → esm2022}/platform.mjs +4 -4
  123. package/focus-trap/{fesm2020 → fesm2022}/ngx-bootstrap-focus-trap.mjs +43 -39
  124. package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -0
  125. package/focus-trap/focus-trap.d.ts +1 -1
  126. package/focus-trap/package.json +8 -14
  127. package/locale/fesm2022/ngx-bootstrap-locale.mjs.map +1 -0
  128. package/locale/package.json +6 -12
  129. package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -0
  130. package/mini-ngrx/package.json +6 -12
  131. package/mini-ngrx/public_api.d.ts +1 -1
  132. package/modal/bs-modal.service.d.ts +1 -0
  133. package/modal/{esm2020 → esm2022}/bs-modal-ref.service.mjs +4 -4
  134. package/modal/esm2022/bs-modal.service.mjs +225 -0
  135. package/modal/esm2022/modal-backdrop.component.mjs +50 -0
  136. package/modal/esm2022/modal-container.component.mjs +151 -0
  137. package/modal/{esm2020 → esm2022}/modal-options.class.mjs +4 -4
  138. package/modal/esm2022/modal.directive.mjs +364 -0
  139. package/modal/{esm2020 → esm2022}/modal.module.mjs +7 -7
  140. package/modal/{fesm2020 → fesm2022}/ngx-bootstrap-modal.mjs +75 -59
  141. package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -0
  142. package/modal/modal-container.component.d.ts +1 -0
  143. package/modal/modal.directive.d.ts +2 -1
  144. package/modal/models/index.d.ts +1 -1
  145. package/modal/package.json +8 -14
  146. package/package.json +9 -15
  147. package/pagination/{esm2020 → esm2022}/pager.component.mjs +4 -4
  148. package/pagination/{esm2020 → esm2022}/pagination.component.mjs +4 -4
  149. package/pagination/{esm2020 → esm2022}/pagination.config.mjs +4 -4
  150. package/pagination/{esm2020 → esm2022}/pagination.module.mjs +5 -5
  151. package/pagination/{fesm2020 → fesm2022}/ngx-bootstrap-pagination.mjs +13 -13
  152. package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -0
  153. package/pagination/package.json +8 -14
  154. package/pagination/pager.component.d.ts +1 -1
  155. package/pagination/pagination.component.d.ts +1 -1
  156. package/popover/esm2022/popover-container.component.mjs +46 -0
  157. package/popover/{esm2020 → esm2022}/popover.config.mjs +4 -4
  158. package/popover/esm2022/popover.directive.mjs +241 -0
  159. package/popover/{esm2020 → esm2022}/popover.module.mjs +5 -5
  160. package/popover/{fesm2020 → fesm2022}/ngx-bootstrap-popover.mjs +31 -31
  161. package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -0
  162. package/popover/package.json +9 -15
  163. package/popover/popover-container.component.d.ts +1 -1
  164. package/popover/popover.directive.d.ts +1 -1
  165. package/positioning/{esm2020 → esm2022}/positioning.service.mjs +4 -4
  166. package/positioning/{fesm2020 → fesm2022}/ngx-bootstrap-positioning.mjs +3 -3
  167. package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -0
  168. package/positioning/models/index.d.ts +1 -1
  169. package/positioning/package.json +10 -16
  170. package/progressbar/bar.component.d.ts +1 -1
  171. package/progressbar/{esm2020 → esm2022}/bar.component.mjs +4 -4
  172. package/progressbar/esm2022/progressbar.component.mjs +53 -0
  173. package/progressbar/{esm2020 → esm2022}/progressbar.config.mjs +4 -4
  174. package/progressbar/{esm2020 → esm2022}/progressbar.module.mjs +5 -5
  175. package/progressbar/{fesm2020 → fesm2022}/ngx-bootstrap-progressbar.mjs +24 -24
  176. package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -0
  177. package/progressbar/package.json +7 -13
  178. package/progressbar/progressbar-type.interface.d.ts +1 -1
  179. package/progressbar/progressbar.component.d.ts +1 -1
  180. package/rating/{esm2020 → esm2022}/rating.component.mjs +4 -4
  181. package/rating/{esm2020 → esm2022}/rating.config.mjs +4 -4
  182. package/rating/{esm2020 → esm2022}/rating.module.mjs +5 -5
  183. package/rating/{fesm2015 → fesm2022}/ngx-bootstrap-rating.mjs +10 -10
  184. package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -0
  185. package/rating/package.json +8 -14
  186. package/rating/rating.component.d.ts +1 -1
  187. package/schematics/collection.json +1 -1
  188. package/schematics/package.json +7 -7
  189. package/schematics/utils/current_dependency_versions.json +1 -1
  190. package/schematics/utils/index.d.ts +0 -2
  191. package/schematics/utils/index.js +1 -13
  192. package/schematics/utils/index.js.map +1 -1
  193. package/sortable/{esm2020 → esm2022}/draggable-item.service.mjs +4 -4
  194. package/sortable/esm2022/sortable.component.mjs +266 -0
  195. package/sortable/{esm2020 → esm2022}/sortable.module.mjs +5 -5
  196. package/sortable/{fesm2020 → fesm2022}/ngx-bootstrap-sortable.mjs +28 -28
  197. package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -0
  198. package/sortable/package.json +10 -16
  199. package/sortable/sortable.component.d.ts +1 -1
  200. package/tabs/esm2022/ng-transclude.directive.mjs +28 -0
  201. package/tabs/{esm2020 → esm2022}/tab-heading.directive.mjs +4 -4
  202. package/tabs/esm2022/tab.directive.mjs +115 -0
  203. package/tabs/{esm2020 → esm2022}/tabs.module.mjs +11 -11
  204. package/tabs/esm2022/tabset.component.mjs +216 -0
  205. package/tabs/{esm2020 → esm2022}/tabset.config.mjs +4 -4
  206. package/tabs/{fesm2015 → fesm2022}/ngx-bootstrap-tabs.mjs +63 -63
  207. package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -0
  208. package/tabs/ng-transclude.directive.d.ts +1 -1
  209. package/tabs/package.json +7 -13
  210. package/tabs/tab.directive.d.ts +1 -1
  211. package/tabs/tabset.component.d.ts +1 -1
  212. package/timepicker/esm2022/reducer/timepicker.actions.mjs +53 -0
  213. package/timepicker/{esm2020 → esm2022}/reducer/timepicker.store.mjs +4 -4
  214. package/timepicker/{esm2020 → esm2022}/timepicker.component.mjs +4 -4
  215. package/timepicker/{esm2020 → esm2022}/timepicker.config.mjs +4 -4
  216. package/timepicker/{esm2020 → esm2022}/timepicker.module.mjs +5 -5
  217. package/timepicker/{fesm2020 → fesm2022}/ngx-bootstrap-timepicker.mjs +22 -22
  218. package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -0
  219. package/timepicker/package.json +10 -16
  220. package/timepicker/reducer/timepicker.reducer.d.ts +1 -3
  221. package/timepicker/timepicker.component.d.ts +1 -1
  222. package/timepicker/timepicker.models.d.ts +1 -1
  223. package/tooltip/{esm2020 → esm2022}/tooltip-container.component.mjs +9 -9
  224. package/tooltip/{esm2020 → esm2022}/tooltip.config.mjs +4 -4
  225. package/tooltip/esm2022/tooltip.directive.mjs +342 -0
  226. package/tooltip/{esm2020 → esm2022}/tooltip.module.mjs +5 -5
  227. package/tooltip/{fesm2020 → fesm2022}/ngx-bootstrap-tooltip.mjs +61 -61
  228. package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -0
  229. package/tooltip/package.json +10 -16
  230. package/tooltip/tooltip.directive.d.ts +1 -1
  231. package/typeahead/esm2022/typeahead-container.component.mjs +311 -0
  232. package/typeahead/{esm2020 → esm2022}/typeahead.config.mjs +4 -4
  233. package/typeahead/{esm2020 → esm2022}/typeahead.directive.mjs +4 -4
  234. package/typeahead/{esm2020 → esm2022}/typeahead.module.mjs +5 -5
  235. package/typeahead/{fesm2020 → fesm2022}/ngx-bootstrap-typeahead.mjs +20 -20
  236. package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -0
  237. package/typeahead/package.json +12 -18
  238. package/typeahead/typeahead.directive.d.ts +3 -3
  239. package/utils/{esm2020 → esm2022}/triggers.mjs +5 -3
  240. package/utils/{fesm2020 → fesm2022}/ngx-bootstrap-utils.mjs +4 -2
  241. package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -0
  242. package/utils/package.json +6 -12
  243. package/utils/theme-provider.d.ts +1 -1
  244. package/utils/triggers.d.ts +1 -1
  245. package/accordion/esm2020/accordion-group.component.mjs +0 -84
  246. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +0 -182
  247. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +0 -1
  248. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +0 -1
  249. package/alert/esm2020/alert.component.mjs +0 -77
  250. package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +0 -1
  251. package/alert/fesm2020/ngx-bootstrap-alert.mjs +0 -119
  252. package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +0 -1
  253. package/buttons/esm2020/button-radio.directive.mjs +0 -188
  254. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +0 -448
  255. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +0 -1
  256. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +0 -1
  257. package/carousel/esm2020/carousel.component.mjs +0 -713
  258. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +0 -851
  259. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +0 -1
  260. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +0 -1
  261. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs +0 -7384
  262. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +0 -1
  263. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +0 -1
  264. package/collapse/esm2020/collapse.directive.mjs +0 -168
  265. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +0 -200
  266. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +0 -1
  267. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +0 -1
  268. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +0 -345
  269. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +0 -1
  270. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +0 -1
  271. package/datepicker/esm2020/bs-datepicker.component.mjs +0 -302
  272. package/datepicker/esm2020/bs-datepicker.config.mjs +0 -97
  273. package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +0 -163
  274. package/datepicker/esm2020/bs-daterangepicker.component.mjs +0 -295
  275. package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +0 -143
  276. package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +0 -192
  277. package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +0 -261
  278. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +0 -3965
  279. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +0 -1
  280. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +0 -1
  281. package/dropdown/esm2020/bs-dropdown-container.component.mjs +0 -79
  282. package/dropdown/esm2020/bs-dropdown.directive.mjs +0 -340
  283. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +0 -603
  284. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +0 -1
  285. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +0 -1
  286. package/fesm2015/ngx-bootstrap.mjs.map +0 -1
  287. package/fesm2020/ngx-bootstrap.mjs +0 -6
  288. package/fesm2020/ngx-bootstrap.mjs.map +0 -1
  289. package/focus-trap/esm2020/focus-trap.mjs +0 -399
  290. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +0 -800
  291. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +0 -1
  292. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +0 -1
  293. package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +0 -1
  294. package/locale/fesm2020/ngx-bootstrap-locale.mjs +0 -6
  295. package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +0 -1
  296. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs +0 -64
  297. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
  298. package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
  299. package/modal/esm2020/bs-modal.service.mjs +0 -219
  300. package/modal/esm2020/modal-backdrop.component.mjs +0 -50
  301. package/modal/esm2020/modal-container.component.mjs +0 -145
  302. package/modal/esm2020/modal.directive.mjs +0 -360
  303. package/modal/fesm2015/ngx-bootstrap-modal.mjs +0 -874
  304. package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +0 -1
  305. package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +0 -1
  306. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +0 -565
  307. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +0 -1
  308. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +0 -1
  309. package/popover/esm2020/popover-container.component.mjs +0 -46
  310. package/popover/esm2020/popover.directive.mjs +0 -241
  311. package/popover/fesm2015/ngx-bootstrap-popover.mjs +0 -339
  312. package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +0 -1
  313. package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +0 -1
  314. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +0 -1018
  315. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +0 -1
  316. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +0 -1
  317. package/progressbar/esm2020/progressbar.component.mjs +0 -53
  318. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +0 -163
  319. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +0 -1
  320. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +0 -1
  321. package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +0 -1
  322. package/rating/fesm2020/ngx-bootstrap-rating.mjs +0 -163
  323. package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +0 -1
  324. package/sortable/esm2020/sortable.component.mjs +0 -266
  325. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +0 -324
  326. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +0 -1
  327. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +0 -1
  328. package/tabs/esm2020/ng-transclude.directive.mjs +0 -28
  329. package/tabs/esm2020/tab.directive.mjs +0 -115
  330. package/tabs/esm2020/tabset.component.mjs +0 -216
  331. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +0 -1
  332. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +0 -427
  333. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +0 -1
  334. package/timepicker/esm2020/reducer/timepicker.actions.mjs +0 -53
  335. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +0 -830
  336. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +0 -1
  337. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +0 -1
  338. package/tooltip/esm2020/tooltip.directive.mjs +0 -342
  339. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +0 -431
  340. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +0 -1
  341. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +0 -1
  342. package/typeahead/esm2020/typeahead-container.component.mjs +0 -311
  343. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +0 -1890
  344. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +0 -1
  345. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +0 -1
  346. package/utils/fesm2015/ngx-bootstrap-utils.mjs +0 -521
  347. package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +0 -1
  348. package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +0 -1
  349. /package/accordion/{esm2020 → esm2022}/index.mjs +0 -0
  350. /package/accordion/{esm2020 → esm2022}/ngx-bootstrap-accordion.mjs +0 -0
  351. /package/accordion/{esm2020 → esm2022}/public_api.mjs +0 -0
  352. /package/alert/{esm2020 → esm2022}/index.mjs +0 -0
  353. /package/alert/{esm2020 → esm2022}/ngx-bootstrap-alert.mjs +0 -0
  354. /package/alert/{esm2020 → esm2022}/public_api.mjs +0 -0
  355. /package/buttons/{esm2020 → esm2022}/index.mjs +0 -0
  356. /package/buttons/{esm2020 → esm2022}/ngx-bootstrap-buttons.mjs +0 -0
  357. /package/buttons/{esm2020 → esm2022}/public_api.mjs +0 -0
  358. /package/carousel/{esm2020 → esm2022}/index.mjs +0 -0
  359. /package/carousel/{esm2020 → esm2022}/models/index.mjs +0 -0
  360. /package/carousel/{esm2020 → esm2022}/ngx-bootstrap-carousel.mjs +0 -0
  361. /package/carousel/{esm2020 → esm2022}/public_api.mjs +0 -0
  362. /package/carousel/{esm2020 → esm2022}/utils.mjs +0 -0
  363. /package/chronos/{esm2020 → esm2022}/create/check-overflow.mjs +0 -0
  364. /package/chronos/{esm2020 → esm2022}/create/clone.mjs +0 -0
  365. /package/chronos/{esm2020 → esm2022}/create/date-from-array.mjs +0 -0
  366. /package/chronos/{esm2020 → esm2022}/create/from-anything.mjs +0 -0
  367. /package/chronos/{esm2020 → esm2022}/create/from-array.mjs +0 -0
  368. /package/chronos/{esm2020 → esm2022}/create/from-object.mjs +0 -0
  369. /package/chronos/{esm2020 → esm2022}/create/from-string-and-array.mjs +0 -0
  370. /package/chronos/{esm2020 → esm2022}/create/from-string-and-format.mjs +0 -0
  371. /package/chronos/{esm2020 → esm2022}/create/from-string.mjs +0 -0
  372. /package/chronos/{esm2020 → esm2022}/create/local.mjs +0 -0
  373. /package/chronos/{esm2020 → esm2022}/create/parsing-flags.mjs +0 -0
  374. /package/chronos/{esm2020 → esm2022}/create/parsing.types.mjs +0 -0
  375. /package/chronos/{esm2020 → esm2022}/create/valid.mjs +0 -0
  376. /package/chronos/{esm2020 → esm2022}/duration/bubble.mjs +0 -0
  377. /package/chronos/{esm2020 → esm2022}/duration/constructor.mjs +0 -0
  378. /package/chronos/{esm2020 → esm2022}/duration/create.mjs +0 -0
  379. /package/chronos/{esm2020 → esm2022}/duration/humanize.mjs +0 -0
  380. /package/chronos/{esm2020 → esm2022}/duration/valid.mjs +0 -0
  381. /package/chronos/{esm2020 → esm2022}/format/format.mjs +0 -0
  382. /package/chronos/{esm2020 → esm2022}/format.mjs +0 -0
  383. /package/chronos/{esm2020 → esm2022}/i18n/ar.mjs +0 -0
  384. /package/chronos/{esm2020 → esm2022}/i18n/bg.mjs +0 -0
  385. /package/chronos/{esm2020 → esm2022}/i18n/ca.mjs +0 -0
  386. /package/chronos/{esm2020 → esm2022}/i18n/cs.mjs +0 -0
  387. /package/chronos/{esm2020 → esm2022}/i18n/da.mjs +0 -0
  388. /package/chronos/{esm2020 → esm2022}/i18n/de.mjs +0 -0
  389. /package/chronos/{esm2020 → esm2022}/i18n/en-gb.mjs +0 -0
  390. /package/chronos/{esm2020 → esm2022}/i18n/es-do.mjs +0 -0
  391. /package/chronos/{esm2020 → esm2022}/i18n/es-pr.mjs +0 -0
  392. /package/chronos/{esm2020 → esm2022}/i18n/es-us.mjs +0 -0
  393. /package/chronos/{esm2020 → esm2022}/i18n/es.mjs +0 -0
  394. /package/chronos/{esm2020 → esm2022}/i18n/et.mjs +0 -0
  395. /package/chronos/{esm2020 → esm2022}/i18n/fi.mjs +0 -0
  396. /package/chronos/{esm2020 → esm2022}/i18n/fr.mjs +0 -0
  397. /package/chronos/{esm2020 → esm2022}/i18n/gl.mjs +0 -0
  398. /package/chronos/{esm2020 → esm2022}/i18n/he.mjs +0 -0
  399. /package/chronos/{esm2020 → esm2022}/i18n/hi.mjs +0 -0
  400. /package/chronos/{esm2020 → esm2022}/i18n/hr.mjs +0 -0
  401. /package/chronos/{esm2020 → esm2022}/i18n/hu.mjs +0 -0
  402. /package/chronos/{esm2020 → esm2022}/i18n/id.mjs +0 -0
  403. /package/chronos/{esm2020 → esm2022}/i18n/it.mjs +0 -0
  404. /package/chronos/{esm2020 → esm2022}/i18n/ja.mjs +0 -0
  405. /package/chronos/{esm2020 → esm2022}/i18n/ka.mjs +0 -0
  406. /package/chronos/{esm2020 → esm2022}/i18n/kk.mjs +0 -0
  407. /package/chronos/{esm2020 → esm2022}/i18n/ko.mjs +0 -0
  408. /package/chronos/{esm2020 → esm2022}/i18n/lt.mjs +0 -0
  409. /package/chronos/{esm2020 → esm2022}/i18n/lv.mjs +0 -0
  410. /package/chronos/{esm2020 → esm2022}/i18n/mn.mjs +0 -0
  411. /package/chronos/{esm2020 → esm2022}/i18n/nb.mjs +0 -0
  412. /package/chronos/{esm2020 → esm2022}/i18n/nl-be.mjs +0 -0
  413. /package/chronos/{esm2020 → esm2022}/i18n/nl.mjs +0 -0
  414. /package/chronos/{esm2020 → esm2022}/i18n/pl.mjs +0 -0
  415. /package/chronos/{esm2020 → esm2022}/i18n/pt-br.mjs +0 -0
  416. /package/chronos/{esm2020 → esm2022}/i18n/ro.mjs +0 -0
  417. /package/chronos/{esm2020 → esm2022}/i18n/ru.mjs +0 -0
  418. /package/chronos/{esm2020 → esm2022}/i18n/sk.mjs +0 -0
  419. /package/chronos/{esm2020 → esm2022}/i18n/sl.mjs +0 -0
  420. /package/chronos/{esm2020 → esm2022}/i18n/sq.mjs +0 -0
  421. /package/chronos/{esm2020 → esm2022}/i18n/sv.mjs +0 -0
  422. /package/chronos/{esm2020 → esm2022}/i18n/th-be.mjs +0 -0
  423. /package/chronos/{esm2020 → esm2022}/i18n/th.mjs +0 -0
  424. /package/chronos/{esm2020 → esm2022}/i18n/tr.mjs +0 -0
  425. /package/chronos/{esm2020 → esm2022}/i18n/uk.mjs +0 -0
  426. /package/chronos/{esm2020 → esm2022}/i18n/vi.mjs +0 -0
  427. /package/chronos/{esm2020 → esm2022}/i18n/zh-cn.mjs +0 -0
  428. /package/chronos/{esm2020 → esm2022}/index.mjs +0 -0
  429. /package/chronos/{esm2020 → esm2022}/locale/calendar.mjs +0 -0
  430. /package/chronos/{esm2020 → esm2022}/locale/locale.class.mjs +0 -0
  431. /package/chronos/{esm2020 → esm2022}/locale/locale.defaults.mjs +0 -0
  432. /package/chronos/{esm2020 → esm2022}/locale/locales.mjs +0 -0
  433. /package/chronos/{esm2020 → esm2022}/moment/add-subtract.mjs +0 -0
  434. /package/chronos/{esm2020 → esm2022}/moment/calendar.mjs +0 -0
  435. /package/chronos/{esm2020 → esm2022}/moment/diff.mjs +0 -0
  436. /package/chronos/{esm2020 → esm2022}/moment/min-max.mjs +0 -0
  437. /package/chronos/{esm2020 → esm2022}/ngx-bootstrap-chronos.mjs +0 -0
  438. /package/chronos/{esm2020 → esm2022}/parse/regex.mjs +0 -0
  439. /package/chronos/{esm2020 → esm2022}/parse/token.mjs +0 -0
  440. /package/chronos/{esm2020 → esm2022}/public_api.mjs +0 -0
  441. /package/chronos/{esm2020 → esm2022}/testing/chain.mjs +0 -0
  442. /package/chronos/{esm2020 → esm2022}/types.mjs +0 -0
  443. /package/chronos/{esm2020 → esm2022}/units/aliases.mjs +0 -0
  444. /package/chronos/{esm2020 → esm2022}/units/constants.mjs +0 -0
  445. /package/chronos/{esm2020 → esm2022}/units/day-of-month.mjs +0 -0
  446. /package/chronos/{esm2020 → esm2022}/units/day-of-week.mjs +0 -0
  447. /package/chronos/{esm2020 → esm2022}/units/day-of-year.mjs +0 -0
  448. /package/chronos/{esm2020 → esm2022}/units/hour.mjs +0 -0
  449. /package/chronos/{esm2020 → esm2022}/units/index.mjs +0 -0
  450. /package/chronos/{esm2020 → esm2022}/units/millisecond.mjs +0 -0
  451. /package/chronos/{esm2020 → esm2022}/units/minute.mjs +0 -0
  452. /package/chronos/{esm2020 → esm2022}/units/month.mjs +0 -0
  453. /package/chronos/{esm2020 → esm2022}/units/offset.mjs +0 -0
  454. /package/chronos/{esm2020 → esm2022}/units/priorities.mjs +0 -0
  455. /package/chronos/{esm2020 → esm2022}/units/quarter.mjs +0 -0
  456. /package/chronos/{esm2020 → esm2022}/units/second.mjs +0 -0
  457. /package/chronos/{esm2020 → esm2022}/units/timestamp.mjs +0 -0
  458. /package/chronos/{esm2020 → esm2022}/units/timezone.mjs +0 -0
  459. /package/chronos/{esm2020 → esm2022}/units/week-calendar-utils.mjs +0 -0
  460. /package/chronos/{esm2020 → esm2022}/units/week-year.mjs +0 -0
  461. /package/chronos/{esm2020 → esm2022}/units/week.mjs +0 -0
  462. /package/chronos/{esm2020 → esm2022}/units/year.mjs +0 -0
  463. /package/chronos/{esm2020 → esm2022}/utils/abs-ceil.mjs +0 -0
  464. /package/chronos/{esm2020 → esm2022}/utils/abs-round.mjs +0 -0
  465. /package/chronos/{esm2020 → esm2022}/utils/compare-arrays.mjs +0 -0
  466. /package/chronos/{esm2020 → esm2022}/utils/date-compare.mjs +0 -0
  467. /package/chronos/{esm2020 → esm2022}/utils/date-getters.mjs +0 -0
  468. /package/chronos/{esm2020 → esm2022}/utils/date-setters.mjs +0 -0
  469. /package/chronos/{esm2020 → esm2022}/utils/defaults.mjs +0 -0
  470. /package/chronos/{esm2020 → esm2022}/utils/start-end-of.mjs +0 -0
  471. /package/chronos/{esm2020 → esm2022}/utils/type-checks.mjs +0 -0
  472. /package/chronos/{esm2020 → esm2022}/utils/zero-fill.mjs +0 -0
  473. /package/chronos/{esm2020 → esm2022}/utils.mjs +0 -0
  474. /package/collapse/{esm2020 → esm2022}/collapse-animations.mjs +0 -0
  475. /package/collapse/{esm2020 → esm2022}/index.mjs +0 -0
  476. /package/collapse/{esm2020 → esm2022}/ngx-bootstrap-collapse.mjs +0 -0
  477. /package/collapse/{esm2020 → esm2022}/public_api.mjs +0 -0
  478. /package/component-loader/{esm2020 → esm2022}/bs-component-ref.class.mjs +0 -0
  479. /package/component-loader/{esm2020 → esm2022}/component-loader.class.mjs +0 -0
  480. /package/component-loader/{esm2020 → esm2022}/content-ref.class.mjs +0 -0
  481. /package/component-loader/{esm2020 → esm2022}/index.mjs +0 -0
  482. /package/component-loader/{esm2020 → esm2022}/listen-options.model.mjs +0 -0
  483. /package/component-loader/{esm2020 → esm2022}/ngx-bootstrap-component-loader.mjs +0 -0
  484. /package/component-loader/{esm2020 → esm2022}/public_api.mjs +0 -0
  485. /package/datepicker/{esm2020 → esm2022}/base/bs-datepicker-container.mjs +0 -0
  486. /package/datepicker/{esm2020 → esm2022}/datepicker-animations.mjs +0 -0
  487. /package/datepicker/{esm2020 → esm2022}/engine/calc-days-calendar.mjs +0 -0
  488. /package/datepicker/{esm2020 → esm2022}/engine/flag-days-calendar.mjs +0 -0
  489. /package/datepicker/{esm2020 → esm2022}/engine/flag-months-calendar.mjs +0 -0
  490. /package/datepicker/{esm2020 → esm2022}/engine/flag-years-calendar.mjs +0 -0
  491. /package/datepicker/{esm2020 → esm2022}/engine/format-days-calendar.mjs +0 -0
  492. /package/datepicker/{esm2020 → esm2022}/engine/format-months-calendar.mjs +0 -0
  493. /package/datepicker/{esm2020 → esm2022}/engine/format-years-calendar.mjs +0 -0
  494. /package/datepicker/{esm2020 → esm2022}/engine/view-mode.mjs +0 -0
  495. /package/datepicker/{esm2020 → esm2022}/index.mjs +0 -0
  496. /package/datepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
  497. /package/datepicker/{esm2020 → esm2022}/ngx-bootstrap-datepicker.mjs +0 -0
  498. /package/datepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
  499. /package/datepicker/{esm2020 → esm2022}/reducer/_defaults.mjs +0 -0
  500. /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.reducer.mjs +0 -0
  501. /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.state.mjs +0 -0
  502. /package/datepicker/{esm2020 → esm2022}/utils/bs-calendar-utils.mjs +0 -0
  503. /package/datepicker/{esm2020 → esm2022}/utils/copy-time-utils.mjs +0 -0
  504. /package/datepicker/{esm2020 → esm2022}/utils/matrix-utils.mjs +0 -0
  505. /package/dropdown/{esm2020 → esm2022}/dropdown-animations.mjs +0 -0
  506. /package/dropdown/{esm2020 → esm2022}/index.mjs +0 -0
  507. /package/dropdown/{esm2020 → esm2022}/ngx-bootstrap-dropdown.mjs +0 -0
  508. /package/dropdown/{esm2020 → esm2022}/public_api.mjs +0 -0
  509. /package/{esm2020 → esm2022}/index.mjs +0 -0
  510. /package/{esm2020 → esm2022}/ngx-bootstrap.mjs +0 -0
  511. /package/{fesm2015 → fesm2022}/ngx-bootstrap.mjs +0 -0
  512. /package/focus-trap/{esm2020 → esm2022}/boolean-property.mjs +0 -0
  513. /package/focus-trap/{esm2020 → esm2022}/index.mjs +0 -0
  514. /package/focus-trap/{esm2020 → esm2022}/ngx-bootstrap-focus-trap.mjs +0 -0
  515. /package/focus-trap/{esm2020 → esm2022}/public_api.mjs +0 -0
  516. /package/locale/{esm2020 → esm2022}/index.mjs +0 -0
  517. /package/locale/{esm2020 → esm2022}/ngx-bootstrap-locale.mjs +0 -0
  518. /package/locale/{esm2020 → esm2022}/public_api.mjs +0 -0
  519. /package/locale/{fesm2015 → fesm2022}/ngx-bootstrap-locale.mjs +0 -0
  520. /package/mini-ngrx/{esm2020 → esm2022}/index.mjs +0 -0
  521. /package/mini-ngrx/{esm2020 → esm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
  522. /package/mini-ngrx/{esm2020 → esm2022}/public_api.mjs +0 -0
  523. /package/mini-ngrx/{esm2020 → esm2022}/state.class.mjs +0 -0
  524. /package/mini-ngrx/{esm2020 → esm2022}/store.class.mjs +0 -0
  525. /package/mini-ngrx/{fesm2020 → fesm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
  526. /package/modal/{esm2020 → esm2022}/index.mjs +0 -0
  527. /package/modal/{esm2020 → esm2022}/modal-backdrop.options.mjs +0 -0
  528. /package/modal/{esm2020 → esm2022}/models/index.mjs +0 -0
  529. /package/modal/{esm2020 → esm2022}/ngx-bootstrap-modal.mjs +0 -0
  530. /package/modal/{esm2020 → esm2022}/public_api.mjs +0 -0
  531. /package/pagination/{esm2020 → esm2022}/index.mjs +0 -0
  532. /package/pagination/{esm2020 → esm2022}/models/index.mjs +0 -0
  533. /package/pagination/{esm2020 → esm2022}/ngx-bootstrap-pagination.mjs +0 -0
  534. /package/pagination/{esm2020 → esm2022}/public_api.mjs +0 -0
  535. /package/popover/{esm2020 → esm2022}/index.mjs +0 -0
  536. /package/popover/{esm2020 → esm2022}/ngx-bootstrap-popover.mjs +0 -0
  537. /package/popover/{esm2020 → esm2022}/public_api.mjs +0 -0
  538. /package/positioning/{esm2020 → esm2022}/index.mjs +0 -0
  539. /package/positioning/{esm2020 → esm2022}/models/index.mjs +0 -0
  540. /package/positioning/{esm2020 → esm2022}/modifiers/arrow.mjs +0 -0
  541. /package/positioning/{esm2020 → esm2022}/modifiers/flip.mjs +0 -0
  542. /package/positioning/{esm2020 → esm2022}/modifiers/index.mjs +0 -0
  543. /package/positioning/{esm2020 → esm2022}/modifiers/initData.mjs +0 -0
  544. /package/positioning/{esm2020 → esm2022}/modifiers/preventOverflow.mjs +0 -0
  545. /package/positioning/{esm2020 → esm2022}/modifiers/shift.mjs +0 -0
  546. /package/positioning/{esm2020 → esm2022}/ng-positioning.mjs +0 -0
  547. /package/positioning/{esm2020 → esm2022}/ngx-bootstrap-positioning.mjs +0 -0
  548. /package/positioning/{esm2020 → esm2022}/public_api.mjs +0 -0
  549. /package/positioning/{esm2020 → esm2022}/utils/checkMargin.mjs +0 -0
  550. /package/positioning/{esm2020 → esm2022}/utils/computeAutoPlacement.mjs +0 -0
  551. /package/positioning/{esm2020 → esm2022}/utils/findCommonOffsetParent.mjs +0 -0
  552. /package/positioning/{esm2020 → esm2022}/utils/getBordersSize.mjs +0 -0
  553. /package/positioning/{esm2020 → esm2022}/utils/getBoundaries.mjs +0 -0
  554. /package/positioning/{esm2020 → esm2022}/utils/getBoundingClientRect.mjs +0 -0
  555. /package/positioning/{esm2020 → esm2022}/utils/getClientRect.mjs +0 -0
  556. /package/positioning/{esm2020 → esm2022}/utils/getFixedPositionOffsetParent.mjs +0 -0
  557. /package/positioning/{esm2020 → esm2022}/utils/getOffsetParent.mjs +0 -0
  558. /package/positioning/{esm2020 → esm2022}/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -0
  559. /package/positioning/{esm2020 → esm2022}/utils/getOffsets.mjs +0 -0
  560. /package/positioning/{esm2020 → esm2022}/utils/getOppositePlacement.mjs +0 -0
  561. /package/positioning/{esm2020 → esm2022}/utils/getOppositeVariation.mjs +0 -0
  562. /package/positioning/{esm2020 → esm2022}/utils/getOuterSizes.mjs +0 -0
  563. /package/positioning/{esm2020 → esm2022}/utils/getParentNode.mjs +0 -0
  564. /package/positioning/{esm2020 → esm2022}/utils/getReferenceOffsets.mjs +0 -0
  565. /package/positioning/{esm2020 → esm2022}/utils/getRoot.mjs +0 -0
  566. /package/positioning/{esm2020 → esm2022}/utils/getScroll.mjs +0 -0
  567. /package/positioning/{esm2020 → esm2022}/utils/getScrollParent.mjs +0 -0
  568. /package/positioning/{esm2020 → esm2022}/utils/getStyleComputedProperty.mjs +0 -0
  569. /package/positioning/{esm2020 → esm2022}/utils/getTargetOffsets.mjs +0 -0
  570. /package/positioning/{esm2020 → esm2022}/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -0
  571. /package/positioning/{esm2020 → esm2022}/utils/getWindowSizes.mjs +0 -0
  572. /package/positioning/{esm2020 → esm2022}/utils/includeScroll.mjs +0 -0
  573. /package/positioning/{esm2020 → esm2022}/utils/index.mjs +0 -0
  574. /package/positioning/{esm2020 → esm2022}/utils/isFixed.mjs +0 -0
  575. /package/positioning/{esm2020 → esm2022}/utils/isModifierEnabled.mjs +0 -0
  576. /package/positioning/{esm2020 → esm2022}/utils/isNumeric.mjs +0 -0
  577. /package/positioning/{esm2020 → esm2022}/utils/isOffsetContainer.mjs +0 -0
  578. /package/positioning/{esm2020 → esm2022}/utils/setStyles.mjs +0 -0
  579. /package/positioning/{esm2020 → esm2022}/utils/updateContainerClass.mjs +0 -0
  580. /package/progressbar/{esm2020 → esm2022}/index.mjs +0 -0
  581. /package/progressbar/{esm2020 → esm2022}/ngx-bootstrap-progressbar.mjs +0 -0
  582. /package/progressbar/{esm2020 → esm2022}/progressbar-type.interface.mjs +0 -0
  583. /package/progressbar/{esm2020 → esm2022}/public_api.mjs +0 -0
  584. /package/rating/{esm2020 → esm2022}/index.mjs +0 -0
  585. /package/rating/{esm2020 → esm2022}/models/index.mjs +0 -0
  586. /package/rating/{esm2020 → esm2022}/ngx-bootstrap-rating.mjs +0 -0
  587. /package/rating/{esm2020 → esm2022}/public_api.mjs +0 -0
  588. /package/sortable/{esm2020 → esm2022}/draggable-item.mjs +0 -0
  589. /package/sortable/{esm2020 → esm2022}/index.mjs +0 -0
  590. /package/sortable/{esm2020 → esm2022}/ngx-bootstrap-sortable.mjs +0 -0
  591. /package/sortable/{esm2020 → esm2022}/public_api.mjs +0 -0
  592. /package/tabs/{esm2020 → esm2022}/index.mjs +0 -0
  593. /package/tabs/{esm2020 → esm2022}/ngx-bootstrap-tabs.mjs +0 -0
  594. /package/tabs/{esm2020 → esm2022}/public_api.mjs +0 -0
  595. /package/timepicker/{esm2020 → esm2022}/index.mjs +0 -0
  596. /package/timepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
  597. /package/timepicker/{esm2020 → esm2022}/ngx-bootstrap-timepicker.mjs +0 -0
  598. /package/timepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
  599. /package/timepicker/{esm2020 → esm2022}/reducer/timepicker.reducer.mjs +0 -0
  600. /package/timepicker/{esm2020 → esm2022}/timepicker-controls.util.mjs +0 -0
  601. /package/timepicker/{esm2020 → esm2022}/timepicker.models.mjs +0 -0
  602. /package/timepicker/{esm2020 → esm2022}/timepicker.utils.mjs +0 -0
  603. /package/tooltip/{esm2020 → esm2022}/index.mjs +0 -0
  604. /package/tooltip/{esm2020 → esm2022}/ngx-bootstrap-tooltip.mjs +0 -0
  605. /package/tooltip/{esm2020 → esm2022}/public_api.mjs +0 -0
  606. /package/typeahead/{esm2020 → esm2022}/index.mjs +0 -0
  607. /package/typeahead/{esm2020 → esm2022}/latin-map.mjs +0 -0
  608. /package/typeahead/{esm2020 → esm2022}/models/index.mjs +0 -0
  609. /package/typeahead/{esm2020 → esm2022}/ngx-bootstrap-typeahead.mjs +0 -0
  610. /package/typeahead/{esm2020 → esm2022}/public_api.mjs +0 -0
  611. /package/typeahead/{esm2020 → esm2022}/typeahead-animations.mjs +0 -0
  612. /package/typeahead/{esm2020 → esm2022}/typeahead-match.class.mjs +0 -0
  613. /package/typeahead/{esm2020 → esm2022}/typeahead-options.class.mjs +0 -0
  614. /package/typeahead/{esm2020 → esm2022}/typeahead-order.class.mjs +0 -0
  615. /package/typeahead/{esm2020 → esm2022}/typeahead-utils.mjs +0 -0
  616. /package/utils/{esm2020 → esm2022}/decorators.mjs +0 -0
  617. /package/utils/{esm2020 → esm2022}/facade/browser.mjs +0 -0
  618. /package/utils/{esm2020 → esm2022}/index.mjs +0 -0
  619. /package/utils/{esm2020 → esm2022}/linked-list.class.mjs +0 -0
  620. /package/utils/{esm2020 → esm2022}/ngx-bootstrap-utils.mjs +0 -0
  621. /package/utils/{esm2020 → esm2022}/public_api.mjs +0 -0
  622. /package/utils/{esm2020 → esm2022}/theme-provider.mjs +0 -0
  623. /package/utils/{esm2020 → esm2022}/trigger.class.mjs +0 -0
  624. /package/utils/{esm2020 → esm2022}/utils.class.mjs +0 -0
  625. /package/utils/{esm2020 → esm2022}/warn-once.mjs +0 -0
@@ -0,0 +1,163 @@
1
+ import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2, ViewContainerRef } from '@angular/core';
2
+ import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
3
+ import { filter } from 'rxjs/operators';
4
+ import { BsDatepickerConfig } from './bs-datepicker.config';
5
+ import { BsDaterangepickerInlineConfig } from './bs-daterangepicker-inline.config';
6
+ import { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';
7
+ import { checkBsValue, checkRangesWithMaxDate, setDateRangesCurrentTimeOnDateSelect } from './utils/bs-calendar-utils';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./bs-daterangepicker-inline.config";
10
+ import * as i2 from "ngx-bootstrap/component-loader";
11
+ export class BsDaterangepickerInlineDirective {
12
+ /**
13
+ * Initial value of datepicker
14
+ */
15
+ set bsValue(value) {
16
+ if (this._bsValue === value) {
17
+ return;
18
+ }
19
+ if (value && this.bsConfig?.initCurrentTime) {
20
+ value = setDateRangesCurrentTimeOnDateSelect(value);
21
+ }
22
+ this._bsValue = value;
23
+ this.bsValueChange.emit(value);
24
+ }
25
+ constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
26
+ this._config = _config;
27
+ this._elementRef = _elementRef;
28
+ /**
29
+ * Indicates whether datepicker is enabled or not
30
+ */
31
+ this.isDisabled = false;
32
+ /**
33
+ * Emits when daterangepicker value has been changed
34
+ */
35
+ this.bsValueChange = new EventEmitter();
36
+ this._subs = [];
37
+ // todo: assign only subset of fields
38
+ Object.assign(this, this._config);
39
+ this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
40
+ }
41
+ ngOnInit() {
42
+ this.setConfig();
43
+ this.initSubscribes();
44
+ }
45
+ ngOnChanges(changes) {
46
+ if (changes["bsConfig"]) {
47
+ if (changes["bsConfig"].currentValue.initCurrentTime && changes["bsConfig"].currentValue.initCurrentTime !== changes["bsConfig"].previousValue.initCurrentTime && this._bsValue) {
48
+ this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);
49
+ this.bsValueChange.emit(this._bsValue);
50
+ }
51
+ }
52
+ if (!this._datepickerRef || !this._datepickerRef.instance) {
53
+ return;
54
+ }
55
+ if (changes["minDate"]) {
56
+ this._datepickerRef.instance.minDate = this.minDate;
57
+ }
58
+ if (changes["maxDate"]) {
59
+ this._datepickerRef.instance.maxDate = this.maxDate;
60
+ }
61
+ if (changes["datesEnabled"]) {
62
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
63
+ this._datepickerRef.instance.value = this._bsValue;
64
+ }
65
+ if (changes["datesDisabled"]) {
66
+ this._datepickerRef.instance.datesDisabled = this.datesDisabled;
67
+ }
68
+ if (changes["daysDisabled"]) {
69
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
70
+ }
71
+ if (changes["isDisabled"]) {
72
+ this._datepickerRef.instance.isDisabled = this.isDisabled;
73
+ }
74
+ if (changes["dateCustomClasses"]) {
75
+ this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
76
+ }
77
+ this.setConfig();
78
+ }
79
+ /**
80
+ * Set config for datepicker
81
+ */
82
+ setConfig() {
83
+ if (this._datepicker) {
84
+ this._datepicker.hide();
85
+ }
86
+ this._config = Object.assign({}, this._config, this.bsConfig, {
87
+ value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),
88
+ isDisabled: this.isDisabled,
89
+ minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
90
+ maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
91
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
92
+ dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
93
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
94
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
95
+ ranges: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),
96
+ maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,
97
+ initCurrentTime: this.bsConfig?.initCurrentTime
98
+ });
99
+ this._datepickerRef = this._datepicker
100
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
101
+ .attach(BsDaterangepickerInlineContainerComponent)
102
+ .to(this._elementRef)
103
+ .show();
104
+ this.initSubscribes();
105
+ }
106
+ initSubscribes() {
107
+ this.unsubscribeSubscriptions();
108
+ // if date changes from external source (model -> view)
109
+ this._subs.push(this.bsValueChange.subscribe((value) => {
110
+ if (this._datepickerRef) {
111
+ this._datepickerRef.instance.value = value;
112
+ }
113
+ }));
114
+ // if date changes from picker (view -> model)
115
+ if (this._datepickerRef) {
116
+ this._subs.push(this._datepickerRef.instance.valueChange
117
+ .pipe(filter((range) => range && range[0] && !!range[1]))
118
+ .subscribe((value) => {
119
+ this.bsValue = value;
120
+ }));
121
+ }
122
+ }
123
+ unsubscribeSubscriptions() {
124
+ if (this._subs?.length) {
125
+ this._subs.map(sub => sub.unsubscribe());
126
+ this._subs.length = 0;
127
+ }
128
+ }
129
+ ngOnDestroy() {
130
+ this._datepicker.dispose();
131
+ this.unsubscribeSubscriptions();
132
+ }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInlineDirective, deps: [{ token: i1.BsDaterangepickerInlineConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Directive }); }
134
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: BsDaterangepickerInlineDirective, selector: "bs-daterangepicker-inline", inputs: { bsValue: "bsValue", bsConfig: "bsConfig", isDisabled: "isDisabled", minDate: "minDate", maxDate: "maxDate", dateCustomClasses: "dateCustomClasses", daysDisabled: "daysDisabled", datesDisabled: "datesDisabled", datesEnabled: "datesEnabled" }, outputs: { bsValueChange: "bsValueChange" }, exportAs: ["bsDaterangepickerInline"], usesOnChanges: true, ngImport: i0 }); }
135
+ }
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInlineDirective, decorators: [{
137
+ type: Directive,
138
+ args: [{
139
+ selector: 'bs-daterangepicker-inline',
140
+ exportAs: 'bsDaterangepickerInline'
141
+ }]
142
+ }], ctorParameters: function () { return [{ type: i1.BsDaterangepickerInlineConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }]; }, propDecorators: { bsValue: [{
143
+ type: Input
144
+ }], bsConfig: [{
145
+ type: Input
146
+ }], isDisabled: [{
147
+ type: Input
148
+ }], minDate: [{
149
+ type: Input
150
+ }], maxDate: [{
151
+ type: Input
152
+ }], dateCustomClasses: [{
153
+ type: Input
154
+ }], daysDisabled: [{
155
+ type: Input
156
+ }], datesDisabled: [{
157
+ type: Input
158
+ }], datesEnabled: [{
159
+ type: Input
160
+ }], bsValueChange: [{
161
+ type: Output
162
+ }] } });
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1MsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUFpQixnQkFBZ0IsRUFDdEUsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFtQixzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUV0SCxPQUFPLEVBQ0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixvQ0FBb0MsRUFDckMsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQU1uQyxNQUFNLE9BQU8sZ0NBQWdDO0lBRXpDOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBcUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRTtZQUMzQyxLQUFLLEdBQUcsb0NBQW9DLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBNENE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QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDM0Q7aUJBQ0EsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzhHQWhNUSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUseUJBQXlCO2lCQUN0Qzt5T0FPTyxPQUFPO3NCQURWLEtBQUs7Z0JBaUJHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQnNEYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBCc0RhdGVyYW5nZXBpY2tlcklubGluZUNvbmZpZyB9IGZyb20gJy4vYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb25maWcnO1xuaW1wb3J0IHsgQnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3RoZW1lcy9icy9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckRhdGVDdXN0b21DbGFzc2VzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgY2hlY2tCc1ZhbHVlLFxuICBjaGVja1Jhbmdlc1dpdGhNYXhEYXRlLFxuICBzZXREYXRlUmFuZ2VzQ3VycmVudFRpbWVPbkRhdGVTZWxlY3Rcbn0gZnJvbSAnLi91dGlscy9icy1jYWxlbmRhci11dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZScsXG4gICAgZXhwb3J0QXM6ICdic0RhdGVyYW5nZXBpY2tlcklubGluZSdcbn0pXG5leHBvcnQgY2xhc3MgQnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBfYnNWYWx1ZT86IChEYXRlfHVuZGVmaW5lZClbXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHZhbHVlIG9mIGRhdGVwaWNrZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBic1ZhbHVlKHZhbHVlOiAoRGF0ZXx1bmRlZmluZWQpW10gfCB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLl9ic1ZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmJzQ29uZmlnPy5pbml0Q3VycmVudFRpbWUpIHtcbiAgICAgICAgdmFsdWUgPSBzZXREYXRlUmFuZ2VzQ3VycmVudFRpbWVPbkRhdGVTZWxlY3QodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9ic1ZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmJzVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uZmlnIG9iamVjdCBmb3IgZGF0ZXBpY2tlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIGJzQ29uZmlnPzogUGFydGlhbDxCc0RhdGVyYW5nZXBpY2tlcklubGluZUNvbmZpZz47XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgZGF0ZXBpY2tlciBpcyBlbmFibGVkIG9yIG5vdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBNaW5pbXVtIGRhdGUgd2hpY2ggaXMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtaW5EYXRlPzogRGF0ZTtcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGRhdGUgd2hpY2ggaXMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtYXhEYXRlPzogRGF0ZTtcbiAgICAvKipcbiAgICAgKiBEYXRlIGN1c3RvbSBjbGFzc2VzXG4gICAgICovXG4gICAgQElucHV0KCkgZGF0ZUN1c3RvbUNsYXNzZXM/OiBEYXRlcGlja2VyRGF0ZUN1c3RvbUNsYXNzZXNbXTtcbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHNwZWNpZmljIGRheXMsIGUuZy4gWzAsNl0gd2lsbCBkaXNhYmxlIGFsbCBTYXR1cmRheXMgYW5kIFN1bmRheXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkYXlzRGlzYWJsZWQ/OiBudW1iZXJbXTtcbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHNwZWNpZmljIGRhdGVzXG4gICAgICovXG4gICAgQElucHV0KCkgZGF0ZXNEaXNhYmxlZD86IERhdGVbXTtcbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHNwZWNpZmljIGRhdGVzXG4gICAgICovXG4gICAgQElucHV0KCkgZGF0ZXNFbmFibGVkPzogRGF0ZVtdO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gZGF0ZXJhbmdlcGlja2VyIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgYnNWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPChEYXRlfHVuZGVmaW5lZClbXSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kYXRlcGlja2VyOiBDb21wb25lbnRMb2FkZXI8QnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2RhdGVwaWNrZXJSZWY/OiBDb21wb25lbnRSZWY8QnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgX2NvbmZpZzogQnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVDb25maWcsXG4gICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgIGNpczogQ29tcG9uZW50TG9hZGVyRmFjdG9yeVxuICAgICkge1xuICAgICAgLy8gdG9kbzogYXNzaWduIG9ubHkgc3Vic2V0IG9mIGZpZWxkc1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB0aGlzLl9jb25maWcpO1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlciA9IGNpcy5jcmVhdGVMb2FkZXI8QnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+KFxuICAgICAgICBfZWxlbWVudFJlZixcbiAgICAgICAgX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIF9yZW5kZXJlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaWJlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgIGlmIChjaGFuZ2VzW1wiYnNDb25maWdcIl0pIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbXCJic0NvbmZpZ1wiXS5jdXJyZW50VmFsdWUuaW5pdEN1cnJlbnRUaW1lICYmIGNoYW5nZXNbXCJic0NvbmZpZ1wiXS5jdXJyZW50VmFsdWUuaW5pdEN1cnJlbnRUaW1lICE9PSBjaGFuZ2VzW1wiYnNDb25maWdcIl0ucHJldmlvdXNWYWx1ZS5pbml0Q3VycmVudFRpbWUgJiYgdGhpcy5fYnNWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuX2JzVmFsdWUgPSBzZXREYXRlUmFuZ2VzQ3VycmVudFRpbWVPbkRhdGVTZWxlY3QodGhpcy5fYnNWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5ic1ZhbHVlQ2hhbmdlLmVtaXQodGhpcy5fYnNWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl9kYXRlcGlja2VyUmVmIHx8ICF0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZXNbXCJtaW5EYXRlXCJdKSB7XG4gICAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UubWluRGF0ZSA9IHRoaXMubWluRGF0ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZXNbXCJtYXhEYXRlXCJdKSB7XG4gICAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UubWF4RGF0ZSA9IHRoaXMubWF4RGF0ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZXNbXCJkYXRlc0VuYWJsZWRcIl0pIHtcbiAgICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlc0VuYWJsZWQgPSB0aGlzLmRhdGVzRW5hYmxlZDtcbiAgICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuX2JzVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzW1wiZGF0ZXNEaXNhYmxlZFwiXSkge1xuICAgICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLmRhdGVzRGlzYWJsZWQgPSB0aGlzLmRhdGVzRGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzW1wiZGF5c0Rpc2FibGVkXCJdKSB7XG4gICAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF5c0Rpc2FibGVkID0gdGhpcy5kYXlzRGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzW1wiaXNEaXNhYmxlZFwiXSkge1xuICAgICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLmlzRGlzYWJsZWQgPSB0aGlzLmlzRGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzW1wiZGF0ZUN1c3RvbUNsYXNzZXNcIl0pIHtcbiAgICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlQ3VzdG9tQ2xhc3NlcyA9IHRoaXMuZGF0ZUN1c3RvbUNsYXNzZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbmZpZyBmb3IgZGF0ZXBpY2tlclxuICAgICAqL1xuICAgIHNldENvbmZpZygpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLl9kYXRlcGlja2VyKSB7XG4gICAgICAgIHRoaXMuX2RhdGVwaWNrZXIuaGlkZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jb25maWcsIHRoaXMuYnNDb25maWcsIHtcbiAgICAgICAgdmFsdWU6IGNoZWNrQnNWYWx1ZSh0aGlzLl9ic1ZhbHVlLCB0aGlzLm1heERhdGUgfHwgdGhpcy5ic0NvbmZpZyAmJiB0aGlzLmJzQ29uZmlnLm1heERhdGUpLFxuICAgICAgICBpc0Rpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQsXG4gICAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSB8fCB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5tYXhEYXRlLFxuICAgICAgICBkYXlzRGlzYWJsZWQ6IHRoaXMuZGF5c0Rpc2FibGVkIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5kYXlzRGlzYWJsZWQsXG4gICAgICAgIGRhdGVDdXN0b21DbGFzc2VzOiB0aGlzLmRhdGVDdXN0b21DbGFzc2VzIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5kYXRlQ3VzdG9tQ2xhc3NlcyxcbiAgICAgICAgZGF0ZXNEaXNhYmxlZDogdGhpcy5kYXRlc0Rpc2FibGVkIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5kYXRlc0Rpc2FibGVkLFxuICAgICAgICBkYXRlc0VuYWJsZWQ6IHRoaXMuZGF0ZXNFbmFibGVkIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5kYXRlc0VuYWJsZWQsXG4gICAgICAgIHJhbmdlczogY2hlY2tSYW5nZXNXaXRoTWF4RGF0ZSh0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcucmFuZ2VzLCB0aGlzLm1heERhdGUgfHwgdGhpcy5ic0NvbmZpZyAmJiB0aGlzLmJzQ29uZmlnLm1heERhdGUpLFxuICAgICAgICBtYXhEYXRlUmFuZ2U6IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5tYXhEYXRlUmFuZ2UsXG4gICAgICAgIGluaXRDdXJyZW50VGltZTogdGhpcy5ic0NvbmZpZz8uaW5pdEN1cnJlbnRUaW1lXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZiA9IHRoaXMuX2RhdGVwaWNrZXJcbiAgICAgICAgLnByb3ZpZGUoe3Byb3ZpZGU6IEJzRGF0ZXBpY2tlckNvbmZpZywgdXNlVmFsdWU6IHRoaXMuX2NvbmZpZ30pXG4gICAgICAgIC5hdHRhY2goQnNEYXRlcmFuZ2VwaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQpXG4gICAgICAgIC50byh0aGlzLl9lbGVtZW50UmVmKVxuICAgICAgICAuc2hvdygpO1xuXG4gICAgICB0aGlzLmluaXRTdWJzY3JpYmVzKCk7XG4gICAgfVxuXG4gIGluaXRTdWJzY3JpYmVzKCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmVTdWJzY3JpcHRpb25zKCk7XG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gZXh0ZXJuYWwgc291cmNlIChtb2RlbCAtPiB2aWV3KVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuYnNWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGVwaWNrZXJSZWYpIHtcbiAgICAgICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIGlmIGRhdGUgY2hhbmdlcyBmcm9tIHBpY2tlciAodmlldyAtPiBtb2RlbClcbiAgICBpZiAodGhpcy5fZGF0ZXBpY2tlclJlZikge1xuICAgICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLnZhbHVlQ2hhbmdlXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKHJhbmdlOiBEYXRlW10pID0+IHJhbmdlICYmIHJhbmdlWzBdICYmICEhcmFuZ2VbMV0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuYnNWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlU3Vic2NyaXB0aW9ucygpIHtcbiAgICBpZiAodGhpcy5fc3Vicz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdWJzLm1hcChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgdGhpcy5fc3Vicy5sZW5ndGggPSAwO1xuICAgIH1cbiAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxufVxuIl19
@@ -9,13 +9,13 @@ export class BsDaterangepickerInlineConfig extends BsDatepickerConfig {
9
9
  /** turn on/off animation */
10
10
  this.isAnimated = false;
11
11
  }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInlineConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInlineConfig, providedIn: 'root' }); }
12
14
  }
13
- BsDaterangepickerInlineConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDaterangepickerInlineConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
14
- BsDaterangepickerInlineConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDaterangepickerInlineConfig, providedIn: 'root' });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDaterangepickerInlineConfig, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInlineConfig, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root'
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUs1RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBSHJFOztRQUlJLDBCQUEwQjtRQUNuQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUN6Qiw0QkFBNEI7UUFDckIsZUFBVSxHQUFHLEtBQUssQ0FBQztLQUM3Qjs7MEhBTFksNkJBQTZCOzhIQUE3Qiw2QkFBNkIsY0FGNUIsTUFBTTsyRkFFUCw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNEYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJzRGF0ZXJhbmdlcGlja2VySW5saW5lQ29uZmlnIGV4dGVuZHMgQnNEYXRlcGlja2VyQ29uZmlnIHtcbiAgICAvLyBEYXRlcGlja2VyUmVuZGVyT3B0aW9uc1xuICBvdmVycmlkZSBkaXNwbGF5TW9udGhzID0gMjtcbiAgICAvKiogdHVybiBvbi9vZmYgYW5pbWF0aW9uICovXG4gIG92ZXJyaWRlIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUs1RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBSHJFOztRQUlJLDBCQUEwQjtRQUNuQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUN6Qiw0QkFBNEI7UUFDckIsZUFBVSxHQUFHLEtBQUssQ0FBQztLQUM3Qjs4R0FMWSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQUY1QixNQUFNOzsyRkFFUCw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNEYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJzRGF0ZXJhbmdlcGlja2VySW5saW5lQ29uZmlnIGV4dGVuZHMgQnNEYXRlcGlja2VyQ29uZmlnIHtcbiAgICAvLyBEYXRlcGlja2VyUmVuZGVyT3B0aW9uc1xuICBvdmVycmlkZSBkaXNwbGF5TW9udGhzID0gMjtcbiAgICAvKiogdHVybiBvbi9vZmYgYW5pbWF0aW9uICovXG4gIG92ZXJyaWRlIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbn1cbiJdfQ==
@@ -186,10 +186,10 @@ export class BsDaterangepickerInputDirective {
186
186
  this._renderer.selectRootElement(this._elRef.nativeElement).focus();
187
187
  }
188
188
  }
189
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInputDirective, deps: [{ token: i1.BsDaterangepickerDirective, host: true }, { token: i2.BsLocaleService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
190
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: BsDaterangepickerInputDirective, selector: "input[bsDaterangepicker]", host: { listeners: { "change": "onChange($event)", "keyup.esc": "hide()", "keydown": "onKeydownEvent($event)", "blur": "onBlur()" } }, providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR], ngImport: i0 }); }
189
191
  }
190
- BsDaterangepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDaterangepickerInputDirective, deps: [{ token: i1.BsDaterangepickerDirective, host: true }, { token: i2.BsLocaleService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
191
- BsDaterangepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: BsDaterangepickerInputDirective, selector: "input[bsDaterangepicker]", host: { listeners: { "change": "onChange($event)", "keyup.esc": "hide()", "keydown": "onKeydownEvent($event)", "blur": "onBlur()" } }, providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR], ngImport: i0 });
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDaterangepickerInputDirective, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BsDaterangepickerInputDirective, decorators: [{
193
193
  type: Directive,
194
194
  args: [{
195
195
  selector: `input[bsDaterangepicker]`,
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
205
205
  }], ctorParameters: function () { return [{ type: i1.BsDaterangepickerDirective, decorators: [{
206
206
  type: Host
207
207
  }] }, { type: i2.BsLocaleService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBSUosU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEVBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFdBQVcsRUFDWCxVQUFVLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV0RCxNQUFNLGlDQUFpQyxHQUFhO0lBQ2xELE9BQU8sRUFBRSxpQkFBaUI7SUFDeEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztJQUNoRSxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFhO0lBQzdDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7SUFDOUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBY0YsTUFBTSxPQUFPLCtCQUErQjtJQVEx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QU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckU7SUFDSCxDQUFDOzs0SEFyTlUsK0JBQStCO2dIQUEvQiwrQkFBK0IsMExBRi9CLENBQUMsaUNBQWlDLEVBQUUsNEJBQTRCLENBQUM7MkZBRWpFLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxxRUFBcUU7b0JBQ3JFLElBQUksRUFBRTt3QkFDSixVQUFVLEVBQUUsa0JBQWtCO3dCQUM5QixhQUFhLEVBQUUsUUFBUTt3QkFDdkIsV0FBVyxFQUFFLHdCQUF3Qjt3QkFDckMsUUFBUSxFQUFFLFVBQVU7cUJBQ3JCO29CQUNELFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLDRCQUE0QixDQUFDO2lCQUM3RTs7MEJBU2MsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQcm92aWRlcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgcGFyc2VEYXRlLFxuICBmb3JtYXREYXRlLFxuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc0FycmF5LFxuICBpc0RhdGVWYWxpZCxcbiAgdXRjQXNMb2NhbFxufSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuXG5pbXBvcnQgeyBCc0RhdGVyYW5nZXBpY2tlckRpcmVjdGl2ZSB9IGZyb20gJy4vYnMtZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICcuL2JzLWxvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEJTX0RBVEVSQU5HRVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJzRGF0ZXJhbmdlcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuY29uc3QgQlNfREFURVJBTkdFUElDS0VSX1ZBTElEQVRPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJzRGF0ZXJhbmdlcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBpbnB1dFtic0RhdGVyYW5nZXBpY2tlcl1gLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZSgkZXZlbnQpJyxcbiAgICAnKGtleXVwLmVzYyknOiAnaGlkZSgpJyxcbiAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bkV2ZW50KCRldmVudCknLFxuICAgICcoYmx1ciknOiAnb25CbHVyKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW0JTX0RBVEVSQU5HRVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUiwgQlNfREFURVJBTkdFUElDS0VSX1ZBTElEQVRPUl1cbn0pXG5leHBvcnQgY2xhc3MgQnNEYXRlcmFuZ2VwaWNrZXJJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuICBwcml2YXRlIF92YWx1ZT86IChEYXRlfHVuZGVmaW5lZClbXTtcbiAgcHJpdmF0ZSBfc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgX3BpY2tlcjogQnNEYXRlcmFuZ2VwaWNrZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgc2V0QnNWYWx1ZSA9ICh2YWx1ZTogKERhdGV8dW5kZWZpbmVkKVtdKSA9PiB7XG4gICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG5cbiAgICAvLyBpZiB2YWx1ZSBzZXQgdmlhIFtic1ZhbHVlXSBpdCB3aWxsIG5vdCBnZXQgaW50byB2YWx1ZSBjaGFuZ2VcbiAgICBpZiAodGhpcy5fcGlja2VyLl9ic1ZhbHVlKSB7XG4gICAgICBzZXRCc1ZhbHVlKHRoaXMuX3BpY2tlci5fYnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGlucHV0IHZhbHVlIG9uIGRhdGVwaWNrZXIgdmFsdWUgdXBkYXRlXG4gICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICB0aGlzLl9waWNrZXIuYnNWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pKTtcblxuICAgIC8vIHVwZGF0ZSBpbnB1dCB2YWx1ZSBvbiBsb2NhbGUgY2hhbmdlXG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5fbG9jYWxlU2VydmljZS5sb2NhbGVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3NldElucHV0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH0pKTtcblxuICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgLy8gdXBkYXRlIGlucHV0IHZhbHVlIG9uIGZvcm1hdCBjaGFuZ2VcbiAgICAgIHRoaXMuX3BpY2tlci5yYW5nZUlucHV0Rm9ybWF0JC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NldElucHV0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vicy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgX3NldElucHV0VmFsdWUoZGF0ZT86IChEYXRlfHVuZGVmaW5lZClbXSk6IHZvaWQge1xuICAgIGxldCByYW5nZSA9ICcnO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBzdGFydDogc3RyaW5nID0gIWRhdGVbMF0gPyAnJ1xuICAgICAgICA6IGZvcm1hdERhdGUoZGF0ZVswXSxcbiAgICAgICAgICB0aGlzLl9waWNrZXIuX2NvbmZpZy5yYW5nZUlucHV0Rm9ybWF0LFxuICAgICAgICAgIHRoaXMuX2xvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZVxuICAgICAgICApO1xuICAgICAgY29uc3QgZW5kOiBzdHJpbmcgPSAhZGF0ZVsxXSA/ICcnXG4gICAgICAgIDogZm9ybWF0RGF0ZShcbiAgICAgICAgICBkYXRlWzFdLFxuICAgICAgICAgIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsXG4gICAgICAgICAgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlXG4gICAgICAgICk7XG4gICAgICByYW5nZSA9IChzdGFydCAmJiBlbmQpID8gc3RhcnQgKyB0aGlzLl9waWNrZXIuX2NvbmZpZy5yYW5nZVNlcGFyYXRvciArIGVuZCA6ICcnO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCByYW5nZSk7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHRoaXMud3JpdGVWYWx1ZSgoZXZlbnQudGFyZ2V0IGFzIGFueSkudmFsdWUpO1xuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICBpZiAodGhpcy5fcGlja2VyLl9jb25maWcucmV0dXJuRm9jdXNUb0lucHV0KSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBsZXQgX3ZhbHVlOiBbRGF0ZSwgRGF0ZV0gPSBjLnZhbHVlO1xuICAgIGNvbnN0IGVycm9yczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdO1xuXG4gICAgaWYgKF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhaXNBcnJheShfdmFsdWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBfdmFsdWUgPSBfdmFsdWUuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLmdldFRpbWUoKSAtIGIuZ2V0VGltZSgpKSBhcyBbRGF0ZSwgRGF0ZV07XG5cbiAgICBjb25zdCBfaXNGaXJzdERhdGVWYWxpZCA9IGlzRGF0ZVZhbGlkKF92YWx1ZVswXSk7XG4gICAgY29uc3QgX2lzU2Vjb25kRGF0ZVZhbGlkID0gaXNEYXRlVmFsaWQoX3ZhbHVlWzFdKTtcblxuICAgIGlmICghX2lzRmlyc3REYXRlVmFsaWQpIHtcbiAgICAgIHJldHVybiB7IGJzRGF0ZTogeyBpbnZhbGlkOiBfdmFsdWVbMF0gfSB9O1xuICAgIH1cblxuICAgIGlmICghX2lzU2Vjb25kRGF0ZVZhbGlkKSB7XG4gICAgICByZXR1cm4geyBic0RhdGU6IHsgaW52YWxpZDogX3ZhbHVlWzFdIH0gfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5taW5EYXRlICYmIGlzQmVmb3JlKF92YWx1ZVswXSwgdGhpcy5fcGlja2VyLm1pbkRhdGUsICdkYXRlJykpIHtcbiAgICAgIF92YWx1ZVswXSA9IHRoaXMuX3BpY2tlci5taW5EYXRlO1xuICAgICAgZXJyb3JzLnB1c2goeyBic0RhdGU6IHsgbWluRGF0ZTogdGhpcy5fcGlja2VyLm1pbkRhdGUgfSB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5tYXhEYXRlICYmIGlzQWZ0ZXIoX3ZhbHVlWzFdLCB0aGlzLl9waWNrZXIubWF4RGF0ZSwgJ2RhdGUnKSkge1xuICAgICAgX3ZhbHVlWzFdID0gdGhpcy5fcGlja2VyLm1heERhdGU7XG4gICAgICBlcnJvcnMucHVzaCh7IGJzRGF0ZTogeyBtYXhEYXRlOiB0aGlzLl9waWNrZXIubWF4RGF0ZSB9IH0pO1xuICAgIH1cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShfdmFsdWUpO1xuXG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZVtdIHwgc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2b2lkIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IF9sb2NhbGVLZXkgPSB0aGlzLl9sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGU7XG4gICAgICBjb25zdCBfbG9jYWxlID0gZ2V0TG9jYWxlKF9sb2NhbGVLZXkpO1xuICAgICAgaWYgKCFfbG9jYWxlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTG9jYWxlIFwiJHtfbG9jYWxlS2V5fVwiIGlzIG5vdCBkZWZpbmVkLCBwbGVhc2UgYWRkIGl0IHdpdGggXCJkZWZpbmVMb2NhbGUoLi4uKVwiYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsZXQgX2lucHV0OiAoc3RyaW5nIHwgRGF0ZSlbXSA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZFNlcGFyYXRvciA9IHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yLnRyaW0oKTtcbiAgICAgICAgaWYgKHZhbHVlLnJlcGxhY2UoL1teLV0vZywgJycpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBfaW5wdXQgPSB2YWx1ZS5zcGxpdCh0aGlzLl9waWNrZXIuX2NvbmZpZy5yYW5nZVNlcGFyYXRvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX2lucHV0ID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCh0cmltbWVkU2VwYXJhdG9yLmxlbmd0aCA+IDAgPyB0cmltbWVkU2VwYXJhdG9yIDogdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VTZXBhcmF0b3IpXG4gICAgICAgICAgICAubWFwKF92YWwgPT4gX3ZhbC50cmltKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBfaW5wdXQgPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdmFsdWUgPSBfaW5wdXRcbiAgICAgICAgLm1hcCgoX3ZhbDogc3RyaW5nIHwgRGF0ZSk6IERhdGUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnVzZVV0Yykge1xuICAgICAgICAgICAgICByZXR1cm4gdXRjQXNMb2NhbChcbiAgICAgICAgICAgICAgICBwYXJzZURhdGUoX3ZhbCwgdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VJbnB1dEZvcm1hdCwgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VEYXRlKF92YWwsIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsIHRoaXMuX2xvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZSk7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIC5tYXAoKGRhdGU6IERhdGUpID0+IChpc05hTihkYXRlLnZhbHVlT2YoKSkgPyB2b2lkIDAgOiBkYXRlKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcGlja2VyLmJzVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX3BpY2tlci5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5fcGlja2VyLmhpZGUoKTtcbiAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XG5cbiAgICBpZiAodGhpcy5fcGlja2VyLl9jb25maWcucmV0dXJuRm9jdXNUb0lucHV0KSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBSUosU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEVBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFdBQVcsRUFDWCxVQUFVLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV0RCxNQUFNLGlDQUFpQyxHQUFhO0lBQ2xELE9BQU8sRUFBRSxpQkFBaUI7SUFDeEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztJQUNoRSxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFhO0lBQzdDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7SUFDOUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBY0YsTUFBTSxPQUFPLCtCQUErQjtJQVEx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QU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckU7SUFDSCxDQUFDOzhHQXJOVSwrQkFBK0I7a0dBQS9CLCtCQUErQiwwTEFGL0IsQ0FBQyxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQzs7MkZBRWpFLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxxRUFBcUU7b0JBQ3JFLElBQUksRUFBRTt3QkFDSixVQUFVLEVBQUUsa0JBQWtCO3dCQUM5QixhQUFhLEVBQUUsUUFBUTt3QkFDdkIsV0FBVyxFQUFFLHdCQUF3Qjt3QkFDckMsUUFBUSxFQUFFLFVBQVU7cUJBQ3JCO29CQUNELFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLDRCQUE0QixDQUFDO2lCQUM3RTs7MEJBU2MsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQcm92aWRlcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgcGFyc2VEYXRlLFxuICBmb3JtYXREYXRlLFxuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc0FycmF5LFxuICBpc0RhdGVWYWxpZCxcbiAgdXRjQXNMb2NhbFxufSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuXG5pbXBvcnQgeyBCc0RhdGVyYW5nZXBpY2tlckRpcmVjdGl2ZSB9IGZyb20gJy4vYnMtZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICcuL2JzLWxvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEJTX0RBVEVSQU5HRVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJzRGF0ZXJhbmdlcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuY29uc3QgQlNfREFURVJBTkdFUElDS0VSX1ZBTElEQVRPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJzRGF0ZXJhbmdlcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBpbnB1dFtic0RhdGVyYW5nZXBpY2tlcl1gLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZSgkZXZlbnQpJyxcbiAgICAnKGtleXVwLmVzYyknOiAnaGlkZSgpJyxcbiAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bkV2ZW50KCRldmVudCknLFxuICAgICcoYmx1ciknOiAnb25CbHVyKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW0JTX0RBVEVSQU5HRVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUiwgQlNfREFURVJBTkdFUElDS0VSX1ZBTElEQVRPUl1cbn0pXG5leHBvcnQgY2xhc3MgQnNEYXRlcmFuZ2VwaWNrZXJJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuICBwcml2YXRlIF92YWx1ZT86IChEYXRlfHVuZGVmaW5lZClbXTtcbiAgcHJpdmF0ZSBfc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgX3BpY2tlcjogQnNEYXRlcmFuZ2VwaWNrZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgc2V0QnNWYWx1ZSA9ICh2YWx1ZTogKERhdGV8dW5kZWZpbmVkKVtdKSA9PiB7XG4gICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG5cbiAgICAvLyBpZiB2YWx1ZSBzZXQgdmlhIFtic1ZhbHVlXSBpdCB3aWxsIG5vdCBnZXQgaW50byB2YWx1ZSBjaGFuZ2VcbiAgICBpZiAodGhpcy5fcGlja2VyLl9ic1ZhbHVlKSB7XG4gICAgICBzZXRCc1ZhbHVlKHRoaXMuX3BpY2tlci5fYnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGlucHV0IHZhbHVlIG9uIGRhdGVwaWNrZXIgdmFsdWUgdXBkYXRlXG4gICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICB0aGlzLl9waWNrZXIuYnNWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pKTtcblxuICAgIC8vIHVwZGF0ZSBpbnB1dCB2YWx1ZSBvbiBsb2NhbGUgY2hhbmdlXG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5fbG9jYWxlU2VydmljZS5sb2NhbGVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3NldElucHV0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH0pKTtcblxuICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgLy8gdXBkYXRlIGlucHV0IHZhbHVlIG9uIGZvcm1hdCBjaGFuZ2VcbiAgICAgIHRoaXMuX3BpY2tlci5yYW5nZUlucHV0Rm9ybWF0JC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NldElucHV0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vicy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgX3NldElucHV0VmFsdWUoZGF0ZT86IChEYXRlfHVuZGVmaW5lZClbXSk6IHZvaWQge1xuICAgIGxldCByYW5nZSA9ICcnO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBzdGFydDogc3RyaW5nID0gIWRhdGVbMF0gPyAnJ1xuICAgICAgICA6IGZvcm1hdERhdGUoZGF0ZVswXSxcbiAgICAgICAgICB0aGlzLl9waWNrZXIuX2NvbmZpZy5yYW5nZUlucHV0Rm9ybWF0LFxuICAgICAgICAgIHRoaXMuX2xvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZVxuICAgICAgICApO1xuICAgICAgY29uc3QgZW5kOiBzdHJpbmcgPSAhZGF0ZVsxXSA/ICcnXG4gICAgICAgIDogZm9ybWF0RGF0ZShcbiAgICAgICAgICBkYXRlWzFdLFxuICAgICAgICAgIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsXG4gICAgICAgICAgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlXG4gICAgICAgICk7XG4gICAgICByYW5nZSA9IChzdGFydCAmJiBlbmQpID8gc3RhcnQgKyB0aGlzLl9waWNrZXIuX2NvbmZpZy5yYW5nZVNlcGFyYXRvciArIGVuZCA6ICcnO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCByYW5nZSk7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHRoaXMud3JpdGVWYWx1ZSgoZXZlbnQudGFyZ2V0IGFzIGFueSkudmFsdWUpO1xuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICBpZiAodGhpcy5fcGlja2VyLl9jb25maWcucmV0dXJuRm9jdXNUb0lucHV0KSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBsZXQgX3ZhbHVlOiBbRGF0ZSwgRGF0ZV0gPSBjLnZhbHVlO1xuICAgIGNvbnN0IGVycm9yczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdO1xuXG4gICAgaWYgKF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhaXNBcnJheShfdmFsdWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBfdmFsdWUgPSBfdmFsdWUuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLmdldFRpbWUoKSAtIGIuZ2V0VGltZSgpKSBhcyBbRGF0ZSwgRGF0ZV07XG5cbiAgICBjb25zdCBfaXNGaXJzdERhdGVWYWxpZCA9IGlzRGF0ZVZhbGlkKF92YWx1ZVswXSk7XG4gICAgY29uc3QgX2lzU2Vjb25kRGF0ZVZhbGlkID0gaXNEYXRlVmFsaWQoX3ZhbHVlWzFdKTtcblxuICAgIGlmICghX2lzRmlyc3REYXRlVmFsaWQpIHtcbiAgICAgIHJldHVybiB7IGJzRGF0ZTogeyBpbnZhbGlkOiBfdmFsdWVbMF0gfSB9O1xuICAgIH1cblxuICAgIGlmICghX2lzU2Vjb25kRGF0ZVZhbGlkKSB7XG4gICAgICByZXR1cm4geyBic0RhdGU6IHsgaW52YWxpZDogX3ZhbHVlWzFdIH0gfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5taW5EYXRlICYmIGlzQmVmb3JlKF92YWx1ZVswXSwgdGhpcy5fcGlja2VyLm1pbkRhdGUsICdkYXRlJykpIHtcbiAgICAgIF92YWx1ZVswXSA9IHRoaXMuX3BpY2tlci5taW5EYXRlO1xuICAgICAgZXJyb3JzLnB1c2goeyBic0RhdGU6IHsgbWluRGF0ZTogdGhpcy5fcGlja2VyLm1pbkRhdGUgfSB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5tYXhEYXRlICYmIGlzQWZ0ZXIoX3ZhbHVlWzFdLCB0aGlzLl9waWNrZXIubWF4RGF0ZSwgJ2RhdGUnKSkge1xuICAgICAgX3ZhbHVlWzFdID0gdGhpcy5fcGlja2VyLm1heERhdGU7XG4gICAgICBlcnJvcnMucHVzaCh7IGJzRGF0ZTogeyBtYXhEYXRlOiB0aGlzLl9waWNrZXIubWF4RGF0ZSB9IH0pO1xuICAgIH1cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShfdmFsdWUpO1xuXG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZVtdIHwgc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2b2lkIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IF9sb2NhbGVLZXkgPSB0aGlzLl9sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGU7XG4gICAgICBjb25zdCBfbG9jYWxlID0gZ2V0TG9jYWxlKF9sb2NhbGVLZXkpO1xuICAgICAgaWYgKCFfbG9jYWxlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTG9jYWxlIFwiJHtfbG9jYWxlS2V5fVwiIGlzIG5vdCBkZWZpbmVkLCBwbGVhc2UgYWRkIGl0IHdpdGggXCJkZWZpbmVMb2NhbGUoLi4uKVwiYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsZXQgX2lucHV0OiAoc3RyaW5nIHwgRGF0ZSlbXSA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZFNlcGFyYXRvciA9IHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yLnRyaW0oKTtcbiAgICAgICAgaWYgKHZhbHVlLnJlcGxhY2UoL1teLV0vZywgJycpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBfaW5wdXQgPSB2YWx1ZS5zcGxpdCh0aGlzLl9waWNrZXIuX2NvbmZpZy5yYW5nZVNlcGFyYXRvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX2lucHV0ID0gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCh0cmltbWVkU2VwYXJhdG9yLmxlbmd0aCA+IDAgPyB0cmltbWVkU2VwYXJhdG9yIDogdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VTZXBhcmF0b3IpXG4gICAgICAgICAgICAubWFwKF92YWwgPT4gX3ZhbC50cmltKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBfaW5wdXQgPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdmFsdWUgPSBfaW5wdXRcbiAgICAgICAgLm1hcCgoX3ZhbDogc3RyaW5nIHwgRGF0ZSk6IERhdGUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnVzZVV0Yykge1xuICAgICAgICAgICAgICByZXR1cm4gdXRjQXNMb2NhbChcbiAgICAgICAgICAgICAgICBwYXJzZURhdGUoX3ZhbCwgdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VJbnB1dEZvcm1hdCwgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VEYXRlKF92YWwsIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsIHRoaXMuX2xvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZSk7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIC5tYXAoKGRhdGU6IERhdGUpID0+IChpc05hTihkYXRlLnZhbHVlT2YoKSkgPyB2b2lkIDAgOiBkYXRlKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcGlja2VyLmJzVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX3BpY2tlci5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5fcGlja2VyLmhpZGUoKTtcbiAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XG5cbiAgICBpZiAodGhpcy5fcGlja2VyLl9jb25maWcucmV0dXJuRm9jdXNUb0lucHV0KSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19