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
@@ -1,79 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';
2
- import { BsDropdownState } from './bs-dropdown.state';
3
- import { dropdownAnimation } from './dropdown-animations';
4
- import { AnimationBuilder } from '@angular/animations';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./bs-dropdown.state";
7
- import * as i2 from "@angular/animations";
8
- import * as i3 from "@angular/common";
9
- // todo: revert ngClass to [class] when false positive angular-cli issue is fixed
10
- // [class.dropdown]="direction === 'down'"-->
11
- export class BsDropdownContainerComponent {
12
- constructor(_state, cd, _renderer, _element, _builder) {
13
- this._state = _state;
14
- this.cd = cd;
15
- this._renderer = _renderer;
16
- this._element = _element;
17
- this.isOpen = false;
18
- this._factoryDropDownAnimation = _builder.build(dropdownAnimation);
19
- this._subscription = _state.isOpenChange.subscribe((value) => {
20
- this.isOpen = value;
21
- const dropdown = this._element.nativeElement.querySelector('.dropdown-menu');
22
- this._renderer.addClass(this._element.nativeElement.querySelector('div'), 'open');
23
- if (dropdown) {
24
- this._renderer.addClass(dropdown, 'show');
25
- if (dropdown.classList.contains('dropdown-menu-right') || dropdown.classList.contains('dropdown-menu-end')) {
26
- this._renderer.setStyle(dropdown, 'left', 'auto');
27
- this._renderer.setStyle(dropdown, 'right', '0');
28
- }
29
- if (this.direction === 'up') {
30
- this._renderer.setStyle(dropdown, 'top', 'auto');
31
- this._renderer.setStyle(dropdown, 'transform', 'translateY(-101%)');
32
- }
33
- }
34
- if (dropdown && this._state.isAnimated) {
35
- this._factoryDropDownAnimation.create(dropdown)
36
- .play();
37
- }
38
- this.cd.markForCheck();
39
- this.cd.detectChanges();
40
- });
41
- }
42
- get direction() {
43
- return this._state.direction;
44
- }
45
- /** @internal */
46
- _contains(el) {
47
- return this._element.nativeElement.contains(el);
48
- }
49
- ngOnDestroy() {
50
- this._subscription.unsubscribe();
51
- }
52
- }
53
- BsDropdownContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDropdownContainerComponent, deps: [{ token: i1.BsDropdownState }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component });
54
- BsDropdownContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BsDropdownContainerComponent, selector: "bs-dropdown-container", host: { styleAttribute: "display:block;position: absolute;z-index: 1040" }, ngImport: i0, template: `
55
- <div [class.dropup]="direction === 'up'"
56
- [ngClass]="{dropdown: direction === 'down'}"
57
- [class.show]="isOpen"
58
- [class.open]="isOpen"><ng-content></ng-content>
59
- </div>
60
- `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDropdownContainerComponent, decorators: [{
62
- type: Component,
63
- args: [{
64
- selector: 'bs-dropdown-container',
65
- changeDetection: ChangeDetectionStrategy.OnPush,
66
- // eslint-disable-next-line @angular-eslint/no-host-metadata-property
67
- host: {
68
- style: 'display:block;position: absolute;z-index: 1040'
69
- },
70
- template: `
71
- <div [class.dropup]="direction === 'up'"
72
- [ngClass]="{dropdown: direction === 'down'}"
73
- [class.show]="isOpen"
74
- [class.open]="isOpen"><ng-content></ng-content>
75
- </div>
76
- `
77
- }]
78
- }], ctorParameters: function () { return [{ type: i1.BsDropdownState }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.AnimationBuilder }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kcm9wZG93bi9icy1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBRVYsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBR3pFLGlGQUFpRjtBQUNqRixzREFBc0Q7QUFnQnRELE1BQU0sT0FBTyw0QkFBNEI7SUFXdkMsWUFDVSxNQUF1QixFQUN2QixFQUFxQixFQUNyQixTQUFvQixFQUNwQixRQUFvQixFQUM1QixRQUEwQjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVk7UUFkOUIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQWlCYixJQUFJLENBQUMseUJBQXlCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUU3RSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFbEYsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUUxQyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRTtvQkFDMUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDakQ7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtvQkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQ3JCLFFBQVEsRUFDUixXQUFXLEVBQ1gsbUJBQW1CLENBQ3BCLENBQUM7aUJBQ0g7YUFDRjtZQUVELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztxQkFDNUMsSUFBSSxFQUFFLENBQUM7YUFDWDtZQUVELElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUE5Q0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBOENELGdCQUFnQjtJQUNoQixTQUFTLENBQUMsRUFBVztRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7eUhBNURVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLHlJQVI3Qjs7Ozs7O0dBTVQ7MkZBRVUsNEJBQTRCO2tCQWZ4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxxRUFBcUU7b0JBQ3JFLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsZ0RBQWdEO3FCQUN4RDtvQkFDRCxRQUFRLEVBQUU7Ozs7OztHQU1UO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCc0Ryb3Bkb3duU3RhdGUgfSBmcm9tICcuL2JzLWRyb3Bkb3duLnN0YXRlJztcblxuaW1wb3J0IHsgZHJvcGRvd25BbmltYXRpb24gfSBmcm9tICcuL2Ryb3Bkb3duLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQW5pbWF0aW9uQnVpbGRlciwgQW5pbWF0aW9uRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8vIHRvZG86IHJldmVydCBuZ0NsYXNzIHRvIFtjbGFzc10gd2hlbiBmYWxzZSBwb3NpdGl2ZSBhbmd1bGFyLWNsaSBpc3N1ZSBpcyBmaXhlZFxuLy8gICAgICAgICAgW2NsYXNzLmRyb3Bkb3duXT1cImRpcmVjdGlvbiA9PT0gJ2Rvd24nXCItLT5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLWRyb3Bkb3duLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIHN0eWxlOiAnZGlzcGxheTpibG9jaztwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogMTA0MCdcbiAgfSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzcy5kcm9wdXBdPVwiZGlyZWN0aW9uID09PSAndXAnXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cIntkcm9wZG93bjogZGlyZWN0aW9uID09PSAnZG93bid9XCJcbiAgICAgICAgIFtjbGFzcy5zaG93XT1cImlzT3BlblwiXG4gICAgICAgICBbY2xhc3Mub3Blbl09XCJpc09wZW5cIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgQnNEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGlzT3BlbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2ZhY3RvcnlEcm9wRG93bkFuaW1hdGlvbjogQW5pbWF0aW9uRmFjdG9yeTtcblxuICBnZXQgZGlyZWN0aW9uKCk6ICdkb3duJyB8ICd1cCcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZS5kaXJlY3Rpb247XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdGF0ZTogQnNEcm9wZG93blN0YXRlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBfYnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlclxuICApIHtcbiAgICB0aGlzLl9mYWN0b3J5RHJvcERvd25BbmltYXRpb24gPSBfYnVpbGRlci5idWlsZChkcm9wZG93bkFuaW1hdGlvbik7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBfc3RhdGUuaXNPcGVuQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMuaXNPcGVuID0gdmFsdWU7XG4gICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tbWVudScpO1xuXG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2JyksICdvcGVuJyk7XG5cbiAgICAgIGlmIChkcm9wZG93bikge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhkcm9wZG93biwgJ3Nob3cnKTtcblxuICAgICAgICBpZiAoZHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKCdkcm9wZG93bi1tZW51LXJpZ2h0JykgfHwgZHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKCdkcm9wZG93bi1tZW51LWVuZCcpKSB7XG4gICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd24sICdsZWZ0JywgJ2F1dG8nKTtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93biwgJ3JpZ2h0JywgJzAnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICd1cCcpIHtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93biwgJ3RvcCcsICdhdXRvJyk7XG4gICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICBkcm9wZG93bixcbiAgICAgICAgICAgICd0cmFuc2Zvcm0nLFxuICAgICAgICAgICAgJ3RyYW5zbGF0ZVkoLTEwMSUpJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRyb3Bkb3duICYmIHRoaXMuX3N0YXRlLmlzQW5pbWF0ZWQpIHtcbiAgICAgICAgdGhpcy5fZmFjdG9yeURyb3BEb3duQW5pbWF0aW9uLmNyZWF0ZShkcm9wZG93bilcbiAgICAgICAgICAucGxheSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9jb250YWlucyhlbDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZWwpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,340 +0,0 @@
1
- import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, ViewContainerRef } from '@angular/core';
2
- import { filter } from 'rxjs/operators';
3
- import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
4
- import { BsDropdownConfig } from './bs-dropdown.config';
5
- import { BsDropdownContainerComponent } from './bs-dropdown-container.component';
6
- import { BsDropdownState } from './bs-dropdown.state';
7
- import { AnimationBuilder } from '@angular/animations';
8
- import { dropdownAnimation } from './dropdown-animations';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "ngx-bootstrap/component-loader";
11
- import * as i2 from "./bs-dropdown.state";
12
- import * as i3 from "./bs-dropdown.config";
13
- import * as i4 from "@angular/animations";
14
- export class BsDropdownDirective {
15
- constructor(_elementRef, _renderer, _viewContainerRef, _cis, _state, _config, _builder) {
16
- this._elementRef = _elementRef;
17
- this._renderer = _renderer;
18
- this._viewContainerRef = _viewContainerRef;
19
- this._cis = _cis;
20
- this._state = _state;
21
- this._config = _config;
22
- /**
23
- * This attribute indicates that the dropdown should be opened upwards
24
- */
25
- this.dropup = false;
26
- // todo: move to component loader
27
- this._isInlineOpen = false;
28
- this._isDisabled = false;
29
- this._subscriptions = [];
30
- this._isInited = false;
31
- // set initial dropdown state from config
32
- this._state.autoClose = this._config.autoClose;
33
- this._state.insideClick = this._config.insideClick;
34
- this._state.isAnimated = this._config.isAnimated;
35
- this._state.stopOnClickPropagation = this._config.stopOnClickPropagation;
36
- this._factoryDropDownAnimation = _builder.build(dropdownAnimation);
37
- // create dropdown component loader
38
- this._dropdown = this._cis
39
- .createLoader(this._elementRef, this._viewContainerRef, this._renderer)
40
- .provide({ provide: BsDropdownState, useValue: this._state });
41
- this.onShown = this._dropdown.onShown;
42
- this.onHidden = this._dropdown.onHidden;
43
- this.isOpenChange = this._state.isOpenChange;
44
- }
45
- /**
46
- * Indicates that dropdown will be closed on item or document click,
47
- * and after pressing ESC
48
- */
49
- set autoClose(value) {
50
- this._state.autoClose = value;
51
- }
52
- get autoClose() {
53
- return this._state.autoClose;
54
- }
55
- /**
56
- * Indicates that dropdown will be animated
57
- */
58
- set isAnimated(value) {
59
- this._state.isAnimated = value;
60
- }
61
- get isAnimated() {
62
- return this._state.isAnimated;
63
- }
64
- /**
65
- * This attribute indicates that the dropdown shouldn't close on inside click when autoClose is set to true
66
- */
67
- set insideClick(value) {
68
- this._state.insideClick = value;
69
- }
70
- get insideClick() {
71
- return this._state.insideClick;
72
- }
73
- /**
74
- * Disables dropdown toggle and hides dropdown menu if opened
75
- */
76
- set isDisabled(value) {
77
- this._isDisabled = value;
78
- this._state.isDisabledChange.emit(value);
79
- if (value) {
80
- this.hide();
81
- }
82
- }
83
- get isDisabled() {
84
- return this._isDisabled;
85
- }
86
- /**
87
- * Returns whether or not the popover is currently being shown
88
- */
89
- get isOpen() {
90
- if (this._showInline) {
91
- return this._isInlineOpen;
92
- }
93
- return this._dropdown.isShown;
94
- }
95
- set isOpen(value) {
96
- if (value) {
97
- this.show();
98
- }
99
- else {
100
- this.hide();
101
- }
102
- }
103
- get _showInline() {
104
- return !this.container;
105
- }
106
- ngOnInit() {
107
- // fix: seems there are an issue with `routerLinkActive`
108
- // which result in duplicated call ngOnInit without call to ngOnDestroy
109
- // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885
110
- if (this._isInited) {
111
- return;
112
- }
113
- this._isInited = true;
114
- // attach DOM listeners
115
- this._dropdown.listen({
116
- // because of dropdown inline mode
117
- outsideClick: false,
118
- triggers: this.triggers,
119
- show: () => this.show()
120
- });
121
- // toggle visibility on toggle element click
122
- this._subscriptions.push(this._state.toggleClick.subscribe((value) => this.toggle(value)));
123
- // hide dropdown if set disabled while opened
124
- this._subscriptions.push(this._state.isDisabledChange
125
- .pipe(filter((value) => value))
126
- .subscribe(( /*value: boolean*/) => this.hide()));
127
- }
128
- /**
129
- * Opens an element’s popover. This is considered a “manual” triggering of
130
- * the popover.
131
- */
132
- show() {
133
- if (this.isOpen || this.isDisabled) {
134
- return;
135
- }
136
- if (this._showInline) {
137
- if (!this._inlinedMenu) {
138
- this._state.dropdownMenu.then((dropdownMenu) => {
139
- this._dropdown.attachInline(dropdownMenu.viewContainer, dropdownMenu.templateRef);
140
- this._inlinedMenu = this._dropdown._inlineViewRef;
141
- this.addBs4Polyfills();
142
- if (this._inlinedMenu) {
143
- this._renderer.addClass(this._inlinedMenu.rootNodes[0].parentNode, 'open');
144
- }
145
- this.playAnimation();
146
- })
147
- // swallow errors
148
- .catch();
149
- }
150
- this.addBs4Polyfills();
151
- this._isInlineOpen = true;
152
- this.onShown.emit(true);
153
- this._state.isOpenChange.emit(true);
154
- this.playAnimation();
155
- return;
156
- }
157
- this._state.dropdownMenu.then(dropdownMenu => {
158
- // check direction in which dropdown should be opened
159
- const _dropup = this.dropup ||
160
- (typeof this.dropup !== 'undefined' && this.dropup);
161
- this._state.direction = _dropup ? 'up' : 'down';
162
- const _placement = this.placement || (_dropup ? 'top start' : 'bottom start');
163
- // show dropdown
164
- this._dropdown
165
- .attach(BsDropdownContainerComponent)
166
- .to(this.container)
167
- .position({ attachment: _placement })
168
- .show({
169
- content: dropdownMenu.templateRef,
170
- placement: _placement
171
- });
172
- this._state.isOpenChange.emit(true);
173
- })
174
- // swallow error
175
- .catch();
176
- }
177
- /**
178
- * Closes an element’s popover. This is considered a “manual” triggering of
179
- * the popover.
180
- */
181
- hide() {
182
- if (!this.isOpen) {
183
- return;
184
- }
185
- if (this._showInline) {
186
- this.removeShowClass();
187
- this.removeDropupStyles();
188
- this._isInlineOpen = false;
189
- this.onHidden.emit(true);
190
- }
191
- else {
192
- this._dropdown.hide();
193
- }
194
- this._state.isOpenChange.emit(false);
195
- }
196
- /**
197
- * Toggles an element’s popover. This is considered a “manual” triggering of
198
- * the popover. With parameter <code>true</code> allows toggling, with parameter <code>false</code>
199
- * only hides opened dropdown. Parameter usage will be removed in ngx-bootstrap v3
200
- */
201
- toggle(value) {
202
- if (this.isOpen || !value) {
203
- return this.hide();
204
- }
205
- return this.show();
206
- }
207
- /** @internal */
208
- _contains(event) {
209
- // todo: valorkin fix typings
210
- return this._elementRef.nativeElement.contains(event.target) ||
211
- (this._dropdown.instance && this._dropdown.instance._contains(event.target));
212
- }
213
- navigationClick(event) {
214
- const ref = this._elementRef.nativeElement.querySelector('.dropdown-menu');
215
- if (!ref) {
216
- return;
217
- }
218
- const firstActive = this._elementRef.nativeElement.ownerDocument.activeElement;
219
- const allRef = ref.querySelectorAll('.dropdown-item');
220
- switch (event.keyCode) {
221
- case 38:
222
- if (this._state.counts > 0) {
223
- allRef[--this._state.counts].focus();
224
- }
225
- break;
226
- case 40:
227
- if (this._state.counts + 1 < allRef.length) {
228
- if (firstActive.classList !== allRef[this._state.counts].classList) {
229
- allRef[this._state.counts].focus();
230
- }
231
- else {
232
- allRef[++this._state.counts].focus();
233
- }
234
- }
235
- break;
236
- default:
237
- }
238
- event.preventDefault();
239
- }
240
- ngOnDestroy() {
241
- // clean up subscriptions and destroy dropdown
242
- for (const sub of this._subscriptions) {
243
- sub.unsubscribe();
244
- }
245
- this._dropdown.dispose();
246
- }
247
- addBs4Polyfills() {
248
- this.addShowClass();
249
- this.checkRightAlignment();
250
- this.addDropupStyles();
251
- }
252
- playAnimation() {
253
- if (this._state.isAnimated && this._inlinedMenu) {
254
- setTimeout(() => {
255
- if (this._inlinedMenu) {
256
- this._factoryDropDownAnimation.create(this._inlinedMenu.rootNodes[0]).play();
257
- }
258
- });
259
- }
260
- }
261
- addShowClass() {
262
- if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {
263
- this._renderer.addClass(this._inlinedMenu.rootNodes[0], 'show');
264
- }
265
- }
266
- removeShowClass() {
267
- if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {
268
- this._renderer.removeClass(this._inlinedMenu.rootNodes[0], 'show');
269
- }
270
- }
271
- checkRightAlignment() {
272
- if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {
273
- const isRightAligned = this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-right') || this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-end');
274
- this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'left', isRightAligned ? 'auto' : '0');
275
- this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'right', isRightAligned ? '0' : 'auto');
276
- }
277
- }
278
- addDropupStyles() {
279
- if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {
280
- // a little hack to not break support of bootstrap 4 beta
281
- this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'top', this.dropup ? 'auto' : '100%');
282
- this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'transform', this.dropup ? 'translateY(-101%)' : 'translateY(0)');
283
- this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'bottom', 'auto');
284
- }
285
- }
286
- removeDropupStyles() {
287
- if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {
288
- this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'top');
289
- this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'transform');
290
- this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'bottom');
291
- }
292
- }
293
- }
294
- BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i1.ComponentLoaderFactory }, { token: i2.BsDropdownState }, { token: i3.BsDropdownConfig }, { token: i4.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive });
295
- BsDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: { placement: "placement", triggers: "triggers", container: "container", dropup: "dropup", autoClose: "autoClose", isAnimated: "isAnimated", insideClick: "insideClick", isDisabled: "isDisabled", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", onShown: "onShown", onHidden: "onHidden" }, host: { listeners: { "keydown.arrowDown": "navigationClick($event)", "keydown.arrowUp": "navigationClick($event)" }, properties: { "class.dropup": "dropup", "class.open": "isOpen", "class.show": "isOpen" } }, providers: [BsDropdownState], exportAs: ["bs-dropdown"], ngImport: i0 });
296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BsDropdownDirective, decorators: [{
297
- type: Directive,
298
- args: [{
299
- selector: '[bsDropdown], [dropdown]',
300
- exportAs: 'bs-dropdown',
301
- providers: [BsDropdownState],
302
- // eslint-disable-next-line @angular-eslint/no-host-metadata-property
303
- host: {
304
- '[class.dropup]': 'dropup',
305
- '[class.open]': 'isOpen',
306
- '[class.show]': 'isOpen'
307
- }
308
- }]
309
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1.ComponentLoaderFactory }, { type: i2.BsDropdownState }, { type: i3.BsDropdownConfig }, { type: i4.AnimationBuilder }]; }, propDecorators: { placement: [{
310
- type: Input
311
- }], triggers: [{
312
- type: Input
313
- }], container: [{
314
- type: Input
315
- }], dropup: [{
316
- type: Input
317
- }], autoClose: [{
318
- type: Input
319
- }], isAnimated: [{
320
- type: Input
321
- }], insideClick: [{
322
- type: Input
323
- }], isDisabled: [{
324
- type: Input
325
- }], isOpen: [{
326
- type: Input
327
- }], isOpenChange: [{
328
- type: Output
329
- }], onShown: [{
330
- type: Output
331
- }], onHidden: [{
332
- type: Output
333
- }], navigationClick: [{
334
- type: HostListener,
335
- args: ['keydown.arrowDown', ['$event']]
336
- }, {
337
- type: HostListener,
338
- args: ['keydown.arrowUp', ['$event']]
339
- }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Ryb3Bkb3duL2JzLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFtQixzQkFBc0IsRUFBa0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFhMUQsTUFBTSxPQUFPLG1CQUFtQjtJQTJIOUIsWUFDVSxXQUF1QixFQUN2QixTQUFvQixFQUNwQixpQkFBbUMsRUFDbkMsSUFBNEIsRUFDNUIsTUFBdUIsRUFDdkIsT0FBeUIsRUFDakMsUUFBMEI7UUFObEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBbEhuQzs7V0FFRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7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RGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q29udGFpbmVyUmVmXG4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyLCBDb21wb25lbnRMb2FkZXJGYWN0b3J5LCBCc0NvbXBvbmVudFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvY29tcG9uZW50LWxvYWRlcic7XG5cbmltcG9ydCB7IEJzRHJvcGRvd25Db25maWcgfSBmcm9tICcuL2JzLWRyb3Bkb3duLmNvbmZpZyc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9icy1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJzRHJvcGRvd25TdGF0ZSB9IGZyb20gJy4vYnMtZHJvcGRvd24uc3RhdGUnO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1lbnVEaXJlY3RpdmUgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvbkZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IGRyb3Bkb3duQW5pbWF0aW9uIH0gZnJvbSAnLi9kcm9wZG93bi1hbmltYXRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2JzRHJvcGRvd25dLCBbZHJvcGRvd25dJyxcbiAgZXhwb3J0QXM6ICdicy1kcm9wZG93bicsXG4gIHByb3ZpZGVyczogW0JzRHJvcGRvd25TdGF0ZV0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kcm9wdXBdJzogJ2Ryb3B1cCcsXG4gICAgJ1tjbGFzcy5vcGVuXSc6ICdpc09wZW4nLFxuICAgICdbY2xhc3Muc2hvd10nOiAnaXNPcGVuJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEJzRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBQbGFjZW1lbnQgb2YgYSBwb3BvdmVyLiBBY2NlcHRzOiBcInRvcFwiLCBcImJvdHRvbVwiLCBcImxlZnRcIiwgXCJyaWdodFwiXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgZXZlbnRzIHRoYXQgc2hvdWxkIHRyaWdnZXIuIFN1cHBvcnRzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2ZcbiAgICogZXZlbnQgbmFtZXMuXG4gICAqL1xuICBASW5wdXQoKSB0cmlnZ2Vycz86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgc2VsZWN0b3Igc3BlY2lmeWluZyB0aGUgZWxlbWVudCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQgdG8uXG4gICAqL1xuICBASW5wdXQoKSBjb250YWluZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IHRoZSBkcm9wZG93biBzaG91bGQgYmUgb3BlbmVkIHVwd2FyZHNcbiAgICovXG4gIEBJbnB1dCgpIGRyb3B1cCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBkcm9wZG93biB3aWxsIGJlIGNsb3NlZCBvbiBpdGVtIG9yIGRvY3VtZW50IGNsaWNrLFxuICAgKiBhbmQgYWZ0ZXIgcHJlc3NpbmcgRVNDXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgYXV0b0Nsb3NlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc3RhdGUuYXV0b0Nsb3NlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgYXV0b0Nsb3NlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZS5hdXRvQ2xvc2U7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgZHJvcGRvd24gd2lsbCBiZSBhbmltYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGlzQW5pbWF0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGF0ZS5pc0FuaW1hdGVkID0gdmFsdWU7XG4gIH1cblxuICBnZXQgaXNBbmltYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuaXNBbmltYXRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgZHJvcGRvd24gc2hvdWxkbid0IGNsb3NlIG9uIGluc2lkZSBjbGljayB3aGVuIGF1dG9DbG9zZSBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGluc2lkZUNsaWNrKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc3RhdGUuaW5zaWRlQ2xpY2sgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBpbnNpZGVDbGljaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuaW5zaWRlQ2xpY2s7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgZHJvcGRvd24gdG9nZ2xlIGFuZCBoaWRlcyBkcm9wZG93biBtZW51IGlmIG9wZW5lZFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0Rpc2FibGVkID0gdmFsdWU7XG4gICAgdGhpcy5fc3RhdGUuaXNEaXNhYmxlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHBvcG92ZXIgaXMgY3VycmVudGx5IGJlaW5nIHNob3duXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9zaG93SW5saW5lKSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNJbmxpbmVPcGVuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9kcm9wZG93bi5pc1Nob3duO1xuICB9XG5cbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIGlzT3BlbiBjaGFuZ2VcbiAgICovXG4gIEBPdXRwdXQoKSBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgcG9wb3ZlciBpcyBzaG93blxuICAgKi9cbiAgQE91dHB1dCgpIG9uU2hvd246IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgcG9wb3ZlciBpcyBoaWRkZW5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgX2Ryb3Bkb3duOiBDb21wb25lbnRMb2FkZXI8QnNEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBnZXQgX3Nob3dJbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIHRvZG86IG1vdmUgdG8gY29tcG9uZW50IGxvYWRlclxuICBwcml2YXRlIF9pc0lubGluZU9wZW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9pbmxpbmVkTWVudT86IEVtYmVkZGVkVmlld1JlZjxCc0Ryb3Bkb3duTWVudURpcmVjdGl2ZT47XG4gIHByaXZhdGUgX2lzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaXNJbml0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmFjdG9yeURyb3BEb3duQW5pbWF0aW9uOiBBbmltYXRpb25GYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgX2NpczogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcbiAgICBwcml2YXRlIF9zdGF0ZTogQnNEcm9wZG93blN0YXRlLFxuICAgIHByaXZhdGUgX2NvbmZpZzogQnNEcm9wZG93bkNvbmZpZyxcbiAgICBfYnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlclxuICApIHtcbiAgICAvLyBzZXQgaW5pdGlhbCBkcm9wZG93biBzdGF0ZSBmcm9tIGNvbmZpZ1xuICAgIHRoaXMuX3N0YXRlLmF1dG9DbG9zZSA9IHRoaXMuX2NvbmZpZy5hdXRvQ2xvc2U7XG4gICAgdGhpcy5fc3RhdGUuaW5zaWRlQ2xpY2sgPSB0aGlzLl9jb25maWcuaW5zaWRlQ2xpY2s7XG4gICAgdGhpcy5fc3RhdGUuaXNBbmltYXRlZCA9IHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkO1xuICAgIHRoaXMuX3N0YXRlLnN0b3BPbkNsaWNrUHJvcGFnYXRpb24gPSB0aGlzLl9jb25maWcuc3RvcE9uQ2xpY2tQcm9wYWdhdGlvbjtcblxuICAgIHRoaXMuX2ZhY3RvcnlEcm9wRG93bkFuaW1hdGlvbiA9IF9idWlsZGVyLmJ1aWxkKGRyb3Bkb3duQW5pbWF0aW9uKTtcblxuICAgIC8vIGNyZWF0ZSBkcm9wZG93biBjb21wb25lbnQgbG9hZGVyXG4gICAgdGhpcy5fZHJvcGRvd24gPSB0aGlzLl9jaXNcbiAgICAgIC5jcmVhdGVMb2FkZXI8QnNEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudD4oXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYsXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyXG4gICAgICApXG4gICAgICAucHJvdmlkZSh7cHJvdmlkZTogQnNEcm9wZG93blN0YXRlLCB1c2VWYWx1ZTogdGhpcy5fc3RhdGV9KTtcblxuICAgIHRoaXMub25TaG93biA9IHRoaXMuX2Ryb3Bkb3duLm9uU2hvd247XG4gICAgdGhpcy5vbkhpZGRlbiA9IHRoaXMuX2Ryb3Bkb3duLm9uSGlkZGVuO1xuICAgIHRoaXMuaXNPcGVuQ2hhbmdlID0gdGhpcy5fc3RhdGUuaXNPcGVuQ2hhbmdlO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBmaXg6IHNlZW1zIHRoZXJlIGFyZSBhbiBpc3N1ZSB3aXRoIGByb3V0ZXJMaW5rQWN0aXZlYFxuICAgIC8vIHdoaWNoIHJlc3VsdCBpbiBkdXBsaWNhdGVkIGNhbGwgbmdPbkluaXQgd2l0aG91dCBjYWxsIHRvIG5nT25EZXN0cm95XG4gICAgLy8gcmVhZCBtb3JlOiBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmd4LWJvb3RzdHJhcC9pc3N1ZXMvMTg4NVxuICAgIGlmICh0aGlzLl9pc0luaXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pc0luaXRlZCA9IHRydWU7XG5cbiAgICAvLyBhdHRhY2ggRE9NIGxpc3RlbmVyc1xuICAgIHRoaXMuX2Ryb3Bkb3duLmxpc3Rlbih7XG4gICAgICAvLyBiZWNhdXNlIG9mIGRyb3Bkb3duIGlubGluZSBtb2RlXG4gICAgICBvdXRzaWRlQ2xpY2s6IGZhbHNlLFxuICAgICAgdHJpZ2dlcnM6IHRoaXMudHJpZ2dlcnMsXG4gICAgICBzaG93OiAoKSA9PiB0aGlzLnNob3coKVxuICAgIH0pO1xuXG4gICAgLy8gdG9nZ2xlIHZpc2liaWxpdHkgb24gdG9nZ2xlIGVsZW1lbnQgY2xpY2tcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLl9zdGF0ZS50b2dnbGVDbGljay5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB0aGlzLnRvZ2dsZSh2YWx1ZSkpXG4gICAgKTtcblxuICAgIC8vIGhpZGUgZHJvcGRvd24gaWYgc2V0IGRpc2FibGVkIHdoaWxlIG9wZW5lZFxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuX3N0YXRlLmlzRGlzYWJsZWRDaGFuZ2VcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoLyp2YWx1ZTogYm9vbGVhbiovKSA9PiB0aGlzLmhpZGUoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGFuIGVsZW1lbnTigJlzIHBvcG92ZXIuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mXG4gICAqIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4gfHwgdGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Nob3dJbmxpbmUpIHtcbiAgICAgIGlmICghdGhpcy5faW5saW5lZE1lbnUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUuZHJvcGRvd25NZW51LnRoZW4oXG4gICAgICAgICAgKGRyb3Bkb3duTWVudTogQnNDb21wb25lbnRSZWY8QnNEcm9wZG93bk1lbnVEaXJlY3RpdmU+KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kcm9wZG93bi5hdHRhY2hJbmxpbmUoXG4gICAgICAgICAgICAgIGRyb3Bkb3duTWVudS52aWV3Q29udGFpbmVyLFxuICAgICAgICAgICAgICBkcm9wZG93bk1lbnUudGVtcGxhdGVSZWZcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVkTWVudSA9IHRoaXMuX2Ryb3Bkb3duLl9pbmxpbmVWaWV3UmVmO1xuXG4gICAgICAgICAgICB0aGlzLmFkZEJzNFBvbHlmaWxscygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lubGluZWRNZW51KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXS5wYXJlbnROb2RlLCAnb3BlbicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnBsYXlBbmltYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICAgLy8gc3dhbGxvdyBlcnJvcnNcbiAgICAgICAgICAuY2F0Y2goKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWRkQnM0UG9seWZpbGxzKCk7XG5cbiAgICAgIHRoaXMuX2lzSW5saW5lT3BlbiA9IHRydWU7XG4gICAgICB0aGlzLm9uU2hvd24uZW1pdCh0cnVlKTtcbiAgICAgIHRoaXMuX3N0YXRlLmlzT3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuXG4gICAgICB0aGlzLnBsYXlBbmltYXRpb24oKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZS5kcm9wZG93bk1lbnUudGhlbihkcm9wZG93bk1lbnUgPT4ge1xuICAgICAgLy8gY2hlY2sgZGlyZWN0aW9uIGluIHdoaWNoIGRyb3Bkb3duIHNob3VsZCBiZSBvcGVuZWRcbiAgICAgIGNvbnN0IF9kcm9wdXAgPVxuICAgICAgICB0aGlzLmRyb3B1cCB8fFxuICAgICAgICAodHlwZW9mIHRoaXMuZHJvcHVwICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmRyb3B1cCk7XG4gICAgICB0aGlzLl9zdGF0ZS5kaXJlY3Rpb24gPSBfZHJvcHVwID8gJ3VwJyA6ICdkb3duJztcbiAgICAgIGNvbnN0IF9wbGFjZW1lbnQgPSB0aGlzLnBsYWNlbWVudCB8fCAoX2Ryb3B1cCA/ICd0b3Agc3RhcnQnIDogJ2JvdHRvbSBzdGFydCcpO1xuXG4gICAgICAvLyBzaG93IGRyb3Bkb3duXG4gICAgICB0aGlzLl9kcm9wZG93blxuICAgICAgICAuYXR0YWNoKEJzRHJvcGRvd25Db250YWluZXJDb21wb25lbnQpXG4gICAgICAgIC50byh0aGlzLmNvbnRhaW5lcilcbiAgICAgICAgLnBvc2l0aW9uKHthdHRhY2htZW50OiBfcGxhY2VtZW50fSlcbiAgICAgICAgLnNob3coe1xuICAgICAgICAgIGNvbnRlbnQ6IGRyb3Bkb3duTWVudS50ZW1wbGF0ZVJlZixcbiAgICAgICAgICBwbGFjZW1lbnQ6IF9wbGFjZW1lbnRcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3N0YXRlLmlzT3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIH0pXG4gICAgLy8gc3dhbGxvdyBlcnJvclxuICAgICAgLmNhdGNoKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGFuIGVsZW1lbnTigJlzIHBvcG92ZXIuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mXG4gICAqIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Nob3dJbmxpbmUpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2hvd0NsYXNzKCk7XG4gICAgICB0aGlzLnJlbW92ZURyb3B1cFN0eWxlcygpO1xuICAgICAgdGhpcy5faXNJbmxpbmVPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLm9uSGlkZGVuLmVtaXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Ryb3Bkb3duLmhpZGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZS5pc09wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyBhbiBlbGVtZW504oCZcyBwb3BvdmVyLiBUaGlzIGlzIGNvbnNpZGVyZWQgYSDigJxtYW51YWzigJ0gdHJpZ2dlcmluZyBvZlxuICAgKiB0aGUgcG9wb3Zlci4gV2l0aCBwYXJhbWV0ZXIgPGNvZGU+dHJ1ZTwvY29kZT4gYWxsb3dzIHRvZ2dsaW5nLCB3aXRoIHBhcmFtZXRlciA8Y29kZT5mYWxzZTwvY29kZT5cbiAgICogb25seSBoaWRlcyBvcGVuZWQgZHJvcGRvd24uIFBhcmFtZXRlciB1c2FnZSB3aWxsIGJlIHJlbW92ZWQgaW4gbmd4LWJvb3RzdHJhcCB2M1xuICAgKi9cbiAgdG9nZ2xlKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3BlbiB8fCAhdmFsdWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zaG93KCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9jb250YWlucyhldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIC8vIHRvZG86IHZhbG9ya2luIGZpeCB0eXBpbmdzXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpIHx8XG4gICAgICAodGhpcy5fZHJvcGRvd24uaW5zdGFuY2UgJiYgdGhpcy5fZHJvcGRvd24uaW5zdGFuY2UuX2NvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50KSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93RG93bicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcCcsIFsnJGV2ZW50J10pXG4gIG5hdmlnYXRpb25DbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgcmVmID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bi1tZW51Jyk7XG5cbiAgICBpZiAoIXJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0QWN0aXZlID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICBjb25zdCBhbGxSZWYgPSByZWYucXVlcnlTZWxlY3RvckFsbCgnLmRyb3Bkb3duLWl0ZW0nKTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgIGNhc2UgMzg6XG4gICAgICAgIGlmICh0aGlzLl9zdGF0ZS5jb3VudHMgPiAwKSB7XG4gICAgICAgICAgYWxsUmVmWy0tdGhpcy5fc3RhdGUuY291bnRzXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA0MDpcbiAgICAgICAgaWYgKHRoaXMuX3N0YXRlLmNvdW50cyArIDEgPCBhbGxSZWYubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKGZpcnN0QWN0aXZlLmNsYXNzTGlzdCAhPT0gYWxsUmVmW3RoaXMuX3N0YXRlLmNvdW50c10uY2xhc3NMaXN0KSB7XG4gICAgICAgICAgICBhbGxSZWZbdGhpcy5fc3RhdGUuY291bnRzXS5mb2N1cygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGxSZWZbKyt0aGlzLl9zdGF0ZS5jb3VudHNdLmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIGNsZWFuIHVwIHN1YnNjcmlwdGlvbnMgYW5kIGRlc3Ryb3kgZHJvcGRvd25cbiAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5fZHJvcGRvd24uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRCczRQb2x5ZmlsbHMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRTaG93Q2xhc3MoKTtcbiAgICB0aGlzLmNoZWNrUmlnaHRBbGlnbm1lbnQoKTtcbiAgICB0aGlzLmFkZERyb3B1cFN0eWxlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwbGF5QW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZS5pc0FuaW1hdGVkICYmIHRoaXMuX2lubGluZWRNZW51KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWRNZW51KSB7XG4gICAgICAgICAgdGhpcy5fZmFjdG9yeURyb3BEb3duQW5pbWF0aW9uLmNyZWF0ZSh0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0pLnBsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTaG93Q2xhc3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lubGluZWRNZW51ICYmIHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5faW5saW5lZE1lbnUucm9vdE5vZGVzWzBdLCAnc2hvdycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2hvd0NsYXNzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmxpbmVkTWVudSAmJiB0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0pIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSwgJ3Nob3cnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUmlnaHRBbGlnbm1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lubGluZWRNZW51ICYmIHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSkge1xuICAgICAgY29uc3QgaXNSaWdodEFsaWduZWQgPSB0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0uY2xhc3NMaXN0LmNvbnRhaW5zKFxuICAgICAgICAnZHJvcGRvd24tbWVudS1yaWdodCdcbiAgICAgICkgfHwgdGhpcy5faW5saW5lZE1lbnUucm9vdE5vZGVzWzBdLmNsYXNzTGlzdC5jb250YWlucyhcbiAgICAgICAgJ2Ryb3Bkb3duLW1lbnUtZW5kJ1xuICAgICAgKTtcblxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSxcbiAgICAgICAgJ2xlZnQnLFxuICAgICAgICBpc1JpZ2h0QWxpZ25lZCA/ICdhdXRvJyA6ICcwJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0sXG4gICAgICAgICdyaWdodCcsXG4gICAgICAgIGlzUmlnaHRBbGlnbmVkID8gJzAnIDogJ2F1dG8nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkRHJvcHVwU3R5bGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmxpbmVkTWVudSAmJiB0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0pIHtcbiAgICAgIC8vIGEgbGl0dGxlIGhhY2sgdG8gbm90IGJyZWFrIHN1cHBvcnQgb2YgYm9vdHN0cmFwIDQgYmV0YVxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSxcbiAgICAgICAgJ3RvcCcsXG4gICAgICAgIHRoaXMuZHJvcHVwID8gJ2F1dG8nIDogJzEwMCUnXG4gICAgICApO1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSxcbiAgICAgICAgJ3RyYW5zZm9ybScsXG4gICAgICAgIHRoaXMuZHJvcHVwID8gJ3RyYW5zbGF0ZVkoLTEwMSUpJyA6ICd0cmFuc2xhdGVZKDApJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0sXG4gICAgICAgICdib3R0b20nLFxuICAgICAgICAnYXV0bydcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEcm9wdXBTdHlsZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lubGluZWRNZW51ICYmIHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5faW5saW5lZE1lbnUucm9vdE5vZGVzWzBdLCAndG9wJyk7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLl9pbmxpbmVkTWVudS5yb290Tm9kZXNbMF0sICd0cmFuc2Zvcm0nKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuX2lubGluZWRNZW51LnJvb3ROb2Rlc1swXSwgJ2JvdHRvbScpO1xuICAgIH1cbiAgfVxufVxuIl19