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,1506 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { add, subtract } from '../index';
7
+ import { getDate, getFullYear, getHours, getMilliseconds, getMinutes, getMonth, getSeconds } from '../utils/date-getters';
8
+ import { setDate, setFullYear, setHours, setMilliseconds, setMinutes, setMonth, setSeconds } from '../utils/date-setters';
9
+ import { cloneDate } from '../create/clone';
10
+ import { isArray, isBoolean, isDate, isDateValid, isFunction, isNumber, isObject, isString, isUndefined } from '../utils/type-checks';
11
+ import { formatDate } from '../format';
12
+ import { ISO_8601, RFC_2822 } from '../create/from-string-and-format';
13
+ import { getDateOffset, getUTCOffset, hasAlignedHourOffset, isDaylightSavingTime, setOffsetToParsedOffset, setUTCOffset } from '../units/offset';
14
+ import { isLeapYear, parseTwoDigitYear } from '../units/year';
15
+ import { isAfter, isBefore, isBetween, isSame, isSameOrAfter, isSameOrBefore } from '../utils/date-compare';
16
+ import { daysInMonth } from '../units/month';
17
+ import { getDayOfWeek, getISODayOfWeek, getLocaleDayOfWeek, parseWeekday, setDayOfWeek, setISODayOfWeek, setLocaleDayOfWeek } from '../units/day-of-week';
18
+ import { getISOWeek, getWeek, setISOWeek, setWeek } from '../units/week';
19
+ import { getISOWeeksInYear, getISOWeekYear, getSetISOWeekYear, getSetWeekYear, getWeeksInYear, getWeekYear } from '../units/week-year';
20
+ import { endOf, startOf } from '../utils/start-end-of';
21
+ import { getQuarter, setQuarter } from '../units/quarter';
22
+ import { getDayOfYear, setDayOfYear } from '../units/day-of-year';
23
+ import { getZoneAbbr, getZoneName } from '../units/timezone';
24
+ import { diff } from '../moment/diff';
25
+ import { calendar } from '../moment/calendar';
26
+ import { defineLocale, getLocale, getSetGlobalLocale, listLocales } from '../locale/locales';
27
+ import { max, min } from '../moment/min-max';
28
+ import { isDuration } from '../duration/constructor';
29
+ import { createLocalOrUTC } from '../create/from-anything';
30
+ import { createDuration } from '../duration/create';
31
+ export var /** @type {?} */ moment = (/** @type {?} */ (_moment));
32
+ /**
33
+ * @record
34
+ */
35
+ export function MomentFn() { }
36
+ function MomentFn_tsickle_Closure_declarations() {
37
+ /* TODO: handle strange member:
38
+ (input?: DateInput | Khronos, format?: string | string[], localeKey?: string | boolean, strict?: boolean, isUTC?: boolean): Khronos;
39
+ */
40
+ /** @type {?} */
41
+ MomentFn.prototype.ISO_8601;
42
+ /** @type {?} */
43
+ MomentFn.prototype.RFC_2822;
44
+ /** @type {?} */
45
+ MomentFn.prototype.utc;
46
+ /** @type {?} */
47
+ MomentFn.prototype.parseZone;
48
+ /** @type {?} */
49
+ MomentFn.prototype.unix;
50
+ /** @type {?} */
51
+ MomentFn.prototype.locale;
52
+ /** @type {?} */
53
+ MomentFn.prototype.duration;
54
+ /** @type {?} */
55
+ MomentFn.prototype.defineLocale;
56
+ /** @type {?} */
57
+ MomentFn.prototype.parseTwoDigitYear;
58
+ /** @type {?} */
59
+ MomentFn.prototype.isDate;
60
+ /** @type {?} */
61
+ MomentFn.prototype.months;
62
+ /** @type {?} */
63
+ MomentFn.prototype.months;
64
+ /** @type {?} */
65
+ MomentFn.prototype.months;
66
+ /** @type {?} */
67
+ MomentFn.prototype.months;
68
+ /** @type {?} */
69
+ MomentFn.prototype.monthsShort;
70
+ /** @type {?} */
71
+ MomentFn.prototype.monthsShort;
72
+ /** @type {?} */
73
+ MomentFn.prototype.monthsShort;
74
+ /** @type {?} */
75
+ MomentFn.prototype.monthsShort;
76
+ /** @type {?} */
77
+ MomentFn.prototype.weekdays;
78
+ /** @type {?} */
79
+ MomentFn.prototype.weekdays;
80
+ /** @type {?} */
81
+ MomentFn.prototype.weekdays;
82
+ /** @type {?} */
83
+ MomentFn.prototype.weekdays;
84
+ /** @type {?} */
85
+ MomentFn.prototype.weekdays;
86
+ /** @type {?} */
87
+ MomentFn.prototype.weekdays;
88
+ /** @type {?} */
89
+ MomentFn.prototype.weekdays;
90
+ /** @type {?} */
91
+ MomentFn.prototype.weekdays;
92
+ /** @type {?} */
93
+ MomentFn.prototype.weekdaysShort;
94
+ /** @type {?} */
95
+ MomentFn.prototype.weekdaysShort;
96
+ /** @type {?} */
97
+ MomentFn.prototype.weekdaysShort;
98
+ /** @type {?} */
99
+ MomentFn.prototype.weekdaysShort;
100
+ /** @type {?} */
101
+ MomentFn.prototype.weekdaysShort;
102
+ /** @type {?} */
103
+ MomentFn.prototype.weekdaysShort;
104
+ /** @type {?} */
105
+ MomentFn.prototype.weekdaysShort;
106
+ /** @type {?} */
107
+ MomentFn.prototype.weekdaysShort;
108
+ /** @type {?} */
109
+ MomentFn.prototype.weekdaysMin;
110
+ /** @type {?} */
111
+ MomentFn.prototype.weekdaysMin;
112
+ /** @type {?} */
113
+ MomentFn.prototype.weekdaysMin;
114
+ /** @type {?} */
115
+ MomentFn.prototype.weekdaysMin;
116
+ /** @type {?} */
117
+ MomentFn.prototype.weekdaysMin;
118
+ /** @type {?} */
119
+ MomentFn.prototype.weekdaysMin;
120
+ /** @type {?} */
121
+ MomentFn.prototype.weekdaysMin;
122
+ /** @type {?} */
123
+ MomentFn.prototype.weekdaysMin;
124
+ /** @type {?} */
125
+ MomentFn.prototype.relativeTimeThreshold;
126
+ /** @type {?} */
127
+ MomentFn.prototype.relativeTimeThreshold;
128
+ /** @type {?} */
129
+ MomentFn.prototype.min;
130
+ /** @type {?} */
131
+ MomentFn.prototype.max;
132
+ /** @type {?} */
133
+ MomentFn.prototype.localeData;
134
+ /** @type {?} */
135
+ MomentFn.prototype.updateLocale;
136
+ /** @type {?} */
137
+ MomentFn.prototype.calendarFormat;
138
+ /** @type {?} */
139
+ MomentFn.prototype.calendarFormat;
140
+ /** @type {?} */
141
+ MomentFn.prototype.invalid;
142
+ /** @type {?} */
143
+ MomentFn.prototype.locales;
144
+ /** @type {?} */
145
+ MomentFn.prototype.updateOffset;
146
+ }
147
+ /**
148
+ * @param {?=} input
149
+ * @param {?=} format
150
+ * @param {?=} localeKey
151
+ * @param {?=} strict
152
+ * @param {?=} isUTC
153
+ * @return {?}
154
+ */
155
+ function _moment(input, format, localeKey, strict, isUTC) {
156
+ if (input instanceof Khronos) {
157
+ var /** @type {?} */ _date = input.clone();
158
+ return isUTC ? _date.utc() : _date;
159
+ }
160
+ if (isBoolean(localeKey)) {
161
+ return new Khronos(input, format, null, localeKey, isUTC);
162
+ }
163
+ return new Khronos(input, format, localeKey, strict, isUTC);
164
+ }
165
+ moment.utc = function (input, format, localeKey, strict) {
166
+ return _moment(input, format, localeKey, strict, true);
167
+ };
168
+ moment.parseZone = function (input, format, localeKey, strict) {
169
+ return _moment(input, format, localeKey, strict, true).parseZone();
170
+ };
171
+ moment.locale = getSetGlobalLocale;
172
+ moment.localeData = function (key) {
173
+ if (key instanceof Khronos) {
174
+ return key.localeData();
175
+ }
176
+ return getLocale(key);
177
+ };
178
+ // moment.utc = createUTC;
179
+ moment.unix = function (inp) { return new Khronos(inp * 1000); };
180
+ moment.ISO_8601 = ISO_8601;
181
+ moment.RFC_2822 = RFC_2822;
182
+ moment.defineLocale = defineLocale;
183
+ moment.parseTwoDigitYear = parseTwoDigitYear;
184
+ moment.isDate = isDate;
185
+ moment.invalid = function _invalid() {
186
+ return new Khronos(new Date(NaN));
187
+ };
188
+ // duration(inp?: Duration | DateInput | Khronos, unit?: MomentUnitOfTime): Duration;
189
+ moment.duration = function (input, unit) {
190
+ var /** @type {?} */ _unit = mapUnitOfTime(unit);
191
+ if (isDate(input)) {
192
+ throw new Error('todo implement');
193
+ }
194
+ if (input == null) {
195
+ return createDuration();
196
+ }
197
+ if (isDuration(input)) {
198
+ return createDuration(input, _unit, { _locale: input._locale });
199
+ }
200
+ if (isString(input) || isNumber(input) || isDuration(input) || isObject(input)) {
201
+ return createDuration(input, _unit);
202
+ }
203
+ throw new Error('todo implement');
204
+ };
205
+ moment.min = function _min() {
206
+ var dates = [];
207
+ for (var _i = 0; _i < arguments.length; _i++) {
208
+ dates[_i] = arguments[_i];
209
+ }
210
+ var /** @type {?} */ _firstArg = dates[0];
211
+ var /** @type {?} */ _dates = (isArray(_firstArg) ? _firstArg : dates)
212
+ .map(function (date) { return _moment(date); })
213
+ .map(function (date) { return date.toDate(); });
214
+ var /** @type {?} */ _date = min.apply(void 0, tslib_1.__spread(_dates));
215
+ return new Khronos(_date);
216
+ };
217
+ moment.max = function _max() {
218
+ var dates = [];
219
+ for (var _i = 0; _i < arguments.length; _i++) {
220
+ dates[_i] = arguments[_i];
221
+ }
222
+ var /** @type {?} */ _firstArg = dates[0];
223
+ var /** @type {?} */ _dates = (isArray(_firstArg) ? _firstArg : dates)
224
+ .map(function (date) { return _moment(date); })
225
+ .map(function (date) { return date.toDate(); });
226
+ var /** @type {?} */ _date = max.apply(void 0, tslib_1.__spread(_dates));
227
+ return new Khronos(_date);
228
+ };
229
+ moment.locales = function () {
230
+ return listLocales();
231
+ };
232
+ /**
233
+ * @record
234
+ */
235
+ export function MomentInputObject() { }
236
+ function MomentInputObject_tsickle_Closure_declarations() {
237
+ /** @type {?|undefined} */
238
+ MomentInputObject.prototype.years;
239
+ /** @type {?|undefined} */
240
+ MomentInputObject.prototype.year;
241
+ /** @type {?|undefined} */
242
+ MomentInputObject.prototype.y;
243
+ /** @type {?|undefined} */
244
+ MomentInputObject.prototype.months;
245
+ /** @type {?|undefined} */
246
+ MomentInputObject.prototype.month;
247
+ /** @type {?|undefined} */
248
+ MomentInputObject.prototype.M;
249
+ /** @type {?|undefined} */
250
+ MomentInputObject.prototype.days;
251
+ /** @type {?|undefined} */
252
+ MomentInputObject.prototype.day;
253
+ /** @type {?|undefined} */
254
+ MomentInputObject.prototype.d;
255
+ /** @type {?|undefined} */
256
+ MomentInputObject.prototype.dates;
257
+ /** @type {?|undefined} */
258
+ MomentInputObject.prototype.date;
259
+ /** @type {?|undefined} */
260
+ MomentInputObject.prototype.D;
261
+ /** @type {?|undefined} */
262
+ MomentInputObject.prototype.hours;
263
+ /** @type {?|undefined} */
264
+ MomentInputObject.prototype.hour;
265
+ /** @type {?|undefined} */
266
+ MomentInputObject.prototype.h;
267
+ /** @type {?|undefined} */
268
+ MomentInputObject.prototype.minutes;
269
+ /** @type {?|undefined} */
270
+ MomentInputObject.prototype.minute;
271
+ /** @type {?|undefined} */
272
+ MomentInputObject.prototype.m;
273
+ /** @type {?|undefined} */
274
+ MomentInputObject.prototype.seconds;
275
+ /** @type {?|undefined} */
276
+ MomentInputObject.prototype.second;
277
+ /** @type {?|undefined} */
278
+ MomentInputObject.prototype.s;
279
+ /** @type {?|undefined} */
280
+ MomentInputObject.prototype.milliseconds;
281
+ /** @type {?|undefined} */
282
+ MomentInputObject.prototype.millisecond;
283
+ /** @type {?|undefined} */
284
+ MomentInputObject.prototype.ms;
285
+ /** @type {?|undefined} */
286
+ MomentInputObject.prototype.w;
287
+ /** @type {?|undefined} */
288
+ MomentInputObject.prototype.week;
289
+ /** @type {?|undefined} */
290
+ MomentInputObject.prototype.weeks;
291
+ /** @type {?|undefined} */
292
+ MomentInputObject.prototype.Q;
293
+ /** @type {?|undefined} */
294
+ MomentInputObject.prototype.quarter;
295
+ /** @type {?|undefined} */
296
+ MomentInputObject.prototype.quarters;
297
+ /** @type {?|undefined} */
298
+ MomentInputObject.prototype.weekYear;
299
+ }
300
+ var /** @type {?} */ _unitsPriority = {
301
+ year: 1,
302
+ month: 8,
303
+ week: 5,
304
+ isoWeek: 5,
305
+ day: 11,
306
+ weekday: 11,
307
+ isoWeekday: 11,
308
+ hours: 13,
309
+ weekYear: 1,
310
+ isoWeekYear: 1,
311
+ quarter: 7,
312
+ date: 9,
313
+ dayOfYear: 4,
314
+ minutes: 14,
315
+ seconds: 15,
316
+ milliseconds: 16
317
+ };
318
+ // todo: do I need 2 mappers?
319
+ var /** @type {?} */ _timeHashMap = {
320
+ y: 'year',
321
+ years: 'year',
322
+ year: 'year',
323
+ M: 'month',
324
+ months: 'month',
325
+ month: 'month',
326
+ w: 'week',
327
+ weeks: 'week',
328
+ week: 'week',
329
+ d: 'day',
330
+ days: 'day',
331
+ day: 'day',
332
+ date: 'date',
333
+ dates: 'date',
334
+ D: 'date',
335
+ h: 'hours',
336
+ hour: 'hours',
337
+ hours: 'hours',
338
+ m: 'minutes',
339
+ minute: 'minutes',
340
+ minutes: 'minutes',
341
+ s: 'seconds',
342
+ second: 'seconds',
343
+ seconds: 'seconds',
344
+ ms: 'milliseconds',
345
+ millisecond: 'milliseconds',
346
+ milliseconds: 'milliseconds',
347
+ quarter: 'quarter',
348
+ quarters: 'quarter',
349
+ q: 'quarter',
350
+ Q: 'quarter',
351
+ isoWeek: 'isoWeek',
352
+ isoWeeks: 'isoWeek',
353
+ W: 'isoWeek',
354
+ weekYear: 'weekYear',
355
+ weekYears: 'weekYear',
356
+ gg: 'weekYears',
357
+ isoWeekYear: 'isoWeekYear',
358
+ isoWeekYears: 'isoWeekYear',
359
+ GG: 'isoWeekYear',
360
+ dayOfYear: 'dayOfYear',
361
+ dayOfYears: 'dayOfYear',
362
+ DDD: 'dayOfYear',
363
+ weekday: 'weekday',
364
+ weekdays: 'weekday',
365
+ e: 'weekday',
366
+ isoWeekday: 'isoWeekday',
367
+ isoWeekdays: 'isoWeekday',
368
+ E: 'isoWeekday'
369
+ };
370
+ /**
371
+ * @param {?} period
372
+ * @return {?}
373
+ */
374
+ function mapUnitOfTime(period) {
375
+ return /** @type {?} */ (_timeHashMap[period]);
376
+ }
377
+ /**
378
+ * @param {?} obj
379
+ * @return {?}
380
+ */
381
+ function mapMomentInputObject(obj) {
382
+ var /** @type {?} */ _res = {};
383
+ return Object.keys(obj)
384
+ .reduce(function (res, key) {
385
+ res[mapUnitOfTime(key)] = obj[key];
386
+ return res;
387
+ }, _res);
388
+ }
389
+ var Khronos = /** @class */ (function () {
390
+ function Khronos(input, format, localeKey, strict, isUTC, offset) {
391
+ if (strict === void 0) { strict = false; }
392
+ if (isUTC === void 0) { isUTC = false; }
393
+ this._date = new Date();
394
+ this._isUTC = false;
395
+ // locale will be needed to format invalid date message
396
+ this._locale = getLocale(localeKey);
397
+ // parse invalid input
398
+ if (input === '' || input === null || (isNumber(input) && isNaN(input))) {
399
+ this._date = new Date(NaN);
400
+ return this;
401
+ }
402
+ this._isUTC = isUTC;
403
+ if (this._isUTC) {
404
+ this._offset = 0;
405
+ }
406
+ if (offset || offset === 0) {
407
+ this._offset = offset;
408
+ }
409
+ this._isStrict = strict;
410
+ this._format = format;
411
+ if (!input && input !== 0 && !format) {
412
+ this._date = new Date();
413
+ return this;
414
+ }
415
+ if (isDate(input)) {
416
+ this._date = cloneDate(input);
417
+ return this;
418
+ }
419
+ // this._date = parseDate(input, format, localeKey, strict, isUTC);
420
+ var /** @type {?} */ config = createLocalOrUTC(input, format, localeKey, strict, isUTC);
421
+ this._date = config._d;
422
+ this._offset = isNumber(config._offset) ? config._offset : this._offset;
423
+ this._isUTC = config._isUTC;
424
+ this._isStrict = config._strict;
425
+ this._format = config._f;
426
+ this._tzm = config._tzm;
427
+ }
428
+ /**
429
+ * @return {?}
430
+ */
431
+ Khronos.prototype._toConfig = /**
432
+ * @return {?}
433
+ */
434
+ function () {
435
+ return { _isUTC: this._isUTC, _locale: this._locale, _offset: this._offset, _tzm: this._tzm };
436
+ };
437
+ /**
438
+ * @param {?=} localeKey
439
+ * @return {?}
440
+ */
441
+ Khronos.prototype.locale = /**
442
+ * @param {?=} localeKey
443
+ * @return {?}
444
+ */
445
+ function (localeKey) {
446
+ if (isUndefined(localeKey)) {
447
+ return this._locale._abbr;
448
+ }
449
+ if (localeKey instanceof Khronos) {
450
+ this._locale = localeKey._locale;
451
+ return this;
452
+ }
453
+ var /** @type {?} */ newLocaleData = getLocale(localeKey);
454
+ if (newLocaleData != null) {
455
+ this._locale = newLocaleData;
456
+ }
457
+ return this;
458
+ };
459
+ /**
460
+ * @return {?}
461
+ */
462
+ Khronos.prototype.localeData = /**
463
+ * @return {?}
464
+ */
465
+ function () {
466
+ return this._locale;
467
+ };
468
+ // Basic
469
+ /**
470
+ * @param {?} val
471
+ * @param {?=} period
472
+ * @return {?}
473
+ */
474
+ Khronos.prototype.add = /**
475
+ * @param {?} val
476
+ * @param {?=} period
477
+ * @return {?}
478
+ */
479
+ function (val, period) {
480
+ var _this = this;
481
+ if (isString(val)) {
482
+ this._date = add(this._date, parseInt(val, 10), mapUnitOfTime(period));
483
+ }
484
+ if (isNumber(val)) {
485
+ this._date = add(this._date, val, mapUnitOfTime(period));
486
+ }
487
+ if (isObject(val)) {
488
+ var /** @type {?} */ _mapped_1 = mapMomentInputObject(val);
489
+ Object.keys(_mapped_1)
490
+ .forEach(function (key) { return add(_this._date, _mapped_1[key], key); });
491
+ }
492
+ return this;
493
+ };
494
+ // fixme: for some reason here 'null' for time is fine
495
+ /**
496
+ * @param {?=} time
497
+ * @param {?=} formats
498
+ * @return {?}
499
+ */
500
+ Khronos.prototype.calendar = /**
501
+ * @param {?=} time
502
+ * @param {?=} formats
503
+ * @return {?}
504
+ */
505
+ function (time, formats) {
506
+ var /** @type {?} */ _time = time instanceof Khronos ? time : new Khronos(time || new Date());
507
+ var /** @type {?} */ _offset = (this._offset || 0) - (_time._offset || 0);
508
+ var /** @type {?} */ _config = Object.assign(this._toConfig(), { _offset: _offset });
509
+ return calendar(this._date, _time._date, formats, this._locale, _config);
510
+ };
511
+ /**
512
+ * @return {?}
513
+ */
514
+ Khronos.prototype.clone = /**
515
+ * @return {?}
516
+ */
517
+ function () {
518
+ var /** @type {?} */ localeKey = this._locale && this._locale._abbr || 'en';
519
+ // return new Khronos(cloneDate(this._date), this._format, localeKey, this._isStrict, this._isUTC);
520
+ // fails if isUTC and offset
521
+ // return new Khronos(new Date(this.valueOf()),
522
+ return new Khronos(this._date, this._format, localeKey, this._isStrict, this._isUTC, this._offset);
523
+ };
524
+ /**
525
+ * @param {?} b
526
+ * @param {?=} unitOfTime
527
+ * @param {?=} precise
528
+ * @return {?}
529
+ */
530
+ Khronos.prototype.diff = /**
531
+ * @param {?} b
532
+ * @param {?=} unitOfTime
533
+ * @param {?=} precise
534
+ * @return {?}
535
+ */
536
+ function (b, unitOfTime, precise) {
537
+ var /** @type {?} */ unit = mapUnitOfTime(unitOfTime);
538
+ var /** @type {?} */ _b = b instanceof Khronos ? b : new Khronos(b);
539
+ // const zoneDelta = (_b.utcOffset() - this.utcOffset());
540
+ // const config = Object.assign(this._toConfig(), {
541
+ // _offset: 0,
542
+ // _isUTC: true,
543
+ // _zoneDelta: zoneDelta
544
+ // });
545
+ // return diff(new Date(this.valueOf()), new Date(_b.valueOf()), unit, precise, config);
546
+ return diff(this._date, _b.toDate(), unit, precise, this._toConfig());
547
+ };
548
+ /**
549
+ * @param {?=} period
550
+ * @return {?}
551
+ */
552
+ Khronos.prototype.endOf = /**
553
+ * @param {?=} period
554
+ * @return {?}
555
+ */
556
+ function (period) {
557
+ var /** @type {?} */ _per = mapUnitOfTime(period);
558
+ this._date = endOf(this._date, _per, this._isUTC);
559
+ return this;
560
+ };
561
+ /**
562
+ * @param {?=} format
563
+ * @return {?}
564
+ */
565
+ Khronos.prototype.format = /**
566
+ * @param {?=} format
567
+ * @return {?}
568
+ */
569
+ function (format) {
570
+ return formatDate(this._date, format, this._locale && this._locale._abbr, this._isUTC, this._offset);
571
+ };
572
+ // todo: implement
573
+ /**
574
+ * @param {?=} time
575
+ * @param {?=} withoutSuffix
576
+ * @return {?}
577
+ */
578
+ Khronos.prototype.from = /**
579
+ * @param {?=} time
580
+ * @param {?=} withoutSuffix
581
+ * @return {?}
582
+ */
583
+ function (time, withoutSuffix) {
584
+ var /** @type {?} */ _time = _moment(time);
585
+ if (this.isValid() && _time.isValid()) {
586
+ return createDuration({ to: this.toDate(), from: _time.toDate() })
587
+ .locale(this.locale())
588
+ .humanize(!withoutSuffix);
589
+ }
590
+ return this.localeData().invalidDate;
591
+ };
592
+ /**
593
+ * @param {?=} withoutSuffix
594
+ * @return {?}
595
+ */
596
+ Khronos.prototype.fromNow = /**
597
+ * @param {?=} withoutSuffix
598
+ * @return {?}
599
+ */
600
+ function (withoutSuffix) {
601
+ return this.from(new Date(), withoutSuffix);
602
+ };
603
+ /**
604
+ * @param {?} inp
605
+ * @param {?=} suffix
606
+ * @return {?}
607
+ */
608
+ Khronos.prototype.to = /**
609
+ * @param {?} inp
610
+ * @param {?=} suffix
611
+ * @return {?}
612
+ */
613
+ function (inp, suffix) {
614
+ throw new Error("TODO: Implement");
615
+ };
616
+ /**
617
+ * @param {?=} withoutPrefix
618
+ * @return {?}
619
+ */
620
+ Khronos.prototype.toNow = /**
621
+ * @param {?=} withoutPrefix
622
+ * @return {?}
623
+ */
624
+ function (withoutPrefix) {
625
+ throw new Error("TODO: Implement");
626
+ };
627
+ /**
628
+ * @param {?} val
629
+ * @param {?=} period
630
+ * @return {?}
631
+ */
632
+ Khronos.prototype.subtract = /**
633
+ * @param {?} val
634
+ * @param {?=} period
635
+ * @return {?}
636
+ */
637
+ function (val, period) {
638
+ var _this = this;
639
+ if (isString(val)) {
640
+ this._date = subtract(this._date, parseInt(val, 10), mapUnitOfTime(period));
641
+ return this;
642
+ }
643
+ if (isNumber(val)) {
644
+ this._date = subtract(this._date, val, mapUnitOfTime(period));
645
+ }
646
+ if (isObject(val)) {
647
+ var /** @type {?} */ _mapped_2 = mapMomentInputObject(val);
648
+ Object.keys(_mapped_2)
649
+ .forEach(function (key) { return subtract(_this._date, _mapped_2[key], key); });
650
+ }
651
+ return this;
652
+ };
653
+ /**
654
+ * @param {?} period
655
+ * @return {?}
656
+ */
657
+ Khronos.prototype.get = /**
658
+ * @param {?} period
659
+ * @return {?}
660
+ */
661
+ function (period) {
662
+ if (period === 'dayOfYear') {
663
+ return this.dayOfYear();
664
+ }
665
+ var /** @type {?} */ unit = mapUnitOfTime(period);
666
+ switch (unit) {
667
+ case 'year':
668
+ return this.year();
669
+ case 'month':
670
+ return this.month();
671
+ // | 'week'
672
+ case 'date':
673
+ return this.date();
674
+ case 'day':
675
+ return this.day();
676
+ case 'hours':
677
+ return this.hours();
678
+ case 'minutes':
679
+ return this.minutes();
680
+ case 'seconds':
681
+ return this.seconds();
682
+ case 'milliseconds':
683
+ return this.milliseconds();
684
+ case 'week':
685
+ return this.week();
686
+ case 'isoWeek':
687
+ return this.isoWeek();
688
+ case 'weekYear':
689
+ return this.weekYear();
690
+ case 'isoWeekYear':
691
+ return this.isoWeekYear();
692
+ case 'weekday':
693
+ return this.weekday();
694
+ case 'isoWeekday':
695
+ return this.isoWeekday();
696
+ case 'quarter':
697
+ return this.quarter();
698
+ default:
699
+ throw new Error("Unknown moment.get('" + period + "')");
700
+ }
701
+ };
702
+ /**
703
+ * @param {?} period
704
+ * @param {?=} input
705
+ * @return {?}
706
+ */
707
+ Khronos.prototype.set = /**
708
+ * @param {?} period
709
+ * @param {?=} input
710
+ * @return {?}
711
+ */
712
+ function (period, input) {
713
+ var _this = this;
714
+ if (isString(period)) {
715
+ var /** @type {?} */ unit = mapUnitOfTime(period);
716
+ switch (unit) {
717
+ case 'year':
718
+ return this.year(input);
719
+ case 'month':
720
+ return this.month(input);
721
+ // | 'week'
722
+ case 'day':
723
+ return this.day(input);
724
+ case 'date':
725
+ return this.date(input);
726
+ case 'hours':
727
+ return this.hours(input);
728
+ case 'minutes':
729
+ return this.minutes(input);
730
+ case 'seconds':
731
+ return this.seconds(input);
732
+ case 'milliseconds':
733
+ return this.milliseconds(input);
734
+ case 'week':
735
+ return this.week(input);
736
+ case 'isoWeek':
737
+ return this.isoWeek(input);
738
+ case 'weekYear':
739
+ return this.weekYear(input);
740
+ case 'isoWeekYear':
741
+ return this.isoWeekYear(input);
742
+ case 'weekday':
743
+ return this.weekday(input);
744
+ case 'isoWeekday':
745
+ return this.isoWeekday(input);
746
+ case 'quarter':
747
+ return this.quarter(input);
748
+ default:
749
+ throw new Error("Unknown moment.get('" + period + "')");
750
+ }
751
+ }
752
+ if (isObject(period)) {
753
+ var /** @type {?} */ _mapped_3 = mapMomentInputObject(period);
754
+ Object.keys(_mapped_3)
755
+ .sort(function (a, b) {
756
+ return _unitsPriority[a] - _unitsPriority[b];
757
+ })
758
+ .forEach(function (key) { return _this.set(key, _mapped_3[key]); });
759
+ }
760
+ return this;
761
+ };
762
+ /**
763
+ * @return {?}
764
+ */
765
+ Khronos.prototype.toString = /**
766
+ * @return {?}
767
+ */
768
+ function () {
769
+ return this.format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
770
+ };
771
+ /**
772
+ * @return {?}
773
+ */
774
+ Khronos.prototype.toISOString = /**
775
+ * @return {?}
776
+ */
777
+ function () {
778
+ if (!this.isValid()) {
779
+ return null;
780
+ }
781
+ if (getFullYear(this._date, true) < 0 || getFullYear(this._date, true) > 9999) {
782
+ return this.format('YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
783
+ }
784
+ if (isFunction(Date.prototype.toISOString)) {
785
+ // native implementation is ~50x faster, use it when we can
786
+ return this.toDate().toISOString();
787
+ }
788
+ return this.format('YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
789
+ };
790
+ /**
791
+ * @return {?}
792
+ */
793
+ Khronos.prototype.inspect = /**
794
+ * @return {?}
795
+ */
796
+ function () {
797
+ throw new Error('TODO: implement');
798
+ };
799
+ /**
800
+ * @return {?}
801
+ */
802
+ Khronos.prototype.toJSON = /**
803
+ * @return {?}
804
+ */
805
+ function () {
806
+ return this.toISOString();
807
+ };
808
+ /**
809
+ * @return {?}
810
+ */
811
+ Khronos.prototype.toDate = /**
812
+ * @return {?}
813
+ */
814
+ function () {
815
+ return new Date(this.valueOf());
816
+ };
817
+ /**
818
+ * @return {?}
819
+ */
820
+ Khronos.prototype.toObject = /**
821
+ * @return {?}
822
+ */
823
+ function () {
824
+ return {
825
+ // years: getFullYear(this._date, this._isUTC),
826
+ // months: getMonth(this._date, this._isUTC),
827
+ year: getFullYear(this._date, this._isUTC),
828
+ month: getMonth(this._date, this._isUTC),
829
+ date: getDate(this._date, this._isUTC),
830
+ hours: getHours(this._date, this._isUTC),
831
+ minutes: getMinutes(this._date, this._isUTC),
832
+ seconds: getSeconds(this._date, this._isUTC),
833
+ milliseconds: getMilliseconds(this._date, this._isUTC)
834
+ };
835
+ };
836
+ /**
837
+ * @return {?}
838
+ */
839
+ Khronos.prototype.toArray = /**
840
+ * @return {?}
841
+ */
842
+ function () {
843
+ return [this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()];
844
+ };
845
+ // Dates boolean algebra
846
+ /**
847
+ * @param {?} date
848
+ * @param {?=} unit
849
+ * @return {?}
850
+ */
851
+ Khronos.prototype.isAfter = /**
852
+ * @param {?} date
853
+ * @param {?=} unit
854
+ * @return {?}
855
+ */
856
+ function (date, unit) {
857
+ var /** @type {?} */ _unit = unit ? mapUnitOfTime(unit) : void 0;
858
+ return isAfter(this._date, date.toDate(), _unit);
859
+ };
860
+ /**
861
+ * @param {?} date
862
+ * @param {?=} unit
863
+ * @return {?}
864
+ */
865
+ Khronos.prototype.isBefore = /**
866
+ * @param {?} date
867
+ * @param {?=} unit
868
+ * @return {?}
869
+ */
870
+ function (date, unit) {
871
+ var /** @type {?} */ _unit = unit ? mapUnitOfTime(unit) : void 0;
872
+ return isBefore(this.toDate(), date.toDate(), _unit);
873
+ };
874
+ /**
875
+ * @param {?} from
876
+ * @param {?} to
877
+ * @param {?=} unit
878
+ * @param {?=} inclusivity
879
+ * @return {?}
880
+ */
881
+ Khronos.prototype.isBetween = /**
882
+ * @param {?} from
883
+ * @param {?} to
884
+ * @param {?=} unit
885
+ * @param {?=} inclusivity
886
+ * @return {?}
887
+ */
888
+ function (from, to, unit, inclusivity) {
889
+ var /** @type {?} */ _unit = unit ? mapUnitOfTime(unit) : void 0;
890
+ return isBetween(this.toDate(), from.toDate(), to.toDate(), _unit, inclusivity);
891
+ };
892
+ /**
893
+ * @param {?} date
894
+ * @param {?=} unit
895
+ * @return {?}
896
+ */
897
+ Khronos.prototype.isSame = /**
898
+ * @param {?} date
899
+ * @param {?=} unit
900
+ * @return {?}
901
+ */
902
+ function (date, unit) {
903
+ var /** @type {?} */ _unit = unit ? mapUnitOfTime(unit) : void 0;
904
+ return isSame(this._date, date.toDate(), _unit);
905
+ };
906
+ /**
907
+ * @param {?} date
908
+ * @param {?=} unit
909
+ * @return {?}
910
+ */
911
+ Khronos.prototype.isSameOrAfter = /**
912
+ * @param {?} date
913
+ * @param {?=} unit
914
+ * @return {?}
915
+ */
916
+ function (date, unit) {
917
+ var /** @type {?} */ _unit = unit ? mapUnitOfTime(unit) : void 0;
918
+ return isSameOrAfter(this._date, date.toDate(), _unit);
919
+ };
920
+ /**
921
+ * @param {?} date
922
+ * @param {?=} unit
923
+ * @return {?}
924
+ */
925
+ Khronos.prototype.isSameOrBefore = /**
926
+ * @param {?} date
927
+ * @param {?=} unit
928
+ * @return {?}
929
+ */
930
+ function (date, unit) {
931
+ var /** @type {?} */ _unit = unit ? mapUnitOfTime(unit) : void 0;
932
+ return isSameOrBefore(this._date, date.toDate(), _unit);
933
+ };
934
+ /**
935
+ * @return {?}
936
+ */
937
+ Khronos.prototype.isValid = /**
938
+ * @return {?}
939
+ */
940
+ function () {
941
+ return isDateValid(this._date);
942
+ };
943
+ /**
944
+ * @return {?}
945
+ */
946
+ Khronos.prototype.valueOf = /**
947
+ * @return {?}
948
+ */
949
+ function () {
950
+ return this._date.valueOf() - ((this._offset || 0) * 60000);
951
+ };
952
+ /**
953
+ * @return {?}
954
+ */
955
+ Khronos.prototype.unix = /**
956
+ * @return {?}
957
+ */
958
+ function () {
959
+ // return getUnixTime(this._date);
960
+ return Math.floor(this.valueOf() / 1000);
961
+ };
962
+ /**
963
+ * @param {?=} b
964
+ * @param {?=} keepLocalTime
965
+ * @return {?}
966
+ */
967
+ Khronos.prototype.utcOffset = /**
968
+ * @param {?=} b
969
+ * @param {?=} keepLocalTime
970
+ * @return {?}
971
+ */
972
+ function (b, keepLocalTime) {
973
+ var /** @type {?} */ _config = this._toConfig();
974
+ if (!b && b !== 0) {
975
+ return getUTCOffset(this._date, _config);
976
+ }
977
+ this._date = setUTCOffset(this._date, b, keepLocalTime, false, _config);
978
+ this._offset = _config._offset;
979
+ this._isUTC = _config._isUTC;
980
+ return this;
981
+ };
982
+ /**
983
+ * @param {?=} keepLocalTime
984
+ * @return {?}
985
+ */
986
+ Khronos.prototype.utc = /**
987
+ * @param {?=} keepLocalTime
988
+ * @return {?}
989
+ */
990
+ function (keepLocalTime) {
991
+ return this.utcOffset(0, keepLocalTime);
992
+ };
993
+ /**
994
+ * @param {?=} keepLocalTime
995
+ * @return {?}
996
+ */
997
+ Khronos.prototype.local = /**
998
+ * @param {?=} keepLocalTime
999
+ * @return {?}
1000
+ */
1001
+ function (keepLocalTime) {
1002
+ if (this._isUTC) {
1003
+ this.utcOffset(0, keepLocalTime);
1004
+ this._isUTC = false;
1005
+ if (keepLocalTime) {
1006
+ this.subtract(getDateOffset(this._date), 'm');
1007
+ }
1008
+ }
1009
+ return this;
1010
+ };
1011
+ /**
1012
+ * @param {?=} input
1013
+ * @return {?}
1014
+ */
1015
+ Khronos.prototype.parseZone = /**
1016
+ * @param {?=} input
1017
+ * @return {?}
1018
+ */
1019
+ function (input) {
1020
+ var /** @type {?} */ _config = this._toConfig();
1021
+ this._date = setOffsetToParsedOffset(this._date, input, _config);
1022
+ this._offset = _config._offset;
1023
+ this._isUTC = _config._isUTC;
1024
+ return this;
1025
+ };
1026
+ /**
1027
+ * @param {?=} input
1028
+ * @return {?}
1029
+ */
1030
+ Khronos.prototype.hasAlignedHourOffset = /**
1031
+ * @param {?=} input
1032
+ * @return {?}
1033
+ */
1034
+ function (input) {
1035
+ return hasAlignedHourOffset(this._date, input ? input._date : void 0);
1036
+ };
1037
+ /**
1038
+ * @return {?}
1039
+ */
1040
+ Khronos.prototype.isDST = /**
1041
+ * @return {?}
1042
+ */
1043
+ function () {
1044
+ return isDaylightSavingTime(this._date);
1045
+ };
1046
+ /**
1047
+ * @return {?}
1048
+ */
1049
+ Khronos.prototype.isLocal = /**
1050
+ * @return {?}
1051
+ */
1052
+ function () {
1053
+ return !this._isUTC;
1054
+ };
1055
+ /**
1056
+ * @return {?}
1057
+ */
1058
+ Khronos.prototype.isUtcOffset = /**
1059
+ * @return {?}
1060
+ */
1061
+ function () {
1062
+ return this._isUTC;
1063
+ };
1064
+ /**
1065
+ * @return {?}
1066
+ */
1067
+ Khronos.prototype.isUTC = /**
1068
+ * @return {?}
1069
+ */
1070
+ function () {
1071
+ return this.isUtc();
1072
+ };
1073
+ /**
1074
+ * @return {?}
1075
+ */
1076
+ Khronos.prototype.isUtc = /**
1077
+ * @return {?}
1078
+ */
1079
+ function () {
1080
+ return this._isUTC && this._offset === 0;
1081
+ };
1082
+ // Timezone
1083
+ /**
1084
+ * @return {?}
1085
+ */
1086
+ Khronos.prototype.zoneAbbr = /**
1087
+ * @return {?}
1088
+ */
1089
+ function () {
1090
+ return getZoneAbbr(this._isUTC);
1091
+ };
1092
+ /**
1093
+ * @return {?}
1094
+ */
1095
+ Khronos.prototype.zoneName = /**
1096
+ * @return {?}
1097
+ */
1098
+ function () {
1099
+ return getZoneName(this._isUTC);
1100
+ };
1101
+ /**
1102
+ * @param {?=} year
1103
+ * @return {?}
1104
+ */
1105
+ Khronos.prototype.year = /**
1106
+ * @param {?=} year
1107
+ * @return {?}
1108
+ */
1109
+ function (year) {
1110
+ if (!year && year !== 0) {
1111
+ return getFullYear(this._date, this._isUTC);
1112
+ }
1113
+ this._date = cloneDate(setFullYear(this._date, year));
1114
+ return this;
1115
+ };
1116
+ /**
1117
+ * @param {?=} val
1118
+ * @return {?}
1119
+ */
1120
+ Khronos.prototype.weekYear = /**
1121
+ * @param {?=} val
1122
+ * @return {?}
1123
+ */
1124
+ function (val) {
1125
+ if (!val && val !== 0) {
1126
+ return getWeekYear(this._date, this._locale, this.isUTC());
1127
+ }
1128
+ var /** @type {?} */ date = getSetWeekYear(this._date, val, this._locale, this.isUTC());
1129
+ if (isDate(date)) {
1130
+ this._date = date;
1131
+ }
1132
+ return this;
1133
+ };
1134
+ /**
1135
+ * @param {?=} val
1136
+ * @return {?}
1137
+ */
1138
+ Khronos.prototype.isoWeekYear = /**
1139
+ * @param {?=} val
1140
+ * @return {?}
1141
+ */
1142
+ function (val) {
1143
+ if (!val && val !== 0) {
1144
+ return getISOWeekYear(this._date, this.isUTC());
1145
+ }
1146
+ var /** @type {?} */ date = getSetISOWeekYear(this._date, val, this.isUtc());
1147
+ if (isDate(date)) {
1148
+ this._date = date;
1149
+ }
1150
+ return this;
1151
+ };
1152
+ /**
1153
+ * @return {?}
1154
+ */
1155
+ Khronos.prototype.isLeapYear = /**
1156
+ * @return {?}
1157
+ */
1158
+ function () {
1159
+ return isLeapYear(getFullYear(this.toDate(), this.isUTC()));
1160
+ };
1161
+ /**
1162
+ * @param {?=} month
1163
+ * @return {?}
1164
+ */
1165
+ Khronos.prototype.month = /**
1166
+ * @param {?=} month
1167
+ * @return {?}
1168
+ */
1169
+ function (month) {
1170
+ if (!month && month !== 0) {
1171
+ return getMonth(this._date, this._isUTC);
1172
+ }
1173
+ var /** @type {?} */ _month = month;
1174
+ if (isString(month)) {
1175
+ var /** @type {?} */ locale = this._locale || getLocale();
1176
+ _month = locale.monthsParse(month);
1177
+ }
1178
+ if (isNumber(_month)) {
1179
+ this._date = cloneDate(setMonth(this._date, _month, this._isUTC));
1180
+ }
1181
+ return this;
1182
+ };
1183
+ /**
1184
+ * @param {?=} hours
1185
+ * @return {?}
1186
+ */
1187
+ Khronos.prototype.hour = /**
1188
+ * @param {?=} hours
1189
+ * @return {?}
1190
+ */
1191
+ function (hours) {
1192
+ return this.hours(hours);
1193
+ };
1194
+ /**
1195
+ * @param {?=} hours
1196
+ * @return {?}
1197
+ */
1198
+ Khronos.prototype.hours = /**
1199
+ * @param {?=} hours
1200
+ * @return {?}
1201
+ */
1202
+ function (hours) {
1203
+ if (!hours && hours !== 0) {
1204
+ return getHours(this._date, this._isUTC);
1205
+ }
1206
+ this._date = cloneDate(setHours(this._date, hours, this._isUTC));
1207
+ return this;
1208
+ };
1209
+ /**
1210
+ * @param {?=} minutes
1211
+ * @return {?}
1212
+ */
1213
+ Khronos.prototype.minute = /**
1214
+ * @param {?=} minutes
1215
+ * @return {?}
1216
+ */
1217
+ function (minutes) {
1218
+ return this.minutes(minutes);
1219
+ };
1220
+ /**
1221
+ * @param {?=} minutes
1222
+ * @return {?}
1223
+ */
1224
+ Khronos.prototype.minutes = /**
1225
+ * @param {?=} minutes
1226
+ * @return {?}
1227
+ */
1228
+ function (minutes) {
1229
+ if (!minutes && minutes !== 0) {
1230
+ return getMinutes(this._date, this._isUTC);
1231
+ }
1232
+ this._date = cloneDate(setMinutes(this._date, minutes, this._isUTC));
1233
+ return this;
1234
+ };
1235
+ /**
1236
+ * @param {?=} seconds
1237
+ * @return {?}
1238
+ */
1239
+ Khronos.prototype.second = /**
1240
+ * @param {?=} seconds
1241
+ * @return {?}
1242
+ */
1243
+ function (seconds) {
1244
+ return this.seconds(seconds);
1245
+ };
1246
+ /**
1247
+ * @param {?=} seconds
1248
+ * @return {?}
1249
+ */
1250
+ Khronos.prototype.seconds = /**
1251
+ * @param {?=} seconds
1252
+ * @return {?}
1253
+ */
1254
+ function (seconds) {
1255
+ if (!seconds && seconds !== 0) {
1256
+ return getSeconds(this._date, this._isUTC);
1257
+ }
1258
+ this._date = cloneDate(setSeconds(this._date, seconds, this._isUTC));
1259
+ return this;
1260
+ };
1261
+ /**
1262
+ * @param {?=} ms
1263
+ * @return {?}
1264
+ */
1265
+ Khronos.prototype.millisecond = /**
1266
+ * @param {?=} ms
1267
+ * @return {?}
1268
+ */
1269
+ function (ms) {
1270
+ return this.milliseconds(ms);
1271
+ };
1272
+ /**
1273
+ * @param {?=} seconds
1274
+ * @return {?}
1275
+ */
1276
+ Khronos.prototype.milliseconds = /**
1277
+ * @param {?=} seconds
1278
+ * @return {?}
1279
+ */
1280
+ function (seconds) {
1281
+ if (!seconds && seconds !== 0) {
1282
+ return getMilliseconds(this._date, this._isUTC);
1283
+ }
1284
+ this._date = cloneDate(setMilliseconds(this._date, seconds, this._isUTC));
1285
+ return this;
1286
+ };
1287
+ /**
1288
+ * @param {?=} date
1289
+ * @return {?}
1290
+ */
1291
+ Khronos.prototype.date = /**
1292
+ * @param {?=} date
1293
+ * @return {?}
1294
+ */
1295
+ function (date) {
1296
+ if (!date && date !== 0) {
1297
+ return getDate(this._date, this._isUTC);
1298
+ }
1299
+ this._date = cloneDate(setDate(this._date, date, this._isUTC));
1300
+ return this;
1301
+ };
1302
+ /**
1303
+ * @param {?=} input
1304
+ * @return {?}
1305
+ */
1306
+ Khronos.prototype.day = /**
1307
+ * @param {?=} input
1308
+ * @return {?}
1309
+ */
1310
+ function (input) {
1311
+ if (!input && input !== 0) {
1312
+ return getDayOfWeek(this._date, this._isUTC);
1313
+ }
1314
+ var /** @type {?} */ _input = input;
1315
+ if (isString(input)) {
1316
+ _input = parseWeekday(input, this._locale);
1317
+ }
1318
+ if (isNumber(_input)) {
1319
+ this._date = setDayOfWeek(this._date, _input, this._locale, this._isUTC);
1320
+ }
1321
+ return this;
1322
+ };
1323
+ /**
1324
+ * @param {?=} val
1325
+ * @return {?}
1326
+ */
1327
+ Khronos.prototype.weekday = /**
1328
+ * @param {?=} val
1329
+ * @return {?}
1330
+ */
1331
+ function (val) {
1332
+ if (!val && val !== 0) {
1333
+ return getLocaleDayOfWeek(this._date, this._locale, this._isUTC);
1334
+ }
1335
+ this._date = setLocaleDayOfWeek(this._date, val, { locale: this._locale, isUTC: this._isUTC });
1336
+ return this;
1337
+ };
1338
+ /**
1339
+ * @param {?=} val
1340
+ * @return {?}
1341
+ */
1342
+ Khronos.prototype.isoWeekday = /**
1343
+ * @param {?=} val
1344
+ * @return {?}
1345
+ */
1346
+ function (val) {
1347
+ if (!val && val !== 0) {
1348
+ return getISODayOfWeek(this._date);
1349
+ }
1350
+ this._date = setISODayOfWeek(this._date, val);
1351
+ return this;
1352
+ };
1353
+ /**
1354
+ * @param {?=} val
1355
+ * @return {?}
1356
+ */
1357
+ Khronos.prototype.dayOfYear = /**
1358
+ * @param {?=} val
1359
+ * @return {?}
1360
+ */
1361
+ function (val) {
1362
+ if (!val && val !== 0) {
1363
+ return getDayOfYear(this._date);
1364
+ }
1365
+ this._date = setDayOfYear(this._date, val);
1366
+ return this;
1367
+ };
1368
+ /**
1369
+ * @param {?=} input
1370
+ * @return {?}
1371
+ */
1372
+ Khronos.prototype.week = /**
1373
+ * @param {?=} input
1374
+ * @return {?}
1375
+ */
1376
+ function (input) {
1377
+ if (!input && input !== 0) {
1378
+ return getWeek(this._date, this._locale);
1379
+ }
1380
+ this._date = setWeek(this._date, input, this._locale);
1381
+ return this;
1382
+ };
1383
+ /**
1384
+ * @param {?=} input
1385
+ * @return {?}
1386
+ */
1387
+ Khronos.prototype.weeks = /**
1388
+ * @param {?=} input
1389
+ * @return {?}
1390
+ */
1391
+ function (input) {
1392
+ return this.week(input);
1393
+ };
1394
+ /**
1395
+ * @param {?=} val
1396
+ * @return {?}
1397
+ */
1398
+ Khronos.prototype.isoWeek = /**
1399
+ * @param {?=} val
1400
+ * @return {?}
1401
+ */
1402
+ function (val) {
1403
+ if (!val && val !== 0) {
1404
+ return getISOWeek(this._date);
1405
+ }
1406
+ this._date = setISOWeek(this._date, val);
1407
+ return this;
1408
+ };
1409
+ /**
1410
+ * @param {?=} val
1411
+ * @return {?}
1412
+ */
1413
+ Khronos.prototype.isoWeeks = /**
1414
+ * @param {?=} val
1415
+ * @return {?}
1416
+ */
1417
+ function (val) {
1418
+ return this.isoWeek(val);
1419
+ };
1420
+ /**
1421
+ * @return {?}
1422
+ */
1423
+ Khronos.prototype.weeksInYear = /**
1424
+ * @return {?}
1425
+ */
1426
+ function () {
1427
+ return getWeeksInYear(this._date, this._isUTC, this._locale);
1428
+ };
1429
+ /**
1430
+ * @return {?}
1431
+ */
1432
+ Khronos.prototype.isoWeeksInYear = /**
1433
+ * @return {?}
1434
+ */
1435
+ function () {
1436
+ return getISOWeeksInYear(this._date, this._isUTC);
1437
+ };
1438
+ /**
1439
+ * @return {?}
1440
+ */
1441
+ Khronos.prototype.daysInMonth = /**
1442
+ * @return {?}
1443
+ */
1444
+ function () {
1445
+ return daysInMonth(getFullYear(this._date, this._isUTC), getMonth(this._date, this._isUTC));
1446
+ };
1447
+ /**
1448
+ * @param {?=} val
1449
+ * @return {?}
1450
+ */
1451
+ Khronos.prototype.quarter = /**
1452
+ * @param {?=} val
1453
+ * @return {?}
1454
+ */
1455
+ function (val) {
1456
+ if (!val && val !== 0) {
1457
+ return getQuarter(this._date, this._isUTC);
1458
+ }
1459
+ this._date = setQuarter(this._date, val, this._isUTC);
1460
+ return this;
1461
+ };
1462
+ /**
1463
+ * @param {?=} val
1464
+ * @return {?}
1465
+ */
1466
+ Khronos.prototype.quarters = /**
1467
+ * @param {?=} val
1468
+ * @return {?}
1469
+ */
1470
+ function (val) {
1471
+ return this.quarter(val);
1472
+ };
1473
+ /**
1474
+ * @param {?=} period
1475
+ * @return {?}
1476
+ */
1477
+ Khronos.prototype.startOf = /**
1478
+ * @param {?=} period
1479
+ * @return {?}
1480
+ */
1481
+ function (period) {
1482
+ var /** @type {?} */ _per = mapUnitOfTime(period);
1483
+ this._date = startOf(this._date, _per, this._isUTC);
1484
+ return this;
1485
+ };
1486
+ return Khronos;
1487
+ }());
1488
+ export { Khronos };
1489
+ function Khronos_tsickle_Closure_declarations() {
1490
+ /** @type {?} */
1491
+ Khronos.prototype._date;
1492
+ /** @type {?} */
1493
+ Khronos.prototype._isUTC;
1494
+ /** @type {?} */
1495
+ Khronos.prototype._isStrict;
1496
+ /** @type {?} */
1497
+ Khronos.prototype._locale;
1498
+ /** @type {?} */
1499
+ Khronos.prototype._format;
1500
+ /** @type {?} */
1501
+ Khronos.prototype._offset;
1502
+ /** @type {?} */
1503
+ Khronos.prototype._tzm;
1504
+ }
1505
+
1506
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL2Nocm9ub3MvIiwic291cmNlcyI6WyJ0ZXN0L2NoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBYSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFcEQsT0FBTyxFQUNMLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFFbEYsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQ3JFLFVBQVUsRUFDWCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFDeEUsV0FBVyxFQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsWUFBWSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUNqRixZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVH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Ozs7SUFLRCx5QkFBTzs7OztJQUFQLFVBQVEsR0FBWTtRQUNsQixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRELE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDYjs7Ozs7SUFLRCwwQkFBUTs7OztJQUFSLFVBQVMsR0FBWTtRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMxQjs7Ozs7SUFFRCx5QkFBTzs7OztJQUFQLFVBQVEsTUFBeUI7UUFDL0IscUJBQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEQsTUFBTSxDQUFDLElBQUksQ0FBQztLQUNiO2tCQXRxQ0g7SUF3cUNDLENBQUE7QUEzd0JELG1CQTJ3QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggbWF4LWZpbGUtbGluZS1jb3VudFxuaW1wb3J0IHsgYWRkLCBwYXJzZURhdGUsIHN1YnRyYWN0IH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgRGF0ZUFycmF5LCBEYXRlT2JqZWN0LCBVbml0T2ZUaW1lIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZ2V0RGF0ZSwgZ2V0RnVsbFllYXIsIGdldEhvdXJzLCBnZXRNaWxsaXNlY29uZHMsIGdldE1pbnV0ZXMsIGdldE1vbnRoLCBnZXRTZWNvbmRzLFxuICBnZXRVbml4VGltZVxufSBmcm9tICcuLi91dGlscy9kYXRlLWdldHRlcnMnO1xuaW1wb3J0IHtcbiAgc2V0RGF0ZSwgc2V0RnVsbFllYXIsIHNldEhvdXJzLCBzZXRNaWxsaXNlY29uZHMsIHNldE1pbnV0ZXMsIHNldE1vbnRoLFxuICBzZXRTZWNvbmRzXG59IGZyb20gJy4uL3V0aWxzL2RhdGUtc2V0dGVycyc7XG5pbXBvcnQgeyBjbG9uZURhdGUgfSBmcm9tICcuLi9jcmVhdGUvY2xvbmUnO1xuaW1wb3J0IHtcbiAgaXNBcnJheSxcbiAgaXNCb29sZWFuLCBpc0RhdGUsIGlzRGF0ZVZhbGlkLCBpc0Z1bmN0aW9uLCBpc051bWJlciwgaXNPYmplY3QsIGlzU3RyaW5nLFxuICBpc1VuZGVmaW5lZFxufSBmcm9tICcuLi91dGlscy90eXBlLWNoZWNrcyc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnLi4vZm9ybWF0JztcbmltcG9ydCB7IElTT184NjAxLCBSRkNfMjgyMiB9IGZyb20gJy4uL2NyZWF0ZS9mcm9tLXN0cmluZy1hbmQtZm9ybWF0JztcbmltcG9ydCB7IExvY2FsZSwgTG9jYWxlRGF0YSB9IGZyb20gJy4uL2xvY2FsZS9sb2NhbGUuY2xhc3MnO1xuaW1wb3J0IHtcbiAgZ2V0RGF0ZU9mZnNldCxcbiAgZ2V0VVRDT2Zmc2V0LCBoYXNBbGlnbmVkSG91ck9mZnNldCwgaXNEYXlsaWdodFNhdmluZ1RpbWUsIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0LFxuICBzZXRVVENPZmZzZXRcbn0gZnJvbSAnLi4vdW5pdHMvb2Zmc2V0JztcbmltcG9ydCB7IGlzTGVhcFllYXIsIHBhcnNlVHdvRGlnaXRZZWFyIH0gZnJvbSAnLi4vdW5pdHMveWVhcic7XG5pbXBvcnQgeyBpc0FmdGVyLCBpc0JlZm9yZSwgaXNCZXR3ZWVuLCBpc1NhbWUsIGlzU2FtZU9yQWZ0ZXIsIGlzU2FtZU9yQmVmb3JlIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1jb21wYXJlJztcbmltcG9ydCB7IGRheXNJbk1vbnRoIH0gZnJvbSAnLi4vdW5pdHMvbW9udGgnO1xuaW1wb3J0IHtcbiAgZ2V0RGF5T2ZXZWVrLCBnZXRJU09EYXlPZldlZWssIGdldExvY2FsZURheU9mV2VlaywgcGFyc2VXZWVrZGF5LCBzZXREYXlPZldlZWssIHNldElTT0RheU9mV2VlayxcbiAgc2V0TG9jYWxlRGF5T2ZXZWVrXG59IGZyb20gJy4uL3VuaXRzL2RheS1vZi13ZWVrJztcbmltcG9ydCB7IGdldElTT1dlZWssIGdldFdlZWssIHNldElTT1dlZWssIHNldFdlZWsgfSBmcm9tICcuLi91bml0cy93ZWVrJztcbmltcG9ydCB7XG4gIGdldElTT1dlZWtzSW5ZZWFyLCBnZXRJU09XZWVrWWVhciwgZ2V0U2V0SVNPV2Vla1llYXIsIGdldFNldFdlZWtZZWFyLCBnZXRXZWVrc0luWWVhcixcbiAgZ2V0V2Vla1llYXJcbn0gZnJvbSAnLi4vdW5pdHMvd2Vlay15ZWFyJztcbmltcG9ydCB7IGVuZE9mLCBzdGFydE9mIH0gZnJvbSAnLi4vdXRpbHMvc3RhcnQtZW5kLW9mJztcbmltcG9ydCB7IGdldFF1YXJ0ZXIsIHNldFF1YXJ0ZXIgfSBmcm9tICcuLi91bml0cy9xdWFydGVyJztcbmltcG9ydCB7IGdldERheU9mWWVhciwgc2V0RGF5T2ZZZWFyIH0gZnJvbSAnLi4vdW5pdHMvZGF5LW9mLXllYXInO1xuaW1wb3J0IHsgZ2V0Wm9uZUFiYnIsIGdldFpvbmVOYW1lIH0gZnJvbSAnLi4vdW5pdHMvdGltZXpvbmUnO1xuaW1wb3J0IHsgZGlmZiB9IGZyb20gJy4uL21vbWVudC9kaWZmJztcbmltcG9ydCB7IERhdGVQYXJzaW5nQ29uZmlnIH0gZnJvbSAnLi4vY3JlYXRlL3BhcnNpbmcudHlwZXMnO1xuaW1wb3J0IHsgY2FsZW5kYXIsIENhbGVuZGFyU3BlYyB9IGZyb20gJy4uL21vbWVudC9jYWxlbmRhcic7XG5pbXBvcnQgeyBkZWZpbmVMb2NhbGUsIGdldExvY2FsZSwgZ2V0U2V0R2xvYmFsTG9jYWxlLCBsaXN0TG9jYWxlcyB9IGZyb20gJy4uL2xvY2FsZS9sb2NhbGVzJztcbmltcG9ydCB7IG1heCwgbWluIH0gZnJvbSAnLi4vbW9tZW50L21pbi1tYXgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIGlzRHVyYXRpb24gfSBmcm9tICcuLi9kdXJhdGlvbi9jb25zdHJ1Y3Rvcic7XG5pbXBvcnQgeyBjcmVhdGVMb2NhbE9yVVRDIH0gZnJvbSAnLi4vY3JlYXRlL2Zyb20tYW55dGhpbmcnO1xuaW1wb3J0IHsgY3JlYXRlRHVyYXRpb24gfSBmcm9tICcuLi9kdXJhdGlvbi9jcmVhdGUnO1xuXG5leHBvcnQgdHlwZSBEYXRlSW5wdXQgPSBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHwgc3RyaW5nW10gfCBEYXRlQXJyYXkgfCBNb21lbnRJbnB1dE9iamVjdDtcblxuZXhwb3J0IGNvbnN0IG1vbWVudDogTW9tZW50Rm4gPSAoX21vbWVudCBhcyBNb21lbnRGbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9tZW50Rm4ge1xuICAoaW5wdXQ/OiBEYXRlSW5wdXQgfCBLaHJvbm9zLCBmb3JtYXQ/OiBzdHJpbmcgfCBzdHJpbmdbXSwgbG9jYWxlS2V5Pzogc3RyaW5nIHwgYm9vbGVhbiwgc3RyaWN0PzogYm9vbGVhbiwgaXNVVEM/OiBib29sZWFuKTogS2hyb25vcztcblxuICBJU09fODYwMTogc3RyaW5nO1xuICBSRkNfMjgyMjogc3RyaW5nO1xuXG4gIHV0YyhpbnB1dD86IERhdGVJbnB1dCB8IEtocm9ub3MsIGZvcm1hdD86IHN0cmluZyB8IHN0cmluZ1tdLCBsb2NhbGVLZXk/OiBzdHJpbmcgfCBib29sZWFuLCBzdHJpY3Q/OiBib29sZWFuKTogS2hyb25vcztcblxuICBwYXJzZVpvbmUoaW5wdXQ/OiBEYXRlSW5wdXQgfCBLaHJvbm9zLCBmb3JtYXQ/OiBzdHJpbmcgfCBzdHJpbmdbXSwgbG9jYWxlS2V5Pzogc3RyaW5nIHwgYm9vbGVhbiwgc3RyaWN0PzogYm9vbGVhbik6IEtocm9ub3M7XG5cbiAgdW5peChudW06IG51bWJlcik6IEtocm9ub3M7XG5cbiAgbG9jYWxlKGtleT86IHN0cmluZyB8IHN0cmluZ1tdLCB2YWx1ZXM/OiBMb2NhbGVEYXRhKTogc3RyaW5nO1xuXG4gIGR1cmF0aW9uKGlucD86IER1cmF0aW9uIHwgRGF0ZUlucHV0IHwgS2hyb25vcywgdW5pdD86IE1vbWVudFVuaXRPZlRpbWUpOiBEdXJhdGlvbjtcblxuICBkZWZpbmVMb2NhbGUobmFtZTogc3RyaW5nLCBjb25maWc/OiBMb2NhbGVEYXRhKTogTG9jYWxlO1xuXG4gIHBhcnNlVHdvRGlnaXRZZWFyKGlucHV0OiBzdHJpbmcpOiBudW1iZXI7XG5cbiAgaXNEYXRlKGlucHV0PzogYW55KTogaW5wdXQgaXMgRGF0ZTtcblxuICBtb250aHMoKTogc3RyaW5nW107XG5cbiAgbW9udGhzKGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgbW9udGhzKGZvcm1hdDogc3RyaW5nKTogc3RyaW5nW107XG5cbiAgbW9udGhzKGZvcm1hdDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIG1vbnRoc1Nob3J0KCk6IHN0cmluZ1tdO1xuXG4gIG1vbnRoc1Nob3J0KGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgbW9udGhzU2hvcnQoZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICBtb250aHNTaG9ydChmb3JtYXQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZztcblxuICB3ZWVrZGF5cygpOiBzdHJpbmdbXTtcblxuICB3ZWVrZGF5cyhpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIHdlZWtkYXlzKGZvcm1hdDogc3RyaW5nKTogc3RyaW5nW107XG5cbiAgd2Vla2RheXMoZm9ybWF0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgd2Vla2RheXMobG9jYWxlU29ydGVkOiBib29sZWFuKTogc3RyaW5nW107XG5cbiAgd2Vla2RheXMobG9jYWxlU29ydGVkOiBib29sZWFuLCBpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIHdlZWtkYXlzKGxvY2FsZVNvcnRlZDogYm9vbGVhbiwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICB3ZWVrZGF5cyhsb2NhbGVTb3J0ZWQ6IGJvb2xlYW4sIGZvcm1hdDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIHdlZWtkYXlzU2hvcnQoKTogc3RyaW5nW107XG5cbiAgd2Vla2RheXNTaG9ydChpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIHdlZWtkYXlzU2hvcnQoZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICB3ZWVrZGF5c1Nob3J0KGZvcm1hdDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIHdlZWtkYXlzU2hvcnQobG9jYWxlU29ydGVkOiBib29sZWFuKTogc3RyaW5nW107XG5cbiAgd2Vla2RheXNTaG9ydChsb2NhbGVTb3J0ZWQ6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgd2Vla2RheXNTaG9ydChsb2NhbGVTb3J0ZWQ6IGJvb2xlYW4sIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nW107XG5cbiAgd2Vla2RheXNTaG9ydChsb2NhbGVTb3J0ZWQ6IGJvb2xlYW4sIGZvcm1hdDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIHdlZWtkYXlzTWluKCk6IHN0cmluZ1tdO1xuXG4gIHdlZWtkYXlzTWluKGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgd2Vla2RheXNNaW4oZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICB3ZWVrZGF5c01pbihmb3JtYXQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZztcblxuICB3ZWVrZGF5c01pbihsb2NhbGVTb3J0ZWQ6IGJvb2xlYW4pOiBzdHJpbmdbXTtcblxuICB3ZWVrZGF5c01pbihsb2NhbGVTb3J0ZWQ6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgd2Vla2RheXNNaW4obG9jYWxlU29ydGVkOiBib29sZWFuLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZ1tdO1xuXG4gIHdlZWtkYXlzTWluKGxvY2FsZVNvcnRlZDogYm9vbGVhbiwgZm9ybWF0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgcmVsYXRpdmVUaW1lVGhyZXNob2xkKHRocmVzaG9sZDogc3RyaW5nKTogbnVtYmVyIHwgYm9vbGVhbjtcblxuICByZWxhdGl2ZVRpbWVUaHJlc2hvbGQodGhyZXNob2xkOiBzdHJpbmcsIGxpbWl0OiBudW1iZXIpOiBib29sZWFuO1xuXG4gIG1pbiguLi5kYXRlczogKChEYXRlSW5wdXQgfCBLaHJvbm9zKVtdIHwgKERhdGVJbnB1dCB8IEtocm9ub3MpKVtdKTogS2hyb25vcztcblxuICBtYXgoLi4uZGF0ZXM6ICgoRGF0ZUlucHV0IHwgS2hyb25vcylbXSB8IChEYXRlSW5wdXQgfCBLaHJvbm9zKSlbXSk6IEtocm9ub3M7XG5cbiAgbG9jYWxlRGF0YShrZXk/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IEtocm9ub3MpOiBMb2NhbGU7XG5cbiAgdXBkYXRlTG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcsIGxvY2FsZVNwZWM/OiBMb2NhbGVEYXRhKTogTG9jYWxlO1xuXG4gIGNhbGVuZGFyRm9ybWF0KG06IERhdGUsIG5vdzogRGF0ZSk6IHN0cmluZztcblxuICAvLyB0b2RvOiByZW1vdmUgdGhpc1xuICBjYWxlbmRhckZvcm1hdChtOiBLaHJvbm9zLCBub3c6IEtocm9ub3MpOiBzdHJpbmc7XG5cbiAgLy8gdG9kbzogaW1wbGVtZW50XG4gIGludmFsaWQoKTogS2hyb25vcztcblxuICBsb2NhbGVzKCk6IHN0cmluZ1tdO1xuXG4gIC8vIHRvZG86IGltcGxlbWVudFxuICB1cGRhdGVPZmZzZXQobTogS2hyb25vcywga2VlcFRpbWU/OiBib29sZWFuKTogdm9pZDtcbn1cblxuZnVuY3Rpb24gX21vbWVudChpbnB1dD86IERhdGVJbnB1dCB8IEtocm9ub3MsIGZvcm1hdD86IHN0cmluZyB8IHN0cmluZ1tdLCBsb2NhbGVLZXk/OiBzdHJpbmcgfCBib29sZWFuLCBzdHJpY3Q/OiBib29sZWFuLCBpc1VUQz86IGJvb2xlYW4pOiBLaHJvbm9zIHtcbiAgaWYgKGlucHV0IGluc3RhbmNlb2YgS2hyb25vcykge1xuICAgIGNvbnN0IF9kYXRlID0gaW5wdXQuY2xvbmUoKTtcblxuICAgIHJldHVybiBpc1VUQyA/IF9kYXRlLnV0YygpIDogX2RhdGU7XG4gIH1cblxuICBpZiAoaXNCb29sZWFuKGxvY2FsZUtleSkpIHtcbiAgICByZXR1cm4gbmV3IEtocm9ub3MoaW5wdXQsIGZvcm1hdCwgbnVsbCwgbG9jYWxlS2V5LCBpc1VUQyk7XG4gIH1cblxuICByZXR1cm4gbmV3IEtocm9ub3MoaW5wdXQsIGZvcm1hdCwgbG9jYWxlS2V5LCBzdHJpY3QsIGlzVVRDKTtcbn1cblxubW9tZW50LnV0YyA9IChpbnB1dD86IERhdGVJbnB1dCB8IEtocm9ub3MsIGZvcm1hdD86IHN0cmluZywgbG9jYWxlS2V5Pzogc3RyaW5nIHwgYm9vbGVhbiwgc3RyaWN0PzogYm9vbGVhbik6IEtocm9ub3MgPT4ge1xuICByZXR1cm4gX21vbWVudChpbnB1dCwgZm9ybWF0LCBsb2NhbGVLZXksIHN0cmljdCwgdHJ1ZSk7XG59O1xuXG5tb21lbnQucGFyc2Vab25lID0gKGlucHV0PzogRGF0ZUlucHV0IHwgS2hyb25vcywgZm9ybWF0Pzogc3RyaW5nLCBsb2NhbGVLZXk/OiBzdHJpbmcgfCBib29sZWFuLCBzdHJpY3Q/OiBib29sZWFuKTogS2hyb25vcyA9PiB7XG4gIHJldHVybiBfbW9tZW50KGlucHV0LCBmb3JtYXQsIGxvY2FsZUtleSwgc3RyaWN0LCB0cnVlKS5wYXJzZVpvbmUoKTtcbn07XG5cbm1vbWVudC5sb2NhbGUgPSBnZXRTZXRHbG9iYWxMb2NhbGU7XG5tb21lbnQubG9jYWxlRGF0YSA9IChrZXk/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IEtocm9ub3MpOiBMb2NhbGUgPT4ge1xuICBpZiAoa2V5IGluc3RhbmNlb2YgS2hyb25vcykge1xuICAgIHJldHVybiBrZXkubG9jYWxlRGF0YSgpO1xuICB9XG5cbiAgcmV0dXJuIGdldExvY2FsZShrZXkpO1xufTtcblxuLy8gbW9tZW50LnV0YyA9IGNyZWF0ZVVUQztcbm1vbWVudC51bml4ID0gKGlucDogbnVtYmVyKSA9PiBuZXcgS2hyb25vcyhpbnAgKiAxMDAwKTtcbm1vbWVudC5JU09fODYwMSA9IElTT184NjAxO1xubW9tZW50LlJGQ18yODIyID0gUkZDXzI4MjI7XG5tb21lbnQuZGVmaW5lTG9jYWxlID0gZGVmaW5lTG9jYWxlO1xubW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyID0gcGFyc2VUd29EaWdpdFllYXI7XG5tb21lbnQuaXNEYXRlID0gaXNEYXRlO1xubW9tZW50LmludmFsaWQgPSBmdW5jdGlvbiBfaW52YWxpZCgpOiBLaHJvbm9zIHtcbiAgcmV0dXJuIG5ldyBLaHJvbm9zKG5ldyBEYXRlKE5hTikpO1xufTtcblxuLy8gZHVyYXRpb24oaW5wPzogRHVyYXRpb24gfCBEYXRlSW5wdXQgfCBLaHJvbm9zLCB1bml0PzogTW9tZW50VW5pdE9mVGltZSk6IER1cmF0aW9uO1xubW9tZW50LmR1cmF0aW9uID0gKGlucHV0PzogRHVyYXRpb24gfCBEYXRlSW5wdXQgfCBLaHJvbm9zLCB1bml0PzogTW9tZW50VW5pdE9mVGltZSk6IER1cmF0aW9uID0+IHtcbiAgY29uc3QgX3VuaXQgPSBtYXBVbml0T2ZUaW1lKHVuaXQpO1xuICBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndG9kbyBpbXBsZW1lbnQnKTtcbiAgfVxuXG4gIGlmIChpbnB1dCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKCk7XG4gIH1cblxuICBpZiAoaXNEdXJhdGlvbihpbnB1dCkpIHtcbiAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oaW5wdXQsIF91bml0LCB7IF9sb2NhbGU6IGlucHV0Ll9sb2NhbGUgfSk7XG4gIH1cblxuICBpZiAoaXNTdHJpbmcoaW5wdXQpIHx8IGlzTnVtYmVyKGlucHV0KSB8fCBpc0R1cmF0aW9uKGlucHV0KSB8fCBpc09iamVjdDxEYXRlT2JqZWN0PihpbnB1dCkpIHtcbiAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oaW5wdXQsIF91bml0KTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcigndG9kbyBpbXBsZW1lbnQnKTtcbn07XG5cbm1vbWVudC5taW4gPSBmdW5jdGlvbiBfbWluKC4uLmRhdGVzOiAoKERhdGVJbnB1dCB8IEtocm9ub3MpW10gfCAoRGF0ZUlucHV0IHwgS2hyb25vcykpW10pOiBLaHJvbm9zIHtcbiAgY29uc3QgX2ZpcnN0QXJnID0gZGF0ZXNbMF07XG4gIGNvbnN0IF9kYXRlcyA9IChpc0FycmF5KF9maXJzdEFyZykgPyBfZmlyc3RBcmcgOiBkYXRlcylcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgLm1hcCgoZGF0ZTogS2hyb25vcykgPT4gX21vbWVudChkYXRlKSlcbiAgICAubWFwKGRhdGUgPT4gZGF0ZS50b0RhdGUoKSk7XG5cbiAgY29uc3QgX2RhdGUgPSBtaW4oLi4uX2RhdGVzKTtcblxuICByZXR1cm4gbmV3IEtocm9ub3MoX2RhdGUpO1xufTtcblxubW9tZW50Lm1heCA9IGZ1bmN0aW9uIF9tYXgoLi4uZGF0ZXM6ICgoRGF0ZUlucHV0IHwgS2hyb25vcylbXSB8IChEYXRlSW5wdXQgfCBLaHJvbm9zKSlbXSk6IEtocm9ub3Mge1xuICBjb25zdCBfZmlyc3RBcmcgPSBkYXRlc1swXTtcbiAgY29uc3QgX2RhdGVzID0gKGlzQXJyYXkoX2ZpcnN0QXJnKSA/IF9maXJzdEFyZyA6IGRhdGVzKVxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAubWFwKChkYXRlOiBLaHJvbm9zKSA9PiBfbW9tZW50KGRhdGUpKVxuICAgIC5tYXAoZGF0ZSA9PiBkYXRlLnRvRGF0ZSgpKTtcblxuICBjb25zdCBfZGF0ZSA9IG1heCguLi5fZGF0ZXMpO1xuXG4gIHJldHVybiBuZXcgS2hyb25vcyhfZGF0ZSk7XG59O1xuXG5tb21lbnQubG9jYWxlcyA9ICgpOiBzdHJpbmdbXSA9PiB7XG4gIHJldHVybiBsaXN0TG9jYWxlcygpO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNb21lbnRJbnB1dE9iamVjdCB7XG4gIHllYXJzPzogbnVtYmVyO1xuICB5ZWFyPzogbnVtYmVyO1xuICB5PzogbnVtYmVyO1xuXG4gIG1vbnRocz86IG51bWJlcjtcbiAgbW9udGg/OiBudW1iZXI7XG4gIE0/OiBudW1iZXI7XG5cbiAgZGF5cz86IG51bWJlcjtcbiAgZGF5PzogbnVtYmVyO1xuICBkPzogbnVtYmVyO1xuXG4gIGRhdGVzPzogbnVtYmVyO1xuICBkYXRlPzogbnVtYmVyO1xuICBEPzogbnVtYmVyO1xuXG4gIGhvdXJzPzogbnVtYmVyO1xuICBob3VyPzogbnVtYmVyO1xuICBoPzogbnVtYmVyO1xuXG4gIG1pbnV0ZXM/OiBudW1iZXI7XG4gIG1pbnV0ZT86IG51bWJlcjtcbiAgbT86IG51bWJlcjtcblxuICBzZWNvbmRzPzogbnVtYmVyO1xuICBzZWNvbmQ/OiBudW1iZXI7XG4gIHM/OiBudW1iZXI7XG5cbiAgbWlsbGlzZWNvbmRzPzogbnVtYmVyO1xuICBtaWxsaXNlY29uZD86IG51bWJlcjtcbiAgbXM/OiBudW1iZXI7XG5cbiAgdz86IG51bWJlcjtcbiAgd2Vlaz86IG51bWJlcjtcbiAgd2Vla3M/OiBudW1iZXI7XG5cbiAgUT86IG51bWJlcjtcbiAgcXVhcnRlcj86IG51bWJlcjtcbiAgcXVhcnRlcnM/OiBudW1iZXI7XG5cbiAgd2Vla1llYXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIE1vbWVudFVuaXRPZlRpbWUgPSAoXG4gICd5ZWFyJyB8ICd5ZWFycycgfCAneScgfFxuICAnbW9udGgnIHwgJ21vbnRocycgfCAnTScgfFxuICAnd2VlaycgfCAnd2Vla3MnIHwgJ3cnIHxcbiAgJ2RheScgfCAnZGF5cycgfCAnZCcgfFxuICAnaG91cicgfCAnaG91cnMnIHwgJ2gnIHxcbiAgJ21pbnV0ZScgfCAnbWludXRlcycgfCAnbScgfFxuICAnc2Vjb25kJyB8ICdzZWNvbmRzJyB8ICdzJyB8XG4gICdtaWxsaXNlY29uZCcgfCAnbWlsbGlzZWNvbmRzJyB8ICdtcycgfFxuICAncScgfCAncXVhcnRlcicgfCAncXVhcnRlcnMnIHwgJ1EnIHxcbiAgJ2lzb1dlZWsnIHwgJ2lzb1dlZWtzJyB8ICdXJyB8XG4gICdkYXRlJyB8ICdkYXRlcycgfCAnRCdcbiAgKTtcblxuZXhwb3J0IHR5cGUgTW9tZW50QWxsID0gTW9tZW50VW5pdE9mVGltZSB8XG4gICd3ZWVrWWVhcicgfCAnd2Vla1llYXJzJyB8ICdnZycgfFxuICAnaXNvV2Vla1llYXInIHwgJ2lzb1dlZWtZZWFycycgfCAnR0cnIHxcbiAgJ2RheU9mWWVhcicgfCAnZGF5T2ZZZWFycycgfCAnREREJyB8XG4gICd3ZWVrZGF5JyB8ICd3ZWVrZGF5cycgfCAnZScgfFxuICAnaXNvV2Vla2RheScgfCAnaXNvV2Vla2RheXMnIHwgJ0UnO1xuXG5jb25zdCBfdW5pdHNQcmlvcml0eToge1trZXkgaW4gVW5pdE9mVGltZV06IG51bWJlcn0gPSB7XG4gIHllYXI6IDEsXG4gIG1vbnRoOiA4LFxuICB3ZWVrOiA1LFxuICBpc29XZWVrOiA1LFxuICBkYXk6IDExLFxuICB3ZWVrZGF5OiAxMSxcbiAgaXNvV2Vla2RheTogMTEsXG4gIGhvdXJzOiAxMyxcbiAgd2Vla1llYXI6IDEsXG4gIGlzb1dlZWtZZWFyOiAxLFxuICBxdWFydGVyOiA3LFxuICBkYXRlOiA5LFxuICBkYXlPZlllYXI6IDQsXG4gIG1pbnV0ZXM6IDE0LFxuICBzZWNvbmRzOiAxNSxcbiAgbWlsbGlzZWNvbmRzOiAxNlxufTtcblxuLy8gdG9kbzogZG8gSSBuZWVkIDIgbWFwcGVycz9cbmNvbnN0IF90aW1lSGFzaE1hcDogeyBba2V5IGluIE1vbWVudEFsbF06IFVuaXRPZlRpbWUgfCBzdHJpbmcgfSA9IHtcbiAgeTogJ3llYXInLFxuICB5ZWFyczogJ3llYXInLFxuICB5ZWFyOiAneWVhcicsXG4gIE06ICdtb250aCcsXG4gIG1vbnRoczogJ21vbnRoJyxcbiAgbW9udGg6ICdtb250aCcsXG4gIHc6ICd3ZWVrJyxcbiAgd2Vla3M6ICd3ZWVrJyxcbiAgd2VlazogJ3dlZWsnLFxuXG4gIGQ6ICdkYXknLFxuICBkYXlzOiAnZGF5JyxcbiAgZGF5OiAnZGF5JyxcblxuICBkYXRlOiAnZGF0ZScsXG4gIGRhdGVzOiAnZGF0ZScsXG4gIEQ6ICdkYXRlJyxcblxuICBoOiAnaG91cnMnLFxuICBob3VyOiAnaG91cnMnLFxuICBob3VyczogJ2hvdXJzJyxcbiAgbTogJ21pbnV0ZXMnLFxuICBtaW51dGU6ICdtaW51dGVzJyxcbiAgbWludXRlczogJ21pbnV0ZXMnLFxuICBzOiAnc2Vjb25kcycsXG4gIHNlY29uZDogJ3NlY29uZHMnLFxuICBzZWNvbmRzOiAnc2Vjb25kcycsXG4gIG1zOiAnbWlsbGlzZWNvbmRzJyxcbiAgbWlsbGlzZWNvbmQ6ICdtaWxsaXNlY29uZHMnLFxuICBtaWxsaXNlY29uZHM6ICdtaWxsaXNlY29uZHMnLFxuICBxdWFydGVyOiAncXVhcnRlcicsXG4gIHF1YXJ0ZXJzOiAncXVhcnRlcicsXG4gIHE6ICdxdWFydGVyJyxcbiAgUTogJ3F1YXJ0ZXInLFxuICBpc29XZWVrOiAnaXNvV2VlaycsXG4gIGlzb1dlZWtzOiAnaXNvV2VlaycsXG4gIFc6ICdpc29XZWVrJyxcbiAgd2Vla1llYXI6ICd3ZWVrWWVhcicsXG4gIHdlZWtZZWFyczogJ3dlZWtZZWFyJyxcbiAgZ2c6ICd3ZWVrWWVhcnMnLFxuICBpc29XZWVrWWVhcjogJ2lzb1dlZWtZZWFyJyxcbiAgaXNvV2Vla1llYXJzOiAnaXNvV2Vla1llYXInLFxuICBHRzogJ2lzb1dlZWtZZWFyJyxcbiAgZGF5T2ZZZWFyOiAnZGF5T2ZZZWFyJyxcbiAgZGF5T2ZZZWFyczogJ2RheU9mWWVhcicsXG4gIERERDogJ2RheU9mWWVhcicsXG4gIHdlZWtkYXk6ICd3ZWVrZGF5JyxcbiAgd2Vla2RheXM6ICd3ZWVrZGF5JyxcbiAgZTogJ3dlZWtkYXknLFxuICBpc29XZWVrZGF5OiAnaXNvV2Vla2RheScsXG4gIGlzb1dlZWtkYXlzOiAnaXNvV2Vla2RheScsXG4gIEU6ICdpc29XZWVrZGF5J1xufTtcblxuZnVuY3Rpb24gbWFwVW5pdE9mVGltZShwZXJpb2Q6IE1vbWVudEFsbCk6IFVuaXRPZlRpbWUge1xuICByZXR1cm4gX3RpbWVIYXNoTWFwW3BlcmlvZF0gYXMgVW5pdE9mVGltZTtcbn1cblxuZnVuY3Rpb24gbWFwTW9tZW50SW5wdXRPYmplY3Qob2JqOiBNb21lbnRJbnB1dE9iamVjdCk6IHtba2V5IGluIFVuaXRPZlRpbWVdPzogbnVtYmVyfSB7XG4gIGNvbnN0IF9yZXM6IHtba2V5IGluIFVuaXRPZlRpbWVdPzogbnVtYmVyfSA9IHt9O1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopXG4gICAgLnJlZHVjZSgocmVzLCBrZXk6IGtleW9mIE1vbWVudElucHV0T2JqZWN0KSA9PiB7XG4gICAgICByZXNbbWFwVW5pdE9mVGltZShrZXkpXSA9IG9ialtrZXldO1xuXG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0sIF9yZXMpO1xufVxuXG5leHBvcnQgY2xhc3MgS2hyb25vcyB7XG4gIF9kYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgX2lzVVRDID0gZmFsc2U7XG4gIF9pc1N0cmljdDogYm9vbGVhbjtcbiAgX2xvY2FsZTogTG9jYWxlO1xuICBfZm9ybWF0OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgX29mZnNldDogbnVtYmVyO1xuICBfdHptOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoaW5wdXQ/OiBEYXRlSW5wdXQsXG4gICAgICAgICAgICAgIGZvcm1hdD86IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgICAgICAgICAgICBsb2NhbGVLZXk/OiBzdHJpbmcsXG4gICAgICAgICAgICAgIHN0cmljdCA9IGZhbHNlLFxuICAgICAgICAgICAgICBpc1VUQyA9IGZhbHNlLFxuICAgICAgICAgICAgICBvZmZzZXQ/OiBudW1iZXIpIHtcbiAgICAvLyBsb2NhbGUgd2lsbCBiZSBuZWVkZWQgdG8gZm9ybWF0IGludmFsaWQgZGF0ZSBtZXNzYWdlXG4gICAgdGhpcy5fbG9jYWxlID0gZ2V0TG9jYWxlKGxvY2FsZUtleSk7XG4gICAgLy8gcGFyc2UgaW52YWxpZCBpbnB1dFxuICAgIGlmIChpbnB1dCA9PT0gJycgfHwgaW5wdXQgPT09IG51bGwgfHwgKGlzTnVtYmVyKGlucHV0KSAmJiBpc05hTihpbnB1dCkpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gbmV3IERhdGUoTmFOKTtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5faXNVVEMgPSBpc1VUQztcbiAgICBpZiAodGhpcy5faXNVVEMpIHtcbiAgICAgIHRoaXMuX29mZnNldCA9IDA7XG4gICAgfVxuICAgIGlmIChvZmZzZXQgfHwgb2Zmc2V0ID09PSAwKSB7XG4gICAgICB0aGlzLl9vZmZzZXQgPSBvZmZzZXQ7XG4gICAgfVxuICAgIHRoaXMuX2lzU3RyaWN0ID0gc3RyaWN0O1xuICAgIHRoaXMuX2Zvcm1hdCA9IGZvcm1hdDtcblxuICAgIGlmICghaW5wdXQgJiYgaW5wdXQgIT09IDAgJiYgIWZvcm1hdCkge1xuICAgICAgdGhpcy5fZGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gY2xvbmVEYXRlKGlucHV0KTtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gdGhpcy5fZGF0ZSA9IHBhcnNlRGF0ZShpbnB1dCwgZm9ybWF0LCBsb2NhbGVLZXksIHN0cmljdCwgaXNVVEMpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlS2V5LCBzdHJpY3QsIGlzVVRDKTtcbiAgICB0aGlzLl9kYXRlID0gY29uZmlnLl9kO1xuICAgIHRoaXMuX29mZnNldCA9IGlzTnVtYmVyKGNvbmZpZy5fb2Zmc2V0KSA/IGNvbmZpZy5fb2Zmc2V0IDogdGhpcy5fb2Zmc2V0O1xuICAgIHRoaXMuX2lzVVRDID0gY29uZmlnLl9pc1VUQztcbiAgICB0aGlzLl9pc1N0cmljdCA9IGNvbmZpZy5fc3RyaWN0O1xuICAgIHRoaXMuX2Zvcm1hdCA9IGNvbmZpZy5fZjtcbiAgICB0aGlzLl90em0gPSBjb25maWcuX3R6bTtcbiAgfVxuXG4gIF90b0NvbmZpZygpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gICAgcmV0dXJuIHsgX2lzVVRDOiB0aGlzLl9pc1VUQywgX2xvY2FsZTogdGhpcy5fbG9jYWxlLCBfb2Zmc2V0OiB0aGlzLl9vZmZzZXQsIF90em06IHRoaXMuX3R6bSB9O1xuICB9XG5cbiAgLy8gTG9jYWxlXG4gIGxvY2FsZSgpOiBzdHJpbmc7XG4gIGxvY2FsZShsb2NhbGVLZXk6IHN0cmluZyB8IHN0cmluZ1tdIHwgS2hyb25vcyk6IEtocm9ub3M7XG4gIGxvY2FsZShsb2NhbGVLZXk/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IEtocm9ub3MpOiBLaHJvbm9zIHwgc3RyaW5nIHtcbiAgICBpZiAoaXNVbmRlZmluZWQobG9jYWxlS2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZS5fYWJicjtcbiAgICB9XG5cbiAgICBpZiAobG9jYWxlS2V5IGluc3RhbmNlb2YgS2hyb25vcykge1xuICAgICAgdGhpcy5fbG9jYWxlID0gbG9jYWxlS2V5Ll9sb2NhbGU7XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0xvY2FsZURhdGEgPSBnZXRMb2NhbGUobG9jYWxlS2V5KTtcbiAgICBpZiAobmV3TG9jYWxlRGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9sb2NhbGUgPSBuZXdMb2NhbGVEYXRhO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9jYWxlRGF0YSgpOiBMb2NhbGUge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gIH1cblxuICAvLyBCYXNpY1xuXG4gIGFkZCh2YWw6IG51bWJlciB8IHN0cmluZyB8IE1vbWVudElucHV0T2JqZWN0LCBwZXJpb2Q/OiBVbml0T2ZUaW1lIHwgTW9tZW50VW5pdE9mVGltZSk6IEtocm9ub3Mge1xuICAgIGlmIChpc1N0cmluZyh2YWwpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gYWRkKHRoaXMuX2RhdGUsIHBhcnNlSW50KHZhbCwgMTApLCBtYXBVbml0T2ZUaW1lKHBlcmlvZCkpO1xuICAgIH1cblxuICAgIGlmIChpc051bWJlcih2YWwpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gYWRkKHRoaXMuX2RhdGUsIHZhbCwgbWFwVW5pdE9mVGltZShwZXJpb2QpKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3Q8TW9tZW50SW5wdXRPYmplY3Q+KHZhbCkpIHtcbiAgICAgIGNvbnN0IF9tYXBwZWQgPSBtYXBNb21lbnRJbnB1dE9iamVjdCh2YWwpO1xuICAgICAgT2JqZWN0LmtleXMoX21hcHBlZClcbiAgICAgICAgLmZvckVhY2goKGtleTogVW5pdE9mVGltZSkgPT4gYWRkKHRoaXMuX2RhdGUsIF9tYXBwZWRba2V5XSwga2V5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBmaXhtZTogZm9yIHNvbWUgcmVhc29uIGhlcmUgJ251bGwnIGZvciB0aW1lIGlzIGZpbmVcbiAgY2FsZW5kYXIodGltZT86IERhdGVJbnB1dCB8IEtocm9ub3MsIGZvcm1hdHM/OiBDYWxlbmRhclNwZWMpOiBzdHJpbmcge1xuICAgIGNvbnN0IF90aW1lID0gdGltZSBpbnN0YW5jZW9mIEtocm9ub3MgPyB0aW1lIDogbmV3IEtocm9ub3ModGltZSB8fCBuZXcgRGF0ZSgpKTtcbiAgICBjb25zdCBfb2Zmc2V0ID0gKHRoaXMuX29mZnNldCB8fCAwKSAtIChfdGltZS5fb2Zmc2V0IHx8IDApO1xuICAgIGNvbnN0IF9jb25maWcgPSBPYmplY3QuYXNzaWduKHRoaXMuX3RvQ29uZmlnKCksIHsgX29mZnNldCB9KTtcblxuICAgIHJldHVybiBjYWxlbmRhcih0aGlzLl9kYXRlLCBfdGltZS5fZGF0ZSxcbiAgICAgIGZvcm1hdHMsIHRoaXMuX2xvY2FsZSwgX2NvbmZpZyk7XG4gIH1cblxuICBjbG9uZSgpOiBLaHJvbm9zIHtcbiAgICBjb25zdCBsb2NhbGVLZXkgPSB0aGlzLl9sb2NhbGUgJiYgdGhpcy5fbG9jYWxlLl9hYmJyIHx8ICdlbic7XG5cbiAgICAvLyByZXR1cm4gbmV3IEtocm9ub3MoY2xvbmVEYXRlKHRoaXMuX2RhdGUpLCB0aGlzLl9mb3JtYXQsIGxvY2FsZUtleSwgdGhpcy5faXNTdHJpY3QsIHRoaXMuX2lzVVRDKTtcbiAgICAvLyBmYWlscyBpZiBpc1VUQyBhbmQgb2Zmc2V0XG4gICAgLy8gcmV0dXJuIG5ldyBLaHJvbm9zKG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKSxcbiAgICByZXR1cm4gbmV3IEtocm9ub3ModGhpcy5fZGF0ZSxcbiAgICAgIHRoaXMuX2Zvcm1hdCxcbiAgICAgIGxvY2FsZUtleSxcbiAgICAgIHRoaXMuX2lzU3RyaWN0LFxuICAgICAgdGhpcy5faXNVVEMsXG4gICAgICB0aGlzLl9vZmZzZXQpO1xuICB9XG5cbiAgZGlmZihiOiBEYXRlSW5wdXQgfCBLaHJvbm9zLCB1bml0T2ZUaW1lPzogTW9tZW50VW5pdE9mVGltZSwgcHJlY2lzZT86IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIGNvbnN0IHVuaXQgPSBtYXBVbml0T2ZUaW1lKHVuaXRPZlRpbWUpO1xuICAgIGNvbnN0IF9iID0gYiBpbnN0YW5jZW9mIEtocm9ub3MgPyBiIDogbmV3IEtocm9ub3MoYik7XG4gICAgLy8gY29uc3Qgem9uZURlbHRhID0gKF9iLnV0Y09mZnNldCgpIC0gdGhpcy51dGNPZmZzZXQoKSk7XG4gICAgLy8gY29uc3QgY29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLl90b0NvbmZpZygpLCB7XG4gICAgLy8gICBfb2Zmc2V0OiAwLFxuICAgIC8vICAgX2lzVVRDOiB0cnVlLFxuICAgIC8vICAgX3pvbmVEZWx0YTogem9uZURlbHRhXG4gICAgLy8gfSk7XG4gICAgLy8gcmV0dXJuIGRpZmYobmV3IERhdGUodGhpcy52YWx1ZU9mKCkpLCBuZXcgRGF0ZShfYi52YWx1ZU9mKCkpLCB1bml0LCBwcmVjaXNlLCBjb25maWcpO1xuXG4gICAgcmV0dXJuIGRpZmYodGhpcy5fZGF0ZSwgX2IudG9EYXRlKCksIHVuaXQsIHByZWNpc2UsIHRoaXMuX3RvQ29uZmlnKCkpO1xuICB9XG5cbiAgZW5kT2YocGVyaW9kPzogTW9tZW50VW5pdE9mVGltZSk6IEtocm9ub3Mge1xuICAgIGNvbnN0IF9wZXIgPSBtYXBVbml0T2ZUaW1lKHBlcmlvZCk7XG4gICAgdGhpcy5fZGF0ZSA9IGVuZE9mKHRoaXMuX2RhdGUsIF9wZXIsIHRoaXMuX2lzVVRDKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZm9ybWF0KGZvcm1hdD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdERhdGUodGhpcy5fZGF0ZSwgZm9ybWF0LCB0aGlzLl9sb2NhbGUgJiYgdGhpcy5fbG9jYWxlLl9hYmJyLCB0aGlzLl9pc1VUQywgdGhpcy5fb2Zmc2V0KTtcbiAgfVxuXG4gIC8vIHRvZG86IGltcGxlbWVudFxuICBmcm9tKHRpbWU/OiBEYXRlSW5wdXQgfCBLaHJvbm9zLCB3aXRob3V0U3VmZml4PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3QgX3RpbWUgPSBfbW9tZW50KHRpbWUpO1xuICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJiBfdGltZS5pc1ZhbGlkKCkpIHtcbiAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7IHRvOiB0aGlzLnRvRGF0ZSgpLCBmcm9tOiBfdGltZS50b0RhdGUoKSB9KVxuICAgICAgICAubG9jYWxlKHRoaXMubG9jYWxlKCkpXG4gICAgICAgIC5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlO1xuICB9XG5cbiAgZnJvbU5vdyh3aXRob3V0U3VmZml4PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbShuZXcgRGF0ZSgpLCB3aXRob3V0U3VmZml4KTtcbiAgfVxuXG4gIHRvKGlucDogRGF0ZUlucHV0IHwgS2hyb25vcywgc3VmZml4PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUT0RPOiBJbXBsZW1lbnRgKTtcbiAgfVxuXG4gIHRvTm93KHdpdGhvdXRQcmVmaXg/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRPRE86IEltcGxlbWVudGApO1xuICB9XG5cbiAgc3VidHJhY3QodmFsOiBudW1iZXIgfCBzdHJpbmcgfCBNb21lbnRJbnB1dE9iamVjdCwgcGVyaW9kPzogVW5pdE9mVGltZSB8IE1vbWVudFVuaXRPZlRpbWUpOiBLaHJvbm9zIHtcbiAgICBpZiAoaXNTdHJpbmcodmFsKSkge1xuICAgICAgdGhpcy5fZGF0ZSA9IHN1YnRyYWN0KHRoaXMuX2RhdGUsIHBhcnNlSW50KHZhbCwgMTApLCBtYXBVbml0T2ZUaW1lKHBlcmlvZCkpO1xuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpZiAoaXNOdW1iZXIodmFsKSkge1xuICAgICAgdGhpcy5fZGF0ZSA9IHN1YnRyYWN0KHRoaXMuX2RhdGUsIHZhbCwgbWFwVW5pdE9mVGltZShwZXJpb2QpKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3Q8TW9tZW50SW5wdXRPYmplY3Q+KHZhbCkpIHtcbiAgICAgIGNvbnN0IF9tYXBwZWQgPSBtYXBNb21lbnRJbnB1dE9iamVjdCh2YWwpO1xuICAgICAgT2JqZWN0LmtleXMoX21hcHBlZClcbiAgICAgICAgLmZvckVhY2goKGtleTogVW5pdE9mVGltZSkgPT4gc3VidHJhY3QodGhpcy5fZGF0ZSwgX21hcHBlZFtrZXldLCBrZXkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldChwZXJpb2Q6IE1vbWVudEFsbCk6IG51bWJlciB7XG4gICAgaWYgKHBlcmlvZCA9PT0gJ2RheU9mWWVhcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmRheU9mWWVhcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHVuaXQgPSBtYXBVbml0T2ZUaW1lKHBlcmlvZCk7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpO1xuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICByZXR1cm4gdGhpcy5tb250aCgpO1xuICAgICAgLy8gfCAnd2VlaydcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlKCk7XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICByZXR1cm4gdGhpcy5kYXkoKTtcbiAgICAgIGNhc2UgJ2hvdXJzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKTtcbiAgICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgICAgICByZXR1cm4gdGhpcy5taW51dGVzKCk7XG4gICAgICBjYXNlICdzZWNvbmRzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vjb25kcygpO1xuICAgICAgY2FzZSAnbWlsbGlzZWNvbmRzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmRzKCk7XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgcmV0dXJuIHRoaXMud2VlaygpO1xuICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgIHJldHVybiB0aGlzLmlzb1dlZWsoKTtcbiAgICAgIGNhc2UgJ3dlZWtZZWFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMud2Vla1llYXIoKTtcbiAgICAgIGNhc2UgJ2lzb1dlZWtZZWFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKTtcbiAgICAgIGNhc2UgJ3dlZWtkYXknOlxuICAgICAgICByZXR1cm4gdGhpcy53ZWVrZGF5KCk7XG4gICAgICBjYXNlICdpc29XZWVrZGF5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla2RheSgpO1xuICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnF1YXJ0ZXIoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBtb21lbnQuZ2V0KCcke3BlcmlvZH0nKWApO1xuICAgIH1cbiAgfVxuXG4gIHNldChwZXJpb2Q6IE1vbWVudEFsbCB8IE1vbWVudElucHV0T2JqZWN0LCBpbnB1dD86IG51bWJlcik6IEtocm9ub3Mge1xuXG4gICAgaWYgKGlzU3RyaW5nKHBlcmlvZCkpIHtcbiAgICAgIGNvbnN0IHVuaXQgPSBtYXBVbml0T2ZUaW1lKHBlcmlvZCk7XG4gICAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgcmV0dXJuIHRoaXMueWVhcihpbnB1dCk7XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5tb250aChpbnB1dCk7XG4gICAgICAgIC8vIHwgJ3dlZWsnXG4gICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KGlucHV0KTtcbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZShpbnB1dCk7XG4gICAgICAgIGNhc2UgJ2hvdXJzJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5ob3VycyhpbnB1dCk7XG4gICAgICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgICAgICAgIHJldHVybiB0aGlzLm1pbnV0ZXMoaW5wdXQpO1xuICAgICAgICBjYXNlICdzZWNvbmRzJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZWNvbmRzKGlucHV0KTtcbiAgICAgICAgY2FzZSAnbWlsbGlzZWNvbmRzJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZHMoaW5wdXQpO1xuICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWVrKGlucHV0KTtcbiAgICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2VlayhpbnB1dCk7XG4gICAgICAgIGNhc2UgJ3dlZWtZZWFyJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWVrWWVhcihpbnB1dCk7XG4gICAgICAgIGNhc2UgJ2lzb1dlZWtZZWFyJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrWWVhcihpbnB1dCk7XG4gICAgICAgIGNhc2UgJ3dlZWtkYXknOlxuICAgICAgICAgIHJldHVybiB0aGlzLndlZWtkYXkoaW5wdXQpO1xuICAgICAgICBjYXNlICdpc29XZWVrZGF5JzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrZGF5KGlucHV0KTtcbiAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgcmV0dXJuIHRoaXMucXVhcnRlcihpbnB1dCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG1vbWVudC5nZXQoJyR7cGVyaW9kfScpYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzT2JqZWN0PE1vbWVudElucHV0T2JqZWN0PihwZXJpb2QpKSB7XG4gICAgICBjb25zdCBfbWFwcGVkID0gbWFwTW9tZW50SW5wdXRPYmplY3QocGVyaW9kKTtcbiAgICAgIE9iamVjdC5rZXlzKF9tYXBwZWQpXG4gICAgICAgIC5zb3J0KGZ1bmN0aW9uKGE6IFVuaXRPZlRpbWUsIGI6IFVuaXRPZlRpbWUpOiBudW1iZXIge1xuICAgICAgICAgIHJldHVybiBfdW5pdHNQcmlvcml0eVthXSAtIF91bml0c1ByaW9yaXR5W2JdO1xuICAgICAgICB9KVxuICAgICAgICAuZm9yRWFjaCgoa2V5OiBVbml0T2ZUaW1lKSA9PiB0aGlzLnNldChrZXksIF9tYXBwZWRba2V5XSkpO1xuICAgIH1cblxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdCgnZGRkIE1NTSBERCBZWVlZIEhIOm1tOnNzIFtHTVRdWlonKTtcbiAgfVxuXG4gIHRvSVNPU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGdldEZ1bGxZZWFyKHRoaXMuX2RhdGUsIHRydWUpIDwgMCB8fCBnZXRGdWxsWWVhcih0aGlzLl9kYXRlLCB0cnVlKSA+IDk5OTkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdCgnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpKSB7XG4gICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhblxuICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtYXQoJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nKTtcbiAgfVxuXG4gIGluc3BlY3QoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE86IGltcGxlbWVudCcpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKTtcbiAgfVxuXG4gIHRvRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpO1xuICB9XG5cbiAgdG9PYmplY3QoKToge1trZXkgaW4gTW9tZW50VW5pdE9mVGltZV0/OiBudW1iZXJ9IHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8geWVhcnM6IGdldEZ1bGxZZWFyKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKSxcbiAgICAgIC8vIG1vbnRoczogZ2V0TW9udGgodGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMpLFxuXG4gICAgICB5ZWFyOiBnZXRGdWxsWWVhcih0aGlzLl9kYXRlLCB0aGlzLl9pc1VUQyksXG4gICAgICBtb250aDogZ2V0TW9udGgodGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMpLFxuICAgICAgZGF0ZTogZ2V0RGF0ZSh0aGlzLl9kYXRlLCB0aGlzLl9pc1VUQyksXG4gICAgICBob3VyczogZ2V0SG91cnModGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMpLFxuICAgICAgbWludXRlczogZ2V0TWludXRlcyh0aGlzLl9kYXRlLCB0aGlzLl9pc1VUQyksXG4gICAgICBzZWNvbmRzOiBnZXRTZWNvbmRzKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKSxcbiAgICAgIG1pbGxpc2Vjb25kczogZ2V0TWlsbGlzZWNvbmRzKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKVxuICAgIH07XG4gIH1cblxuICB0b0FycmF5KCk6IERhdGVBcnJheSB7XG4gICAgcmV0dXJuIFt0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCB0aGlzLmRhdGUoKSwgdGhpcy5ob3VyKCksIHRoaXMubWludXRlKCksIHRoaXMuc2Vjb25kKCksIHRoaXMubWlsbGlzZWNvbmQoKV07XG4gIH1cblxuXG4gIC8vIERhdGVzIGJvb2xlYW4gYWxnZWJyYVxuXG4gIGlzQWZ0ZXIoZGF0ZTogS2hyb25vcywgdW5pdD86IE1vbWVudFVuaXRPZlRpbWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBfdW5pdCA9IHVuaXQgPyBtYXBVbml0T2ZUaW1lKHVuaXQpIDogdm9pZCAwO1xuXG4gICAgcmV0dXJuIGlzQWZ0ZXIodGhpcy5fZGF0ZSwgZGF0ZS50b0RhdGUoKSwgX3VuaXQpO1xuICB9XG5cbiAgaXNCZWZvcmUoZGF0ZTogS2hyb25vcywgdW5pdD86IE1vbWVudFVuaXRPZlRpbWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBfdW5pdCA9IHVuaXQgPyBtYXBVbml0T2ZUaW1lKHVuaXQpIDogdm9pZCAwO1xuXG4gICAgcmV0dXJuIGlzQmVmb3JlKHRoaXMudG9EYXRlKCksIGRhdGUudG9EYXRlKCksIF91bml0KTtcbiAgfVxuXG4gIGlzQmV0d2Vlbihmcm9tOiBLaHJvbm9zLCB0bzogS2hyb25vcywgdW5pdD86IE1vbWVudFVuaXRPZlRpbWUsIGluY2x1c2l2aXR5Pzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgX3VuaXQgPSB1bml0ID8gbWFwVW5pdE9mVGltZSh1bml0KSA6IHZvaWQgMDtcblxuICAgIHJldHVybiBpc0JldHdlZW4odGhpcy50b0RhdGUoKSwgZnJvbS50b0RhdGUoKSwgdG8udG9EYXRlKCksIF91bml0LCBpbmNsdXNpdml0eSk7XG4gIH1cblxuICBpc1NhbWUoZGF0ZTogS2hyb25vcywgdW5pdD86IE1vbWVudFVuaXRPZlRpbWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBfdW5pdCA9IHVuaXQgPyBtYXBVbml0T2ZUaW1lKHVuaXQpIDogdm9pZCAwO1xuXG4gICAgcmV0dXJuIGlzU2FtZSh0aGlzLl9kYXRlLCBkYXRlLnRvRGF0ZSgpLCBfdW5pdCk7XG4gIH1cblxuICBpc1NhbWVPckFmdGVyKGRhdGU6IEtocm9ub3MsIHVuaXQ/OiBNb21lbnRVbml0T2ZUaW1lKTogYm9vbGVhbiB7XG4gICAgY29uc3QgX3VuaXQgPSB1bml0ID8gbWFwVW5pdE9mVGltZSh1bml0KSA6IHZvaWQgMDtcblxuICAgIHJldHVybiBpc1NhbWVPckFmdGVyKHRoaXMuX2RhdGUsIGRhdGUudG9EYXRlKCksIF91bml0KTtcbiAgfVxuXG4gIGlzU2FtZU9yQmVmb3JlKGRhdGU6IEtocm9ub3MsIHVuaXQ/OiBNb21lbnRVbml0T2ZUaW1lKTogYm9vbGVhbiB7XG4gICAgY29uc3QgX3VuaXQgPSB1bml0ID8gbWFwVW5pdE9mVGltZSh1bml0KSA6IHZvaWQgMDtcblxuICAgIHJldHVybiBpc1NhbWVPckJlZm9yZSh0aGlzLl9kYXRlLCBkYXRlLnRvRGF0ZSgpLCBfdW5pdCk7XG4gIH1cblxuICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0RhdGVWYWxpZCh0aGlzLl9kYXRlKTtcbiAgfVxuXG4gIHZhbHVlT2YoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZS52YWx1ZU9mKCkgLSAoKHRoaXMuX29mZnNldCB8fCAwKSAqIDYwMDAwKTtcbiAgfVxuXG4gIHVuaXgoKTogbnVtYmVyIHtcbiAgICAvLyByZXR1cm4gZ2V0VW5peFRpbWUodGhpcy5fZGF0ZSk7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy52YWx1ZU9mKCkgLyAxMDAwKTtcbiAgfVxuXG5cbiAgLy8gT2Zmc2V0XG5cbiAgdXRjT2Zmc2V0KCk6IG51bWJlcjtcbiAgdXRjT2Zmc2V0KGI6IG51bWJlciB8IHN0cmluZywga2VlcExvY2FsVGltZT86IGJvb2xlYW4pOiBLaHJvbm9zO1xuICB1dGNPZmZzZXQoYj86IG51bWJlciB8IHN0cmluZywga2VlcExvY2FsVGltZT86IGJvb2xlYW4pOiBudW1iZXIgfCBLaHJvbm9zIHtcbiAgICBjb25zdCBfY29uZmlnID0gdGhpcy5fdG9Db25maWcoKTtcblxuICAgIGlmICghYiAmJiBiICE9PSAwKSB7XG4gICAgICByZXR1cm4gZ2V0VVRDT2Zmc2V0KHRoaXMuX2RhdGUsIF9jb25maWcpO1xuICAgIH1cblxuICAgIHRoaXMuX2RhdGUgPSBzZXRVVENPZmZzZXQodGhpcy5fZGF0ZSwgYiwga2VlcExvY2FsVGltZSwgZmFsc2UsIF9jb25maWcpO1xuXG4gICAgdGhpcy5fb2Zmc2V0ID0gX2NvbmZpZy5fb2Zmc2V0O1xuICAgIHRoaXMuX2lzVVRDID0gX2NvbmZpZy5faXNVVEM7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHV0YyhrZWVwTG9jYWxUaW1lPzogYm9vbGVhbik6IEtocm9ub3Mge1xuICAgIHJldHVybiB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgfVxuXG4gIGxvY2FsKGtlZXBMb2NhbFRpbWU/OiBib29sZWFuKTogS2hyb25vcyB7XG4gICAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgICB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7XG5cbiAgICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIHRoaXMuc3VidHJhY3QoZ2V0RGF0ZU9mZnNldCh0aGlzLl9kYXRlKSwgJ20nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBhcnNlWm9uZShpbnB1dD86IHN0cmluZyk6IEtocm9ub3Mge1xuICAgIGNvbnN0IF9jb25maWcgPSB0aGlzLl90b0NvbmZpZygpO1xuICAgIHRoaXMuX2RhdGUgPSBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldCh0aGlzLl9kYXRlLCBpbnB1dCwgX2NvbmZpZyk7XG5cbiAgICB0aGlzLl9vZmZzZXQgPSBfY29uZmlnLl9vZmZzZXQ7XG4gICAgdGhpcy5faXNVVEMgPSBfY29uZmlnLl9pc1VUQztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaGFzQWxpZ25lZEhvdXJPZmZzZXQoaW5wdXQ/OiBLaHJvbm9zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0FsaWduZWRIb3VyT2Zmc2V0KHRoaXMuX2RhdGUsIGlucHV0ID8gaW5wdXQuX2RhdGUgOiB2b2lkIDApO1xuICB9XG5cbiAgaXNEU1QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRGF5bGlnaHRTYXZpbmdUaW1lKHRoaXMuX2RhdGUpO1xuICB9XG5cbiAgaXNMb2NhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2lzVVRDO1xuICB9XG5cbiAgaXNVdGNPZmZzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVVRDO1xuICB9XG5cbiAgaXNVVEMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVdGMoKTtcbiAgfVxuXG4gIGlzVXRjKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc1VUQyAmJiB0aGlzLl9vZmZzZXQgPT09IDA7XG4gIH1cblxuICAvLyBUaW1lem9uZVxuXG4gIHpvbmVBYmJyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldFpvbmVBYmJyKHRoaXMuX2lzVVRDKTtcbiAgfVxuXG4gIHpvbmVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldFpvbmVOYW1lKHRoaXMuX2lzVVRDKTtcbiAgfVxuXG4gIC8vIFllYXJcblxuICB5ZWFyKCk6IG51bWJlcjtcbiAgeWVhcih5ZWFyOiBudW1iZXIpOiBLaHJvbm9zO1xuICB5ZWFyKHllYXI/OiBudW1iZXIpOiBLaHJvbm9zIHwgbnVtYmVyIHtcbiAgICBpZiAoIXllYXIgJiYgeWVhciAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldEZ1bGxZZWFyKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlID0gY2xvbmVEYXRlKHNldEZ1bGxZZWFyKHRoaXMuX2RhdGUsIHllYXIpKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgd2Vla1llYXIoKTogbnVtYmVyO1xuICB3ZWVrWWVhcih2YWw6IG51bWJlcik6IEtocm9ub3M7XG4gIHdlZWtZZWFyKHZhbD86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIGlmICghdmFsICYmIHZhbCAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldFdlZWtZZWFyKHRoaXMuX2RhdGUsIHRoaXMuX2xvY2FsZSwgdGhpcy5pc1VUQygpKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gZ2V0U2V0V2Vla1llYXIodGhpcy5fZGF0ZSwgdmFsLCB0aGlzLl9sb2NhbGUsIHRoaXMuaXNVVEMoKSk7XG4gICAgaWYgKGlzRGF0ZShkYXRlKSkge1xuICAgICAgdGhpcy5fZGF0ZSA9IGRhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpc29XZWVrWWVhcigpOiBudW1iZXIgO1xuICBpc29XZWVrWWVhcih2YWw6IG51bWJlcik6IEtocm9ub3MgO1xuICBpc29XZWVrWWVhcih2YWw/OiBudW1iZXIpOiBLaHJvbm9zIHwgbnVtYmVyIHtcbiAgICBpZiAoIXZhbCAmJiB2YWwgIT09IDApIHtcbiAgICAgIHJldHVybiBnZXRJU09XZWVrWWVhcih0aGlzLl9kYXRlLCB0aGlzLmlzVVRDKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGUgPSBnZXRTZXRJU09XZWVrWWVhcih0aGlzLl9kYXRlLCB2YWwsIHRoaXMuaXNVdGMoKSk7XG5cbiAgICBpZiAoaXNEYXRlKGRhdGUpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gZGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlzTGVhcFllYXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIoZ2V0RnVsbFllYXIodGhpcy50b0RhdGUoKSwgdGhpcy5pc1VUQygpKSk7XG4gIH1cblxuICAvLyBNb250aFxuXG4gIG1vbnRoKCk6IG51bWJlcjtcbiAgbW9udGgobW9udGg6IG51bWJlciB8IHN0cmluZyk6IEtocm9ub3M7XG4gIG1vbnRoKG1vbnRoPzogbnVtYmVyIHwgc3RyaW5nKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgaWYgKCFtb250aCAmJiBtb250aCAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldE1vbnRoKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKTtcbiAgICB9XG5cbiAgICBsZXQgX21vbnRoID0gbW9udGg7XG5cbiAgICBpZiAoaXNTdHJpbmcobW9udGgpKSB7XG4gICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLl9sb2NhbGUgfHwgZ2V0TG9jYWxlKCk7XG4gICAgICBfbW9udGggPSBsb2NhbGUubW9udGhzUGFyc2UobW9udGgpO1xuICAgIH1cblxuICAgIGlmIChpc051bWJlcihfbW9udGgpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gY2xvbmVEYXRlKHNldE1vbnRoKHRoaXMuX2RhdGUsIF9tb250aCwgdGhpcy5faXNVVEMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBob3VyKCk6IG51bWJlcjtcbiAgaG91cihob3VyczogbnVtYmVyKTogS2hyb25vcztcbiAgaG91cihob3Vycz86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmhvdXJzKGhvdXJzKTtcbiAgfVxuXG4gIGhvdXJzKCk6IG51bWJlcjtcbiAgaG91cnMoaG91cnM6IG51bWJlcik6IEtocm9ub3M7XG4gIGhvdXJzKGhvdXJzPzogbnVtYmVyKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgaWYgKCFob3VycyAmJiBob3VycyAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldEhvdXJzKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlID0gY2xvbmVEYXRlKHNldEhvdXJzKHRoaXMuX2RhdGUsIGhvdXJzLCB0aGlzLl9pc1VUQykpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgbWludXRlKCk6IG51bWJlcjtcbiAgbWludXRlKG1pbnV0ZXM6IG51bWJlcik6IEtocm9ub3M7XG4gIG1pbnV0ZShtaW51dGVzPzogbnVtYmVyKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubWludXRlcyhtaW51dGVzKTtcbiAgfVxuXG4gIG1pbnV0ZXMoKTogbnVtYmVyO1xuICBtaW51dGVzKG1pbnV0ZXM6IG51bWJlcik6IEtocm9ub3M7XG4gIG1pbnV0ZXMobWludXRlcz86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIGlmICghbWludXRlcyAmJiBtaW51dGVzICE9PSAwKSB7XG4gICAgICByZXR1cm4gZ2V0TWludXRlcyh0aGlzLl9kYXRlLCB0aGlzLl9pc1VUQyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0ZSA9IGNsb25lRGF0ZShzZXRNaW51dGVzKHRoaXMuX2RhdGUsIG1pbnV0ZXMsIHRoaXMuX2lzVVRDKSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBzZWNvbmQoKTogbnVtYmVyO1xuICBzZWNvbmQoc2Vjb25kczogbnVtYmVyKTogS2hyb25vcztcbiAgc2Vjb25kKHNlY29uZHM/OiBudW1iZXIpOiBLaHJvbm9zIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zZWNvbmRzKHNlY29uZHMpO1xuICB9XG5cbiAgc2Vjb25kcygpOiBudW1iZXI7XG4gIHNlY29uZHMoc2Vjb25kczogbnVtYmVyKTogS2hyb25vcztcbiAgc2Vjb25kcyhzZWNvbmRzPzogbnVtYmVyKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgaWYgKCFzZWNvbmRzICYmIHNlY29uZHMgIT09IDApIHtcbiAgICAgIHJldHVybiBnZXRTZWNvbmRzKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlID0gY2xvbmVEYXRlKHNldFNlY29uZHModGhpcy5fZGF0ZSwgc2Vjb25kcywgdGhpcy5faXNVVEMpKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIG1pbGxpc2Vjb25kKCk6IG51bWJlcjtcbiAgbWlsbGlzZWNvbmQobXM6IG51bWJlcik6IEtocm9ub3M7XG4gIG1pbGxpc2Vjb25kKG1zPzogbnVtYmVyKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmRzKG1zKTtcbiAgfVxuXG4gIG1pbGxpc2Vjb25kcygpOiBudW1iZXI7XG4gIG1pbGxpc2Vjb25kcyhzZWNvbmRzOiBudW1iZXIpOiBLaHJvbm9zO1xuICBtaWxsaXNlY29uZHMoc2Vjb25kcz86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIGlmICghc2Vjb25kcyAmJiBzZWNvbmRzICE9PSAwKSB7XG4gICAgICByZXR1cm4gZ2V0TWlsbGlzZWNvbmRzKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlID0gY2xvbmVEYXRlKHNldE1pbGxpc2Vjb25kcyh0aGlzLl9kYXRlLCBzZWNvbmRzLCB0aGlzLl9pc1VUQykpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBEYXlcblxuICBkYXRlKCk6IG51bWJlcjtcbiAgZGF0ZShkYXRlOiBudW1iZXIpOiBLaHJvbm9zO1xuICBkYXRlKGRhdGU/OiBudW1iZXIpOiBLaHJvbm9zIHwgbnVtYmVyIHtcbiAgICBpZiAoIWRhdGUgJiYgZGF0ZSAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldERhdGUodGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMpO1xuICAgIH1cblxuICAgIHRoaXMuX2RhdGUgPSBjbG9uZURhdGUoc2V0RGF0ZSh0aGlzLl9kYXRlLCBkYXRlLCB0aGlzLl9pc1VUQykpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkYXkoKTogbnVtYmVyIDtcbiAgZGF5KGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBLaHJvbm9zIDtcbiAgZGF5KGlucHV0PzogbnVtYmVyIHwgc3RyaW5nKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgaWYgKCFpbnB1dCAmJiBpbnB1dCAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldERheU9mV2Vlayh0aGlzLl9kYXRlLCB0aGlzLl9pc1VUQyk7XG4gICAgfVxuXG4gICAgbGV0IF9pbnB1dCA9IGlucHV0O1xuXG4gICAgaWYgKGlzU3RyaW5nKGlucHV0KSkge1xuICAgICAgX2lucHV0ID0gcGFyc2VXZWVrZGF5KGlucHV0LCB0aGlzLl9sb2NhbGUpO1xuICAgIH1cblxuICAgIGlmIChpc051bWJlcihfaW5wdXQpKSB7XG4gICAgICB0aGlzLl9kYXRlID0gc2V0RGF5T2ZXZWVrKHRoaXMuX2RhdGUsIF9pbnB1dCwgdGhpcy5fbG9jYWxlLCB0aGlzLl9pc1VUQyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3ZWVrZGF5KCk6IG51bWJlciA7XG4gIHdlZWtkYXkodmFsOiBudW1iZXIpOiBLaHJvbm9zIDtcbiAgd2Vla2RheSh2YWw/OiBudW1iZXIpOiBLaHJvbm9zIHwgbnVtYmVyIHtcbiAgICBpZiAoIXZhbCAmJiB2YWwgIT09IDApIHtcbiAgICAgIHJldHVybiBnZXRMb2NhbGVEYXlPZldlZWsodGhpcy5fZGF0ZSwgdGhpcy5fbG9jYWxlLCB0aGlzLl9pc1VUQyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0ZSA9IHNldExvY2FsZURheU9mV2Vlayh0aGlzLl9kYXRlLCB2YWwsIHsgbG9jYWxlOiB0aGlzLl9sb2NhbGUsIGlzVVRDOiB0aGlzLl9pc1VUQyB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaXNvV2Vla2RheSgpOiBudW1iZXIgO1xuICBpc29XZWVrZGF5KHZhbDogbnVtYmVyIHwgc3RyaW5nKTogS2hyb25vcyA7XG4gIGlzb1dlZWtkYXkodmFsPzogbnVtYmVyIHwgc3RyaW5nKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgaWYgKCF2YWwgJiYgdmFsICE9PSAwKSB7XG4gICAgICByZXR1cm4gZ2V0SVNPRGF5T2ZXZWVrKHRoaXMuX2RhdGUpO1xuICAgIH1cblxuICAgIHRoaXMuX2RhdGUgPSBzZXRJU09EYXlPZldlZWsodGhpcy5fZGF0ZSwgdmFsKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGF5T2ZZZWFyKCk6IG51bWJlcjtcbiAgZGF5T2ZZZWFyKHZhbDogbnVtYmVyKTogS2hyb25vcztcbiAgZGF5T2ZZZWFyKHZhbD86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIGlmICghdmFsICYmIHZhbCAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldERheU9mWWVhcih0aGlzLl9kYXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlID0gc2V0RGF5T2ZZZWFyKHRoaXMuX2RhdGUsIHZhbCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIFdlZWtcblxuICB3ZWVrKCk6IG51bWJlcjtcbiAgd2VlayhpbnB1dDogbnVtYmVyKTogS2hyb25vcztcbiAgd2VlayhpbnB1dD86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIGlmICghaW5wdXQgJiYgaW5wdXQgIT09IDApIHtcbiAgICAgIHJldHVybiBnZXRXZWVrKHRoaXMuX2RhdGUsIHRoaXMuX2xvY2FsZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0ZSA9IHNldFdlZWsodGhpcy5fZGF0ZSwgaW5wdXQsIHRoaXMuX2xvY2FsZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICB3ZWVrcygpOiBudW1iZXI7XG4gIHdlZWtzKGlucHV0OiBudW1iZXIpOiBLaHJvbm9zO1xuICB3ZWVrcyhpbnB1dD86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndlZWsoaW5wdXQpO1xuICB9XG5cbiAgaXNvV2VlaygpOiBudW1iZXIgO1xuICBpc29XZWVrKHZhbDogbnVtYmVyKTogS2hyb25vcyA7XG4gIGlzb1dlZWsodmFsPzogbnVtYmVyKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgaWYgKCF2YWwgJiYgdmFsICE9PSAwKSB7XG4gICAgICByZXR1cm4gZ2V0SVNPV2Vlayh0aGlzLl9kYXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlID0gc2V0SVNPV2Vlayh0aGlzLl9kYXRlLCB2YWwpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgaXNvV2Vla3MoKTogbnVtYmVyIDtcbiAgaXNvV2Vla3ModmFsOiBudW1iZXIpOiBLaHJvbm9zIDtcbiAgaXNvV2Vla3ModmFsPzogbnVtYmVyKTogS2hyb25vcyB8IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNvV2Vlayh2YWwpO1xuICB9XG5cbiAgd2Vla3NJblllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZ2V0V2Vla3NJblllYXIodGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMsIHRoaXMuX2xvY2FsZSk7XG4gIH1cblxuICBpc29XZWVrc0luWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiBnZXRJU09XZWVrc0luWWVhcih0aGlzLl9kYXRlLCB0aGlzLl9pc1VUQyk7XG4gIH1cblxuXG4gIGRheXNJbk1vbnRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRheXNJbk1vbnRoKGdldEZ1bGxZZWFyKHRoaXMuX2RhdGUsIHRoaXMuX2lzVVRDKSwgZ2V0TW9udGgodGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMpKTtcbiAgfVxuXG5cbiAgcXVhcnRlcigpOiBudW1iZXI7XG4gIHF1YXJ0ZXIodmFsOiBudW1iZXIpOiBLaHJvbm9zO1xuICBxdWFydGVyKHZhbD86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIGlmICghdmFsICYmIHZhbCAhPT0gMCkge1xuICAgICAgcmV0dXJuIGdldFF1YXJ0ZXIodGhpcy5fZGF0ZSwgdGhpcy5faXNVVEMpO1xuICAgIH1cblxuICAgIHRoaXMuX2RhdGUgPSBzZXRRdWFydGVyKHRoaXMuX2RhdGUsIHZhbCwgdGhpcy5faXNVVEMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgcXVhcnRlcnMoKTogbnVtYmVyO1xuICBxdWFydGVycyh2YWw6IG51bWJlcik6IEtocm9ub3M7XG4gIHF1YXJ0ZXJzKHZhbD86IG51bWJlcik6IEtocm9ub3MgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YXJ0ZXIodmFsKTtcbiAgfVxuXG4gIHN0YXJ0T2YocGVyaW9kPzogTW9tZW50VW5pdE9mVGltZSk6IEtocm9ub3Mge1xuICAgIGNvbnN0IF9wZXIgPSBtYXBVbml0T2ZUaW1lKHBlcmlvZCk7XG4gICAgdGhpcy5fZGF0ZSA9IHN0YXJ0T2YodGhpcy5fZGF0ZSwgX3BlciwgdGhpcy5faXNVVEMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxufVxuIl19