ngx-bootstrap 3.0.1 → 3.1.4

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 (1869) hide show
  1. package/CHANGELOG.md +298 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +24 -8
  4. package/accordion/accordion-group.component.d.ts +3 -3
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +264 -0
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -0
  7. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +2 -0
  8. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -0
  9. package/accordion/esm2015/accordion-group.component.js +140 -0
  10. package/accordion/esm2015/accordion.component.js +88 -0
  11. package/accordion/esm2015/accordion.config.js +35 -0
  12. package/accordion/esm2015/accordion.module.js +36 -0
  13. package/accordion/esm2015/ngx-bootstrap-accordion.js +10 -0
  14. package/accordion/esm2015/public_api.js +10 -0
  15. package/accordion/esm5/accordion-group.component.js +157 -0
  16. package/accordion/esm5/accordion.component.js +99 -0
  17. package/accordion/esm5/accordion.config.js +37 -0
  18. package/accordion/esm5/accordion.module.js +43 -0
  19. package/accordion/esm5/ngx-bootstrap-accordion.js +10 -0
  20. package/accordion/esm5/public_api.js +10 -0
  21. package/accordion/fesm2015/ngx-bootstrap-accordion.js +222 -0
  22. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -0
  23. package/accordion/fesm5/ngx-bootstrap-accordion.js +255 -0
  24. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -0
  25. package/accordion/ngx-bootstrap-accordion.d.ts +4 -0
  26. package/accordion/ngx-bootstrap-accordion.metadata.json +1 -0
  27. package/accordion/package.json +19 -0
  28. package/accordion/{index.d.ts → public_api.d.ts} +0 -0
  29. package/alert/bundles/ngx-bootstrap-alert.umd.js +209 -0
  30. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -0
  31. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +2 -0
  32. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -0
  33. package/alert/esm2015/alert.component.js +145 -0
  34. package/alert/esm2015/alert.config.js +50 -0
  35. package/alert/esm2015/alert.module.js +35 -0
  36. package/alert/esm2015/ngx-bootstrap-alert.js +10 -0
  37. package/alert/esm2015/public_api.js +9 -0
  38. package/alert/esm5/alert.component.js +157 -0
  39. package/alert/esm5/alert.config.js +52 -0
  40. package/alert/esm5/alert.module.js +42 -0
  41. package/alert/esm5/ngx-bootstrap-alert.js +10 -0
  42. package/alert/esm5/public_api.js +9 -0
  43. package/alert/fesm2015/ngx-bootstrap-alert.js +153 -0
  44. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -0
  45. package/alert/fesm5/ngx-bootstrap-alert.js +171 -0
  46. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -0
  47. package/alert/ngx-bootstrap-alert.d.ts +4 -0
  48. package/alert/ngx-bootstrap-alert.metadata.json +1 -0
  49. package/alert/package.json +19 -0
  50. package/alert/{index.d.ts → public_api.d.ts} +0 -0
  51. package/bundles/ngx-bootstrap.es2015.js +20178 -12836
  52. package/bundles/ngx-bootstrap.es2015.js.map +1 -1
  53. package/bundles/ngx-bootstrap.umd.js +179 -21213
  54. package/bundles/ngx-bootstrap.umd.js.map +1 -1
  55. package/bundles/ngx-bootstrap.umd.min.js +1 -64
  56. package/bundles/ngx-bootstrap.umd.min.js.map +1 -1
  57. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +479 -0
  58. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -0
  59. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +2 -0
  60. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -0
  61. package/buttons/button-checkbox.directive.d.ts +10 -10
  62. package/buttons/button-radio-group.directive.d.ts +9 -10
  63. package/buttons/button-radio.directive.d.ts +12 -12
  64. package/buttons/esm2015/button-checkbox.directive.js +146 -0
  65. package/buttons/esm2015/button-radio-group.directive.js +90 -0
  66. package/buttons/esm2015/button-radio.directive.js +200 -0
  67. package/buttons/esm2015/buttons.module.js +33 -0
  68. package/buttons/esm2015/ngx-bootstrap-buttons.js +13 -0
  69. package/buttons/esm2015/public_api.js +10 -0
  70. package/buttons/esm5/button-checkbox.directive.js +184 -0
  71. package/buttons/esm5/button-radio-group.directive.js +105 -0
  72. package/buttons/esm5/button-radio.directive.js +239 -0
  73. package/buttons/esm5/buttons.module.js +40 -0
  74. package/buttons/esm5/ngx-bootstrap-buttons.js +13 -0
  75. package/buttons/esm5/public_api.js +10 -0
  76. package/buttons/fesm2015/ngx-bootstrap-buttons.js +376 -0
  77. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -0
  78. package/buttons/fesm5/ngx-bootstrap-buttons.js +471 -0
  79. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -0
  80. package/buttons/ngx-bootstrap-buttons.d.ts +7 -0
  81. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -0
  82. package/buttons/package.json +19 -0
  83. package/buttons/{index.d.ts → public_api.d.ts} +0 -0
  84. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +567 -0
  85. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -0
  86. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +2 -0
  87. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -0
  88. package/carousel/carousel.component.d.ts +3 -7
  89. package/carousel/esm2015/carousel.component.js +372 -0
  90. package/carousel/esm2015/carousel.config.js +59 -0
  91. package/carousel/esm2015/carousel.module.js +36 -0
  92. package/carousel/esm2015/ngx-bootstrap-carousel.js +10 -0
  93. package/carousel/esm2015/public_api.js +10 -0
  94. package/carousel/esm2015/slide.component.js +81 -0
  95. package/carousel/esm5/carousel.component.js +495 -0
  96. package/carousel/esm5/carousel.config.js +61 -0
  97. package/carousel/esm5/carousel.module.js +43 -0
  98. package/carousel/esm5/ngx-bootstrap-carousel.js +10 -0
  99. package/carousel/esm5/public_api.js +10 -0
  100. package/carousel/esm5/slide.component.js +86 -0
  101. package/carousel/fesm2015/ngx-bootstrap-carousel.js +423 -0
  102. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -0
  103. package/carousel/fesm5/ngx-bootstrap-carousel.js +556 -0
  104. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -0
  105. package/carousel/ngx-bootstrap-carousel.d.ts +4 -0
  106. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -0
  107. package/carousel/package.json +19 -0
  108. package/carousel/{index.d.ts → public_api.d.ts} +0 -0
  109. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +8428 -0
  110. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -0
  111. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +2 -0
  112. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -0
  113. package/chronos/esm2015/create/check-overflow.js +39 -0
  114. package/chronos/esm2015/create/clone.js +13 -0
  115. package/chronos/esm2015/create/date-from-array.js +38 -0
  116. package/chronos/esm2015/create/from-anything.js +131 -0
  117. package/chronos/esm2015/create/from-array.js +149 -0
  118. package/chronos/esm2015/create/from-object.js +25 -0
  119. package/chronos/esm2015/create/from-string-and-array.js +46 -0
  120. package/chronos/esm2015/create/from-string-and-format.js +120 -0
  121. package/chronos/esm2015/create/from-string.js +268 -0
  122. package/chronos/esm2015/create/local.js +23 -0
  123. package/chronos/esm2015/create/parsing-flags.js +38 -0
  124. package/chronos/esm2015/create/parsing.types.js +146 -0
  125. package/chronos/esm2015/create/valid.js +60 -0
  126. package/chronos/esm2015/duration/bubble.js +64 -0
  127. package/chronos/esm2015/duration/constructor.js +182 -0
  128. package/chronos/esm2015/duration/create.js +141 -0
  129. package/chronos/esm2015/duration/humanize.js +109 -0
  130. package/chronos/esm2015/duration/valid.js +54 -0
  131. package/chronos/esm2015/format/format.js +67 -0
  132. package/chronos/esm2015/format.js +71 -0
  133. package/chronos/esm2015/i18n/ar.js +155 -0
  134. package/chronos/esm2015/i18n/bg.js +101 -0
  135. package/chronos/esm2015/i18n/cs.js +215 -0
  136. package/chronos/esm2015/i18n/da.js +56 -0
  137. package/chronos/esm2015/i18n/de.js +80 -0
  138. package/chronos/esm2015/i18n/en-gb.js +72 -0
  139. package/chronos/esm2015/i18n/es-do.js +118 -0
  140. package/chronos/esm2015/i18n/es-us.js +111 -0
  141. package/chronos/esm2015/i18n/es.js +117 -0
  142. package/chronos/esm2015/i18n/fi.js +119 -0
  143. package/chronos/esm2015/i18n/fr.js +87 -0
  144. package/chronos/esm2015/i18n/gl.js +117 -0
  145. package/chronos/esm2015/i18n/he.js +129 -0
  146. package/chronos/esm2015/i18n/hi.js +150 -0
  147. package/chronos/esm2015/i18n/hu.js +140 -0
  148. package/chronos/esm2015/i18n/id.js +100 -0
  149. package/chronos/esm2015/i18n/it.js +79 -0
  150. package/chronos/esm2015/i18n/ja.js +95 -0
  151. package/chronos/esm2015/i18n/ko.js +82 -0
  152. package/chronos/esm2015/i18n/lt.js +155 -0
  153. package/chronos/esm2015/i18n/mn.js +108 -0
  154. package/chronos/esm2015/i18n/nb.js +59 -0
  155. package/chronos/esm2015/i18n/nl-be.js +97 -0
  156. package/chronos/esm2015/i18n/nl.js +97 -0
  157. package/chronos/esm2015/i18n/pl.js +156 -0
  158. package/chronos/esm2015/i18n/pt-br.js +65 -0
  159. package/chronos/esm2015/i18n/ro.js +73 -0
  160. package/chronos/esm2015/i18n/ru.js +218 -0
  161. package/chronos/esm2015/i18n/sk.js +193 -0
  162. package/chronos/esm2015/i18n/sl.js +202 -0
  163. package/chronos/esm2015/i18n/sv.js +74 -0
  164. package/chronos/esm2015/i18n/th.js +75 -0
  165. package/chronos/esm2015/i18n/tr.js +95 -0
  166. package/chronos/esm2015/i18n/zh-cn.js +136 -0
  167. package/chronos/esm2015/index.js +7 -0
  168. package/chronos/esm2015/locale/calendar.js +14 -0
  169. package/chronos/esm2015/locale/locale.class.js +841 -0
  170. package/chronos/esm2015/locale/locale.defaults.js +46 -0
  171. package/chronos/esm2015/locale/locales.js +272 -0
  172. package/chronos/esm2015/moment/add-subtract.js +61 -0
  173. package/chronos/esm2015/moment/calendar.js +81 -0
  174. package/chronos/esm2015/moment/diff.js +88 -0
  175. package/chronos/esm2015/moment/min-max.js +50 -0
  176. package/chronos/esm2015/ngx-bootstrap-chronos.js +11 -0
  177. package/chronos/esm2015/parse/regex.js +72 -0
  178. package/chronos/esm2015/parse/token.js +52 -0
  179. package/chronos/esm2015/public_api.js +50 -0
  180. package/chronos/esm2015/test/chain.js +1212 -0
  181. package/chronos/esm2015/types.js +76 -0
  182. package/chronos/esm2015/units/aliases.js +53 -0
  183. package/chronos/esm2015/units/constants.js +16 -0
  184. package/chronos/esm2015/units/day-of-month.js +39 -0
  185. package/chronos/esm2015/units/day-of-week.js +183 -0
  186. package/chronos/esm2015/units/day-of-year.js +55 -0
  187. package/chronos/esm2015/units/hour.js +153 -0
  188. package/chronos/esm2015/units/index.js +24 -0
  189. package/chronos/esm2015/units/millisecond.js +74 -0
  190. package/chronos/esm2015/units/minute.js +31 -0
  191. package/chronos/esm2015/units/month.js +75 -0
  192. package/chronos/esm2015/units/offset.js +227 -0
  193. package/chronos/esm2015/units/priorities.js +31 -0
  194. package/chronos/esm2015/units/quarter.js +57 -0
  195. package/chronos/esm2015/units/second.js +31 -0
  196. package/chronos/esm2015/units/timestamp.js +36 -0
  197. package/chronos/esm2015/units/timezone.js +33 -0
  198. package/chronos/esm2015/units/week-calendar-utils.js +94 -0
  199. package/chronos/esm2015/units/week-year.js +175 -0
  200. package/chronos/esm2015/units/week.js +83 -0
  201. package/chronos/esm2015/units/year.js +81 -0
  202. package/chronos/esm2015/utils/abs-ceil.js +13 -0
  203. package/chronos/esm2015/utils/abs-round.js +13 -0
  204. package/chronos/esm2015/utils/compare-arrays.js +27 -0
  205. package/chronos/esm2015/utils/date-compare.js +108 -0
  206. package/chronos/esm2015/utils/date-getters.js +157 -0
  207. package/chronos/esm2015/utils/date-setters.js +147 -0
  208. package/chronos/esm2015/utils/defaults.js +22 -0
  209. package/chronos/esm2015/utils/start-end-of.js +74 -0
  210. package/chronos/esm2015/utils/type-checks.js +114 -0
  211. package/chronos/esm2015/utils/zero-fill.js +21 -0
  212. package/chronos/esm2015/utils.js +21 -0
  213. package/chronos/esm5/create/check-overflow.js +39 -0
  214. package/chronos/esm5/create/clone.js +13 -0
  215. package/chronos/esm5/create/date-from-array.js +44 -0
  216. package/chronos/esm5/create/from-anything.js +131 -0
  217. package/chronos/esm5/create/from-array.js +149 -0
  218. package/chronos/esm5/create/from-object.js +25 -0
  219. package/chronos/esm5/create/from-string-and-array.js +46 -0
  220. package/chronos/esm5/create/from-string-and-format.js +120 -0
  221. package/chronos/esm5/create/from-string.js +268 -0
  222. package/chronos/esm5/create/local.js +23 -0
  223. package/chronos/esm5/create/parsing-flags.js +38 -0
  224. package/chronos/esm5/create/parsing.types.js +146 -0
  225. package/chronos/esm5/create/valid.js +60 -0
  226. package/chronos/esm5/duration/bubble.js +64 -0
  227. package/chronos/esm5/duration/constructor.js +205 -0
  228. package/chronos/esm5/duration/create.js +143 -0
  229. package/chronos/esm5/duration/humanize.js +109 -0
  230. package/chronos/esm5/duration/valid.js +54 -0
  231. package/chronos/esm5/format/format.js +68 -0
  232. package/chronos/esm5/format.js +73 -0
  233. package/chronos/esm5/i18n/ar.js +155 -0
  234. package/chronos/esm5/i18n/bg.js +101 -0
  235. package/chronos/esm5/i18n/cs.js +215 -0
  236. package/chronos/esm5/i18n/da.js +56 -0
  237. package/chronos/esm5/i18n/de.js +80 -0
  238. package/chronos/esm5/i18n/en-gb.js +72 -0
  239. package/chronos/esm5/i18n/es-do.js +118 -0
  240. package/chronos/esm5/i18n/es-us.js +111 -0
  241. package/chronos/esm5/i18n/es.js +117 -0
  242. package/chronos/esm5/i18n/fi.js +119 -0
  243. package/chronos/esm5/i18n/fr.js +87 -0
  244. package/chronos/esm5/i18n/gl.js +117 -0
  245. package/chronos/esm5/i18n/he.js +129 -0
  246. package/chronos/esm5/i18n/hi.js +150 -0
  247. package/chronos/esm5/i18n/hu.js +140 -0
  248. package/chronos/esm5/i18n/id.js +100 -0
  249. package/chronos/esm5/i18n/it.js +79 -0
  250. package/chronos/esm5/i18n/ja.js +95 -0
  251. package/chronos/esm5/i18n/ko.js +82 -0
  252. package/chronos/esm5/i18n/lt.js +155 -0
  253. package/chronos/esm5/i18n/mn.js +108 -0
  254. package/chronos/esm5/i18n/nb.js +59 -0
  255. package/chronos/esm5/i18n/nl-be.js +97 -0
  256. package/chronos/esm5/i18n/nl.js +97 -0
  257. package/chronos/esm5/i18n/pl.js +156 -0
  258. package/chronos/esm5/i18n/pt-br.js +65 -0
  259. package/chronos/esm5/i18n/ro.js +73 -0
  260. package/chronos/esm5/i18n/ru.js +218 -0
  261. package/chronos/esm5/i18n/sk.js +193 -0
  262. package/chronos/esm5/i18n/sl.js +202 -0
  263. package/chronos/esm5/i18n/sv.js +74 -0
  264. package/chronos/esm5/i18n/th.js +75 -0
  265. package/chronos/esm5/i18n/tr.js +95 -0
  266. package/chronos/esm5/i18n/zh-cn.js +136 -0
  267. package/chronos/esm5/index.js +7 -0
  268. package/chronos/esm5/locale/calendar.js +14 -0
  269. package/chronos/esm5/locale/locale.class.js +996 -0
  270. package/chronos/esm5/locale/locale.defaults.js +46 -0
  271. package/chronos/esm5/locale/locales.js +272 -0
  272. package/chronos/esm5/moment/add-subtract.js +61 -0
  273. package/chronos/esm5/moment/calendar.js +83 -0
  274. package/chronos/esm5/moment/diff.js +89 -0
  275. package/chronos/esm5/moment/min-max.js +58 -0
  276. package/chronos/esm5/ngx-bootstrap-chronos.js +11 -0
  277. package/chronos/esm5/parse/regex.js +72 -0
  278. package/chronos/esm5/parse/token.js +52 -0
  279. package/chronos/esm5/public_api.js +50 -0
  280. package/chronos/esm5/test/chain.js +1506 -0
  281. package/chronos/esm5/types.js +76 -0
  282. package/chronos/esm5/units/aliases.js +53 -0
  283. package/chronos/esm5/units/constants.js +16 -0
  284. package/chronos/esm5/units/day-of-month.js +39 -0
  285. package/chronos/esm5/units/day-of-week.js +188 -0
  286. package/chronos/esm5/units/day-of-year.js +55 -0
  287. package/chronos/esm5/units/hour.js +153 -0
  288. package/chronos/esm5/units/index.js +24 -0
  289. package/chronos/esm5/units/millisecond.js +74 -0
  290. package/chronos/esm5/units/minute.js +31 -0
  291. package/chronos/esm5/units/month.js +75 -0
  292. package/chronos/esm5/units/offset.js +231 -0
  293. package/chronos/esm5/units/priorities.js +31 -0
  294. package/chronos/esm5/units/quarter.js +58 -0
  295. package/chronos/esm5/units/second.js +31 -0
  296. package/chronos/esm5/units/timestamp.js +36 -0
  297. package/chronos/esm5/units/timezone.js +33 -0
  298. package/chronos/esm5/units/week-calendar-utils.js +94 -0
  299. package/chronos/esm5/units/week-year.js +178 -0
  300. package/chronos/esm5/units/week.js +85 -0
  301. package/chronos/esm5/units/year.js +81 -0
  302. package/chronos/esm5/utils/abs-ceil.js +13 -0
  303. package/chronos/esm5/utils/abs-round.js +13 -0
  304. package/chronos/esm5/utils/compare-arrays.js +27 -0
  305. package/chronos/esm5/utils/date-compare.js +112 -0
  306. package/chronos/esm5/utils/date-getters.js +165 -0
  307. package/chronos/esm5/utils/date-setters.js +147 -0
  308. package/chronos/esm5/utils/defaults.js +22 -0
  309. package/chronos/esm5/utils/start-end-of.js +74 -0
  310. package/chronos/esm5/utils/type-checks.js +114 -0
  311. package/chronos/esm5/utils/zero-fill.js +21 -0
  312. package/chronos/esm5/utils.js +21 -0
  313. package/chronos/fesm2015/ngx-bootstrap-chronos.js +8176 -0
  314. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -0
  315. package/chronos/fesm5/ngx-bootstrap-chronos.js +8383 -0
  316. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -0
  317. package/chronos/i18n/bg.d.ts +2 -0
  318. package/chronos/i18n/lt.d.ts +2 -0
  319. package/chronos/i18n/nb.d.ts +2 -0
  320. package/chronos/i18n/sk.d.ts +2 -0
  321. package/chronos/index.d.ts +1 -7
  322. package/chronos/ngx-bootstrap-chronos.d.ts +5 -0
  323. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -0
  324. package/chronos/package.json +19 -0
  325. package/chronos/public_api.d.ts +46 -0
  326. package/chronos/units/day-of-month.d.ts +1 -1
  327. package/chronos/units/day-of-week.d.ts +1 -0
  328. package/chronos/units/day-of-year.d.ts +1 -0
  329. package/chronos/units/hour.d.ts +1 -1
  330. package/chronos/units/millisecond.d.ts +1 -1
  331. package/chronos/units/minute.d.ts +1 -1
  332. package/chronos/units/month.d.ts +1 -0
  333. package/chronos/units/offset.d.ts +1 -0
  334. package/chronos/units/quarter.d.ts +1 -0
  335. package/chronos/units/second.d.ts +1 -1
  336. package/chronos/units/timestamp.d.ts +1 -1
  337. package/chronos/units/timezone.d.ts +1 -0
  338. package/chronos/units/week-year.d.ts +1 -0
  339. package/chronos/units/week.d.ts +1 -0
  340. package/chronos/units/year.d.ts +1 -0
  341. package/chronos/utils/date-compare.d.ts +2 -0
  342. package/chronos/utils/type-checks.d.ts +1 -1
  343. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +178 -0
  344. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -0
  345. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +2 -0
  346. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -0
  347. package/collapse/esm2015/collapse.directive.js +150 -0
  348. package/collapse/esm2015/collapse.module.js +31 -0
  349. package/collapse/esm2015/ngx-bootstrap-collapse.js +10 -0
  350. package/collapse/esm2015/public_api.js +8 -0
  351. package/collapse/esm5/collapse.directive.js +167 -0
  352. package/collapse/esm5/collapse.module.js +38 -0
  353. package/collapse/esm5/ngx-bootstrap-collapse.js +10 -0
  354. package/collapse/esm5/public_api.js +8 -0
  355. package/collapse/fesm2015/ngx-bootstrap-collapse.js +147 -0
  356. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -0
  357. package/collapse/fesm5/ngx-bootstrap-collapse.js +169 -0
  358. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -0
  359. package/collapse/ngx-bootstrap-collapse.d.ts +4 -0
  360. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -0
  361. package/collapse/package.json +19 -0
  362. package/collapse/{index.d.ts → public_api.d.ts} +0 -0
  363. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +508 -0
  364. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -0
  365. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +2 -0
  366. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -0
  367. package/component-loader/component-loader.class.d.ts +11 -5
  368. package/component-loader/component-loader.factory.d.ts +1 -2
  369. package/component-loader/esm2015/bs-component-ref.class.js +17 -0
  370. package/component-loader/esm2015/component-loader.class.js +402 -0
  371. package/component-loader/esm2015/component-loader.factory.js +66 -0
  372. package/component-loader/esm2015/content-ref.class.js +34 -0
  373. package/component-loader/esm2015/listen-options.model.js +28 -0
  374. package/component-loader/esm2015/ngx-bootstrap-component-loader.js +10 -0
  375. package/component-loader/esm2015/public_api.js +10 -0
  376. package/component-loader/esm5/bs-component-ref.class.js +27 -0
  377. package/component-loader/esm5/component-loader.class.js +468 -0
  378. package/component-loader/esm5/component-loader.factory.js +75 -0
  379. package/component-loader/esm5/content-ref.class.js +31 -0
  380. package/component-loader/esm5/listen-options.model.js +28 -0
  381. package/component-loader/esm5/ngx-bootstrap-component-loader.js +10 -0
  382. package/component-loader/esm5/public_api.js +10 -0
  383. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +426 -0
  384. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -0
  385. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +498 -0
  386. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -0
  387. package/component-loader/listen-options.model.d.ts +1 -0
  388. package/component-loader/ngx-bootstrap-component-loader.d.ts +4 -0
  389. package/component-loader/ngx-bootstrap-component-loader.metadata.json +1 -0
  390. package/component-loader/package.json +19 -0
  391. package/component-loader/public_api.d.ts +4 -0
  392. package/datepicker/base/bs-datepicker-container.d.ts +3 -1
  393. package/datepicker/bs-datepicker-input.directive.d.ts +3 -3
  394. package/datepicker/bs-datepicker.component.d.ts +13 -3
  395. package/datepicker/bs-datepicker.config.d.ts +14 -1
  396. package/datepicker/bs-datepicker.css +14 -5
  397. package/datepicker/bs-datepicker.css.map +2 -2
  398. package/datepicker/bs-datepicker.module.d.ts +0 -1
  399. package/datepicker/bs-datepicker.scss +23 -10
  400. package/datepicker/bs-daterangepicker-input.directive.d.ts +3 -3
  401. package/datepicker/bs-daterangepicker.component.d.ts +4 -3
  402. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +4334 -0
  403. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -0
  404. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +2 -0
  405. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -0
  406. package/datepicker/datepicker.component.d.ts +5 -5
  407. package/datepicker/engine/calc-days-calendar.d.ts +1 -1
  408. package/datepicker/engine/flag-days-calendar.d.ts +2 -1
  409. package/datepicker/engine/flag-months-calendar.d.ts +1 -1
  410. package/datepicker/engine/flag-years-calendar.d.ts +1 -1
  411. package/datepicker/engine/format-days-calendar.d.ts +1 -1
  412. package/datepicker/engine/format-months-calendar.d.ts +1 -1
  413. package/datepicker/engine/format-years-calendar.d.ts +1 -1
  414. package/datepicker/engine/view-mode.d.ts +2 -2
  415. package/datepicker/esm2015/base/bs-datepicker-container.js +109 -0
  416. package/datepicker/esm2015/bs-datepicker-input.directive.js +208 -0
  417. package/datepicker/esm2015/bs-datepicker.component.js +307 -0
  418. package/datepicker/esm2015/bs-datepicker.config.js +117 -0
  419. package/datepicker/esm2015/bs-datepicker.module.js +90 -0
  420. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +224 -0
  421. package/datepicker/esm2015/bs-daterangepicker.component.js +293 -0
  422. package/datepicker/esm2015/bs-daterangepicker.config.js +29 -0
  423. package/datepicker/esm2015/bs-locale.service.js +61 -0
  424. package/datepicker/esm2015/date-formatter.js +18 -0
  425. package/datepicker/esm2015/datepicker-inner.component.js +451 -0
  426. package/datepicker/esm2015/datepicker.component.js +326 -0
  427. package/datepicker/esm2015/datepicker.config.js +74 -0
  428. package/datepicker/esm2015/datepicker.module.js +52 -0
  429. package/datepicker/esm2015/daypicker.component.js +212 -0
  430. package/datepicker/esm2015/engine/calc-days-calendar.js +29 -0
  431. package/datepicker/esm2015/engine/flag-days-calendar.js +115 -0
  432. package/datepicker/esm2015/engine/flag-months-calendar.js +57 -0
  433. package/datepicker/esm2015/engine/flag-years-calendar.js +56 -0
  434. package/datepicker/esm2015/engine/format-days-calendar.js +50 -0
  435. package/datepicker/esm2015/engine/format-months-calendar.js +29 -0
  436. package/datepicker/esm2015/engine/format-years-calendar.js +42 -0
  437. package/datepicker/esm2015/engine/view-mode.js +14 -0
  438. package/datepicker/esm2015/models/index.js +199 -0
  439. package/datepicker/esm2015/monthpicker.component.js +118 -0
  440. package/datepicker/esm2015/ngx-bootstrap-datepicker.js +29 -0
  441. package/datepicker/esm2015/public_api.js +19 -0
  442. package/datepicker/esm2015/reducer/_defaults.js +10 -0
  443. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +204 -0
  444. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +249 -0
  445. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +289 -0
  446. package/datepicker/esm2015/reducer/bs-datepicker.state.js +87 -0
  447. package/datepicker/esm2015/reducer/bs-datepicker.store.js +34 -0
  448. package/datepicker/esm2015/themes/bs/bs-calendar-layout.component.js +39 -0
  449. package/datepicker/esm2015/themes/bs/bs-current-date-view.component.js +32 -0
  450. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +51 -0
  451. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +113 -0
  452. package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js +73 -0
  453. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +88 -0
  454. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +133 -0
  455. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +134 -0
  456. package/datepicker/esm2015/themes/bs/bs-months-calendar-view.component.js +104 -0
  457. package/datepicker/esm2015/themes/bs/bs-timepicker-view.component.js +53 -0
  458. package/datepicker/esm2015/themes/bs/bs-years-calendar-view.component.js +105 -0
  459. package/datepicker/esm2015/utils/bs-calendar-utils.js +54 -0
  460. package/datepicker/esm2015/utils/matrix-utils.js +39 -0
  461. package/datepicker/esm2015/yearpicker.component.js +122 -0
  462. package/datepicker/esm5/base/bs-datepicker-container.js +170 -0
  463. package/datepicker/esm5/bs-datepicker-input.directive.js +242 -0
  464. package/datepicker/esm5/bs-datepicker.component.js +368 -0
  465. package/datepicker/esm5/bs-datepicker.config.js +119 -0
  466. package/datepicker/esm5/bs-datepicker.module.js +97 -0
  467. package/datepicker/esm5/bs-daterangepicker-input.directive.js +263 -0
  468. package/datepicker/esm5/bs-daterangepicker.component.js +354 -0
  469. package/datepicker/esm5/bs-daterangepicker.config.js +34 -0
  470. package/datepicker/esm5/bs-locale.service.js +79 -0
  471. package/datepicker/esm5/date-formatter.js +28 -0
  472. package/datepicker/esm5/datepicker-inner.component.js +547 -0
  473. package/datepicker/esm5/datepicker.component.js +325 -0
  474. package/datepicker/esm5/datepicker.config.js +76 -0
  475. package/datepicker/esm5/datepicker.module.js +59 -0
  476. package/datepicker/esm5/daypicker.component.js +157 -0
  477. package/datepicker/esm5/engine/calc-days-calendar.js +29 -0
  478. package/datepicker/esm5/engine/flag-days-calendar.js +115 -0
  479. package/datepicker/esm5/engine/flag-months-calendar.js +57 -0
  480. package/datepicker/esm5/engine/flag-years-calendar.js +56 -0
  481. package/datepicker/esm5/engine/format-days-calendar.js +55 -0
  482. package/datepicker/esm5/engine/format-months-calendar.js +31 -0
  483. package/datepicker/esm5/engine/format-years-calendar.js +44 -0
  484. package/datepicker/esm5/engine/view-mode.js +14 -0
  485. package/datepicker/esm5/models/index.js +199 -0
  486. package/datepicker/esm5/monthpicker.component.js +85 -0
  487. package/datepicker/esm5/ngx-bootstrap-datepicker.js +29 -0
  488. package/datepicker/esm5/public_api.js +19 -0
  489. package/datepicker/esm5/reducer/_defaults.js +10 -0
  490. package/datepicker/esm5/reducer/bs-datepicker.actions.js +266 -0
  491. package/datepicker/esm5/reducer/bs-datepicker.effects.js +314 -0
  492. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +298 -0
  493. package/datepicker/esm5/reducer/bs-datepicker.state.js +91 -0
  494. package/datepicker/esm5/reducer/bs-datepicker.store.js +40 -0
  495. package/datepicker/esm5/themes/bs/bs-calendar-layout.component.js +28 -0
  496. package/datepicker/esm5/themes/bs/bs-current-date-view.component.js +36 -0
  497. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +50 -0
  498. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +138 -0
  499. package/datepicker/esm5/themes/bs/bs-datepicker-day-decorator.directive.js +73 -0
  500. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +68 -0
  501. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +158 -0
  502. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +114 -0
  503. package/datepicker/esm5/themes/bs/bs-months-calendar-view.component.js +100 -0
  504. package/datepicker/esm5/themes/bs/bs-timepicker-view.component.js +37 -0
  505. package/datepicker/esm5/themes/bs/bs-years-calendar-view.component.js +101 -0
  506. package/datepicker/esm5/utils/bs-calendar-utils.js +54 -0
  507. package/datepicker/esm5/utils/matrix-utils.js +39 -0
  508. package/datepicker/esm5/yearpicker.component.js +92 -0
  509. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +3827 -0
  510. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -0
  511. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +4198 -0
  512. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -0
  513. package/datepicker/models/index.d.ts +3 -1
  514. package/datepicker/ngx-bootstrap-datepicker.d.ts +23 -0
  515. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -0
  516. package/datepicker/package.json +19 -0
  517. package/datepicker/public_api.d.ts +14 -0
  518. package/datepicker/reducer/_defaults.d.ts +1 -1
  519. package/datepicker/reducer/bs-datepicker.actions.d.ts +5 -3
  520. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  521. package/datepicker/reducer/bs-datepicker.reducer.d.ts +1 -1
  522. package/datepicker/reducer/bs-datepicker.state.d.ts +4 -1
  523. package/datepicker/reducer/bs-datepicker.store.d.ts +1 -1
  524. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +1 -1
  525. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +9 -2
  526. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
  527. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +1 -1
  528. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +4 -1
  529. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
  530. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
  531. package/datepicker/utils/matrix-utils.d.ts +1 -1
  532. package/dropdown/bs-dropdown-container.component.d.ts +3 -0
  533. package/dropdown/bs-dropdown-toggle.directive.d.ts +4 -2
  534. package/dropdown/bs-dropdown.config.d.ts +2 -0
  535. package/dropdown/bs-dropdown.directive.d.ts +12 -6
  536. package/dropdown/bs-dropdown.state.d.ts +2 -1
  537. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +793 -0
  538. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -0
  539. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +2 -0
  540. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -0
  541. package/dropdown/esm2015/bs-dropdown-container.component.js +104 -0
  542. package/dropdown/esm2015/bs-dropdown-menu.directive.js +42 -0
  543. package/dropdown/esm2015/bs-dropdown-toggle.directive.js +109 -0
  544. package/dropdown/esm2015/bs-dropdown.config.js +44 -0
  545. package/dropdown/esm2015/bs-dropdown.directive.js +408 -0
  546. package/dropdown/esm2015/bs-dropdown.module.js +60 -0
  547. package/dropdown/esm2015/bs-dropdown.state.js +51 -0
  548. package/dropdown/esm2015/index.js +7 -0
  549. package/dropdown/esm2015/ngx-bootstrap-dropdown.js +10 -0
  550. package/dropdown/esm2015/public_api.js +13 -0
  551. package/dropdown/esm5/bs-dropdown-container.component.js +109 -0
  552. package/dropdown/esm5/bs-dropdown-menu.directive.js +40 -0
  553. package/dropdown/esm5/bs-dropdown-toggle.directive.js +132 -0
  554. package/dropdown/esm5/bs-dropdown.config.js +46 -0
  555. package/dropdown/esm5/bs-dropdown.directive.js +501 -0
  556. package/dropdown/esm5/bs-dropdown.module.js +69 -0
  557. package/dropdown/esm5/bs-dropdown.state.js +54 -0
  558. package/dropdown/esm5/index.js +7 -0
  559. package/dropdown/esm5/ngx-bootstrap-dropdown.js +10 -0
  560. package/dropdown/esm5/public_api.js +13 -0
  561. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +623 -0
  562. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -0
  563. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +748 -0
  564. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -0
  565. package/dropdown/index.d.ts +1 -7
  566. package/dropdown/ngx-bootstrap-dropdown.d.ts +4 -0
  567. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -0
  568. package/dropdown/package.json +19 -0
  569. package/dropdown/public_api.d.ts +7 -0
  570. package/esm2015/ngx-bootstrap.js +10 -0
  571. package/esm2015/public_api.js +31 -0
  572. package/esm5/ngx-bootstrap.js +10 -0
  573. package/esm5/public_api.js +31 -0
  574. package/fesm2015/ngx-bootstrap.js +35 -0
  575. package/fesm2015/ngx-bootstrap.js.map +1 -0
  576. package/fesm5/ngx-bootstrap.js +35 -0
  577. package/fesm5/ngx-bootstrap.js.map +1 -0
  578. package/locale/bundles/ngx-bootstrap-locale.umd.js +56 -0
  579. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -0
  580. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +2 -0
  581. package/locale/bundles/ngx-bootstrap-locale.umd.min.js.map +1 -0
  582. package/locale/esm2015/ngx-bootstrap-locale.js +10 -0
  583. package/locale/esm2015/public_api.js +40 -0
  584. package/locale/esm5/ngx-bootstrap-locale.js +10 -0
  585. package/locale/esm5/public_api.js +40 -0
  586. package/locale/fesm2015/ngx-bootstrap-locale.js +13 -0
  587. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -0
  588. package/locale/fesm5/ngx-bootstrap-locale.js +13 -0
  589. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -0
  590. package/locale/ngx-bootstrap-locale.d.ts +4 -0
  591. package/locale/ngx-bootstrap-locale.metadata.json +1 -0
  592. package/locale/package.json +19 -0
  593. package/locale/public_api.d.ts +34 -0
  594. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +178 -0
  595. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -0
  596. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +2 -0
  597. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -0
  598. package/mini-ngrx/esm2015/index.js +7 -0
  599. package/mini-ngrx/esm2015/ngx-bootstrap-mini-ngrx.js +10 -0
  600. package/mini-ngrx/esm2015/public_api.js +18 -0
  601. package/mini-ngrx/esm2015/state.class.js +29 -0
  602. package/mini-ngrx/esm2015/store.class.js +81 -0
  603. package/mini-ngrx/esm5/index.js +7 -0
  604. package/mini-ngrx/esm5/ngx-bootstrap-mini-ngrx.js +10 -0
  605. package/mini-ngrx/esm5/public_api.js +18 -0
  606. package/mini-ngrx/esm5/state.class.js +35 -0
  607. package/mini-ngrx/esm5/store.class.js +114 -0
  608. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +114 -0
  609. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -0
  610. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +144 -0
  611. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -0
  612. package/mini-ngrx/index.d.ts +1 -7
  613. package/mini-ngrx/ngx-bootstrap-mini-ngrx.d.ts +4 -0
  614. package/mini-ngrx/ngx-bootstrap-mini-ngrx.metadata.json +1 -0
  615. package/mini-ngrx/package.json +19 -0
  616. package/mini-ngrx/public_api.d.ts +7 -0
  617. package/modal/bs-modal-ref.service.d.ts +4 -0
  618. package/modal/bs-modal.service.d.ts +5 -1
  619. package/modal/bundles/ngx-bootstrap-modal.umd.js +1156 -0
  620. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -0
  621. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +2 -0
  622. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -0
  623. package/modal/esm2015/bs-modal-ref.service.js +46 -0
  624. package/modal/esm2015/bs-modal.service.js +267 -0
  625. package/modal/esm2015/modal-backdrop.component.js +103 -0
  626. package/modal/esm2015/modal-backdrop.options.js +19 -0
  627. package/modal/esm2015/modal-container.component.js +160 -0
  628. package/modal/esm2015/modal-options.class.js +92 -0
  629. package/modal/esm2015/modal.directive.js +459 -0
  630. package/modal/esm2015/modal.module.js +44 -0
  631. package/modal/esm2015/models/index.js +58 -0
  632. package/modal/esm2015/ngx-bootstrap-modal.js +11 -0
  633. package/modal/esm2015/public_api.js +14 -0
  634. package/modal/esm5/bs-modal-ref.service.js +48 -0
  635. package/modal/esm5/bs-modal.service.js +333 -0
  636. package/modal/esm5/modal-backdrop.component.js +112 -0
  637. package/modal/esm5/modal-backdrop.options.js +18 -0
  638. package/modal/esm5/modal-container.component.js +170 -0
  639. package/modal/esm5/modal-options.class.js +96 -0
  640. package/modal/esm5/modal.directive.js +580 -0
  641. package/modal/esm5/modal.module.js +51 -0
  642. package/modal/esm5/models/index.js +58 -0
  643. package/modal/esm5/ngx-bootstrap-modal.js +11 -0
  644. package/modal/esm5/public_api.js +14 -0
  645. package/modal/fesm2015/ngx-bootstrap-modal.js +932 -0
  646. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -0
  647. package/modal/fesm5/ngx-bootstrap-modal.js +1142 -0
  648. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -0
  649. package/modal/modal-container.component.d.ts +2 -2
  650. package/modal/modal-options.class.d.ts +5 -7
  651. package/modal/modal.directive.d.ts +25 -7
  652. package/modal/models/index.d.ts +22 -0
  653. package/modal/ngx-bootstrap-modal.d.ts +5 -0
  654. package/modal/ngx-bootstrap-modal.metadata.json +1 -0
  655. package/modal/package.json +19 -0
  656. package/modal/{index.d.ts → public_api.d.ts} +0 -0
  657. package/ngx-bootstrap.d.ts +4 -0
  658. package/ngx-bootstrap.metadata.json +1 -0
  659. package/package.json +30 -29
  660. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +815 -0
  661. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -0
  662. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +2 -0
  663. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -0
  664. package/pagination/esm2015/models/index.js +62 -0
  665. package/pagination/esm2015/ngx-bootstrap-pagination.js +12 -0
  666. package/pagination/esm2015/pager.component.js +412 -0
  667. package/pagination/esm2015/pagination.component.js +422 -0
  668. package/pagination/esm2015/pagination.config.js +49 -0
  669. package/pagination/esm2015/pagination.module.js +35 -0
  670. package/pagination/esm2015/public_api.js +10 -0
  671. package/pagination/esm5/models/index.js +62 -0
  672. package/pagination/esm5/ngx-bootstrap-pagination.js +12 -0
  673. package/pagination/esm5/pager.component.js +475 -0
  674. package/pagination/esm5/pagination.component.js +485 -0
  675. package/pagination/esm5/pagination.config.js +51 -0
  676. package/pagination/esm5/pagination.module.js +42 -0
  677. package/pagination/esm5/public_api.js +10 -0
  678. package/pagination/fesm2015/ngx-bootstrap-pagination.js +685 -0
  679. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -0
  680. package/pagination/fesm5/ngx-bootstrap-pagination.js +816 -0
  681. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -0
  682. package/pagination/models/index.d.ts +25 -0
  683. package/pagination/ngx-bootstrap-pagination.d.ts +6 -0
  684. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -0
  685. package/pagination/package.json +19 -0
  686. package/pagination/pager.component.d.ts +11 -11
  687. package/pagination/pagination.component.d.ts +12 -12
  688. package/pagination/pagination.config.d.ts +3 -2
  689. package/pagination/{index.d.ts → public_api.d.ts} +0 -0
  690. package/popover/bundles/ngx-bootstrap-popover.umd.js +317 -0
  691. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -0
  692. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +2 -0
  693. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -0
  694. package/popover/esm2015/ngx-bootstrap-popover.js +10 -0
  695. package/popover/esm2015/popover-container.component.js +72 -0
  696. package/popover/esm2015/popover.config.js +58 -0
  697. package/popover/esm2015/popover.directive.js +227 -0
  698. package/popover/esm2015/popover.module.js +41 -0
  699. package/popover/esm2015/public_api.js +10 -0
  700. package/popover/esm5/ngx-bootstrap-popover.js +10 -0
  701. package/popover/esm5/popover-container.component.js +66 -0
  702. package/popover/esm5/popover.config.js +60 -0
  703. package/popover/esm5/popover.directive.js +260 -0
  704. package/popover/esm5/popover.module.js +48 -0
  705. package/popover/esm5/public_api.js +10 -0
  706. package/popover/fesm2015/ngx-bootstrap-popover.js +277 -0
  707. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -0
  708. package/popover/fesm5/ngx-bootstrap-popover.js +309 -0
  709. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -0
  710. package/popover/ngx-bootstrap-popover.d.ts +4 -0
  711. package/popover/ngx-bootstrap-popover.metadata.json +1 -0
  712. package/popover/package.json +19 -0
  713. package/popover/popover.directive.d.ts +3 -3
  714. package/popover/{index.d.ts → public_api.d.ts} +0 -0
  715. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +366 -0
  716. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -0
  717. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +2 -0
  718. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -0
  719. package/positioning/esm2015/ng-positioning.js +253 -0
  720. package/positioning/esm2015/ngx-bootstrap-positioning.js +10 -0
  721. package/positioning/esm2015/positioning.service.js +91 -0
  722. package/positioning/esm2015/public_api.js +8 -0
  723. package/positioning/esm5/ng-positioning.js +300 -0
  724. package/positioning/esm5/ngx-bootstrap-positioning.js +10 -0
  725. package/positioning/esm5/positioning.service.js +99 -0
  726. package/positioning/esm5/public_api.js +8 -0
  727. package/positioning/fesm2015/ngx-bootstrap-positioning.js +299 -0
  728. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -0
  729. package/positioning/fesm5/ngx-bootstrap-positioning.js +352 -0
  730. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -0
  731. package/positioning/ngx-bootstrap-positioning.d.ts +4 -0
  732. package/positioning/ngx-bootstrap-positioning.metadata.json +1 -0
  733. package/positioning/package.json +19 -0
  734. package/positioning/{index.d.ts → public_api.d.ts} +0 -0
  735. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +319 -0
  736. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -0
  737. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +2 -0
  738. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -0
  739. package/progressbar/esm2015/bar.component.js +129 -0
  740. package/progressbar/esm2015/ngx-bootstrap-progressbar.js +10 -0
  741. package/progressbar/esm2015/progressbar.component.js +148 -0
  742. package/progressbar/esm2015/progressbar.config.js +41 -0
  743. package/progressbar/esm2015/progressbar.module.js +35 -0
  744. package/progressbar/esm2015/public_api.js +10 -0
  745. package/progressbar/esm5/bar.component.js +149 -0
  746. package/progressbar/esm5/ngx-bootstrap-progressbar.js +10 -0
  747. package/progressbar/esm5/progressbar.component.js +170 -0
  748. package/progressbar/esm5/progressbar.config.js +43 -0
  749. package/progressbar/esm5/progressbar.module.js +42 -0
  750. package/progressbar/esm5/public_api.js +10 -0
  751. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +268 -0
  752. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -0
  753. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +315 -0
  754. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -0
  755. package/progressbar/ngx-bootstrap-progressbar.d.ts +4 -0
  756. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -0
  757. package/progressbar/package.json +19 -0
  758. package/progressbar/progressbar.component.d.ts +4 -2
  759. package/progressbar/{index.d.ts → public_api.d.ts} +0 -0
  760. package/public_api.d.ts +25 -0
  761. package/rating/bundles/ngx-bootstrap-rating.umd.js +243 -0
  762. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -0
  763. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +2 -0
  764. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -0
  765. package/rating/esm2015/models/index.js +28 -0
  766. package/rating/esm2015/ngx-bootstrap-rating.js +11 -0
  767. package/rating/esm2015/public_api.js +8 -0
  768. package/rating/esm2015/rating.component.js +210 -0
  769. package/rating/esm2015/rating.module.js +36 -0
  770. package/rating/esm5/models/index.js +28 -0
  771. package/rating/esm5/ngx-bootstrap-rating.js +11 -0
  772. package/rating/esm5/public_api.js +8 -0
  773. package/rating/esm5/rating.component.js +244 -0
  774. package/rating/esm5/rating.module.js +43 -0
  775. package/rating/fesm2015/ngx-bootstrap-rating.js +194 -0
  776. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -0
  777. package/rating/fesm5/ngx-bootstrap-rating.js +233 -0
  778. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -0
  779. package/rating/models/index.d.ts +9 -0
  780. package/rating/ngx-bootstrap-rating.d.ts +5 -0
  781. package/rating/ngx-bootstrap-rating.metadata.json +1 -0
  782. package/rating/package.json +19 -0
  783. package/rating/{index.d.ts → public_api.d.ts} +0 -0
  784. package/rating/rating.component.d.ts +6 -5
  785. package/schematics/collection.json +10 -0
  786. package/schematics/ng-add/index.js +98 -0
  787. package/schematics/ng-add/index.js.map +1 -0
  788. package/schematics/ng-add/index.spec.js +37 -0
  789. package/schematics/ng-add/index.spec.js.map +1 -0
  790. package/schematics/ng-add/schema.js +10 -0
  791. package/schematics/ng-add/schema.js.map +1 -0
  792. package/schematics/ng-add/schema.json +16 -0
  793. package/schematics/utils/index.js +135 -0
  794. package/schematics/utils/index.js.map +1 -0
  795. package/schematics/utils/ng-module-imports.js +69 -0
  796. package/schematics/utils/ng-module-imports.js.map +1 -0
  797. package/schematics/utils/project-main-file.js +22 -0
  798. package/schematics/utils/project-main-file.js.map +1 -0
  799. package/schematics/utils/project-targets.js +25 -0
  800. package/schematics/utils/project-targets.js.map +1 -0
  801. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +464 -0
  802. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -0
  803. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +2 -0
  804. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -0
  805. package/sortable/esm2015/draggable-item.js +24 -0
  806. package/sortable/esm2015/draggable-item.service.js +65 -0
  807. package/sortable/esm2015/ngx-bootstrap-sortable.js +10 -0
  808. package/sortable/esm2015/public_api.js +9 -0
  809. package/sortable/esm2015/sortable.component.js +382 -0
  810. package/sortable/esm2015/sortable.module.js +34 -0
  811. package/sortable/esm5/draggable-item.js +24 -0
  812. package/sortable/esm5/draggable-item.service.js +82 -0
  813. package/sortable/esm5/ngx-bootstrap-sortable.js +10 -0
  814. package/sortable/esm5/public_api.js +9 -0
  815. package/sortable/esm5/sortable.component.js +398 -0
  816. package/sortable/esm5/sortable.module.js +41 -0
  817. package/sortable/fesm2015/ngx-bootstrap-sortable.js +377 -0
  818. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -0
  819. package/sortable/fesm5/ngx-bootstrap-sortable.js +414 -0
  820. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -0
  821. package/sortable/ngx-bootstrap-sortable.d.ts +4 -0
  822. package/sortable/ngx-bootstrap-sortable.metadata.json +1 -0
  823. package/sortable/package.json +19 -0
  824. package/sortable/{index.d.ts → public_api.d.ts} +0 -0
  825. package/sortable/sortable.component.d.ts +1 -1
  826. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +481 -0
  827. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -0
  828. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +2 -0
  829. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -0
  830. package/tabs/esm2015/ng-transclude.directive.js +61 -0
  831. package/tabs/esm2015/ngx-bootstrap-tabs.js +10 -0
  832. package/tabs/esm2015/public_api.js +12 -0
  833. package/tabs/esm2015/tab-heading.directive.js +39 -0
  834. package/tabs/esm2015/tab.directive.js +181 -0
  835. package/tabs/esm2015/tabs.module.js +50 -0
  836. package/tabs/esm2015/tabset.component.js +195 -0
  837. package/tabs/esm2015/tabset.config.js +32 -0
  838. package/tabs/esm5/ng-transclude.directive.js +65 -0
  839. package/tabs/esm5/ngx-bootstrap-tabs.js +10 -0
  840. package/tabs/esm5/public_api.js +12 -0
  841. package/tabs/esm5/tab-heading.directive.js +38 -0
  842. package/tabs/esm5/tab.directive.js +194 -0
  843. package/tabs/esm5/tabs.module.js +57 -0
  844. package/tabs/esm5/tabset.component.js +231 -0
  845. package/tabs/esm5/tabset.config.js +34 -0
  846. package/tabs/fesm2015/ngx-bootstrap-tabs.js +415 -0
  847. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -0
  848. package/tabs/fesm5/ngx-bootstrap-tabs.js +470 -0
  849. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -0
  850. package/tabs/ngx-bootstrap-tabs.d.ts +4 -0
  851. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -0
  852. package/tabs/package.json +19 -0
  853. package/tabs/{index.d.ts → public_api.d.ts} +0 -0
  854. package/tabs/tabset.component.d.ts +3 -1
  855. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +1183 -0
  856. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -0
  857. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +2 -0
  858. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -0
  859. package/timepicker/esm2015/models/index.js +18 -0
  860. package/timepicker/esm2015/ngx-bootstrap-timepicker.js +11 -0
  861. package/timepicker/esm2015/public_api.js +11 -0
  862. package/timepicker/esm2015/reducer/timepicker.actions.js +99 -0
  863. package/timepicker/esm2015/reducer/timepicker.reducer.js +103 -0
  864. package/timepicker/esm2015/reducer/timepicker.store.js +33 -0
  865. package/timepicker/esm2015/timepicker-controls.util.js +156 -0
  866. package/timepicker/esm2015/timepicker.component.js +480 -0
  867. package/timepicker/esm2015/timepicker.config.js +144 -0
  868. package/timepicker/esm2015/timepicker.models.js +82 -0
  869. package/timepicker/esm2015/timepicker.module.js +39 -0
  870. package/timepicker/esm2015/timepicker.utils.js +224 -0
  871. package/timepicker/esm5/models/index.js +18 -0
  872. package/timepicker/esm5/ngx-bootstrap-timepicker.js +11 -0
  873. package/timepicker/esm5/public_api.js +11 -0
  874. package/timepicker/esm5/reducer/timepicker.actions.js +127 -0
  875. package/timepicker/esm5/reducer/timepicker.reducer.js +108 -0
  876. package/timepicker/esm5/reducer/timepicker.store.js +39 -0
  877. package/timepicker/esm5/timepicker-controls.util.js +156 -0
  878. package/timepicker/esm5/timepicker.component.js +564 -0
  879. package/timepicker/esm5/timepicker.config.js +146 -0
  880. package/timepicker/esm5/timepicker.models.js +82 -0
  881. package/timepicker/esm5/timepicker.module.js +46 -0
  882. package/timepicker/esm5/timepicker.utils.js +227 -0
  883. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +1006 -0
  884. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -0
  885. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +1132 -0
  886. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -0
  887. package/timepicker/models/index.d.ts +8 -0
  888. package/timepicker/ngx-bootstrap-timepicker.d.ts +5 -0
  889. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -0
  890. package/timepicker/package.json +19 -0
  891. package/timepicker/{index.d.ts → public_api.d.ts} +0 -0
  892. package/timepicker/reducer/timepicker.actions.d.ts +1 -1
  893. package/timepicker/reducer/timepicker.reducer.d.ts +1 -1
  894. package/timepicker/reducer/timepicker.store.d.ts +1 -1
  895. package/timepicker/timepicker.component.d.ts +8 -7
  896. package/timepicker/timepicker.config.d.ts +1 -1
  897. package/timepicker/timepicker.utils.d.ts +1 -1
  898. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +546 -0
  899. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -0
  900. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +2 -0
  901. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -0
  902. package/tooltip/esm2015/ngx-bootstrap-tooltip.js +10 -0
  903. package/tooltip/esm2015/public_api.js +10 -0
  904. package/tooltip/esm2015/tooltip-container.component.js +92 -0
  905. package/tooltip/esm2015/tooltip.config.js +49 -0
  906. package/tooltip/esm2015/tooltip.directive.js +419 -0
  907. package/tooltip/esm2015/tooltip.module.js +41 -0
  908. package/tooltip/esm5/ngx-bootstrap-tooltip.js +10 -0
  909. package/tooltip/esm5/public_api.js +10 -0
  910. package/tooltip/esm5/tooltip-container.component.js +82 -0
  911. package/tooltip/esm5/tooltip.config.js +51 -0
  912. package/tooltip/esm5/tooltip.directive.js +490 -0
  913. package/tooltip/esm5/tooltip.module.js +48 -0
  914. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +456 -0
  915. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -0
  916. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +522 -0
  917. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -0
  918. package/tooltip/ngx-bootstrap-tooltip.d.ts +4 -0
  919. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -0
  920. package/tooltip/package.json +19 -0
  921. package/tooltip/{index.d.ts → public_api.d.ts} +0 -0
  922. package/tooltip/tooltip-container.component.d.ts +4 -1
  923. package/tooltip/tooltip.directive.d.ts +10 -8
  924. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +2029 -0
  925. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -0
  926. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +2 -0
  927. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -0
  928. package/typeahead/esm2015/latin-map.js +833 -0
  929. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +10 -0
  930. package/typeahead/esm2015/public_api.js +14 -0
  931. package/typeahead/esm2015/typeahead-container.component.js +336 -0
  932. package/typeahead/esm2015/typeahead-match.class.js +38 -0
  933. package/typeahead/esm2015/typeahead-options.class.js +22 -0
  934. package/typeahead/esm2015/typeahead-utils.js +80 -0
  935. package/typeahead/esm2015/typeahead.config.js +35 -0
  936. package/typeahead/esm2015/typeahead.directive.js +652 -0
  937. package/typeahead/esm2015/typeahead.module.js +41 -0
  938. package/typeahead/esm5/latin-map.js +833 -0
  939. package/typeahead/esm5/ngx-bootstrap-typeahead.js +10 -0
  940. package/typeahead/esm5/public_api.js +14 -0
  941. package/typeahead/esm5/typeahead-container.component.js +414 -0
  942. package/typeahead/esm5/typeahead-match.class.js +44 -0
  943. package/typeahead/esm5/typeahead-options.class.js +21 -0
  944. package/typeahead/esm5/typeahead-utils.js +94 -0
  945. package/typeahead/esm5/typeahead.config.js +37 -0
  946. package/typeahead/esm5/typeahead.directive.js +748 -0
  947. package/typeahead/esm5/typeahead.module.js +48 -0
  948. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +1780 -0
  949. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -0
  950. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +1975 -0
  951. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -0
  952. package/typeahead/ngx-bootstrap-typeahead.d.ts +4 -0
  953. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -0
  954. package/typeahead/package.json +19 -0
  955. package/typeahead/public_api.d.ts +8 -0
  956. package/typeahead/typeahead-container.component.d.ts +2 -2
  957. package/typeahead/typeahead.config.d.ts +5 -0
  958. package/typeahead/typeahead.directive.d.ts +13 -10
  959. package/utils/bundles/ngx-bootstrap-utils.umd.js +792 -0
  960. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -0
  961. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +10 -0
  962. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -0
  963. package/utils/esm2015/decorators.js +37 -0
  964. package/utils/esm2015/facade/browser.js +29 -0
  965. package/utils/esm2015/linked-list.class.js +324 -0
  966. package/utils/esm2015/ngx-bootstrap-utils.js +10 -0
  967. package/utils/esm2015/public_api.js +16 -0
  968. package/utils/esm2015/theme-provider.js +49 -0
  969. package/utils/esm2015/trigger.class.js +32 -0
  970. package/utils/esm2015/triggers.js +165 -0
  971. package/utils/esm2015/utils.class.js +31 -0
  972. package/utils/esm2015/warn-once.js +21 -0
  973. package/utils/esm5/decorators.js +39 -0
  974. package/utils/esm5/facade/browser.js +29 -0
  975. package/utils/esm5/linked-list.class.js +425 -0
  976. package/utils/esm5/ngx-bootstrap-utils.js +10 -0
  977. package/utils/esm5/public_api.js +16 -0
  978. package/utils/esm5/theme-provider.js +49 -0
  979. package/utils/esm5/trigger.class.js +33 -0
  980. package/utils/esm5/triggers.js +170 -0
  981. package/utils/esm5/utils.class.js +46 -0
  982. package/utils/esm5/warn-once.js +21 -0
  983. package/utils/facade/browser.d.ts +5 -5
  984. package/utils/fesm2015/ngx-bootstrap-utils.js +650 -0
  985. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -0
  986. package/utils/fesm5/ngx-bootstrap-utils.js +768 -0
  987. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -0
  988. package/utils/ngx-bootstrap-utils.d.ts +4 -0
  989. package/utils/ngx-bootstrap-utils.metadata.json +1 -0
  990. package/utils/package.json +19 -0
  991. package/utils/public_api.d.ts +10 -0
  992. package/utils/triggers.d.ts +12 -1
  993. package/accordion/accordion-group.component.html +0 -19
  994. package/accordion/accordion-group.component.js +0 -82
  995. package/accordion/accordion-group.component.js.map +0 -1
  996. package/accordion/accordion-group.component.metadata.json +0 -1
  997. package/accordion/accordion-group.component.ngfactory.js.map +0 -1
  998. package/accordion/accordion.component.js +0 -50
  999. package/accordion/accordion.component.js.map +0 -1
  1000. package/accordion/accordion.component.metadata.json +0 -1
  1001. package/accordion/accordion.component.ngfactory.js.map +0 -1
  1002. package/accordion/accordion.config.js +0 -16
  1003. package/accordion/accordion.config.js.map +0 -1
  1004. package/accordion/accordion.config.metadata.json +0 -1
  1005. package/accordion/accordion.config.ngfactory.js.map +0 -1
  1006. package/accordion/accordion.module.js +0 -23
  1007. package/accordion/accordion.module.js.map +0 -1
  1008. package/accordion/accordion.module.metadata.json +0 -1
  1009. package/accordion/accordion.module.ngfactory.js.map +0 -1
  1010. package/accordion/index.js +0 -5
  1011. package/accordion/index.js.map +0 -1
  1012. package/accordion/index.metadata.json +0 -1
  1013. package/alert/alert.component.html +0 -11
  1014. package/alert/alert.component.js +0 -99
  1015. package/alert/alert.component.js.map +0 -1
  1016. package/alert/alert.component.metadata.json +0 -1
  1017. package/alert/alert.component.ngfactory.js.map +0 -1
  1018. package/alert/alert.config.js +0 -17
  1019. package/alert/alert.config.js.map +0 -1
  1020. package/alert/alert.config.metadata.json +0 -1
  1021. package/alert/alert.config.ngfactory.js.map +0 -1
  1022. package/alert/alert.module.js +0 -22
  1023. package/alert/alert.module.js.map +0 -1
  1024. package/alert/alert.module.metadata.json +0 -1
  1025. package/alert/alert.module.ngfactory.js.map +0 -1
  1026. package/alert/index.js +0 -4
  1027. package/alert/index.js.map +0 -1
  1028. package/alert/index.metadata.json +0 -1
  1029. package/buttons/button-checkbox.directive.js +0 -93
  1030. package/buttons/button-checkbox.directive.js.map +0 -1
  1031. package/buttons/button-checkbox.directive.metadata.json +0 -1
  1032. package/buttons/button-checkbox.directive.ngfactory.js.map +0 -1
  1033. package/buttons/button-radio-group.directive.js +0 -53
  1034. package/buttons/button-radio-group.directive.js.map +0 -1
  1035. package/buttons/button-radio-group.directive.metadata.json +0 -1
  1036. package/buttons/button-radio-group.directive.ngfactory.js.map +0 -1
  1037. package/buttons/button-radio.directive.js +0 -126
  1038. package/buttons/button-radio.directive.js.map +0 -1
  1039. package/buttons/button-radio.directive.metadata.json +0 -1
  1040. package/buttons/button-radio.directive.ngfactory.js.map +0 -1
  1041. package/buttons/buttons.module.js +0 -20
  1042. package/buttons/buttons.module.js.map +0 -1
  1043. package/buttons/buttons.module.metadata.json +0 -1
  1044. package/buttons/buttons.module.ngfactory.js.map +0 -1
  1045. package/buttons/index.js +0 -5
  1046. package/buttons/index.js.map +0 -1
  1047. package/buttons/index.metadata.json +0 -1
  1048. package/carousel/carousel.component.html +0 -14
  1049. package/carousel/carousel.component.js +0 -419
  1050. package/carousel/carousel.component.js.map +0 -1
  1051. package/carousel/carousel.component.metadata.json +0 -1
  1052. package/carousel/carousel.component.ngfactory.js.map +0 -1
  1053. package/carousel/carousel.config.js +0 -19
  1054. package/carousel/carousel.config.js.map +0 -1
  1055. package/carousel/carousel.config.metadata.json +0 -1
  1056. package/carousel/carousel.config.ngfactory.js.map +0 -1
  1057. package/carousel/carousel.module.js +0 -23
  1058. package/carousel/carousel.module.js.map +0 -1
  1059. package/carousel/carousel.module.metadata.json +0 -1
  1060. package/carousel/carousel.module.ngfactory.js.map +0 -1
  1061. package/carousel/index.js +0 -5
  1062. package/carousel/index.js.map +0 -1
  1063. package/carousel/index.metadata.json +0 -1
  1064. package/carousel/slide.component.js +0 -41
  1065. package/carousel/slide.component.js.map +0 -1
  1066. package/carousel/slide.component.metadata.json +0 -1
  1067. package/carousel/slide.component.ngfactory.js.map +0 -1
  1068. package/chronos/create/check-overflow.js +0 -30
  1069. package/chronos/create/check-overflow.js.map +0 -1
  1070. package/chronos/create/check-overflow.metadata.json +0 -1
  1071. package/chronos/create/clone.js +0 -6
  1072. package/chronos/create/clone.js.map +0 -1
  1073. package/chronos/create/clone.metadata.json +0 -1
  1074. package/chronos/create/date-from-array.js +0 -23
  1075. package/chronos/create/date-from-array.js.map +0 -1
  1076. package/chronos/create/date-from-array.metadata.json +0 -1
  1077. package/chronos/create/from-anything.js +0 -106
  1078. package/chronos/create/from-anything.js.map +0 -1
  1079. package/chronos/create/from-anything.metadata.json +0 -1
  1080. package/chronos/create/from-array.js +0 -136
  1081. package/chronos/create/from-array.js.map +0 -1
  1082. package/chronos/create/from-array.metadata.json +0 -1
  1083. package/chronos/create/from-object.js +0 -16
  1084. package/chronos/create/from-object.js.map +0 -1
  1085. package/chronos/create/from-object.metadata.json +0 -1
  1086. package/chronos/create/from-string-and-array.js +0 -38
  1087. package/chronos/create/from-string-and-array.js.map +0 -1
  1088. package/chronos/create/from-string-and-array.metadata.json +0 -1
  1089. package/chronos/create/from-string-and-format.js +0 -106
  1090. package/chronos/create/from-string-and-format.js.map +0 -1
  1091. package/chronos/create/from-string-and-format.metadata.json +0 -1
  1092. package/chronos/create/from-string.js +0 -226
  1093. package/chronos/create/from-string.js.map +0 -1
  1094. package/chronos/create/from-string.metadata.json +0 -1
  1095. package/chronos/create/local.js +0 -10
  1096. package/chronos/create/local.js.map +0 -1
  1097. package/chronos/create/local.metadata.json +0 -1
  1098. package/chronos/create/parsing-flags.js +0 -26
  1099. package/chronos/create/parsing-flags.js.map +0 -1
  1100. package/chronos/create/parsing-flags.metadata.json +0 -1
  1101. package/chronos/create/parsing.types.js +0 -1
  1102. package/chronos/create/parsing.types.js.map +0 -1
  1103. package/chronos/create/parsing.types.metadata.json +0 -1
  1104. package/chronos/create/valid.js +0 -42
  1105. package/chronos/create/valid.js.map +0 -1
  1106. package/chronos/create/valid.metadata.json +0 -1
  1107. package/chronos/duration/bubble.js +0 -47
  1108. package/chronos/duration/bubble.js.map +0 -1
  1109. package/chronos/duration/bubble.metadata.json +0 -1
  1110. package/chronos/duration/constructor.js +0 -134
  1111. package/chronos/duration/constructor.js.map +0 -1
  1112. package/chronos/duration/constructor.metadata.json +0 -1
  1113. package/chronos/duration/create.js +0 -114
  1114. package/chronos/duration/create.js.map +0 -1
  1115. package/chronos/duration/create.metadata.json +0 -1
  1116. package/chronos/duration/humanize.js +0 -84
  1117. package/chronos/duration/humanize.js.map +0 -1
  1118. package/chronos/duration/humanize.metadata.json +0 -1
  1119. package/chronos/duration/valid.js +0 -45
  1120. package/chronos/duration/valid.js.map +0 -1
  1121. package/chronos/duration/valid.metadata.json +0 -1
  1122. package/chronos/format/format.js +0 -52
  1123. package/chronos/format/format.js.map +0 -1
  1124. package/chronos/format/format.metadata.json +0 -1
  1125. package/chronos/format.js +0 -48
  1126. package/chronos/format.js.map +0 -1
  1127. package/chronos/format.metadata.json +0 -1
  1128. package/chronos/i18n/ar.js +0 -132
  1129. package/chronos/i18n/ar.js.map +0 -1
  1130. package/chronos/i18n/ar.metadata.json +0 -1
  1131. package/chronos/i18n/cs.js +0 -191
  1132. package/chronos/i18n/cs.js.map +0 -1
  1133. package/chronos/i18n/cs.metadata.json +0 -1
  1134. package/chronos/i18n/da.js +0 -51
  1135. package/chronos/i18n/da.js.map +0 -1
  1136. package/chronos/i18n/da.metadata.json +0 -1
  1137. package/chronos/i18n/de.js +0 -73
  1138. package/chronos/i18n/de.js.map +0 -1
  1139. package/chronos/i18n/de.metadata.json +0 -1
  1140. package/chronos/i18n/en-gb.js +0 -62
  1141. package/chronos/i18n/en-gb.js.map +0 -1
  1142. package/chronos/i18n/en-gb.metadata.json +0 -1
  1143. package/chronos/i18n/es-do.js +0 -86
  1144. package/chronos/i18n/es-do.js.map +0 -1
  1145. package/chronos/i18n/es-do.metadata.json +0 -1
  1146. package/chronos/i18n/es-us.js +0 -80
  1147. package/chronos/i18n/es-us.js.map +0 -1
  1148. package/chronos/i18n/es-us.metadata.json +0 -1
  1149. package/chronos/i18n/es.js +0 -85
  1150. package/chronos/i18n/es.js.map +0 -1
  1151. package/chronos/i18n/es.metadata.json +0 -1
  1152. package/chronos/i18n/fi.js +0 -101
  1153. package/chronos/i18n/fi.js.map +0 -1
  1154. package/chronos/i18n/fi.metadata.json +0 -1
  1155. package/chronos/i18n/fr.js +0 -77
  1156. package/chronos/i18n/fr.js.map +0 -1
  1157. package/chronos/i18n/fr.metadata.json +0 -1
  1158. package/chronos/i18n/gl.js +0 -85
  1159. package/chronos/i18n/gl.js.map +0 -1
  1160. package/chronos/i18n/gl.metadata.json +0 -1
  1161. package/chronos/i18n/he.js +0 -98
  1162. package/chronos/i18n/he.js.map +0 -1
  1163. package/chronos/i18n/he.metadata.json +0 -1
  1164. package/chronos/i18n/hi.js +0 -125
  1165. package/chronos/i18n/hi.js.map +0 -1
  1166. package/chronos/i18n/hi.metadata.json +0 -1
  1167. package/chronos/i18n/hu.js +0 -105
  1168. package/chronos/i18n/hu.js.map +0 -1
  1169. package/chronos/i18n/hu.metadata.json +0 -1
  1170. package/chronos/i18n/id.js +0 -84
  1171. package/chronos/i18n/id.js.map +0 -1
  1172. package/chronos/i18n/id.metadata.json +0 -1
  1173. package/chronos/i18n/it.js +0 -66
  1174. package/chronos/i18n/it.js.map +0 -1
  1175. package/chronos/i18n/it.metadata.json +0 -1
  1176. package/chronos/i18n/ja.js +0 -75
  1177. package/chronos/i18n/ja.js.map +0 -1
  1178. package/chronos/i18n/ja.metadata.json +0 -1
  1179. package/chronos/i18n/ko.js +0 -77
  1180. package/chronos/i18n/ko.js.map +0 -1
  1181. package/chronos/i18n/ko.metadata.json +0 -1
  1182. package/chronos/i18n/mn.js +0 -99
  1183. package/chronos/i18n/mn.js.map +0 -1
  1184. package/chronos/i18n/mn.metadata.json +0 -1
  1185. package/chronos/i18n/nl-be.js +0 -82
  1186. package/chronos/i18n/nl-be.js.map +0 -1
  1187. package/chronos/i18n/nl-be.metadata.json +0 -1
  1188. package/chronos/i18n/nl.js +0 -81
  1189. package/chronos/i18n/nl.js.map +0 -1
  1190. package/chronos/i18n/nl.metadata.json +0 -1
  1191. package/chronos/i18n/pl.js +0 -121
  1192. package/chronos/i18n/pl.js.map +0 -1
  1193. package/chronos/i18n/pl.metadata.json +0 -1
  1194. package/chronos/i18n/pt-br.js +0 -56
  1195. package/chronos/i18n/pt-br.js.map +0 -1
  1196. package/chronos/i18n/pt-br.metadata.json +0 -1
  1197. package/chronos/i18n/ro.js +0 -67
  1198. package/chronos/i18n/ro.js.map +0 -1
  1199. package/chronos/i18n/ro.metadata.json +0 -1
  1200. package/chronos/i18n/ru.js +0 -182
  1201. package/chronos/i18n/ru.js.map +0 -1
  1202. package/chronos/i18n/ru.metadata.json +0 -1
  1203. package/chronos/i18n/sl.js +0 -185
  1204. package/chronos/i18n/sl.js.map +0 -1
  1205. package/chronos/i18n/sl.metadata.json +0 -1
  1206. package/chronos/i18n/sv.js +0 -64
  1207. package/chronos/i18n/sv.js.map +0 -1
  1208. package/chronos/i18n/sv.metadata.json +0 -1
  1209. package/chronos/i18n/th.js +0 -60
  1210. package/chronos/i18n/th.js.map +0 -1
  1211. package/chronos/i18n/th.metadata.json +0 -1
  1212. package/chronos/i18n/tr.js +0 -84
  1213. package/chronos/i18n/tr.js.map +0 -1
  1214. package/chronos/i18n/tr.metadata.json +0 -1
  1215. package/chronos/i18n/zh-cn.js +0 -115
  1216. package/chronos/i18n/zh-cn.js.map +0 -1
  1217. package/chronos/i18n/zh-cn.metadata.json +0 -1
  1218. package/chronos/index.js +0 -7
  1219. package/chronos/index.js.map +0 -1
  1220. package/chronos/index.metadata.json +0 -1
  1221. package/chronos/locale/calendar.js +0 -9
  1222. package/chronos/locale/calendar.js.map +0 -1
  1223. package/chronos/locale/calendar.metadata.json +0 -1
  1224. package/chronos/locale/locale.class.js +0 -550
  1225. package/chronos/locale/locale.class.js.map +0 -1
  1226. package/chronos/locale/locale.class.metadata.json +0 -1
  1227. package/chronos/locale/locale.defaults.js +0 -41
  1228. package/chronos/locale/locale.defaults.js.map +0 -1
  1229. package/chronos/locale/locale.defaults.metadata.json +0 -1
  1230. package/chronos/locale/locales.js +0 -194
  1231. package/chronos/locale/locales.js.map +0 -1
  1232. package/chronos/locale/locales.metadata.json +0 -1
  1233. package/chronos/moment/add-subtract.js +0 -35
  1234. package/chronos/moment/add-subtract.js.map +0 -1
  1235. package/chronos/moment/add-subtract.metadata.json +0 -1
  1236. package/chronos/moment/calendar.js +0 -43
  1237. package/chronos/moment/calendar.js.map +0 -1
  1238. package/chronos/moment/calendar.metadata.json +0 -1
  1239. package/chronos/moment/diff.js +0 -71
  1240. package/chronos/moment/diff.js.map +0 -1
  1241. package/chronos/moment/diff.metadata.json +0 -1
  1242. package/chronos/moment/min-max.js +0 -41
  1243. package/chronos/moment/min-max.js.map +0 -1
  1244. package/chronos/moment/min-max.metadata.json +0 -1
  1245. package/chronos/parse/regex.js +0 -49
  1246. package/chronos/parse/regex.js.map +0 -1
  1247. package/chronos/parse/regex.metadata.json +0 -1
  1248. package/chronos/parse/token.js +0 -31
  1249. package/chronos/parse/token.js.map +0 -1
  1250. package/chronos/parse/token.metadata.json +0 -1
  1251. package/chronos/test/chain.js +0 -738
  1252. package/chronos/test/chain.js.map +0 -1
  1253. package/chronos/test/chain.metadata.json +0 -1
  1254. package/chronos/types.js +0 -1
  1255. package/chronos/types.js.map +0 -1
  1256. package/chronos/types.metadata.json +0 -1
  1257. package/chronos/units/aliases.js +0 -35
  1258. package/chronos/units/aliases.js.map +0 -1
  1259. package/chronos/units/aliases.metadata.json +0 -1
  1260. package/chronos/units/constants.js +0 -11
  1261. package/chronos/units/constants.js.map +0 -1
  1262. package/chronos/units/constants.metadata.json +0 -1
  1263. package/chronos/units/day-of-month.js +0 -28
  1264. package/chronos/units/day-of-month.js.map +0 -1
  1265. package/chronos/units/day-of-week.js +0 -129
  1266. package/chronos/units/day-of-week.js.map +0 -1
  1267. package/chronos/units/day-of-week.metadata.json +0 -1
  1268. package/chronos/units/day-of-year.js +0 -34
  1269. package/chronos/units/day-of-year.js.map +0 -1
  1270. package/chronos/units/day-of-year.metadata.json +0 -1
  1271. package/chronos/units/hour.js +0 -122
  1272. package/chronos/units/hour.js.map +0 -1
  1273. package/chronos/units/index.js +0 -19
  1274. package/chronos/units/index.js.map +0 -1
  1275. package/chronos/units/millisecond.js +0 -58
  1276. package/chronos/units/millisecond.js.map +0 -1
  1277. package/chronos/units/minute.js +0 -20
  1278. package/chronos/units/minute.js.map +0 -1
  1279. package/chronos/units/month.js +0 -61
  1280. package/chronos/units/month.js.map +0 -1
  1281. package/chronos/units/month.metadata.json +0 -1
  1282. package/chronos/units/offset.js +0 -212
  1283. package/chronos/units/offset.js.map +0 -1
  1284. package/chronos/units/offset.metadata.json +0 -1
  1285. package/chronos/units/priorities.js +0 -21
  1286. package/chronos/units/priorities.js.map +0 -1
  1287. package/chronos/units/priorities.metadata.json +0 -1
  1288. package/chronos/units/quarter.js +0 -37
  1289. package/chronos/units/quarter.js.map +0 -1
  1290. package/chronos/units/quarter.metadata.json +0 -1
  1291. package/chronos/units/second.js +0 -20
  1292. package/chronos/units/second.js.map +0 -1
  1293. package/chronos/units/timestamp.js +0 -24
  1294. package/chronos/units/timestamp.js.map +0 -1
  1295. package/chronos/units/timezone.js +0 -17
  1296. package/chronos/units/timezone.js.map +0 -1
  1297. package/chronos/units/timezone.metadata.json +0 -1
  1298. package/chronos/units/week-calendar-utils.js +0 -63
  1299. package/chronos/units/week-calendar-utils.js.map +0 -1
  1300. package/chronos/units/week-calendar-utils.metadata.json +0 -1
  1301. package/chronos/units/week-year.js +0 -102
  1302. package/chronos/units/week-year.js.map +0 -1
  1303. package/chronos/units/week-year.metadata.json +0 -1
  1304. package/chronos/units/week.js +0 -56
  1305. package/chronos/units/week.js.map +0 -1
  1306. package/chronos/units/week.metadata.json +0 -1
  1307. package/chronos/units/year.js +0 -55
  1308. package/chronos/units/year.js.map +0 -1
  1309. package/chronos/units/year.metadata.json +0 -1
  1310. package/chronos/utils/abs-ceil.js +0 -4
  1311. package/chronos/utils/abs-ceil.js.map +0 -1
  1312. package/chronos/utils/abs-ceil.metadata.json +0 -1
  1313. package/chronos/utils/abs-round.js +0 -4
  1314. package/chronos/utils/abs-round.js.map +0 -1
  1315. package/chronos/utils/abs-round.metadata.json +0 -1
  1316. package/chronos/utils/compare-arrays.js +0 -15
  1317. package/chronos/utils/compare-arrays.js.map +0 -1
  1318. package/chronos/utils/compare-arrays.metadata.json +0 -1
  1319. package/chronos/utils/date-compare.js +0 -50
  1320. package/chronos/utils/date-compare.js.map +0 -1
  1321. package/chronos/utils/date-compare.metadata.json +0 -1
  1322. package/chronos/utils/date-getters.js +0 -75
  1323. package/chronos/utils/date-getters.js.map +0 -1
  1324. package/chronos/utils/date-getters.metadata.json +0 -1
  1325. package/chronos/utils/date-setters.js +0 -74
  1326. package/chronos/utils/date-setters.js.map +0 -1
  1327. package/chronos/utils/date-setters.metadata.json +0 -1
  1328. package/chronos/utils/defaults.js +0 -11
  1329. package/chronos/utils/defaults.js.map +0 -1
  1330. package/chronos/utils/defaults.metadata.json +0 -1
  1331. package/chronos/utils/start-end-of.js +0 -57
  1332. package/chronos/utils/start-end-of.js.map +0 -1
  1333. package/chronos/utils/start-end-of.metadata.json +0 -1
  1334. package/chronos/utils/type-checks.js +0 -56
  1335. package/chronos/utils/type-checks.js.map +0 -1
  1336. package/chronos/utils/type-checks.metadata.json +0 -1
  1337. package/chronos/utils/zero-fill.js +0 -10
  1338. package/chronos/utils/zero-fill.js.map +0 -1
  1339. package/chronos/utils/zero-fill.metadata.json +0 -1
  1340. package/chronos/utils.js +0 -7
  1341. package/chronos/utils.js.map +0 -1
  1342. package/chronos/utils.metadata.json +0 -1
  1343. package/collapse/collapse.directive.js +0 -98
  1344. package/collapse/collapse.directive.js.map +0 -1
  1345. package/collapse/collapse.directive.metadata.json +0 -1
  1346. package/collapse/collapse.directive.ngfactory.js.map +0 -1
  1347. package/collapse/collapse.module.js +0 -18
  1348. package/collapse/collapse.module.js.map +0 -1
  1349. package/collapse/collapse.module.metadata.json +0 -1
  1350. package/collapse/collapse.module.ngfactory.js.map +0 -1
  1351. package/collapse/index.js +0 -3
  1352. package/collapse/index.js.map +0 -1
  1353. package/collapse/index.metadata.json +0 -1
  1354. package/component-loader/bs-component-ref.class.js +0 -7
  1355. package/component-loader/bs-component-ref.class.js.map +0 -1
  1356. package/component-loader/bs-component-ref.class.metadata.json +0 -1
  1357. package/component-loader/component-loader.class.js +0 -258
  1358. package/component-loader/component-loader.class.js.map +0 -1
  1359. package/component-loader/component-loader.class.metadata.json +0 -1
  1360. package/component-loader/component-loader.factory.js +0 -50
  1361. package/component-loader/component-loader.factory.js.map +0 -1
  1362. package/component-loader/component-loader.factory.metadata.json +0 -1
  1363. package/component-loader/component-loader.factory.ngfactory.js.map +0 -1
  1364. package/component-loader/content-ref.class.js +0 -14
  1365. package/component-loader/content-ref.class.js.map +0 -1
  1366. package/component-loader/content-ref.class.metadata.json +0 -1
  1367. package/component-loader/index.d.ts +0 -3
  1368. package/component-loader/index.js +0 -4
  1369. package/component-loader/index.js.map +0 -1
  1370. package/component-loader/index.metadata.json +0 -1
  1371. package/component-loader/listen-options.model.js +0 -1
  1372. package/component-loader/listen-options.model.js.map +0 -1
  1373. package/component-loader/listen-options.model.metadata.json +0 -1
  1374. package/datepicker/base/bs-datepicker-container.js +0 -40
  1375. package/datepicker/base/bs-datepicker-container.js.map +0 -1
  1376. package/datepicker/base/bs-datepicker-container.metadata.json +0 -1
  1377. package/datepicker/bs-datepicker-input.directive.js +0 -134
  1378. package/datepicker/bs-datepicker-input.directive.js.map +0 -1
  1379. package/datepicker/bs-datepicker-input.directive.metadata.json +0 -1
  1380. package/datepicker/bs-datepicker-input.directive.ngfactory.js.map +0 -1
  1381. package/datepicker/bs-datepicker.component.js +0 -217
  1382. package/datepicker/bs-datepicker.component.js.map +0 -1
  1383. package/datepicker/bs-datepicker.component.metadata.json +0 -1
  1384. package/datepicker/bs-datepicker.component.ngfactory.js.map +0 -1
  1385. package/datepicker/bs-datepicker.config.js +0 -39
  1386. package/datepicker/bs-datepicker.config.js.map +0 -1
  1387. package/datepicker/bs-datepicker.config.metadata.json +0 -1
  1388. package/datepicker/bs-datepicker.config.ngfactory.js.map +0 -1
  1389. package/datepicker/bs-datepicker.module.js +0 -80
  1390. package/datepicker/bs-datepicker.module.js.map +0 -1
  1391. package/datepicker/bs-datepicker.module.metadata.json +0 -1
  1392. package/datepicker/bs-datepicker.module.ngfactory.js.map +0 -1
  1393. package/datepicker/bs-daterangepicker-input.directive.js +0 -150
  1394. package/datepicker/bs-daterangepicker-input.directive.js.map +0 -1
  1395. package/datepicker/bs-daterangepicker-input.directive.metadata.json +0 -1
  1396. package/datepicker/bs-daterangepicker-input.directive.ngfactory.js.map +0 -1
  1397. package/datepicker/bs-daterangepicker.component.js +0 -220
  1398. package/datepicker/bs-daterangepicker.component.js.map +0 -1
  1399. package/datepicker/bs-daterangepicker.component.metadata.json +0 -1
  1400. package/datepicker/bs-daterangepicker.component.ngfactory.js.map +0 -1
  1401. package/datepicker/bs-daterangepicker.config.js +0 -27
  1402. package/datepicker/bs-daterangepicker.config.js.map +0 -1
  1403. package/datepicker/bs-daterangepicker.config.metadata.json +0 -1
  1404. package/datepicker/bs-daterangepicker.config.ngfactory.js.map +0 -1
  1405. package/datepicker/bs-locale.service.js +0 -42
  1406. package/datepicker/bs-locale.service.js.map +0 -1
  1407. package/datepicker/bs-locale.service.metadata.json +0 -1
  1408. package/datepicker/bs-locale.service.ngfactory.js.map +0 -1
  1409. package/datepicker/date-formatter.js +0 -11
  1410. package/datepicker/date-formatter.js.map +0 -1
  1411. package/datepicker/date-formatter.metadata.json +0 -1
  1412. package/datepicker/datepicker-inner.component.js +0 -317
  1413. package/datepicker/datepicker-inner.component.js.map +0 -1
  1414. package/datepicker/datepicker-inner.component.metadata.json +0 -1
  1415. package/datepicker/datepicker-inner.component.ngfactory.js.map +0 -1
  1416. package/datepicker/datepicker.component.js +0 -114
  1417. package/datepicker/datepicker.component.js.map +0 -1
  1418. package/datepicker/datepicker.component.metadata.json +0 -1
  1419. package/datepicker/datepicker.component.ngfactory.js.map +0 -1
  1420. package/datepicker/datepicker.config.js +0 -28
  1421. package/datepicker/datepicker.config.js.map +0 -1
  1422. package/datepicker/datepicker.config.metadata.json +0 -1
  1423. package/datepicker/datepicker.config.ngfactory.js.map +0 -1
  1424. package/datepicker/datepicker.module.js +0 -39
  1425. package/datepicker/datepicker.module.js.map +0 -1
  1426. package/datepicker/datepicker.module.metadata.json +0 -1
  1427. package/datepicker/datepicker.module.ngfactory.js.map +0 -1
  1428. package/datepicker/daypicker.component.js +0 -116
  1429. package/datepicker/daypicker.component.js.map +0 -1
  1430. package/datepicker/daypicker.component.metadata.json +0 -1
  1431. package/datepicker/daypicker.component.ngfactory.js.map +0 -1
  1432. package/datepicker/engine/calc-days-calendar.js +0 -19
  1433. package/datepicker/engine/calc-days-calendar.js.map +0 -1
  1434. package/datepicker/engine/calc-days-calendar.metadata.json +0 -1
  1435. package/datepicker/engine/flag-days-calendar.js +0 -72
  1436. package/datepicker/engine/flag-days-calendar.js.map +0 -1
  1437. package/datepicker/engine/flag-days-calendar.metadata.json +0 -1
  1438. package/datepicker/engine/flag-months-calendar.js +0 -30
  1439. package/datepicker/engine/flag-months-calendar.js.map +0 -1
  1440. package/datepicker/engine/flag-months-calendar.metadata.json +0 -1
  1441. package/datepicker/engine/flag-years-calendar.js +0 -29
  1442. package/datepicker/engine/flag-years-calendar.js.map +0 -1
  1443. package/datepicker/engine/flag-years-calendar.metadata.json +0 -1
  1444. package/datepicker/engine/format-days-calendar.js +0 -34
  1445. package/datepicker/engine/format-days-calendar.js.map +0 -1
  1446. package/datepicker/engine/format-days-calendar.metadata.json +0 -1
  1447. package/datepicker/engine/format-months-calendar.js +0 -22
  1448. package/datepicker/engine/format-months-calendar.js.map +0 -1
  1449. package/datepicker/engine/format-months-calendar.metadata.json +0 -1
  1450. package/datepicker/engine/format-years-calendar.js +0 -30
  1451. package/datepicker/engine/format-years-calendar.js.map +0 -1
  1452. package/datepicker/engine/format-years-calendar.metadata.json +0 -1
  1453. package/datepicker/engine/view-mode.js +0 -4
  1454. package/datepicker/engine/view-mode.js.map +0 -1
  1455. package/datepicker/engine/view-mode.metadata.json +0 -1
  1456. package/datepicker/index.d.ts +0 -13
  1457. package/datepicker/index.js +0 -14
  1458. package/datepicker/index.js.map +0 -1
  1459. package/datepicker/index.metadata.json +0 -1
  1460. package/datepicker/models/index.js +0 -15
  1461. package/datepicker/models/index.js.map +0 -1
  1462. package/datepicker/models/index.metadata.json +0 -1
  1463. package/datepicker/monthpicker.component.js +0 -56
  1464. package/datepicker/monthpicker.component.js.map +0 -1
  1465. package/datepicker/monthpicker.component.metadata.json +0 -1
  1466. package/datepicker/monthpicker.component.ngfactory.js.map +0 -1
  1467. package/datepicker/reducer/_defaults.js +0 -5
  1468. package/datepicker/reducer/_defaults.js.map +0 -1
  1469. package/datepicker/reducer/_defaults.metadata.json +0 -1
  1470. package/datepicker/reducer/bs-datepicker.actions.js +0 -104
  1471. package/datepicker/reducer/bs-datepicker.actions.js.map +0 -1
  1472. package/datepicker/reducer/bs-datepicker.actions.metadata.json +0 -1
  1473. package/datepicker/reducer/bs-datepicker.actions.ngfactory.js.map +0 -1
  1474. package/datepicker/reducer/bs-datepicker.effects.js +0 -179
  1475. package/datepicker/reducer/bs-datepicker.effects.js.map +0 -1
  1476. package/datepicker/reducer/bs-datepicker.effects.metadata.json +0 -1
  1477. package/datepicker/reducer/bs-datepicker.effects.ngfactory.js.map +0 -1
  1478. package/datepicker/reducer/bs-datepicker.reducer.js +0 -261
  1479. package/datepicker/reducer/bs-datepicker.reducer.js.map +0 -1
  1480. package/datepicker/reducer/bs-datepicker.reducer.metadata.json +0 -1
  1481. package/datepicker/reducer/bs-datepicker.state.js +0 -16
  1482. package/datepicker/reducer/bs-datepicker.state.js.map +0 -1
  1483. package/datepicker/reducer/bs-datepicker.state.metadata.json +0 -1
  1484. package/datepicker/reducer/bs-datepicker.store.js +0 -36
  1485. package/datepicker/reducer/bs-datepicker.store.js.map +0 -1
  1486. package/datepicker/reducer/bs-datepicker.store.metadata.json +0 -1
  1487. package/datepicker/reducer/bs-datepicker.store.ngfactory.js.map +0 -1
  1488. package/datepicker/themes/bs/bs-calendar-layout.component.js +0 -14
  1489. package/datepicker/themes/bs/bs-calendar-layout.component.js.map +0 -1
  1490. package/datepicker/themes/bs/bs-calendar-layout.component.metadata.json +0 -1
  1491. package/datepicker/themes/bs/bs-calendar-layout.component.ngfactory.js.map +0 -1
  1492. package/datepicker/themes/bs/bs-current-date-view.component.js +0 -18
  1493. package/datepicker/themes/bs/bs-current-date-view.component.js.map +0 -1
  1494. package/datepicker/themes/bs/bs-current-date-view.component.metadata.json +0 -1
  1495. package/datepicker/themes/bs/bs-current-date-view.component.ngfactory.js.map +0 -1
  1496. package/datepicker/themes/bs/bs-custom-dates-view.component.js +0 -20
  1497. package/datepicker/themes/bs/bs-custom-dates-view.component.js.map +0 -1
  1498. package/datepicker/themes/bs/bs-custom-dates-view.component.metadata.json +0 -1
  1499. package/datepicker/themes/bs/bs-custom-dates-view.component.ngfactory.js.map +0 -1
  1500. package/datepicker/themes/bs/bs-datepicker-container.component.js +0 -87
  1501. package/datepicker/themes/bs/bs-datepicker-container.component.js.map +0 -1
  1502. package/datepicker/themes/bs/bs-datepicker-container.component.metadata.json +0 -1
  1503. package/datepicker/themes/bs/bs-datepicker-container.component.ngfactory.js.map +0 -1
  1504. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.js +0 -28
  1505. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.js.map +0 -1
  1506. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.metadata.json +0 -1
  1507. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.ngfactory.js.map +0 -1
  1508. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.js +0 -30
  1509. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.js.map +0 -1
  1510. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.metadata.json +0 -1
  1511. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.ngfactory.js.map +0 -1
  1512. package/datepicker/themes/bs/bs-datepicker-view.html +0 -61
  1513. package/datepicker/themes/bs/bs-daterangepicker-container.component.js +0 -105
  1514. package/datepicker/themes/bs/bs-daterangepicker-container.component.js.map +0 -1
  1515. package/datepicker/themes/bs/bs-daterangepicker-container.component.metadata.json +0 -1
  1516. package/datepicker/themes/bs/bs-daterangepicker-container.component.ngfactory.js.map +0 -1
  1517. package/datepicker/themes/bs/bs-days-calendar-view.component.js +0 -42
  1518. package/datepicker/themes/bs/bs-days-calendar-view.component.js.map +0 -1
  1519. package/datepicker/themes/bs/bs-days-calendar-view.component.metadata.json +0 -1
  1520. package/datepicker/themes/bs/bs-days-calendar-view.component.ngfactory.js.map +0 -1
  1521. package/datepicker/themes/bs/bs-months-calendar-view.component.js +0 -40
  1522. package/datepicker/themes/bs/bs-months-calendar-view.component.js.map +0 -1
  1523. package/datepicker/themes/bs/bs-months-calendar-view.component.metadata.json +0 -1
  1524. package/datepicker/themes/bs/bs-months-calendar-view.component.ngfactory.js.map +0 -1
  1525. package/datepicker/themes/bs/bs-timepicker-view.component.js +0 -17
  1526. package/datepicker/themes/bs/bs-timepicker-view.component.js.map +0 -1
  1527. package/datepicker/themes/bs/bs-timepicker-view.component.metadata.json +0 -1
  1528. package/datepicker/themes/bs/bs-timepicker-view.component.ngfactory.js.map +0 -1
  1529. package/datepicker/themes/bs/bs-years-calendar-view.component.js +0 -41
  1530. package/datepicker/themes/bs/bs-years-calendar-view.component.js.map +0 -1
  1531. package/datepicker/themes/bs/bs-years-calendar-view.component.metadata.json +0 -1
  1532. package/datepicker/themes/bs/bs-years-calendar-view.component.ngfactory.js.map +0 -1
  1533. package/datepicker/utils/bs-calendar-utils.js +0 -30
  1534. package/datepicker/utils/bs-calendar-utils.js.map +0 -1
  1535. package/datepicker/utils/bs-calendar-utils.metadata.json +0 -1
  1536. package/datepicker/utils/matrix-utils.js +0 -14
  1537. package/datepicker/utils/matrix-utils.js.map +0 -1
  1538. package/datepicker/utils/matrix-utils.metadata.json +0 -1
  1539. package/datepicker/yearpicker.component.js +0 -57
  1540. package/datepicker/yearpicker.component.js.map +0 -1
  1541. package/datepicker/yearpicker.component.metadata.json +0 -1
  1542. package/datepicker/yearpicker.component.ngfactory.js.map +0 -1
  1543. package/dropdown/bs-dropdown-container.component.js +0 -59
  1544. package/dropdown/bs-dropdown-container.component.js.map +0 -1
  1545. package/dropdown/bs-dropdown-container.component.metadata.json +0 -1
  1546. package/dropdown/bs-dropdown-container.component.ngfactory.js.map +0 -1
  1547. package/dropdown/bs-dropdown-menu.directive.js +0 -25
  1548. package/dropdown/bs-dropdown-menu.directive.js.map +0 -1
  1549. package/dropdown/bs-dropdown-menu.directive.metadata.json +0 -1
  1550. package/dropdown/bs-dropdown-menu.directive.ngfactory.js.map +0 -1
  1551. package/dropdown/bs-dropdown-toggle.directive.js +0 -63
  1552. package/dropdown/bs-dropdown-toggle.directive.js.map +0 -1
  1553. package/dropdown/bs-dropdown-toggle.directive.metadata.json +0 -1
  1554. package/dropdown/bs-dropdown-toggle.directive.ngfactory.js.map +0 -1
  1555. package/dropdown/bs-dropdown.config.js +0 -14
  1556. package/dropdown/bs-dropdown.config.js.map +0 -1
  1557. package/dropdown/bs-dropdown.config.metadata.json +0 -1
  1558. package/dropdown/bs-dropdown.config.ngfactory.js.map +0 -1
  1559. package/dropdown/bs-dropdown.directive.js +0 -300
  1560. package/dropdown/bs-dropdown.directive.js.map +0 -1
  1561. package/dropdown/bs-dropdown.directive.metadata.json +0 -1
  1562. package/dropdown/bs-dropdown.directive.ngfactory.js.map +0 -1
  1563. package/dropdown/bs-dropdown.module.js +0 -46
  1564. package/dropdown/bs-dropdown.module.js.map +0 -1
  1565. package/dropdown/bs-dropdown.module.metadata.json +0 -1
  1566. package/dropdown/bs-dropdown.module.ngfactory.js.map +0 -1
  1567. package/dropdown/bs-dropdown.state.js +0 -21
  1568. package/dropdown/bs-dropdown.state.js.map +0 -1
  1569. package/dropdown/bs-dropdown.state.metadata.json +0 -1
  1570. package/dropdown/bs-dropdown.state.ngfactory.js.map +0 -1
  1571. package/dropdown/index.js +0 -8
  1572. package/dropdown/index.js.map +0 -1
  1573. package/dropdown/index.metadata.json +0 -1
  1574. package/index.d.ts +0 -24
  1575. package/index.js +0 -25
  1576. package/index.js.map +0 -1
  1577. package/index.metadata.json +0 -1
  1578. package/locale.d.ts +0 -30
  1579. package/locale.js +0 -31
  1580. package/locale.js.map +0 -1
  1581. package/locale.metadata.json +0 -1
  1582. package/mini-ngrx/LICENCE +0 -21
  1583. package/mini-ngrx/index.js +0 -3
  1584. package/mini-ngrx/index.js.map +0 -1
  1585. package/mini-ngrx/index.metadata.json +0 -1
  1586. package/mini-ngrx/state.class.js +0 -30
  1587. package/mini-ngrx/state.class.js.map +0 -1
  1588. package/mini-ngrx/state.class.metadata.json +0 -1
  1589. package/mini-ngrx/store.class.js +0 -46
  1590. package/mini-ngrx/store.class.js.map +0 -1
  1591. package/mini-ngrx/store.class.metadata.json +0 -1
  1592. package/modal/bs-modal-ref.service.js +0 -15
  1593. package/modal/bs-modal-ref.service.js.map +0 -1
  1594. package/modal/bs-modal-ref.service.metadata.json +0 -1
  1595. package/modal/bs-modal-ref.service.ngfactory.js.map +0 -1
  1596. package/modal/bs-modal.service.js +0 -174
  1597. package/modal/bs-modal.service.js.map +0 -1
  1598. package/modal/bs-modal.service.metadata.json +0 -1
  1599. package/modal/bs-modal.service.ngfactory.js.map +0 -1
  1600. package/modal/index.js +0 -9
  1601. package/modal/index.js.map +0 -1
  1602. package/modal/index.metadata.json +0 -1
  1603. package/modal/modal-backdrop.component.js +0 -69
  1604. package/modal/modal-backdrop.component.js.map +0 -1
  1605. package/modal/modal-backdrop.component.metadata.json +0 -1
  1606. package/modal/modal-backdrop.component.ngfactory.js.map +0 -1
  1607. package/modal/modal-backdrop.options.js +0 -9
  1608. package/modal/modal-backdrop.options.js.map +0 -1
  1609. package/modal/modal-backdrop.options.metadata.json +0 -1
  1610. package/modal/modal-container.component.js +0 -103
  1611. package/modal/modal-container.component.js.map +0 -1
  1612. package/modal/modal-container.component.metadata.json +0 -1
  1613. package/modal/modal-container.component.ngfactory.js.map +0 -1
  1614. package/modal/modal-options.class.js +0 -44
  1615. package/modal/modal-options.class.js.map +0 -1
  1616. package/modal/modal-options.class.metadata.json +0 -1
  1617. package/modal/modal-options.class.ngfactory.js.map +0 -1
  1618. package/modal/modal.directive.js +0 -436
  1619. package/modal/modal.directive.js.map +0 -1
  1620. package/modal/modal.directive.metadata.json +0 -1
  1621. package/modal/modal.directive.ngfactory.js.map +0 -1
  1622. package/modal/modal.module.js +0 -31
  1623. package/modal/modal.module.js.map +0 -1
  1624. package/modal/modal.module.metadata.json +0 -1
  1625. package/modal/modal.module.ngfactory.js.map +0 -1
  1626. package/pagination/index.js +0 -5
  1627. package/pagination/index.js.map +0 -1
  1628. package/pagination/index.metadata.json +0 -1
  1629. package/pagination/pager.component.html +0 -12
  1630. package/pagination/pager.component.js +0 -249
  1631. package/pagination/pager.component.js.map +0 -1
  1632. package/pagination/pager.component.metadata.json +0 -1
  1633. package/pagination/pager.component.ngfactory.js.map +0 -1
  1634. package/pagination/pagination.component.html +0 -35
  1635. package/pagination/pagination.component.js +0 -249
  1636. package/pagination/pagination.component.js.map +0 -1
  1637. package/pagination/pagination.component.metadata.json +0 -1
  1638. package/pagination/pagination.component.ngfactory.js.map +0 -1
  1639. package/pagination/pagination.config.js +0 -31
  1640. package/pagination/pagination.config.js.map +0 -1
  1641. package/pagination/pagination.config.metadata.json +0 -1
  1642. package/pagination/pagination.config.ngfactory.js.map +0 -1
  1643. package/pagination/pagination.module.js +0 -22
  1644. package/pagination/pagination.module.js.map +0 -1
  1645. package/pagination/pagination.module.metadata.json +0 -1
  1646. package/pagination/pagination.module.ngfactory.js.map +0 -1
  1647. package/popover/index.js +0 -5
  1648. package/popover/index.js.map +0 -1
  1649. package/popover/index.metadata.json +0 -1
  1650. package/popover/popover-container.component.html +0 -5
  1651. package/popover/popover-container.component.js +0 -43
  1652. package/popover/popover-container.component.js.map +0 -1
  1653. package/popover/popover-container.component.metadata.json +0 -1
  1654. package/popover/popover-container.component.ngfactory.js.map +0 -1
  1655. package/popover/popover.config.js +0 -27
  1656. package/popover/popover.config.js.map +0 -1
  1657. package/popover/popover.config.metadata.json +0 -1
  1658. package/popover/popover.config.ngfactory.js.map +0 -1
  1659. package/popover/popover.directive.js +0 -165
  1660. package/popover/popover.directive.js.map +0 -1
  1661. package/popover/popover.directive.metadata.json +0 -1
  1662. package/popover/popover.directive.ngfactory.js.map +0 -1
  1663. package/popover/popover.module.js +0 -28
  1664. package/popover/popover.module.js.map +0 -1
  1665. package/popover/popover.module.metadata.json +0 -1
  1666. package/popover/popover.module.ngfactory.js.map +0 -1
  1667. package/positioning/index.js +0 -3
  1668. package/positioning/index.js.map +0 -1
  1669. package/positioning/index.metadata.json +0 -1
  1670. package/positioning/ng-positioning.js +0 -216
  1671. package/positioning/ng-positioning.js.map +0 -1
  1672. package/positioning/ng-positioning.metadata.json +0 -1
  1673. package/positioning/positioning.service.js +0 -26
  1674. package/positioning/positioning.service.js.map +0 -1
  1675. package/positioning/positioning.service.metadata.json +0 -1
  1676. package/positioning/positioning.service.ngfactory.js.map +0 -1
  1677. package/progressbar/bar.component.html +0 -1
  1678. package/progressbar/bar.component.js +0 -87
  1679. package/progressbar/bar.component.js.map +0 -1
  1680. package/progressbar/bar.component.metadata.json +0 -1
  1681. package/progressbar/bar.component.ngfactory.js.map +0 -1
  1682. package/progressbar/index.js +0 -5
  1683. package/progressbar/index.js.map +0 -1
  1684. package/progressbar/index.metadata.json +0 -1
  1685. package/progressbar/progressbar.component.html +0 -6
  1686. package/progressbar/progressbar.component.js +0 -76
  1687. package/progressbar/progressbar.component.js.map +0 -1
  1688. package/progressbar/progressbar.component.metadata.json +0 -1
  1689. package/progressbar/progressbar.component.ngfactory.js.map +0 -1
  1690. package/progressbar/progressbar.config.js +0 -15
  1691. package/progressbar/progressbar.config.js.map +0 -1
  1692. package/progressbar/progressbar.config.metadata.json +0 -1
  1693. package/progressbar/progressbar.config.ngfactory.js.map +0 -1
  1694. package/progressbar/progressbar.module.js +0 -22
  1695. package/progressbar/progressbar.module.js.map +0 -1
  1696. package/progressbar/progressbar.module.metadata.json +0 -1
  1697. package/progressbar/progressbar.module.ngfactory.js.map +0 -1
  1698. package/rating/index.js +0 -3
  1699. package/rating/index.js.map +0 -1
  1700. package/rating/index.metadata.json +0 -1
  1701. package/rating/rating.component.html +0 -18
  1702. package/rating/rating.component.js +0 -111
  1703. package/rating/rating.component.js.map +0 -1
  1704. package/rating/rating.component.metadata.json +0 -1
  1705. package/rating/rating.component.ngfactory.js.map +0 -1
  1706. package/rating/rating.module.js +0 -23
  1707. package/rating/rating.module.js.map +0 -1
  1708. package/rating/rating.module.metadata.json +0 -1
  1709. package/rating/rating.module.ngfactory.js.map +0 -1
  1710. package/sortable/draggable-item.js +0 -1
  1711. package/sortable/draggable-item.js.map +0 -1
  1712. package/sortable/draggable-item.metadata.json +0 -1
  1713. package/sortable/draggable-item.service.js +0 -34
  1714. package/sortable/draggable-item.service.js.map +0 -1
  1715. package/sortable/draggable-item.service.metadata.json +0 -1
  1716. package/sortable/draggable-item.service.ngfactory.js.map +0 -1
  1717. package/sortable/index.js +0 -4
  1718. package/sortable/index.js.map +0 -1
  1719. package/sortable/index.metadata.json +0 -1
  1720. package/sortable/sortable.component.js +0 -186
  1721. package/sortable/sortable.component.js.map +0 -1
  1722. package/sortable/sortable.component.metadata.json +0 -1
  1723. package/sortable/sortable.component.ngfactory.js.map +0 -1
  1724. package/sortable/sortable.module.js +0 -21
  1725. package/sortable/sortable.module.js.map +0 -1
  1726. package/sortable/sortable.module.metadata.json +0 -1
  1727. package/sortable/sortable.module.ngfactory.js.map +0 -1
  1728. package/spec/ng-bootstrap/license +0 -23
  1729. package/tabs/index.js +0 -7
  1730. package/tabs/index.js.map +0 -1
  1731. package/tabs/index.metadata.json +0 -1
  1732. package/tabs/ng-transclude.directive.js +0 -34
  1733. package/tabs/ng-transclude.directive.js.map +0 -1
  1734. package/tabs/ng-transclude.directive.metadata.json +0 -1
  1735. package/tabs/ng-transclude.directive.ngfactory.js.map +0 -1
  1736. package/tabs/tab-heading.directive.js +0 -19
  1737. package/tabs/tab-heading.directive.js.map +0 -1
  1738. package/tabs/tab-heading.directive.metadata.json +0 -1
  1739. package/tabs/tab-heading.directive.ngfactory.js.map +0 -1
  1740. package/tabs/tab.directive.js +0 -97
  1741. package/tabs/tab.directive.js.map +0 -1
  1742. package/tabs/tab.directive.metadata.json +0 -1
  1743. package/tabs/tab.directive.ngfactory.js.map +0 -1
  1744. package/tabs/tabs.module.js +0 -37
  1745. package/tabs/tabs.module.js.map +0 -1
  1746. package/tabs/tabs.module.metadata.json +0 -1
  1747. package/tabs/tabs.module.ngfactory.js.map +0 -1
  1748. package/tabs/tabset.component.html +0 -15
  1749. package/tabs/tabset.component.js +0 -134
  1750. package/tabs/tabset.component.js.map +0 -1
  1751. package/tabs/tabset.component.metadata.json +0 -1
  1752. package/tabs/tabset.component.ngfactory.js.map +0 -1
  1753. package/tabs/tabset.config.js +0 -13
  1754. package/tabs/tabset.config.js.map +0 -1
  1755. package/tabs/tabset.config.metadata.json +0 -1
  1756. package/tabs/tabset.config.ngfactory.js.map +0 -1
  1757. package/timepicker/index.js +0 -6
  1758. package/timepicker/index.js.map +0 -1
  1759. package/timepicker/index.metadata.json +0 -1
  1760. package/timepicker/reducer/timepicker.actions.js +0 -53
  1761. package/timepicker/reducer/timepicker.actions.js.map +0 -1
  1762. package/timepicker/reducer/timepicker.actions.metadata.json +0 -1
  1763. package/timepicker/reducer/timepicker.actions.ngfactory.js.map +0 -1
  1764. package/timepicker/reducer/timepicker.reducer.js +0 -90
  1765. package/timepicker/reducer/timepicker.reducer.js.map +0 -1
  1766. package/timepicker/reducer/timepicker.reducer.metadata.json +0 -1
  1767. package/timepicker/reducer/timepicker.store.js +0 -34
  1768. package/timepicker/reducer/timepicker.store.js.map +0 -1
  1769. package/timepicker/reducer/timepicker.store.metadata.json +0 -1
  1770. package/timepicker/reducer/timepicker.store.ngfactory.js.map +0 -1
  1771. package/timepicker/timepicker-controls.util.js +0 -122
  1772. package/timepicker/timepicker-controls.util.js.map +0 -1
  1773. package/timepicker/timepicker-controls.util.metadata.json +0 -1
  1774. package/timepicker/timepicker.component.html +0 -122
  1775. package/timepicker/timepicker.component.js +0 -288
  1776. package/timepicker/timepicker.component.js.map +0 -1
  1777. package/timepicker/timepicker.component.metadata.json +0 -1
  1778. package/timepicker/timepicker.component.ngfactory.js.map +0 -1
  1779. package/timepicker/timepicker.config.js +0 -36
  1780. package/timepicker/timepicker.config.js.map +0 -1
  1781. package/timepicker/timepicker.config.metadata.json +0 -1
  1782. package/timepicker/timepicker.config.ngfactory.js.map +0 -1
  1783. package/timepicker/timepicker.models.js +0 -1
  1784. package/timepicker/timepicker.models.js.map +0 -1
  1785. package/timepicker/timepicker.models.metadata.json +0 -1
  1786. package/timepicker/timepicker.module.js +0 -26
  1787. package/timepicker/timepicker.module.js.map +0 -1
  1788. package/timepicker/timepicker.module.metadata.json +0 -1
  1789. package/timepicker/timepicker.module.ngfactory.js.map +0 -1
  1790. package/timepicker/timepicker.utils.js +0 -141
  1791. package/timepicker/timepicker.utils.js.map +0 -1
  1792. package/timepicker/timepicker.utils.metadata.json +0 -1
  1793. package/tooltip/index.js +0 -5
  1794. package/tooltip/index.js.map +0 -1
  1795. package/tooltip/index.metadata.json +0 -1
  1796. package/tooltip/tooltip-container.component.js +0 -50
  1797. package/tooltip/tooltip-container.component.js.map +0 -1
  1798. package/tooltip/tooltip-container.component.metadata.json +0 -1
  1799. package/tooltip/tooltip-container.component.ngfactory.js.map +0 -1
  1800. package/tooltip/tooltip.config.js +0 -16
  1801. package/tooltip/tooltip.config.js.map +0 -1
  1802. package/tooltip/tooltip.config.metadata.json +0 -1
  1803. package/tooltip/tooltip.config.ngfactory.js.map +0 -1
  1804. package/tooltip/tooltip.directive.js +0 -315
  1805. package/tooltip/tooltip.directive.js.map +0 -1
  1806. package/tooltip/tooltip.directive.metadata.json +0 -1
  1807. package/tooltip/tooltip.directive.ngfactory.js.map +0 -1
  1808. package/tooltip/tooltip.module.js +0 -28
  1809. package/tooltip/tooltip.module.js.map +0 -1
  1810. package/tooltip/tooltip.module.metadata.json +0 -1
  1811. package/tooltip/tooltip.module.ngfactory.js.map +0 -1
  1812. package/tsconfig.spec.json +0 -41
  1813. package/typeahead/index.d.ts +0 -7
  1814. package/typeahead/index.js +0 -8
  1815. package/typeahead/index.js.map +0 -1
  1816. package/typeahead/index.metadata.json +0 -1
  1817. package/typeahead/latin-map.js +0 -828
  1818. package/typeahead/latin-map.js.map +0 -1
  1819. package/typeahead/latin-map.metadata.json +0 -1
  1820. package/typeahead/typeahead-container.component.html +0 -42
  1821. package/typeahead/typeahead-container.component.js +0 -240
  1822. package/typeahead/typeahead-container.component.js.map +0 -1
  1823. package/typeahead/typeahead-container.component.metadata.json +0 -1
  1824. package/typeahead/typeahead-container.component.ngfactory.js.map +0 -1
  1825. package/typeahead/typeahead-match.class.js +0 -18
  1826. package/typeahead/typeahead-match.class.js.map +0 -1
  1827. package/typeahead/typeahead-match.class.metadata.json +0 -1
  1828. package/typeahead/typeahead-options.class.js +0 -8
  1829. package/typeahead/typeahead-options.class.js.map +0 -1
  1830. package/typeahead/typeahead-options.class.metadata.json +0 -1
  1831. package/typeahead/typeahead-utils.js +0 -60
  1832. package/typeahead/typeahead-utils.js.map +0 -1
  1833. package/typeahead/typeahead-utils.metadata.json +0 -1
  1834. package/typeahead/typeahead.directive.js +0 -383
  1835. package/typeahead/typeahead.directive.js.map +0 -1
  1836. package/typeahead/typeahead.directive.metadata.json +0 -1
  1837. package/typeahead/typeahead.directive.ngfactory.js.map +0 -1
  1838. package/typeahead/typeahead.module.js +0 -27
  1839. package/typeahead/typeahead.module.js.map +0 -1
  1840. package/typeahead/typeahead.module.metadata.json +0 -1
  1841. package/typeahead/typeahead.module.ngfactory.js.map +0 -1
  1842. package/utils/decorators.js +0 -21
  1843. package/utils/decorators.js.map +0 -1
  1844. package/utils/decorators.metadata.json +0 -1
  1845. package/utils/facade/browser.js +0 -25
  1846. package/utils/facade/browser.js.map +0 -1
  1847. package/utils/facade/browser.metadata.json +0 -1
  1848. package/utils/index.d.ts +0 -6
  1849. package/utils/index.js +0 -7
  1850. package/utils/index.js.map +0 -1
  1851. package/utils/index.metadata.json +0 -1
  1852. package/utils/linked-list.class.js +0 -244
  1853. package/utils/linked-list.class.js.map +0 -1
  1854. package/utils/linked-list.class.metadata.json +0 -1
  1855. package/utils/theme-provider.js +0 -35
  1856. package/utils/theme-provider.js.map +0 -1
  1857. package/utils/theme-provider.metadata.json +0 -1
  1858. package/utils/trigger.class.js +0 -16
  1859. package/utils/trigger.class.js.map +0 -1
  1860. package/utils/trigger.class.metadata.json +0 -1
  1861. package/utils/triggers.js +0 -94
  1862. package/utils/triggers.js.map +0 -1
  1863. package/utils/triggers.metadata.json +0 -1
  1864. package/utils/utils.class.js +0 -25
  1865. package/utils/utils.class.js.map +0 -1
  1866. package/utils/utils.class.metadata.json +0 -1
  1867. package/utils/warn-once.js +0 -12
  1868. package/utils/warn-once.js.map +0 -1
  1869. package/utils/warn-once.metadata.json +0 -1
@@ -0,0 +1,1142 @@
1
+ import { Injectable, Component, ElementRef, HostListener, Renderer2, Directive, EventEmitter, Input, Output, ViewContainerRef, RendererFactory2, NgModule } from '@angular/core';
2
+ import { isBs3, Utils, document as document$1, window as window$1 } from 'ngx-bootstrap/utils';
3
+ import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
4
+ import { PositioningService } from 'ngx-bootstrap/positioning';
5
+
6
+ /**
7
+ * @fileoverview added by tsickle
8
+ * @suppress {checkTypes} checked by tsc
9
+ */
10
+ var BsModalRef = /** @class */ (function () {
11
+ function BsModalRef() {
12
+ /**
13
+ * Hides the modal
14
+ */
15
+ this.hide = Function;
16
+ /**
17
+ * Sets new class to modal window
18
+ */
19
+ this.setClass = Function;
20
+ }
21
+ BsModalRef.decorators = [
22
+ { type: Injectable }
23
+ ];
24
+ return BsModalRef;
25
+ }());
26
+
27
+ /**
28
+ * @fileoverview added by tsickle
29
+ * @suppress {checkTypes} checked by tsc
30
+ */
31
+ var ModalBackdropOptions = /** @class */ (function () {
32
+ function ModalBackdropOptions(options) {
33
+ this.animate = true;
34
+ Object.assign(this, options);
35
+ }
36
+ return ModalBackdropOptions;
37
+ }());
38
+
39
+ /**
40
+ * @fileoverview added by tsickle
41
+ * @suppress {checkTypes} checked by tsc
42
+ */
43
+ var ModalOptions = /** @class */ (function () {
44
+ function ModalOptions() {
45
+ }
46
+ ModalOptions.decorators = [
47
+ { type: Injectable }
48
+ ];
49
+ return ModalOptions;
50
+ }());
51
+ var /** @type {?} */ modalConfigDefaults = {
52
+ backdrop: true,
53
+ keyboard: true,
54
+ focus: true,
55
+ show: false,
56
+ ignoreBackdropClick: false,
57
+ class: '',
58
+ animated: true,
59
+ initialState: {}
60
+ };
61
+ var /** @type {?} */ CLASS_NAME = {
62
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
63
+ BACKDROP: 'modal-backdrop',
64
+ OPEN: 'modal-open',
65
+ FADE: 'fade',
66
+ IN: 'in',
67
+ // bs3
68
+ SHOW: 'show' // bs4
69
+ };
70
+ var /** @type {?} */ TRANSITION_DURATIONS = {
71
+ MODAL: 300,
72
+ BACKDROP: 150
73
+ };
74
+ var /** @type {?} */ DISMISS_REASONS = {
75
+ BACKRDOP: 'backdrop-click',
76
+ ESC: 'esc'
77
+ };
78
+
79
+ /**
80
+ * @fileoverview added by tsickle
81
+ * @suppress {checkTypes} checked by tsc
82
+ */
83
+ var ModalContainerComponent = /** @class */ (function () {
84
+ function ModalContainerComponent(options, _element, _renderer) {
85
+ this._element = _element;
86
+ this._renderer = _renderer;
87
+ this.isShown = false;
88
+ this.isModalHiding = false;
89
+ this.config = Object.assign({}, options);
90
+ }
91
+ /**
92
+ * @return {?}
93
+ */
94
+ ModalContainerComponent.prototype.ngOnInit = /**
95
+ * @return {?}
96
+ */
97
+ function () {
98
+ var _this = this;
99
+ if (this.isAnimated) {
100
+ this._renderer.addClass(this._element.nativeElement, CLASS_NAME.FADE);
101
+ }
102
+ this._renderer.setStyle(this._element.nativeElement, 'display', 'block');
103
+ setTimeout(function () {
104
+ _this.isShown = true;
105
+ _this._renderer.addClass(_this._element.nativeElement, isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW);
106
+ }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);
107
+ if (document && document.body) {
108
+ if (this.bsModalService.getModalsCount() === 1) {
109
+ this.bsModalService.checkScrollbar();
110
+ this.bsModalService.setScrollbar();
111
+ }
112
+ this._renderer.addClass(document.body, CLASS_NAME.OPEN);
113
+ }
114
+ if (this._element.nativeElement) {
115
+ this._element.nativeElement.focus();
116
+ }
117
+ };
118
+ /**
119
+ * @param {?} event
120
+ * @return {?}
121
+ */
122
+ ModalContainerComponent.prototype.onClick = /**
123
+ * @param {?} event
124
+ * @return {?}
125
+ */
126
+ function (event) {
127
+ if (this.config.ignoreBackdropClick ||
128
+ this.config.backdrop === 'static' ||
129
+ event.target !== this._element.nativeElement) {
130
+ return;
131
+ }
132
+ this.bsModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);
133
+ this.hide();
134
+ };
135
+ /**
136
+ * @param {?} event
137
+ * @return {?}
138
+ */
139
+ ModalContainerComponent.prototype.onEsc = /**
140
+ * @param {?} event
141
+ * @return {?}
142
+ */
143
+ function (event) {
144
+ if (!this.isShown) {
145
+ return;
146
+ }
147
+ // tslint:disable-next-line:deprecation
148
+ if (event.keyCode === 27 || event.key === 'Escape') {
149
+ event.preventDefault();
150
+ }
151
+ if (this.config.keyboard &&
152
+ this.level === this.bsModalService.getModalsCount()) {
153
+ this.bsModalService.setDismissReason(DISMISS_REASONS.ESC);
154
+ this.hide();
155
+ }
156
+ };
157
+ /**
158
+ * @return {?}
159
+ */
160
+ ModalContainerComponent.prototype.ngOnDestroy = /**
161
+ * @return {?}
162
+ */
163
+ function () {
164
+ if (this.isShown) {
165
+ this.hide();
166
+ }
167
+ };
168
+ /**
169
+ * @return {?}
170
+ */
171
+ ModalContainerComponent.prototype.hide = /**
172
+ * @return {?}
173
+ */
174
+ function () {
175
+ var _this = this;
176
+ if (this.isModalHiding || !this.isShown) {
177
+ return;
178
+ }
179
+ this.isModalHiding = true;
180
+ this._renderer.removeClass(this._element.nativeElement, isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW);
181
+ setTimeout(function () {
182
+ _this.isShown = false;
183
+ if (document &&
184
+ document.body &&
185
+ _this.bsModalService.getModalsCount() === 1) {
186
+ _this._renderer.removeClass(document.body, CLASS_NAME.OPEN);
187
+ }
188
+ _this.bsModalService.hide(_this.level);
189
+ _this.isModalHiding = false;
190
+ }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);
191
+ };
192
+ ModalContainerComponent.decorators = [
193
+ { type: Component, args: [{
194
+ selector: 'modal-container',
195
+ template: "\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n ",
196
+ host: {
197
+ class: 'modal',
198
+ role: 'dialog',
199
+ tabindex: '-1',
200
+ '[attr.aria-modal]': 'true'
201
+ }
202
+ }] }
203
+ ];
204
+ /** @nocollapse */
205
+ ModalContainerComponent.ctorParameters = function () { return [
206
+ { type: ModalOptions, },
207
+ { type: ElementRef, },
208
+ { type: Renderer2, },
209
+ ]; };
210
+ ModalContainerComponent.propDecorators = {
211
+ "onClick": [{ type: HostListener, args: ['click', ['$event'],] },],
212
+ "onEsc": [{ type: HostListener, args: ['window:keydown.esc', ['$event'],] },],
213
+ };
214
+ return ModalContainerComponent;
215
+ }());
216
+
217
+ /**
218
+ * @fileoverview added by tsickle
219
+ * @suppress {checkTypes} checked by tsc
220
+ */
221
+ /**
222
+ * This component will be added as background layout for modals if enabled
223
+ */
224
+ var ModalBackdropComponent = /** @class */ (function () {
225
+ function ModalBackdropComponent(element, renderer) {
226
+ this._isShown = false;
227
+ this.element = element;
228
+ this.renderer = renderer;
229
+ }
230
+ Object.defineProperty(ModalBackdropComponent.prototype, "isAnimated", {
231
+ get: /**
232
+ * @return {?}
233
+ */
234
+ function () {
235
+ return this._isAnimated;
236
+ },
237
+ set: /**
238
+ * @param {?} value
239
+ * @return {?}
240
+ */
241
+ function (value) {
242
+ this._isAnimated = value;
243
+ // this.renderer.setElementClass(this.element.nativeElement, `${ClassName.FADE}`, value);
244
+ },
245
+ enumerable: true,
246
+ configurable: true
247
+ });
248
+ Object.defineProperty(ModalBackdropComponent.prototype, "isShown", {
249
+ get: /**
250
+ * @return {?}
251
+ */
252
+ function () {
253
+ return this._isShown;
254
+ },
255
+ set: /**
256
+ * @param {?} value
257
+ * @return {?}
258
+ */
259
+ function (value) {
260
+ this._isShown = value;
261
+ if (value) {
262
+ this.renderer.addClass(this.element.nativeElement, "" + CLASS_NAME.IN);
263
+ }
264
+ else {
265
+ this.renderer.removeClass(this.element.nativeElement, "" + CLASS_NAME.IN);
266
+ }
267
+ if (!isBs3()) {
268
+ if (value) {
269
+ this.renderer.addClass(this.element.nativeElement, "" + CLASS_NAME.SHOW);
270
+ }
271
+ else {
272
+ this.renderer.removeClass(this.element.nativeElement, "" + CLASS_NAME.SHOW);
273
+ }
274
+ }
275
+ },
276
+ enumerable: true,
277
+ configurable: true
278
+ });
279
+ /**
280
+ * @return {?}
281
+ */
282
+ ModalBackdropComponent.prototype.ngOnInit = /**
283
+ * @return {?}
284
+ */
285
+ function () {
286
+ if (this.isAnimated) {
287
+ this.renderer.addClass(this.element.nativeElement, "" + CLASS_NAME.FADE);
288
+ Utils.reflow(this.element.nativeElement);
289
+ }
290
+ this.isShown = true;
291
+ };
292
+ ModalBackdropComponent.decorators = [
293
+ { type: Component, args: [{
294
+ selector: 'bs-modal-backdrop',
295
+ template: ' ',
296
+ host: { class: CLASS_NAME.BACKDROP }
297
+ }] }
298
+ ];
299
+ /** @nocollapse */
300
+ ModalBackdropComponent.ctorParameters = function () { return [
301
+ { type: ElementRef, },
302
+ { type: Renderer2, },
303
+ ]; };
304
+ return ModalBackdropComponent;
305
+ }());
306
+
307
+ /**
308
+ * @fileoverview added by tsickle
309
+ * @suppress {checkTypes} checked by tsc
310
+ */
311
+ var /** @type {?} */ TRANSITION_DURATION = 300;
312
+ var /** @type {?} */ BACKDROP_TRANSITION_DURATION = 150;
313
+ /**
314
+ * Mark any code with directive to show it's content in modal
315
+ */
316
+ var ModalDirective = /** @class */ (function () {
317
+ function ModalDirective(_element, _viewContainerRef, _renderer, clf) {
318
+ this._element = _element;
319
+ this._renderer = _renderer;
320
+ /**
321
+ * This event fires immediately when the `show` instance method is called.
322
+ */
323
+ this.onShow = new EventEmitter();
324
+ /**
325
+ * This event is fired when the modal has been made visible to the user
326
+ * (will wait for CSS transitions to complete)
327
+ */
328
+ this.onShown = new EventEmitter();
329
+ /**
330
+ * This event is fired immediately when
331
+ * the hide instance method has been called.
332
+ */
333
+ this.onHide = new EventEmitter();
334
+ /**
335
+ * This event is fired when the modal has finished being
336
+ * hidden from the user (will wait for CSS transitions to complete).
337
+ */
338
+ this.onHidden = new EventEmitter();
339
+ this._isShown = false;
340
+ this.isBodyOverflowing = false;
341
+ this.originalBodyPadding = 0;
342
+ this.scrollbarWidth = 0;
343
+ this.timerHideModal = 0;
344
+ this.timerRmBackDrop = 0;
345
+ this.isNested = false;
346
+ this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);
347
+ }
348
+ Object.defineProperty(ModalDirective.prototype, "config", {
349
+ get: /**
350
+ * @return {?}
351
+ */
352
+ function () {
353
+ return this._config;
354
+ },
355
+ set: /**
356
+ * allows to set modal configuration via element property
357
+ * @param {?} conf
358
+ * @return {?}
359
+ */
360
+ function (conf) {
361
+ this._config = this.getConfig(conf);
362
+ },
363
+ enumerable: true,
364
+ configurable: true
365
+ });
366
+ Object.defineProperty(ModalDirective.prototype, "isShown", {
367
+ get: /**
368
+ * @return {?}
369
+ */
370
+ function () {
371
+ return this._isShown;
372
+ },
373
+ enumerable: true,
374
+ configurable: true
375
+ });
376
+ /**
377
+ * @param {?} event
378
+ * @return {?}
379
+ */
380
+ ModalDirective.prototype.onClick = /**
381
+ * @param {?} event
382
+ * @return {?}
383
+ */
384
+ function (event) {
385
+ if (this.config.ignoreBackdropClick ||
386
+ this.config.backdrop === 'static' ||
387
+ event.target !== this._element.nativeElement) {
388
+ return;
389
+ }
390
+ this.dismissReason = DISMISS_REASONS.BACKRDOP;
391
+ this.hide(event);
392
+ };
393
+ /**
394
+ * @param {?} event
395
+ * @return {?}
396
+ */
397
+ ModalDirective.prototype.onEsc = /**
398
+ * @param {?} event
399
+ * @return {?}
400
+ */
401
+ function (event) {
402
+ if (!this._isShown) {
403
+ return;
404
+ }
405
+ // tslint:disable-next-line:deprecation
406
+ if (event.keyCode === 27 || event.key === 'Escape') {
407
+ event.preventDefault();
408
+ }
409
+ if (this.config.keyboard) {
410
+ this.dismissReason = DISMISS_REASONS.ESC;
411
+ this.hide();
412
+ }
413
+ };
414
+ /**
415
+ * @return {?}
416
+ */
417
+ ModalDirective.prototype.ngOnDestroy = /**
418
+ * @return {?}
419
+ */
420
+ function () {
421
+ this.config = void 0;
422
+ if (this._isShown) {
423
+ this._isShown = false;
424
+ this.hideModal();
425
+ this._backdrop.dispose();
426
+ }
427
+ };
428
+ /**
429
+ * @return {?}
430
+ */
431
+ ModalDirective.prototype.ngOnInit = /**
432
+ * @return {?}
433
+ */
434
+ function () {
435
+ var _this = this;
436
+ this._config = this._config || this.getConfig();
437
+ setTimeout(function () {
438
+ if (_this._config.show) {
439
+ _this.show();
440
+ }
441
+ }, 0);
442
+ };
443
+ /* Public methods */
444
+ /** Allows to manually toggle modal visibility */
445
+ /**
446
+ * Allows to manually toggle modal visibility
447
+ * @return {?}
448
+ */
449
+ ModalDirective.prototype.toggle = /**
450
+ * Allows to manually toggle modal visibility
451
+ * @return {?}
452
+ */
453
+ function () {
454
+ return this._isShown ? this.hide() : this.show();
455
+ };
456
+ /** Allows to manually open modal */
457
+ /**
458
+ * Allows to manually open modal
459
+ * @return {?}
460
+ */
461
+ ModalDirective.prototype.show = /**
462
+ * Allows to manually open modal
463
+ * @return {?}
464
+ */
465
+ function () {
466
+ var _this = this;
467
+ this.dismissReason = null;
468
+ this.onShow.emit(this);
469
+ if (this._isShown) {
470
+ return;
471
+ }
472
+ clearTimeout(this.timerHideModal);
473
+ clearTimeout(this.timerRmBackDrop);
474
+ this._isShown = true;
475
+ this.checkScrollbar();
476
+ this.setScrollbar();
477
+ if (document$1 && document$1.body) {
478
+ if (document$1.body.classList.contains(CLASS_NAME.OPEN)) {
479
+ this.isNested = true;
480
+ }
481
+ else {
482
+ this._renderer.addClass(document$1.body, CLASS_NAME.OPEN);
483
+ }
484
+ }
485
+ this.showBackdrop(function () {
486
+ _this.showElement();
487
+ });
488
+ };
489
+ /** Allows to manually close modal */
490
+ /**
491
+ * Allows to manually close modal
492
+ * @param {?=} event
493
+ * @return {?}
494
+ */
495
+ ModalDirective.prototype.hide = /**
496
+ * Allows to manually close modal
497
+ * @param {?=} event
498
+ * @return {?}
499
+ */
500
+ function (event) {
501
+ var _this = this;
502
+ if (event) {
503
+ event.preventDefault();
504
+ }
505
+ this.onHide.emit(this);
506
+ // todo: add an option to prevent hiding
507
+ if (!this._isShown) {
508
+ return;
509
+ }
510
+ window$1.clearTimeout(this.timerHideModal);
511
+ window$1.clearTimeout(this.timerRmBackDrop);
512
+ this._isShown = false;
513
+ this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.IN);
514
+ if (!isBs3()) {
515
+ this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);
516
+ }
517
+ // this._addClassIn = false;
518
+ if (this._config.animated) {
519
+ this.timerHideModal = window$1.setTimeout(function () { return _this.hideModal(); }, TRANSITION_DURATION);
520
+ }
521
+ else {
522
+ this.hideModal();
523
+ }
524
+ };
525
+ /** Private methods @internal */
526
+ /**
527
+ * Private methods \@internal
528
+ * @param {?=} config
529
+ * @return {?}
530
+ */
531
+ ModalDirective.prototype.getConfig = /**
532
+ * Private methods \@internal
533
+ * @param {?=} config
534
+ * @return {?}
535
+ */
536
+ function (config) {
537
+ return Object.assign({}, modalConfigDefaults, config);
538
+ };
539
+ /**
540
+ * Show dialog
541
+ * @internal
542
+ */
543
+ /**
544
+ * Show dialog
545
+ * \@internal
546
+ * @return {?}
547
+ */
548
+ ModalDirective.prototype.showElement = /**
549
+ * Show dialog
550
+ * \@internal
551
+ * @return {?}
552
+ */
553
+ function () {
554
+ var _this = this;
555
+ // todo: replace this with component loader usage
556
+ if (!this._element.nativeElement.parentNode ||
557
+ this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE) {
558
+ // don't move modals dom position
559
+ if (document$1 && document$1.body) {
560
+ document$1.body.appendChild(this._element.nativeElement);
561
+ }
562
+ }
563
+ this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'false');
564
+ this._renderer.setAttribute(this._element.nativeElement, 'aria-modal', 'true');
565
+ this._renderer.setStyle(this._element.nativeElement, 'display', 'block');
566
+ this._renderer.setProperty(this._element.nativeElement, 'scrollTop', 0);
567
+ if (this._config.animated) {
568
+ Utils.reflow(this._element.nativeElement);
569
+ }
570
+ // this._addClassIn = true;
571
+ this._renderer.addClass(this._element.nativeElement, CLASS_NAME.IN);
572
+ if (!isBs3()) {
573
+ this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);
574
+ }
575
+ var /** @type {?} */ transitionComplete = function () {
576
+ if (_this._config.focus) {
577
+ _this._element.nativeElement.focus();
578
+ }
579
+ _this.onShown.emit(_this);
580
+ };
581
+ if (this._config.animated) {
582
+ setTimeout(transitionComplete, TRANSITION_DURATION);
583
+ }
584
+ else {
585
+ transitionComplete();
586
+ }
587
+ };
588
+ /** @internal */
589
+ /**
590
+ * \@internal
591
+ * @return {?}
592
+ */
593
+ ModalDirective.prototype.hideModal = /**
594
+ * \@internal
595
+ * @return {?}
596
+ */
597
+ function () {
598
+ var _this = this;
599
+ this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'true');
600
+ this._renderer.setStyle(this._element.nativeElement, 'display', 'none');
601
+ this.showBackdrop(function () {
602
+ if (!_this.isNested) {
603
+ if (document$1 && document$1.body) {
604
+ _this._renderer.removeClass(document$1.body, CLASS_NAME.OPEN);
605
+ }
606
+ _this.resetScrollbar();
607
+ }
608
+ _this.resetAdjustments();
609
+ _this.focusOtherModal();
610
+ _this.onHidden.emit(_this);
611
+ });
612
+ };
613
+ // todo: original show was calling a callback when done, but we can use
614
+ // promise
615
+ /** @internal */
616
+ /**
617
+ * \@internal
618
+ * @param {?=} callback
619
+ * @return {?}
620
+ */
621
+ ModalDirective.prototype.showBackdrop = /**
622
+ * \@internal
623
+ * @param {?=} callback
624
+ * @return {?}
625
+ */
626
+ function (callback) {
627
+ var _this = this;
628
+ if (this._isShown &&
629
+ this.config.backdrop &&
630
+ (!this.backdrop || !this.backdrop.instance.isShown)) {
631
+ this.removeBackdrop();
632
+ this._backdrop
633
+ .attach(ModalBackdropComponent)
634
+ .to('body')
635
+ .show({ isAnimated: this._config.animated });
636
+ this.backdrop = this._backdrop._componentRef;
637
+ if (!callback) {
638
+ return;
639
+ }
640
+ if (!this._config.animated) {
641
+ callback();
642
+ return;
643
+ }
644
+ setTimeout(callback, BACKDROP_TRANSITION_DURATION);
645
+ }
646
+ else if (!this._isShown && this.backdrop) {
647
+ this.backdrop.instance.isShown = false;
648
+ var /** @type {?} */ callbackRemove = function () {
649
+ _this.removeBackdrop();
650
+ if (callback) {
651
+ callback();
652
+ }
653
+ };
654
+ if (this.backdrop.instance.isAnimated) {
655
+ this.timerRmBackDrop = window$1.setTimeout(callbackRemove, BACKDROP_TRANSITION_DURATION);
656
+ }
657
+ else {
658
+ callbackRemove();
659
+ }
660
+ }
661
+ else if (callback) {
662
+ callback();
663
+ }
664
+ };
665
+ /** @internal */
666
+ /**
667
+ * \@internal
668
+ * @return {?}
669
+ */
670
+ ModalDirective.prototype.removeBackdrop = /**
671
+ * \@internal
672
+ * @return {?}
673
+ */
674
+ function () {
675
+ this._backdrop.hide();
676
+ };
677
+ /** Events tricks */
678
+ // no need for it
679
+ // protected setEscapeEvent():void {
680
+ // if (this._isShown && this._config.keyboard) {
681
+ // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {
682
+ // if (event.which === 27) {
683
+ // this.hide()
684
+ // }
685
+ // })
686
+ //
687
+ // } else if (!this._isShown) {
688
+ // $(this._element).off(Event.KEYDOWN_DISMISS)
689
+ // }
690
+ // }
691
+ // protected setResizeEvent():void {
692
+ // console.log(this.renderer.listenGlobal('', Event.RESIZE));
693
+ // if (this._isShown) {
694
+ // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))
695
+ // } else {
696
+ // $(window).off(Event.RESIZE)
697
+ // }
698
+ // }
699
+ /**
700
+ * Events tricks
701
+ * @return {?}
702
+ */
703
+ ModalDirective.prototype.focusOtherModal = /**
704
+ * Events tricks
705
+ * @return {?}
706
+ */
707
+ function () {
708
+ if (this._element.nativeElement.parentElement == null) {
709
+ return;
710
+ }
711
+ var /** @type {?} */ otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');
712
+ if (!otherOpenedModals.length) {
713
+ return;
714
+ }
715
+ otherOpenedModals[otherOpenedModals.length - 1].focus();
716
+ };
717
+ /** @internal */
718
+ /**
719
+ * \@internal
720
+ * @return {?}
721
+ */
722
+ ModalDirective.prototype.resetAdjustments = /**
723
+ * \@internal
724
+ * @return {?}
725
+ */
726
+ function () {
727
+ this._renderer.setStyle(this._element.nativeElement, 'paddingLeft', '');
728
+ this._renderer.setStyle(this._element.nativeElement, 'paddingRight', '');
729
+ };
730
+ /** Scroll bar tricks */
731
+ /** @internal */
732
+ /**
733
+ * \@internal
734
+ * @return {?}
735
+ */
736
+ ModalDirective.prototype.checkScrollbar = /**
737
+ * \@internal
738
+ * @return {?}
739
+ */
740
+ function () {
741
+ this.isBodyOverflowing = document$1.body.clientWidth < window$1.innerWidth;
742
+ this.scrollbarWidth = this.getScrollbarWidth();
743
+ };
744
+ /**
745
+ * @return {?}
746
+ */
747
+ ModalDirective.prototype.setScrollbar = /**
748
+ * @return {?}
749
+ */
750
+ function () {
751
+ if (!document$1) {
752
+ return;
753
+ }
754
+ this.originalBodyPadding = parseInt(window$1
755
+ .getComputedStyle(document$1.body)
756
+ .getPropertyValue('padding-right') || 0, 10);
757
+ if (this.isBodyOverflowing) {
758
+ document$1.body.style.paddingRight = this.originalBodyPadding +
759
+ this.scrollbarWidth + "px";
760
+ }
761
+ };
762
+ /**
763
+ * @return {?}
764
+ */
765
+ ModalDirective.prototype.resetScrollbar = /**
766
+ * @return {?}
767
+ */
768
+ function () {
769
+ document$1.body.style.paddingRight = this.originalBodyPadding + "px";
770
+ };
771
+ // thx d.walsh
772
+ /**
773
+ * @return {?}
774
+ */
775
+ ModalDirective.prototype.getScrollbarWidth = /**
776
+ * @return {?}
777
+ */
778
+ function () {
779
+ var /** @type {?} */ scrollDiv = this._renderer.createElement('div');
780
+ this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);
781
+ this._renderer.appendChild(document$1.body, scrollDiv);
782
+ var /** @type {?} */ scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
783
+ this._renderer.removeChild(document$1.body, scrollDiv);
784
+ return scrollbarWidth;
785
+ };
786
+ ModalDirective.decorators = [
787
+ { type: Directive, args: [{
788
+ selector: '[bsModal]',
789
+ exportAs: 'bs-modal'
790
+ },] }
791
+ ];
792
+ /** @nocollapse */
793
+ ModalDirective.ctorParameters = function () { return [
794
+ { type: ElementRef, },
795
+ { type: ViewContainerRef, },
796
+ { type: Renderer2, },
797
+ { type: ComponentLoaderFactory, },
798
+ ]; };
799
+ ModalDirective.propDecorators = {
800
+ "config": [{ type: Input },],
801
+ "onShow": [{ type: Output },],
802
+ "onShown": [{ type: Output },],
803
+ "onHide": [{ type: Output },],
804
+ "onHidden": [{ type: Output },],
805
+ "onClick": [{ type: HostListener, args: ['click', ['$event'],] },],
806
+ "onEsc": [{ type: HostListener, args: ['keydown.esc', ['$event'],] },],
807
+ };
808
+ return ModalDirective;
809
+ }());
810
+
811
+ /**
812
+ * @fileoverview added by tsickle
813
+ * @suppress {checkTypes} checked by tsc
814
+ */
815
+ var BsModalService = /** @class */ (function () {
816
+ function BsModalService(rendererFactory, clf) {
817
+ this.clf = clf;
818
+ // constructor props
819
+ this.config = modalConfigDefaults;
820
+ // tslint:disable-next-line:no-any
821
+ this.onShow = new EventEmitter();
822
+ // tslint:disable-next-line:no-any
823
+ this.onShown = new EventEmitter();
824
+ // tslint:disable-next-line:no-any
825
+ this.onHide = new EventEmitter();
826
+ // tslint:disable-next-line:no-any
827
+ this.onHidden = new EventEmitter();
828
+ this.isBodyOverflowing = false;
829
+ this.originalBodyPadding = 0;
830
+ this.scrollbarWidth = 0;
831
+ this.modalsCount = 0;
832
+ this.lastDismissReason = '';
833
+ this.loaders = [];
834
+ this._backdropLoader = this.clf.createLoader(null, null, null);
835
+ this._renderer = rendererFactory.createRenderer(null, null);
836
+ }
837
+ /** Shows a modal */
838
+ // tslint:disable-next-line:no-any
839
+ /**
840
+ * Shows a modal
841
+ * @param {?} content
842
+ * @param {?=} config
843
+ * @return {?}
844
+ */
845
+ BsModalService.prototype.show = /**
846
+ * Shows a modal
847
+ * @param {?} content
848
+ * @param {?=} config
849
+ * @return {?}
850
+ */
851
+ function (content, config) {
852
+ this.modalsCount++;
853
+ this._createLoaders();
854
+ this.config = Object.assign({}, modalConfigDefaults, config);
855
+ this._showBackdrop();
856
+ this.lastDismissReason = null;
857
+ return this._showModal(content);
858
+ };
859
+ /**
860
+ * @param {?} level
861
+ * @return {?}
862
+ */
863
+ BsModalService.prototype.hide = /**
864
+ * @param {?} level
865
+ * @return {?}
866
+ */
867
+ function (level) {
868
+ var _this = this;
869
+ if (this.modalsCount === 1) {
870
+ this._hideBackdrop();
871
+ this.resetScrollbar();
872
+ }
873
+ this.modalsCount = this.modalsCount >= 1 ? this.modalsCount - 1 : 0;
874
+ setTimeout(function () {
875
+ _this._hideModal(level);
876
+ _this.removeLoaders(level);
877
+ }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);
878
+ };
879
+ /**
880
+ * @return {?}
881
+ */
882
+ BsModalService.prototype._showBackdrop = /**
883
+ * @return {?}
884
+ */
885
+ function () {
886
+ var /** @type {?} */ isBackdropEnabled = this.config.backdrop || this.config.backdrop === 'static';
887
+ var /** @type {?} */ isBackdropInDOM = !this.backdropRef || !this.backdropRef.instance.isShown;
888
+ if (this.modalsCount === 1) {
889
+ this.removeBackdrop();
890
+ if (isBackdropEnabled && isBackdropInDOM) {
891
+ this._backdropLoader
892
+ .attach(ModalBackdropComponent)
893
+ .to('body')
894
+ .show({ isAnimated: this.config.animated });
895
+ this.backdropRef = this._backdropLoader._componentRef;
896
+ }
897
+ }
898
+ };
899
+ /**
900
+ * @return {?}
901
+ */
902
+ BsModalService.prototype._hideBackdrop = /**
903
+ * @return {?}
904
+ */
905
+ function () {
906
+ var _this = this;
907
+ if (!this.backdropRef) {
908
+ return;
909
+ }
910
+ this.backdropRef.instance.isShown = false;
911
+ var /** @type {?} */ duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;
912
+ setTimeout(function () { return _this.removeBackdrop(); }, duration);
913
+ };
914
+ // tslint:disable-next-line:no-any
915
+ /**
916
+ * @param {?} content
917
+ * @return {?}
918
+ */
919
+ BsModalService.prototype._showModal = /**
920
+ * @param {?} content
921
+ * @return {?}
922
+ */
923
+ function (content) {
924
+ var /** @type {?} */ modalLoader = this.loaders[this.loaders.length - 1];
925
+ var /** @type {?} */ bsModalRef = new BsModalRef();
926
+ var /** @type {?} */ modalContainerRef = modalLoader
927
+ .provide({ provide: ModalOptions, useValue: this.config })
928
+ .provide({ provide: BsModalRef, useValue: bsModalRef })
929
+ .attach(ModalContainerComponent)
930
+ .to('body')
931
+ .show({ content: content, isAnimated: this.config.animated, initialState: this.config.initialState, bsModalService: this });
932
+ modalContainerRef.instance.level = this.getModalsCount();
933
+ bsModalRef.hide = function () {
934
+ modalContainerRef.instance.hide();
935
+ };
936
+ bsModalRef.content = modalLoader.getInnerComponent() || null;
937
+ bsModalRef.setClass = function (newClass) {
938
+ modalContainerRef.instance.config.class = newClass;
939
+ };
940
+ return bsModalRef;
941
+ };
942
+ /**
943
+ * @param {?} level
944
+ * @return {?}
945
+ */
946
+ BsModalService.prototype._hideModal = /**
947
+ * @param {?} level
948
+ * @return {?}
949
+ */
950
+ function (level) {
951
+ var /** @type {?} */ modalLoader = this.loaders[level - 1];
952
+ if (modalLoader) {
953
+ modalLoader.hide();
954
+ }
955
+ };
956
+ /**
957
+ * @return {?}
958
+ */
959
+ BsModalService.prototype.getModalsCount = /**
960
+ * @return {?}
961
+ */
962
+ function () {
963
+ return this.modalsCount;
964
+ };
965
+ /**
966
+ * @param {?} reason
967
+ * @return {?}
968
+ */
969
+ BsModalService.prototype.setDismissReason = /**
970
+ * @param {?} reason
971
+ * @return {?}
972
+ */
973
+ function (reason) {
974
+ this.lastDismissReason = reason;
975
+ };
976
+ /**
977
+ * @return {?}
978
+ */
979
+ BsModalService.prototype.removeBackdrop = /**
980
+ * @return {?}
981
+ */
982
+ function () {
983
+ this._backdropLoader.hide();
984
+ this.backdropRef = null;
985
+ };
986
+ /** AFTER PR MERGE MODAL.COMPONENT WILL BE USING THIS CODE */
987
+ /** Scroll bar tricks */
988
+ /** @internal */
989
+ /**
990
+ * \@internal
991
+ * @return {?}
992
+ */
993
+ BsModalService.prototype.checkScrollbar = /**
994
+ * \@internal
995
+ * @return {?}
996
+ */
997
+ function () {
998
+ this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;
999
+ this.scrollbarWidth = this.getScrollbarWidth();
1000
+ };
1001
+ /**
1002
+ * @return {?}
1003
+ */
1004
+ BsModalService.prototype.setScrollbar = /**
1005
+ * @return {?}
1006
+ */
1007
+ function () {
1008
+ if (!document) {
1009
+ return;
1010
+ }
1011
+ this.originalBodyPadding = parseInt(window
1012
+ .getComputedStyle(document.body)
1013
+ .getPropertyValue('padding-right') || '0', 10);
1014
+ if (this.isBodyOverflowing) {
1015
+ document.body.style.paddingRight = this.originalBodyPadding +
1016
+ this.scrollbarWidth + "px";
1017
+ }
1018
+ };
1019
+ /**
1020
+ * @return {?}
1021
+ */
1022
+ BsModalService.prototype.resetScrollbar = /**
1023
+ * @return {?}
1024
+ */
1025
+ function () {
1026
+ document.body.style.paddingRight = this.originalBodyPadding + "px";
1027
+ };
1028
+ /**
1029
+ * @return {?}
1030
+ */
1031
+ BsModalService.prototype.getScrollbarWidth = /**
1032
+ * @return {?}
1033
+ */
1034
+ function () {
1035
+ var /** @type {?} */ scrollDiv = this._renderer.createElement('div');
1036
+ this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);
1037
+ this._renderer.appendChild(document.body, scrollDiv);
1038
+ var /** @type {?} */ scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
1039
+ this._renderer.removeChild(document.body, scrollDiv);
1040
+ return scrollbarWidth;
1041
+ };
1042
+ /**
1043
+ * @return {?}
1044
+ */
1045
+ BsModalService.prototype._createLoaders = /**
1046
+ * @return {?}
1047
+ */
1048
+ function () {
1049
+ var /** @type {?} */ loader = this.clf.createLoader(null, null, null);
1050
+ this.copyEvent(loader.onBeforeShow, this.onShow);
1051
+ this.copyEvent(loader.onShown, this.onShown);
1052
+ this.copyEvent(loader.onBeforeHide, this.onHide);
1053
+ this.copyEvent(loader.onHidden, this.onHidden);
1054
+ this.loaders.push(loader);
1055
+ };
1056
+ /**
1057
+ * @param {?} level
1058
+ * @return {?}
1059
+ */
1060
+ BsModalService.prototype.removeLoaders = /**
1061
+ * @param {?} level
1062
+ * @return {?}
1063
+ */
1064
+ function (level) {
1065
+ this.loaders.splice(level - 1, 1);
1066
+ this.loaders.forEach(function (loader, i) {
1067
+ loader.instance.level = i + 1;
1068
+ });
1069
+ };
1070
+ /**
1071
+ * @param {?} from
1072
+ * @param {?} to
1073
+ * @return {?}
1074
+ */
1075
+ BsModalService.prototype.copyEvent = /**
1076
+ * @param {?} from
1077
+ * @param {?} to
1078
+ * @return {?}
1079
+ */
1080
+ function (from, to) {
1081
+ var _this = this;
1082
+ from.subscribe(function () {
1083
+ to.emit(_this.lastDismissReason);
1084
+ });
1085
+ };
1086
+ BsModalService.decorators = [
1087
+ { type: Injectable }
1088
+ ];
1089
+ /** @nocollapse */
1090
+ BsModalService.ctorParameters = function () { return [
1091
+ { type: RendererFactory2, },
1092
+ { type: ComponentLoaderFactory, },
1093
+ ]; };
1094
+ return BsModalService;
1095
+ }());
1096
+
1097
+ /**
1098
+ * @fileoverview added by tsickle
1099
+ * @suppress {checkTypes} checked by tsc
1100
+ */
1101
+ var ModalModule = /** @class */ (function () {
1102
+ function ModalModule() {
1103
+ }
1104
+ /**
1105
+ * @return {?}
1106
+ */
1107
+ ModalModule.forRoot = /**
1108
+ * @return {?}
1109
+ */
1110
+ function () {
1111
+ return {
1112
+ ngModule: ModalModule,
1113
+ providers: [BsModalService, ComponentLoaderFactory, PositioningService]
1114
+ };
1115
+ };
1116
+ ModalModule.decorators = [
1117
+ { type: NgModule, args: [{
1118
+ declarations: [
1119
+ ModalBackdropComponent,
1120
+ ModalDirective,
1121
+ ModalContainerComponent
1122
+ ],
1123
+ exports: [ModalBackdropComponent, ModalDirective],
1124
+ entryComponents: [ModalBackdropComponent, ModalContainerComponent]
1125
+ },] }
1126
+ ];
1127
+ return ModalModule;
1128
+ }());
1129
+
1130
+ /**
1131
+ * @fileoverview added by tsickle
1132
+ * @suppress {checkTypes} checked by tsc
1133
+ */
1134
+
1135
+ /**
1136
+ * @fileoverview added by tsickle
1137
+ * @suppress {checkTypes} checked by tsc
1138
+ */
1139
+
1140
+ export { BsModalRef, ModalBackdropOptions, ModalContainerComponent, ModalBackdropComponent, ModalOptions, ModalDirective, ModalModule, BsModalService, CLASS_NAME as ɵa };
1141
+
1142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWJvb3RzdHJhcC1tb2RhbC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LWJvb3RzdHJhcC9tb2RhbC9icy1tb2RhbC1yZWYuc2VydmljZS50cyIsIm5nOi8vbmd4LWJvb3RzdHJhcC9tb2RhbC9tb2RhbC1iYWNrZHJvcC5vcHRpb25zLnRzIiwibmc6Ly9uZ3gtYm9vdHN0cmFwL21vZGFsL21vZGFsLW9wdGlvbnMuY2xhc3MudHMiLCJuZzovL25neC1ib290c3RyYXAvbW9kYWwvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIm5nOi8vbmd4LWJvb3RzdHJhcC9tb2RhbC9tb2RhbC1iYWNrZHJvcC5jb21wb25lbnQudHMiLCJuZzovL25neC1ib290c3RyYXAvbW9kYWwvbW9kYWwuZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtYm9vdHN0cmFwL21vZGFsL2JzLW1vZGFsLnNlcnZpY2UudHMiLCJuZzovL25neC1ib290c3RyYXAvbW9kYWwvbW9kYWwubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJzTW9kYWxSZWYge1xuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIGEgY29tcG9uZW50IGluc2lkZSB0aGUgbW9kYWwuIE51bGwgaWYgbW9kYWwncyBiZWVuIGNyZWF0ZWQgd2l0aCBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBjb250ZW50PzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogSGlkZXMgdGhlIG1vZGFsXG4gICAqL1xuICBoaWRlOiAoKSA9PiB2b2lkID0gRnVuY3Rpb247XG4gIC8qKlxuICAgKiBTZXRzIG5ldyBjbGFzcyB0byBtb2RhbCB3aW5kb3dcbiAgICovXG4gIHNldENsYXNzOiAobmV3Q2xhc3M6IHN0cmluZykgPT4gdm9pZCA9IEZ1bmN0aW9uO1xufVxuIiwiZXhwb3J0IGNsYXNzIE1vZGFsQmFja2Ryb3BPcHRpb25zIHtcbiAgYW5pbWF0ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTW9kYWxCYWNrZHJvcE9wdGlvbnMpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG9wdGlvbnMpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc05hbWUsIERpc21pc3NSZWFzb25zLCBTZWxlY3RvciwgVHJhbnNpdGlvbkR1cmF0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vZGFsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiAgSW5jbHVkZXMgYSBtb2RhbC1iYWNrZHJvcCBlbGVtZW50LiBBbHRlcm5hdGl2ZWx5LFxuICAgKiAgc3BlY2lmeSBzdGF0aWMgZm9yIGEgYmFja2Ryb3Agd2hpY2ggZG9lc24ndCBjbG9zZSB0aGUgbW9kYWwgb24gY2xpY2suXG4gICAqL1xuICBiYWNrZHJvcD86IGJvb2xlYW4gfCAnc3RhdGljJztcbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgd2hlbiBlc2NhcGUga2V5IGlzIHByZXNzZWQuXG4gICAqL1xuICBrZXlib2FyZD86IGJvb2xlYW47XG5cbiAgZm9jdXM/OiBib29sZWFuO1xuICAvKipcbiAgICogU2hvd3MgdGhlIG1vZGFsIHdoZW4gaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBzaG93PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElnbm9yZSB0aGUgYmFja2Ryb3AgY2xpY2tcbiAgICovXG4gIGlnbm9yZUJhY2tkcm9wQ2xpY2s/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3NzIGNsYXNzIGZvciBvcGVuZWQgbW9kYWxcbiAgICovXG4gIGNsYXNzPzogc3RyaW5nO1xuICAvKipcbiAgICogVG9nZ2xlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0ZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogTW9kYWwgZGF0YVxuICAgKi9cbiAgaW5pdGlhbFN0YXRlPzogT2JqZWN0O1xufVxuXG5cbmV4cG9ydCBjb25zdCBtb2RhbENvbmZpZ0RlZmF1bHRzOiBNb2RhbE9wdGlvbnMgPSB7XG4gIGJhY2tkcm9wOiB0cnVlLFxuICBrZXlib2FyZDogdHJ1ZSxcbiAgZm9jdXM6IHRydWUsXG4gIHNob3c6IGZhbHNlLFxuICBpZ25vcmVCYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgY2xhc3M6ICcnLFxuICBhbmltYXRlZDogdHJ1ZSxcbiAgaW5pdGlhbFN0YXRlOiB7fVxufTtcblxuZXhwb3J0IGNvbnN0IENMQVNTX05BTUU6IENsYXNzTmFtZSA9IHtcbiAgU0NST0xMQkFSX01FQVNVUkVSOiAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnLFxuICBCQUNLRFJPUDogJ21vZGFsLWJhY2tkcm9wJyxcbiAgT1BFTjogJ21vZGFsLW9wZW4nLFxuICBGQURFOiAnZmFkZScsXG4gIElOOiAnaW4nLCAvLyBiczNcbiAgU0hPVzogJ3Nob3cnIC8vIGJzNFxufTtcblxuZXhwb3J0IGNvbnN0IFNFTEVDVE9SOiBTZWxlY3RvciA9IHtcbiAgRElBTE9HOiAnLm1vZGFsLWRpYWxvZycsXG4gIERBVEFfVE9HR0xFOiAnW2RhdGEtdG9nZ2xlPVwibW9kYWxcIl0nLFxuICBEQVRBX0RJU01JU1M6ICdbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLFxuICBGSVhFRF9DT05URU5UOiAnLm5hdmJhci1maXhlZC10b3AsIC5uYXZiYXItZml4ZWQtYm90dG9tLCAuaXMtZml4ZWQnXG59O1xuXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTlM6IFRyYW5zaXRpb25EdXJhdGlvbnMgPSB7XG4gIE1PREFMOiAzMDAsXG4gIEJBQ0tEUk9QOiAxNTBcbn07XG5cbmV4cG9ydCBjb25zdCBESVNNSVNTX1JFQVNPTlM6IERpc21pc3NSZWFzb25zID0ge1xuICBCQUNLUkRPUDogJ2JhY2tkcm9wLWNsaWNrJyxcbiAgRVNDOiAnZXNjJ1xufTtcbiIsImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0xBU1NfTkFNRSxcbiAgRElTTUlTU19SRUFTT05TLFxuICBNb2RhbE9wdGlvbnMsXG4gIFRSQU5TSVRJT05fRFVSQVRJT05TXG59IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJy4vYnMtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBpc0JzMyB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2RhbC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cIidtb2RhbC1kaWFsb2cnICsgKGNvbmZpZy5jbGFzcyA/ICcgJyArIGNvbmZpZy5jbGFzcyA6ICcnKVwiIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ21vZGFsJyxcbiAgICByb2xlOiAnZGlhbG9nJyxcbiAgICB0YWJpbmRleDogJy0xJyxcbiAgICAnW2F0dHIuYXJpYS1tb2RhbF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29uZmlnOiBNb2RhbE9wdGlvbnM7XG4gIGlzU2hvd24gPSBmYWxzZTtcbiAgbGV2ZWw6IG51bWJlcjtcbiAgaXNBbmltYXRlZDogYm9vbGVhbjtcbiAgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlO1xuICBwcml2YXRlIGlzTW9kYWxIaWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb2RhbE9wdGlvbnMsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBfZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FuaW1hdGVkKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICBDTEFTU19OQU1FLkZBREVcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2Rpc3BsYXknLFxuICAgICAgJ2Jsb2NrJ1xuICAgICk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzU2hvd24gPSB0cnVlO1xuICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaXNCczMoKSA/IENMQVNTX05BTUUuSU4gOiBDTEFTU19OQU1FLlNIT1dcbiAgICAgICk7XG4gICAgfSwgdGhpcy5pc0FuaW1hdGVkID8gVFJBTlNJVElPTl9EVVJBVElPTlMuQkFDS0RST1AgOiAwKTtcbiAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQuYm9keSkge1xuICAgICAgaWYgKHRoaXMuYnNNb2RhbFNlcnZpY2UuZ2V0TW9kYWxzQ291bnQoKSA9PT0gMSkge1xuICAgICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLmNoZWNrU2Nyb2xsYmFyKCk7XG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2V0U2Nyb2xsYmFyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCBDTEFTU19OQU1FLk9QRU4pO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbmZpZy5pZ25vcmVCYWNrZHJvcENsaWNrIHx8XG4gICAgICB0aGlzLmNvbmZpZy5iYWNrZHJvcCA9PT0gJ3N0YXRpYycgfHxcbiAgICAgIGV2ZW50LnRhcmdldCAhPT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2V0RGlzbWlzc1JlYXNvbihESVNNSVNTX1JFQVNPTlMuQkFDS1JET1ApO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZXNjJywgWyckZXZlbnQnXSlcbiAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNyB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmtleWJvYXJkICYmXG4gICAgICB0aGlzLmxldmVsID09PSB0aGlzLmJzTW9kYWxTZXJ2aWNlLmdldE1vZGFsc0NvdW50KClcbiAgICApIHtcbiAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2V0RGlzbWlzc1JlYXNvbihESVNNSVNTX1JFQVNPTlMuRVNDKTtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNNb2RhbEhpZGluZyB8fCAhdGhpcy5pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IHRydWU7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICBpc0JzMygpID8gQ0xBU1NfTkFNRS5JTiA6IENMQVNTX05BTUUuU0hPV1xuICAgICk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzU2hvd24gPSBmYWxzZTtcbiAgICAgIGlmIChcbiAgICAgICAgZG9jdW1lbnQgJiZcbiAgICAgICAgZG9jdW1lbnQuYm9keSAmJlxuICAgICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLmdldE1vZGFsc0NvdW50KCkgPT09IDFcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCBDTEFTU19OQU1FLk9QRU4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5oaWRlKHRoaXMubGV2ZWwpO1xuICAgICAgdGhpcy5pc01vZGFsSGlkaW5nID0gZmFsc2U7XG4gICAgfSwgdGhpcy5pc0FuaW1hdGVkID8gVFJBTlNJVElPTl9EVVJBVElPTlMuTU9EQUwgOiAwKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDTEFTU19OQU1FIH0gZnJvbSAnLi9tb2RhbC1vcHRpb25zLmNsYXNzJztcbmltcG9ydCB7IGlzQnMzLCBVdGlscyB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5cbi8qKiBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIGFkZGVkIGFzIGJhY2tncm91bmQgbGF5b3V0IGZvciBtb2RhbHMgaWYgZW5hYmxlZCAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtbW9kYWwtYmFja2Ryb3AnLFxuICB0ZW1wbGF0ZTogJyAnLFxuICBob3N0OiB7IGNsYXNzOiBDTEFTU19OQU1FLkJBQ0tEUk9QIH1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxCYWNrZHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGdldCBpc0FuaW1hdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0FuaW1hdGVkO1xuICB9XG5cbiAgc2V0IGlzQW5pbWF0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0FuaW1hdGVkID0gdmFsdWU7XG4gICAgLy8gdGhpcy5yZW5kZXJlci5zZXRFbGVtZW50Q2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGAke0NsYXNzTmFtZS5GQURFfWAsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBpc1Nob3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc1Nob3duO1xuICB9XG5cbiAgc2V0IGlzU2hvd24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc1Nob3duID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgYCR7Q0xBU1NfTkFNRS5JTn1gXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgYCR7Q0xBU1NfTkFNRS5JTn1gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWlzQnMzKCkpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIGAke0NMQVNTX05BTUUuU0hPV31gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIGAke0NMQVNTX05BTUUuU0hPV31gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZWxlbWVudDogRWxlbWVudFJlZjtcbiAgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBwcm90ZWN0ZWQgX2lzQW5pbWF0ZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfaXNTaG93biA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQW5pbWF0ZWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICBgJHtDTEFTU19OQU1FLkZBREV9YFxuICAgICAgKTtcbiAgICAgIFV0aWxzLnJlZmxvdyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gIH1cbn1cbiIsIi8qIHRzbGludDpkaXNhYmxlOm1heC1maWxlLWxpbmUtY291bnQgKi9cbi8vIHRvZG86IHNob3VsZCB3ZSBzdXBwb3J0IGVuZm9yY2UgZm9jdXMgaW4/XG4vLyB0b2RvOiBpbiBvcmlnaW5hbCBicyB0aGVyZSBhcmUgd2FzIGEgd2F5IHRvIHByZXZlbnQgbW9kYWwgZnJvbSBzaG93aW5nXG4vLyB0b2RvOiBvcmlnaW5hbCBtb2RhbCBoYWQgcmVzaXplIGV2ZW50c1xuXG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LFxuICBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGRvY3VtZW50LCB3aW5kb3csIGlzQnMzLCBVdGlscyB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuaW1wb3J0IHsgTW9kYWxCYWNrZHJvcENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYmFja2Ryb3AuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENMQVNTX05BTUUsIERJU01JU1NfUkVBU09OUywgbW9kYWxDb25maWdEZWZhdWx0cywgTW9kYWxPcHRpb25zXG59IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuXG5jb25zdCBUUkFOU0lUSU9OX0RVUkFUSU9OID0gMzAwO1xuY29uc3QgQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTiA9IDE1MDtcblxuLyoqIE1hcmsgYW55IGNvZGUgd2l0aCBkaXJlY3RpdmUgdG8gc2hvdyBpdCdzIGNvbnRlbnQgaW4gbW9kYWwgKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic01vZGFsXScsXG4gIGV4cG9ydEFzOiAnYnMtbW9kYWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKiogYWxsb3dzIHRvIHNldCBtb2RhbCBjb25maWd1cmF0aW9uIHZpYSBlbGVtZW50IHByb3BlcnR5ICovXG4gIEBJbnB1dCgpXG4gIHNldCBjb25maWcoY29uZjogTW9kYWxPcHRpb25zKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5nZXRDb25maWcoY29uZik7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IE1vZGFsT3B0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxuXG4gIC8qKiBUaGlzIGV2ZW50IGZpcmVzIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGBzaG93YCBpbnN0YW5jZSBtZXRob2QgaXMgY2FsbGVkLiAqL1xuICBAT3V0cHV0KClcbiAgb25TaG93OiBFdmVudEVtaXR0ZXI8TW9kYWxEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbERpcmVjdGl2ZT4oKTtcbiAgLyoqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgbW9kYWwgaGFzIGJlZW4gbWFkZSB2aXNpYmxlIHRvIHRoZSB1c2VyXG4gICAqICh3aWxsIHdhaXQgZm9yIENTUyB0cmFuc2l0aW9ucyB0byBjb21wbGV0ZSlcbiAgICovXG4gIEBPdXRwdXQoKVxuICBvblNob3duOiBFdmVudEVtaXR0ZXI8TW9kYWxEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbERpcmVjdGl2ZT4oKTtcbiAgLyoqIFRoaXMgZXZlbnQgaXMgZmlyZWQgaW1tZWRpYXRlbHkgd2hlblxuICAgKiB0aGUgaGlkZSBpbnN0YW5jZSBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uSGlkZTogRXZlbnRFbWl0dGVyPE1vZGFsRGlyZWN0aXZlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kYWxEaXJlY3RpdmU+KCk7XG4gIC8qKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGhhcyBmaW5pc2hlZCBiZWluZ1xuICAgKiBoaWRkZW4gZnJvbSB0aGUgdXNlciAod2lsbCB3YWl0IGZvciBDU1MgdHJhbnNpdGlvbnMgdG8gY29tcGxldGUpLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8TW9kYWxEaXJlY3RpdmU+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbERpcmVjdGl2ZT4oKTtcblxuICAvKiogVGhpcyBmaWVsZCBjb250YWlucyBsYXN0IGRpc21pc3MgcmVhc29uLlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6IGBiYWNrZHJvcC1jbGlja2AsIGBlc2NgIGFuZCBgbnVsbGBcbiAgICogKGlmIG1vZGFsIHdhcyBjbG9zZWQgYnkgZGlyZWN0IGNhbGwgb2YgYC5oaWRlKClgKS5cbiAgICovXG4gIGRpc21pc3NSZWFzb246IHN0cmluZztcblxuICBnZXQgaXNTaG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNTaG93bjtcbiAgfVxuXG4gIHByb3RlY3RlZCBfY29uZmlnOiBNb2RhbE9wdGlvbnM7XG4gIHByb3RlY3RlZCBfaXNTaG93biA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBpc0JvZHlPdmVyZmxvd2luZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgb3JpZ2luYWxCb2R5UGFkZGluZyA9IDA7XG4gIHByb3RlY3RlZCBzY3JvbGxiYXJXaWR0aCA9IDA7XG5cbiAgcHJvdGVjdGVkIHRpbWVySGlkZU1vZGFsID0gMDtcbiAgcHJvdGVjdGVkIHRpbWVyUm1CYWNrRHJvcCA9IDA7XG5cbiAgLy8gcmVmZXJlbmNlIHRvIGJhY2tkcm9wIGNvbXBvbmVudFxuICBwcm90ZWN0ZWQgYmFja2Ryb3A6IENvbXBvbmVudFJlZjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBfYmFja2Ryb3A6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGlzTmVzdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIGNsZjogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSkge1xuICAgIHRoaXMuX2JhY2tkcm9wID0gY2xmLmNyZWF0ZUxvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PihcbiAgICAgIF9lbGVtZW50LFxuICAgICAgX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICBfcmVuZGVyZXJcbiAgICApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuaWdub3JlQmFja2Ryb3BDbGljayB8fFxuICAgICAgdGhpcy5jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnIHx8XG4gICAgICBldmVudC50YXJnZXQgIT09IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc21pc3NSZWFzb24gPSBESVNNSVNTX1JFQVNPTlMuQkFDS1JET1A7XG4gICAgdGhpcy5oaWRlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIHRvZG86IGNvbnNpZGVyIHByZXZlbnRpbmcgZGVmYXVsdCBhbmQgc3RvcHBpbmcgcHJvcGFnYXRpb25cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICBvbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMjcgfHwgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcua2V5Ym9hcmQpIHtcbiAgICAgIHRoaXMuZGlzbWlzc1JlYXNvbiA9IERJU01JU1NfUkVBU09OUy5FU0M7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHZvaWQgMDtcbiAgICBpZiAodGhpcy5faXNTaG93bikge1xuICAgICAgdGhpcy5faXNTaG93biA9IGZhbHNlO1xuICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcbiAgICAgIHRoaXMuX2JhY2tkcm9wLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcgPSB0aGlzLl9jb25maWcgfHwgdGhpcy5nZXRDb25maWcoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9jb25maWcuc2hvdykge1xuICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8qIFB1YmxpYyBtZXRob2RzICovXG5cbiAgLyoqIEFsbG93cyB0byBtYW51YWxseSB0b2dnbGUgbW9kYWwgdmlzaWJpbGl0eSAqL1xuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdygpO1xuICB9XG5cbiAgLyoqIEFsbG93cyB0byBtYW51YWxseSBvcGVuIG1vZGFsICovXG4gIHNob3coKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzUmVhc29uID0gbnVsbDtcbiAgICB0aGlzLm9uU2hvdy5lbWl0KHRoaXMpO1xuICAgIGlmICh0aGlzLl9pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySGlkZU1vZGFsKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lclJtQmFja0Ryb3ApO1xuXG4gICAgdGhpcy5faXNTaG93biA9IHRydWU7XG5cbiAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKCk7XG4gICAgdGhpcy5zZXRTY3JvbGxiYXIoKTtcblxuICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRS5PUEVOKSkge1xuICAgICAgICB0aGlzLmlzTmVzdGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIENMQVNTX05BTUUuT1BFTik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zaG93QmFja2Ryb3AoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93RWxlbWVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEFsbG93cyB0byBtYW51YWxseSBjbG9zZSBtb2RhbCAqL1xuICBoaWRlKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkhpZGUuZW1pdCh0aGlzKTtcblxuICAgIC8vIHRvZG86IGFkZCBhbiBvcHRpb24gdG8gcHJldmVudCBoaWRpbmdcbiAgICBpZiAoIXRoaXMuX2lzU2hvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudGltZXJIaWRlTW9kYWwpO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lclJtQmFja0Ryb3ApO1xuXG4gICAgdGhpcy5faXNTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgQ0xBU1NfTkFNRS5JTik7XG4gICAgaWYgKCFpc0JzMygpKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIENMQVNTX05BTUUuU0hPVyk7XG4gICAgfVxuICAgIC8vIHRoaXMuX2FkZENsYXNzSW4gPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLl9jb25maWcuYW5pbWF0ZWQpIHtcbiAgICAgIHRoaXMudGltZXJIaWRlTW9kYWwgPSB3aW5kb3cuc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gdGhpcy5oaWRlTW9kYWwoKSxcbiAgICAgICAgVFJBTlNJVElPTl9EVVJBVElPTlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJpdmF0ZSBtZXRob2RzIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgZ2V0Q29uZmlnKGNvbmZpZz86IE1vZGFsT3B0aW9ucyk6IE1vZGFsT3B0aW9ucyB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG1vZGFsQ29uZmlnRGVmYXVsdHMsIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogIFNob3cgZGlhbG9nXG4gICAqICBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBzaG93RWxlbWVudCgpOiB2b2lkIHtcbiAgICAvLyB0b2RvOiByZXBsYWNlIHRoaXMgd2l0aCBjb21wb25lbnQgbG9hZGVyIHVzYWdlXG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlIHx8XG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZS5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREVcbiAgICApIHtcbiAgICAgIC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxuICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICdhcmlhLWhpZGRlbicsXG4gICAgICAnZmFsc2UnXG4gICAgKTtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnYXJpYS1tb2RhbCcsXG4gICAgICAndHJ1ZSdcbiAgICApO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2Rpc3BsYXknLFxuICAgICAgJ2Jsb2NrJ1xuICAgICk7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnc2Nyb2xsVG9wJyxcbiAgICAgIDBcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5hbmltYXRlZCkge1xuICAgICAgVXRpbHMucmVmbG93KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLy8gdGhpcy5fYWRkQ2xhc3NJbiA9IHRydWU7XG4gICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBDTEFTU19OQU1FLklOKTtcbiAgICBpZiAoIWlzQnMzKCkpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgQ0xBU1NfTkFNRS5TSE9XKTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2l0aW9uQ29tcGxldGUgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fY29uZmlnLmZvY3VzKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgICAgdGhpcy5vblNob3duLmVtaXQodGhpcyk7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLl9jb25maWcuYW5pbWF0ZWQpIHtcbiAgICAgIHNldFRpbWVvdXQodHJhbnNpdGlvbkNvbXBsZXRlLCBUUkFOU0lUSU9OX0RVUkFUSU9OKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbkNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgaGlkZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICdhcmlhLWhpZGRlbicsXG4gICAgICAndHJ1ZSdcbiAgICApO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2Rpc3BsYXknLFxuICAgICAgJ25vbmUnXG4gICAgKTtcbiAgICB0aGlzLnNob3dCYWNrZHJvcCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNOZXN0ZWQpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCBDTEFTU19OQU1FLk9QRU4pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRTY3JvbGxiYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVzZXRBZGp1c3RtZW50cygpO1xuICAgICAgdGhpcy5mb2N1c090aGVyTW9kYWwoKTtcbiAgICAgIHRoaXMub25IaWRkZW4uZW1pdCh0aGlzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHRvZG86IG9yaWdpbmFsIHNob3cgd2FzIGNhbGxpbmcgYSBjYWxsYmFjayB3aGVuIGRvbmUsIGJ1dCB3ZSBjYW4gdXNlXG4gIC8vIHByb21pc2VcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgc2hvd0JhY2tkcm9wKGNhbGxiYWNrPzogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl9pc1Nob3duICYmXG4gICAgICB0aGlzLmNvbmZpZy5iYWNrZHJvcCAmJlxuICAgICAgKCF0aGlzLmJhY2tkcm9wIHx8ICF0aGlzLmJhY2tkcm9wLmluc3RhbmNlLmlzU2hvd24pXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICB0aGlzLl9iYWNrZHJvcFxuICAgICAgICAuYXR0YWNoKE1vZGFsQmFja2Ryb3BDb21wb25lbnQpXG4gICAgICAgIC50bygnYm9keScpXG4gICAgICAgIC5zaG93KHtpc0FuaW1hdGVkOiB0aGlzLl9jb25maWcuYW5pbWF0ZWR9KTtcbiAgICAgIHRoaXMuYmFja2Ryb3AgPSB0aGlzLl9iYWNrZHJvcC5fY29tcG9uZW50UmVmO1xuXG4gICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl9jb25maWcuYW5pbWF0ZWQpIHtcbiAgICAgICAgY2FsbGJhY2soKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNldFRpbWVvdXQoY2FsbGJhY2ssIEJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzU2hvd24gJiYgdGhpcy5iYWNrZHJvcCkge1xuICAgICAgdGhpcy5iYWNrZHJvcC5pbnN0YW5jZS5pc1Nob3duID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrUmVtb3ZlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmJhY2tkcm9wLmluc3RhbmNlLmlzQW5pbWF0ZWQpIHtcbiAgICAgICAgdGhpcy50aW1lclJtQmFja0Ryb3AgPSB3aW5kb3cuc2V0VGltZW91dChcbiAgICAgICAgICBjYWxsYmFja1JlbW92ZSxcbiAgICAgICAgICBCQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYWxsYmFja1JlbW92ZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgcmVtb3ZlQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgdGhpcy5fYmFja2Ryb3AuaGlkZSgpO1xuICB9XG5cbiAgLyoqIEV2ZW50cyB0cmlja3MgKi9cblxuICAvLyBubyBuZWVkIGZvciBpdFxuICAvLyBwcm90ZWN0ZWQgc2V0RXNjYXBlRXZlbnQoKTp2b2lkIHtcbiAgLy8gICBpZiAodGhpcy5faXNTaG93biAmJiB0aGlzLl9jb25maWcua2V5Ym9hcmQpIHtcbiAgLy8gICAgICQodGhpcy5fZWxlbWVudCkub24oRXZlbnQuS0VZRE9XTl9ESVNNSVNTLCAoZXZlbnQpID0+IHtcbiAgLy8gICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAvLyAgICAgICAgIHRoaXMuaGlkZSgpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0pXG4gIC8vXG4gIC8vICAgfSBlbHNlIGlmICghdGhpcy5faXNTaG93bikge1xuICAvLyAgICAgJCh0aGlzLl9lbGVtZW50KS5vZmYoRXZlbnQuS0VZRE9XTl9ESVNNSVNTKVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIHByb3RlY3RlZCBzZXRSZXNpemVFdmVudCgpOnZvaWQge1xuICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlbmRlcmVyLmxpc3Rlbkdsb2JhbCgnJywgRXZlbnQuUkVTSVpFKSk7XG4gIC8vIGlmICh0aGlzLl9pc1Nob3duKSB7XG4gIC8vICAgJCh3aW5kb3cpLm9uKEV2ZW50LlJFU0laRSwgJC5wcm94eSh0aGlzLl9oYW5kbGVVcGRhdGUsIHRoaXMpKVxuICAvLyB9IGVsc2Uge1xuICAvLyAgICQod2luZG93KS5vZmYoRXZlbnQuUkVTSVpFKVxuICAvLyB9XG4gIC8vIH1cblxuICBwcm90ZWN0ZWQgZm9jdXNPdGhlck1vZGFsKCkge1xuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG90aGVyT3BlbmVkTW9kYWxzID0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmluW2JzTW9kYWxdJyk7XG4gICAgaWYgKCFvdGhlck9wZW5lZE1vZGFscy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgb3RoZXJPcGVuZWRNb2RhbHNbb3RoZXJPcGVuZWRNb2RhbHMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHJlc2V0QWRqdXN0bWVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAncGFkZGluZ0xlZnQnLFxuICAgICAgJydcbiAgICApO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgJ3BhZGRpbmdSaWdodCcsXG4gICAgICAnJ1xuICAgICk7XG4gIH1cblxuICAvKiogU2Nyb2xsIGJhciB0cmlja3MgKi9cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgY2hlY2tTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0JvZHlPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICB0aGlzLnNjcm9sbGJhcldpZHRoID0gdGhpcy5nZXRTY3JvbGxiYXJXaWR0aCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFNjcm9sbGJhcigpOiB2b2lkIHtcbiAgICBpZiAoIWRvY3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vcmlnaW5hbEJvZHlQYWRkaW5nID0gcGFyc2VJbnQoXG4gICAgICB3aW5kb3dcbiAgICAgICAgLmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSlcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctcmlnaHQnKSB8fCAwLFxuICAgICAgMTBcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuaXNCb2R5T3ZlcmZsb3dpbmcpIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7dGhpcy5vcmlnaW5hbEJvZHlQYWRkaW5nICtcbiAgICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGh9cHhgO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldFNjcm9sbGJhcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke3RoaXMub3JpZ2luYWxCb2R5UGFkZGluZ31weGA7XG4gIH1cblxuICAvLyB0aHggZC53YWxzaFxuICBwcm90ZWN0ZWQgZ2V0U2Nyb2xsYmFyV2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBzY3JvbGxEaXYgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhzY3JvbGxEaXYsIENMQVNTX05BTUUuU0NST0xMQkFSX01FQVNVUkVSKTtcbiAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCBzY3JvbGxEaXYpO1xuICAgIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoO1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHNjcm9sbERpdik7XG5cbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgVGVtcGxhdGVSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgTW9kYWxCYWNrZHJvcENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYmFja2Ryb3AuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENMQVNTX05BTUUsXG4gIG1vZGFsQ29uZmlnRGVmYXVsdHMsXG4gIE1vZGFsT3B0aW9ucyxcbiAgVFJBTlNJVElPTl9EVVJBVElPTlNcbn0gZnJvbSAnLi9tb2RhbC1vcHRpb25zLmNsYXNzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICcuL2JzLW1vZGFsLXJlZi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJzTW9kYWxTZXJ2aWNlIHtcbiAgLy8gY29uc3RydWN0b3IgcHJvcHNcbiAgY29uZmlnOiBNb2RhbE9wdGlvbnMgPSBtb2RhbENvbmZpZ0RlZmF1bHRzO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgb25TaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBvblNob3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgaXNCb2R5T3ZlcmZsb3dpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG9yaWdpbmFsQm9keVBhZGRpbmcgPSAwO1xuXG4gIHByb3RlY3RlZCBzY3JvbGxiYXJXaWR0aCA9IDA7XG5cbiAgcHJvdGVjdGVkIGJhY2tkcm9wUmVmOiBDb21wb25lbnRSZWY8TW9kYWxCYWNrZHJvcENvbXBvbmVudD47XG4gIHByaXZhdGUgX2JhY2tkcm9wTG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxCYWNrZHJvcENvbXBvbmVudD47XG4gIHByaXZhdGUgbW9kYWxzQ291bnQgPSAwO1xuICBwcml2YXRlIGxhc3REaXNtaXNzUmVhc29uID0gJyc7XG5cbiAgcHJpdmF0ZSBsb2FkZXJzOiBDb21wb25lbnRMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+W10gPSBbXTtcblxuICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiwgcHJpdmF0ZSBjbGY6IENvbXBvbmVudExvYWRlckZhY3RvcnkpIHtcbiAgICB0aGlzLl9iYWNrZHJvcExvYWRlciA9IHRoaXMuY2xmLmNyZWF0ZUxvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PihcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbFxuICAgICk7XG4gICAgdGhpcy5fcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICAvKiogU2hvd3MgYSBtb2RhbCAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIHNob3coY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IGFueSwgY29uZmlnPzogTW9kYWxPcHRpb25zKTogQnNNb2RhbFJlZiB7XG4gICAgdGhpcy5tb2RhbHNDb3VudCsrO1xuICAgIHRoaXMuX2NyZWF0ZUxvYWRlcnMoKTtcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGFsQ29uZmlnRGVmYXVsdHMsIGNvbmZpZyk7XG4gICAgdGhpcy5fc2hvd0JhY2tkcm9wKCk7XG4gICAgdGhpcy5sYXN0RGlzbWlzc1JlYXNvbiA9IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5fc2hvd01vZGFsKGNvbnRlbnQpO1xuICB9XG5cbiAgaGlkZShsZXZlbDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEpIHtcbiAgICAgIHRoaXMuX2hpZGVCYWNrZHJvcCgpO1xuICAgICAgdGhpcy5yZXNldFNjcm9sbGJhcigpO1xuICAgIH1cbiAgICB0aGlzLm1vZGFsc0NvdW50ID0gdGhpcy5tb2RhbHNDb3VudCA+PSAxID8gdGhpcy5tb2RhbHNDb3VudCAtIDEgOiAwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5faGlkZU1vZGFsKGxldmVsKTtcbiAgICAgIHRoaXMucmVtb3ZlTG9hZGVycyhsZXZlbCk7XG4gICAgfSwgdGhpcy5jb25maWcuYW5pbWF0ZWQgPyBUUkFOU0lUSU9OX0RVUkFUSU9OUy5CQUNLRFJPUCA6IDApO1xuICB9XG5cbiAgX3Nob3dCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICBjb25zdCBpc0JhY2tkcm9wRW5hYmxlZCA9XG4gICAgICB0aGlzLmNvbmZpZy5iYWNrZHJvcCB8fCB0aGlzLmNvbmZpZy5iYWNrZHJvcCA9PT0gJ3N0YXRpYyc7XG4gICAgY29uc3QgaXNCYWNrZHJvcEluRE9NID1cbiAgICAgICF0aGlzLmJhY2tkcm9wUmVmIHx8ICF0aGlzLmJhY2tkcm9wUmVmLmluc3RhbmNlLmlzU2hvd247XG5cbiAgICBpZiAodGhpcy5tb2RhbHNDb3VudCA9PT0gMSkge1xuICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuXG4gICAgICBpZiAoaXNCYWNrZHJvcEVuYWJsZWQgJiYgaXNCYWNrZHJvcEluRE9NKSB7XG4gICAgICAgIHRoaXMuX2JhY2tkcm9wTG9hZGVyXG4gICAgICAgICAgLmF0dGFjaChNb2RhbEJhY2tkcm9wQ29tcG9uZW50KVxuICAgICAgICAgIC50bygnYm9keScpXG4gICAgICAgICAgLnNob3coeyBpc0FuaW1hdGVkOiB0aGlzLmNvbmZpZy5hbmltYXRlZCB9KTtcbiAgICAgICAgdGhpcy5iYWNrZHJvcFJlZiA9IHRoaXMuX2JhY2tkcm9wTG9hZGVyLl9jb21wb25lbnRSZWY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2hpZGVCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmFja2Ryb3BSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5iYWNrZHJvcFJlZi5pbnN0YW5jZS5pc1Nob3duID0gZmFsc2U7XG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmNvbmZpZy5hbmltYXRlZCA/IFRSQU5TSVRJT05fRFVSQVRJT05TLkJBQ0tEUk9QIDogMDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVtb3ZlQmFja2Ryb3AoKSwgZHVyYXRpb24pO1xuICB9XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgX3Nob3dNb2RhbChjb250ZW50OiBhbnkpOiBCc01vZGFsUmVmIHtcbiAgICBjb25zdCBtb2RhbExvYWRlciA9IHRoaXMubG9hZGVyc1t0aGlzLmxvYWRlcnMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYnNNb2RhbFJlZiA9IG5ldyBCc01vZGFsUmVmKCk7XG4gICAgY29uc3QgbW9kYWxDb250YWluZXJSZWYgPSBtb2RhbExvYWRlclxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBNb2RhbE9wdGlvbnMsIHVzZVZhbHVlOiB0aGlzLmNvbmZpZyB9KVxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBCc01vZGFsUmVmLCB1c2VWYWx1ZTogYnNNb2RhbFJlZiB9KVxuICAgICAgLmF0dGFjaChNb2RhbENvbnRhaW5lckNvbXBvbmVudClcbiAgICAgIC50bygnYm9keScpXG4gICAgICAuc2hvdyh7Y29udGVudCwgaXNBbmltYXRlZDogdGhpcy5jb25maWcuYW5pbWF0ZWQsIGluaXRpYWxTdGF0ZTogdGhpcy5jb25maWcuaW5pdGlhbFN0YXRlLCBic01vZGFsU2VydmljZTogdGhpc30pO1xuICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmxldmVsID0gdGhpcy5nZXRNb2RhbHNDb3VudCgpO1xuICAgIGJzTW9kYWxSZWYuaGlkZSA9ICgpID0+IHtcbiAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmhpZGUoKTtcbiAgICB9O1xuICAgIGJzTW9kYWxSZWYuY29udGVudCA9IG1vZGFsTG9hZGVyLmdldElubmVyQ29tcG9uZW50KCkgfHwgbnVsbDtcbiAgICBic01vZGFsUmVmLnNldENsYXNzID0gKG5ld0NsYXNzOiBzdHJpbmcpID0+IHtcbiAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmNvbmZpZy5jbGFzcyA9IG5ld0NsYXNzO1xuICAgIH07XG5cbiAgICByZXR1cm4gYnNNb2RhbFJlZjtcbiAgfVxuXG4gIF9oaWRlTW9kYWwobGV2ZWw6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsTG9hZGVyID0gdGhpcy5sb2FkZXJzW2xldmVsIC0gMV07XG4gICAgaWYgKG1vZGFsTG9hZGVyKSB7XG4gICAgICBtb2RhbExvYWRlci5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TW9kYWxzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbHNDb3VudDtcbiAgfVxuXG4gIHNldERpc21pc3NSZWFzb24ocmVhc29uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxhc3REaXNtaXNzUmVhc29uID0gcmVhc29uO1xuICB9XG5cbiAgcmVtb3ZlQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgdGhpcy5fYmFja2Ryb3BMb2FkZXIuaGlkZSgpO1xuICAgIHRoaXMuYmFja2Ryb3BSZWYgPSBudWxsO1xuICB9XG5cbiAgLyoqIEFGVEVSIFBSIE1FUkdFIE1PREFMLkNPTVBPTkVOVCBXSUxMIEJFIFVTSU5HIFRISVMgQ09ERSAqL1xuICAvKiogU2Nyb2xsIGJhciB0cmlja3MgKi9cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjaGVja1Njcm9sbGJhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlzQm9keU92ZXJmbG93aW5nID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA8IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggPSB0aGlzLmdldFNjcm9sbGJhcldpZHRoKCk7XG4gIH1cblxuICBzZXRTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgaWYgKCFkb2N1bWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3JpZ2luYWxCb2R5UGFkZGluZyA9IHBhcnNlSW50KFxuICAgICAgd2luZG93XG4gICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpXG4gICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXJpZ2h0JykgfHwgJzAnLFxuICAgICAgMTBcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuaXNCb2R5T3ZlcmZsb3dpbmcpIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7dGhpcy5vcmlnaW5hbEJvZHlQYWRkaW5nICtcbiAgICAgICAgdGhpcy5zY3JvbGxiYXJXaWR0aH1weGA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldFNjcm9sbGJhcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke3RoaXMub3JpZ2luYWxCb2R5UGFkZGluZ31weGA7XG4gIH1cblxuICAvLyB0aHggZC53YWxzaFxuICBwcml2YXRlIGdldFNjcm9sbGJhcldpZHRoKCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2Nyb2xsRGl2ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Moc2Nyb2xsRGl2LCBDTEFTU19OQU1FLlNDUk9MTEJBUl9NRUFTVVJFUik7XG4gICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgc2Nyb2xsRGl2KTtcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHNjcm9sbERpdi5vZmZzZXRXaWR0aCAtIHNjcm9sbERpdi5jbGllbnRXaWR0aDtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCBzY3JvbGxEaXYpO1xuXG4gICAgcmV0dXJuIHNjcm9sbGJhcldpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlTG9hZGVycygpOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkZXIgPSB0aGlzLmNsZi5jcmVhdGVMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+KFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsXG4gICAgKTtcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25CZWZvcmVTaG93LCB0aGlzLm9uU2hvdyk7XG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uU2hvd24sIHRoaXMub25TaG93bik7XG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uQmVmb3JlSGlkZSwgdGhpcy5vbkhpZGUpO1xuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkhpZGRlbiwgdGhpcy5vbkhpZGRlbik7XG4gICAgdGhpcy5sb2FkZXJzLnB1c2gobG9hZGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTG9hZGVycyhsZXZlbDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkZXJzLnNwbGljZShsZXZlbCAtIDEsIDEpO1xuICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKFxuICAgICAgKGxvYWRlcjogQ29tcG9uZW50TG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PiwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGxvYWRlci5pbnN0YW5jZS5sZXZlbCA9IGkgKyAxO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIHByaXZhdGUgY29weUV2ZW50KGZyb206IEV2ZW50RW1pdHRlcjxhbnk+LCB0bzogRXZlbnRFbWl0dGVyPGFueT4pIHtcbiAgICBmcm9tLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0by5lbWl0KHRoaXMubGFzdERpc21pc3NSZWFzb24pO1xuICAgIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNb2RhbEJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1iYWNrZHJvcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxEaXJlY3RpdmUgfSBmcm9tICcuL21vZGFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbmluZ1NlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Bvc2l0aW9uaW5nJztcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgTW9kYWxDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICcuL2JzLW1vZGFsLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNb2RhbEJhY2tkcm9wQ29tcG9uZW50LFxuICAgIE1vZGFsRGlyZWN0aXZlLFxuICAgIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtNb2RhbEJhY2tkcm9wQ29tcG9uZW50LCBNb2RhbERpcmVjdGl2ZV0sXG4gIGVudHJ5Q29tcG9uZW50czogW01vZGFsQmFja2Ryb3BDb21wb25lbnQsIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTW9kYWxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtCc01vZGFsU2VydmljZSwgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSwgUG9zaXRpb25pbmdTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJkb2N1bWVudCIsIndpbmRvdyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7O29CQWFxQixRQUFROzs7O3dCQUlZLFFBQVE7OztnQkFmaEQsVUFBVTs7cUJBRlg7Ozs7Ozs7QUNBQSxJQUFBO0lBR0UsOEJBQVksT0FBNkI7dUJBRi9CLElB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