ngx-bootstrap 18.1.2 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/accordion/fesm2022/ngx-bootstrap-accordion.mjs +13 -14
  2. package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -1
  3. package/alert/fesm2022/ngx-bootstrap-alert.mjs +10 -10
  4. package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -1
  5. package/buttons/fesm2022/ngx-bootstrap-buttons.mjs +13 -13
  6. package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -1
  7. package/carousel/fesm2022/ngx-bootstrap-carousel.mjs +13 -13
  8. package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -1
  9. package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -1
  10. package/collapse/fesm2022/ngx-bootstrap-collapse.mjs +7 -8
  11. package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -1
  12. package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs +3 -3
  13. package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -1
  14. package/datepicker/bs-datepicker.component.d.ts +5 -1
  15. package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs +94 -91
  16. package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -1
  17. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  18. package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs +22 -25
  19. package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -1
  20. package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs +19 -19
  21. package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -1
  22. package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
  23. package/modal/fesm2022/ngx-bootstrap-modal.mjs +27 -27
  24. package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -1
  25. package/package.json +1 -3
  26. package/pagination/fesm2022/ngx-bootstrap-pagination.mjs +13 -13
  27. package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -1
  28. package/popover/fesm2022/ngx-bootstrap-popover.mjs +13 -13
  29. package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -1
  30. package/positioning/fesm2022/ngx-bootstrap-positioning.mjs +3 -3
  31. package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -1
  32. package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs +13 -13
  33. package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -1
  34. package/rating/fesm2022/ngx-bootstrap-rating.mjs +10 -10
  35. package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -1
  36. package/schematics/ng-add/index.js +2 -3
  37. package/schematics/ng-add/index.js.map +1 -1
  38. package/schematics/utils/addStyles.js +1 -2
  39. package/schematics/utils/addStyles.js.map +1 -1
  40. package/schematics/utils/current_dependency_versions.json +1 -1
  41. package/schematics/utils/getVersions.js +2 -3
  42. package/schematics/utils/getVersions.js.map +1 -1
  43. package/schematics/utils/index.js +6 -7
  44. package/schematics/utils/index.js.map +1 -1
  45. package/schematics/utils/ng-module-imports.js +1 -2
  46. package/schematics/utils/ng-module-imports.js.map +1 -1
  47. package/schematics/utils/project-main-file.js +1 -2
  48. package/schematics/utils/project-main-file.js.map +1 -1
  49. package/schematics/utils/project-targets.js +1 -2
  50. package/schematics/utils/project-targets.js.map +1 -1
  51. package/sortable/fesm2022/ngx-bootstrap-sortable.mjs +12 -14
  52. package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -1
  53. package/tabs/fesm2022/ngx-bootstrap-tabs.mjs +19 -19
  54. package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -1
  55. package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs +16 -16
  56. package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -1
  57. package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs +13 -13
  58. package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -1
  59. package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs +13 -14
  60. package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -1
  61. package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -1
  62. package/accordion/esm2022/accordion-group.component.mjs +0 -85
  63. package/accordion/esm2022/accordion.component.mjs +0 -57
  64. package/accordion/esm2022/accordion.config.mjs +0 -22
  65. package/accordion/esm2022/accordion.module.mjs +0 -24
  66. package/accordion/esm2022/index.mjs +0 -2
  67. package/accordion/esm2022/ngx-bootstrap-accordion.mjs +0 -5
  68. package/accordion/esm2022/public_api.mjs +0 -5
  69. package/alert/esm2022/alert.component.mjs +0 -77
  70. package/alert/esm2022/alert.config.mjs +0 -21
  71. package/alert/esm2022/alert.module.mjs +0 -23
  72. package/alert/esm2022/index.mjs +0 -2
  73. package/alert/esm2022/ngx-bootstrap-alert.mjs +0 -5
  74. package/alert/esm2022/public_api.mjs +0 -4
  75. package/buttons/esm2022/button-checkbox.directive.mjs +0 -88
  76. package/buttons/esm2022/button-radio-group.directive.mjs +0 -158
  77. package/buttons/esm2022/button-radio.directive.mjs +0 -189
  78. package/buttons/esm2022/buttons.module.mjs +0 -25
  79. package/buttons/esm2022/index.mjs +0 -2
  80. package/buttons/esm2022/ngx-bootstrap-buttons.mjs +0 -5
  81. package/buttons/esm2022/public_api.mjs +0 -5
  82. package/carousel/esm2022/carousel.component.mjs +0 -712
  83. package/carousel/esm2022/carousel.config.mjs +0 -32
  84. package/carousel/esm2022/carousel.module.mjs +0 -24
  85. package/carousel/esm2022/index.mjs +0 -2
  86. package/carousel/esm2022/models/index.mjs +0 -2
  87. package/carousel/esm2022/ngx-bootstrap-carousel.mjs +0 -5
  88. package/carousel/esm2022/public_api.mjs +0 -5
  89. package/carousel/esm2022/slide.component.mjs +0 -65
  90. package/carousel/esm2022/utils.mjs +0 -32
  91. package/chronos/esm2022/create/check-overflow.mjs +0 -30
  92. package/chronos/esm2022/create/clone.mjs +0 -6
  93. package/chronos/esm2022/create/date-from-array.mjs +0 -19
  94. package/chronos/esm2022/create/from-anything.mjs +0 -106
  95. package/chronos/esm2022/create/from-array.mjs +0 -135
  96. package/chronos/esm2022/create/from-object.mjs +0 -17
  97. package/chronos/esm2022/create/from-string-and-array.mjs +0 -38
  98. package/chronos/esm2022/create/from-string-and-format.mjs +0 -106
  99. package/chronos/esm2022/create/from-string.mjs +0 -222
  100. package/chronos/esm2022/create/local.mjs +0 -16
  101. package/chronos/esm2022/create/parsing-flags.mjs +0 -26
  102. package/chronos/esm2022/create/parsing.types.mjs +0 -2
  103. package/chronos/esm2022/create/valid.mjs +0 -42
  104. package/chronos/esm2022/duration/bubble.mjs +0 -47
  105. package/chronos/esm2022/duration/constructor.mjs +0 -130
  106. package/chronos/esm2022/duration/create.mjs +0 -112
  107. package/chronos/esm2022/duration/humanize.mjs +0 -79
  108. package/chronos/esm2022/duration/valid.mjs +0 -43
  109. package/chronos/esm2022/format/format.mjs +0 -50
  110. package/chronos/esm2022/format.mjs +0 -46
  111. package/chronos/esm2022/i18n/ar.mjs +0 -132
  112. package/chronos/esm2022/i18n/bg.mjs +0 -90
  113. package/chronos/esm2022/i18n/ca.mjs +0 -87
  114. package/chronos/esm2022/i18n/cs.mjs +0 -175
  115. package/chronos/esm2022/i18n/da.mjs +0 -49
  116. package/chronos/esm2022/i18n/de.mjs +0 -67
  117. package/chronos/esm2022/i18n/en-gb.mjs +0 -57
  118. package/chronos/esm2022/i18n/es-do.mjs +0 -81
  119. package/chronos/esm2022/i18n/es-pr.mjs +0 -74
  120. package/chronos/esm2022/i18n/es-us.mjs +0 -75
  121. package/chronos/esm2022/i18n/es.mjs +0 -80
  122. package/chronos/esm2022/i18n/et.mjs +0 -69
  123. package/chronos/esm2022/i18n/fa.mjs +0 -130
  124. package/chronos/esm2022/i18n/fi.mjs +0 -96
  125. package/chronos/esm2022/i18n/fr-ca.mjs +0 -69
  126. package/chronos/esm2022/i18n/fr.mjs +0 -72
  127. package/chronos/esm2022/i18n/gl.mjs +0 -80
  128. package/chronos/esm2022/i18n/he.mjs +0 -94
  129. package/chronos/esm2022/i18n/hi.mjs +0 -119
  130. package/chronos/esm2022/i18n/hr.mjs +0 -58
  131. package/chronos/esm2022/i18n/hu.mjs +0 -100
  132. package/chronos/esm2022/i18n/id.mjs +0 -78
  133. package/chronos/esm2022/i18n/it.mjs +0 -61
  134. package/chronos/esm2022/i18n/ja.mjs +0 -71
  135. package/chronos/esm2022/i18n/ka.mjs +0 -83
  136. package/chronos/esm2022/i18n/kk.mjs +0 -76
  137. package/chronos/esm2022/i18n/ko.mjs +0 -72
  138. package/chronos/esm2022/i18n/lt.mjs +0 -112
  139. package/chronos/esm2022/i18n/lv.mjs +0 -52
  140. package/chronos/esm2022/i18n/mn.mjs +0 -94
  141. package/chronos/esm2022/i18n/nb.mjs +0 -53
  142. package/chronos/esm2022/i18n/nl-be.mjs +0 -77
  143. package/chronos/esm2022/i18n/nl.mjs +0 -76
  144. package/chronos/esm2022/i18n/pl.mjs +0 -122
  145. package/chronos/esm2022/i18n/pt-br.mjs +0 -52
  146. package/chronos/esm2022/i18n/ro.mjs +0 -66
  147. package/chronos/esm2022/i18n/ru.mjs +0 -177
  148. package/chronos/esm2022/i18n/sk.mjs +0 -153
  149. package/chronos/esm2022/i18n/sl.mjs +0 -179
  150. package/chronos/esm2022/i18n/sq.mjs +0 -50
  151. package/chronos/esm2022/i18n/sv.mjs +0 -59
  152. package/chronos/esm2022/i18n/th-be.mjs +0 -73
  153. package/chronos/esm2022/i18n/th.mjs +0 -58
  154. package/chronos/esm2022/i18n/tr.mjs +0 -78
  155. package/chronos/esm2022/i18n/uk.mjs +0 -143
  156. package/chronos/esm2022/i18n/vi.mjs +0 -70
  157. package/chronos/esm2022/i18n/zh-cn.mjs +0 -109
  158. package/chronos/esm2022/index.mjs +0 -2
  159. package/chronos/esm2022/locale/calendar.mjs +0 -9
  160. package/chronos/esm2022/locale/locale.class.mjs +0 -532
  161. package/chronos/esm2022/locale/locale.defaults.mjs +0 -40
  162. package/chronos/esm2022/locale/locales.mjs +0 -228
  163. package/chronos/esm2022/moment/add-subtract.mjs +0 -35
  164. package/chronos/esm2022/moment/calendar.mjs +0 -41
  165. package/chronos/esm2022/moment/diff.mjs +0 -70
  166. package/chronos/esm2022/moment/min-max.mjs +0 -38
  167. package/chronos/esm2022/ngx-bootstrap-chronos.mjs +0 -5
  168. package/chronos/esm2022/parse/regex.mjs +0 -47
  169. package/chronos/esm2022/parse/token.mjs +0 -31
  170. package/chronos/esm2022/public_api.mjs +0 -59
  171. package/chronos/esm2022/testing/chain.mjs +0 -708
  172. package/chronos/esm2022/types.mjs +0 -2
  173. package/chronos/esm2022/units/aliases.mjs +0 -35
  174. package/chronos/esm2022/units/constants.mjs +0 -11
  175. package/chronos/esm2022/units/day-of-month.mjs +0 -31
  176. package/chronos/esm2022/units/day-of-week.mjs +0 -129
  177. package/chronos/esm2022/units/day-of-year.mjs +0 -37
  178. package/chronos/esm2022/units/hour.mjs +0 -127
  179. package/chronos/esm2022/units/index.mjs +0 -19
  180. package/chronos/esm2022/units/millisecond.mjs +0 -59
  181. package/chronos/esm2022/units/minute.mjs +0 -23
  182. package/chronos/esm2022/units/month.mjs +0 -63
  183. package/chronos/esm2022/units/offset.mjs +0 -209
  184. package/chronos/esm2022/units/priorities.mjs +0 -21
  185. package/chronos/esm2022/units/quarter.mjs +0 -39
  186. package/chronos/esm2022/units/second.mjs +0 -23
  187. package/chronos/esm2022/units/timestamp.mjs +0 -28
  188. package/chronos/esm2022/units/timezone.mjs +0 -19
  189. package/chronos/esm2022/units/week-calendar-utils.mjs +0 -70
  190. package/chronos/esm2022/units/week-year.mjs +0 -101
  191. package/chronos/esm2022/units/week.mjs +0 -58
  192. package/chronos/esm2022/units/year.mjs +0 -60
  193. package/chronos/esm2022/utils/abs-ceil.mjs +0 -4
  194. package/chronos/esm2022/utils/abs-round.mjs +0 -4
  195. package/chronos/esm2022/utils/compare-arrays.mjs +0 -16
  196. package/chronos/esm2022/utils/date-compare.mjs +0 -55
  197. package/chronos/esm2022/utils/date-getters.mjs +0 -67
  198. package/chronos/esm2022/utils/date-setters.mjs +0 -75
  199. package/chronos/esm2022/utils/defaults.mjs +0 -11
  200. package/chronos/esm2022/utils/start-end-of.mjs +0 -57
  201. package/chronos/esm2022/utils/type-checks.mjs +0 -58
  202. package/chronos/esm2022/utils/zero-fill.mjs +0 -10
  203. package/chronos/esm2022/utils.mjs +0 -7
  204. package/collapse/esm2022/collapse-animations.mjs +0 -11
  205. package/collapse/esm2022/collapse.directive.mjs +0 -169
  206. package/collapse/esm2022/collapse.module.mjs +0 -23
  207. package/collapse/esm2022/index.mjs +0 -2
  208. package/collapse/esm2022/ngx-bootstrap-collapse.mjs +0 -5
  209. package/collapse/esm2022/public_api.mjs +0 -3
  210. package/component-loader/esm2022/bs-component-ref.class.mjs +0 -3
  211. package/component-loader/esm2022/component-loader.class.mjs +0 -292
  212. package/component-loader/esm2022/component-loader.factory.mjs +0 -35
  213. package/component-loader/esm2022/content-ref.class.mjs +0 -16
  214. package/component-loader/esm2022/index.mjs +0 -2
  215. package/component-loader/esm2022/listen-options.model.mjs +0 -2
  216. package/component-loader/esm2022/ngx-bootstrap-component-loader.mjs +0 -5
  217. package/component-loader/esm2022/public_api.mjs +0 -5
  218. package/datepicker/esm2022/base/bs-datepicker-container.mjs +0 -76
  219. package/datepicker/esm2022/bs-datepicker-inline.component.mjs +0 -163
  220. package/datepicker/esm2022/bs-datepicker-inline.config.mjs +0 -14
  221. package/datepicker/esm2022/bs-datepicker-input.directive.mjs +0 -173
  222. package/datepicker/esm2022/bs-datepicker.component.mjs +0 -305
  223. package/datepicker/esm2022/bs-datepicker.config.mjs +0 -101
  224. package/datepicker/esm2022/bs-datepicker.module.mjs +0 -105
  225. package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +0 -169
  226. package/datepicker/esm2022/bs-daterangepicker-inline.config.mjs +0 -21
  227. package/datepicker/esm2022/bs-daterangepicker-input.directive.mjs +0 -215
  228. package/datepicker/esm2022/bs-daterangepicker.component.mjs +0 -302
  229. package/datepicker/esm2022/bs-daterangepicker.config.mjs +0 -19
  230. package/datepicker/esm2022/bs-locale.service.mjs +0 -32
  231. package/datepicker/esm2022/datepicker-animations.mjs +0 -16
  232. package/datepicker/esm2022/engine/calc-days-calendar.mjs +0 -21
  233. package/datepicker/esm2022/engine/flag-days-calendar.mjs +0 -93
  234. package/datepicker/esm2022/engine/flag-months-calendar.mjs +0 -45
  235. package/datepicker/esm2022/engine/flag-years-calendar.mjs +0 -42
  236. package/datepicker/esm2022/engine/format-days-calendar.mjs +0 -33
  237. package/datepicker/esm2022/engine/format-months-calendar.mjs +0 -23
  238. package/datepicker/esm2022/engine/format-years-calendar.mjs +0 -39
  239. package/datepicker/esm2022/engine/view-mode.mjs +0 -4
  240. package/datepicker/esm2022/index.mjs +0 -2
  241. package/datepicker/esm2022/models/index.mjs +0 -9
  242. package/datepicker/esm2022/ngx-bootstrap-datepicker.mjs +0 -5
  243. package/datepicker/esm2022/public_api.mjs +0 -17
  244. package/datepicker/esm2022/reducer/_defaults.mjs +0 -6
  245. package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +0 -143
  246. package/datepicker/esm2022/reducer/bs-datepicker.effects.mjs +0 -182
  247. package/datepicker/esm2022/reducer/bs-datepicker.reducer.mjs +0 -378
  248. package/datepicker/esm2022/reducer/bs-datepicker.state.mjs +0 -18
  249. package/datepicker/esm2022/reducer/bs-datepicker.store.mjs +0 -22
  250. package/datepicker/esm2022/themes/bs/bs-calendar-layout.component.mjs +0 -49
  251. package/datepicker/esm2022/themes/bs/bs-current-date-view.component.mjs +0 -17
  252. package/datepicker/esm2022/themes/bs/bs-custom-dates-view.component.mjs +0 -52
  253. package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +0 -199
  254. package/datepicker/esm2022/themes/bs/bs-datepicker-day-decorator.directive.mjs +0 -48
  255. package/datepicker/esm2022/themes/bs/bs-datepicker-inline-container.component.mjs +0 -49
  256. package/datepicker/esm2022/themes/bs/bs-datepicker-navigation-view.component.mjs +0 -125
  257. package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +0 -275
  258. package/datepicker/esm2022/themes/bs/bs-daterangepicker-inline-container.component.mjs +0 -49
  259. package/datepicker/esm2022/themes/bs/bs-days-calendar-view.component.mjs +0 -233
  260. package/datepicker/esm2022/themes/bs/bs-months-calendar-view.component.mjs +0 -95
  261. package/datepicker/esm2022/themes/bs/bs-timepicker-view.component.mjs +0 -56
  262. package/datepicker/esm2022/themes/bs/bs-years-calendar-view.component.mjs +0 -96
  263. package/datepicker/esm2022/utils/bs-calendar-utils.mjs +0 -117
  264. package/datepicker/esm2022/utils/copy-time-utils.mjs +0 -10
  265. package/datepicker/esm2022/utils/matrix-utils.mjs +0 -14
  266. package/dropdown/esm2022/bs-dropdown-container.component.mjs +0 -81
  267. package/dropdown/esm2022/bs-dropdown-menu.directive.mjs +0 -23
  268. package/dropdown/esm2022/bs-dropdown-toggle.directive.mjs +0 -88
  269. package/dropdown/esm2022/bs-dropdown.config.mjs +0 -24
  270. package/dropdown/esm2022/bs-dropdown.directive.mjs +0 -343
  271. package/dropdown/esm2022/bs-dropdown.module.mjs +0 -40
  272. package/dropdown/esm2022/bs-dropdown.state.mjs +0 -25
  273. package/dropdown/esm2022/dropdown-animations.mjs +0 -7
  274. package/dropdown/esm2022/index.mjs +0 -2
  275. package/dropdown/esm2022/ngx-bootstrap-dropdown.mjs +0 -5
  276. package/dropdown/esm2022/public_api.mjs +0 -8
  277. package/esm2022/index.mjs +0 -2
  278. package/esm2022/ngx-bootstrap.mjs +0 -5
  279. package/focus-trap/esm2022/boolean-property.mjs +0 -12
  280. package/focus-trap/esm2022/focus-trap-manager.mjs +0 -54
  281. package/focus-trap/esm2022/focus-trap.mjs +0 -411
  282. package/focus-trap/esm2022/focus-trap.module.mjs +0 -24
  283. package/focus-trap/esm2022/index.mjs +0 -2
  284. package/focus-trap/esm2022/interactivity-checker.mjs +0 -241
  285. package/focus-trap/esm2022/ngx-bootstrap-focus-trap.mjs +0 -5
  286. package/focus-trap/esm2022/platform.mjs +0 -80
  287. package/focus-trap/esm2022/public_api.mjs +0 -4
  288. package/locale/esm2022/index.mjs +0 -2
  289. package/locale/esm2022/ngx-bootstrap-locale.mjs +0 -5
  290. package/locale/esm2022/public_api.mjs +0 -47
  291. package/mini-ngrx/esm2022/index.mjs +0 -2
  292. package/mini-ngrx/esm2022/ngx-bootstrap-mini-ngrx.mjs +0 -5
  293. package/mini-ngrx/esm2022/public_api.mjs +0 -3
  294. package/mini-ngrx/esm2022/state.class.mjs +0 -16
  295. package/mini-ngrx/esm2022/store.class.mjs +0 -42
  296. package/modal/esm2022/bs-modal-ref.service.mjs +0 -22
  297. package/modal/esm2022/bs-modal.service.mjs +0 -230
  298. package/modal/esm2022/index.mjs +0 -2
  299. package/modal/esm2022/modal-backdrop.component.mjs +0 -51
  300. package/modal/esm2022/modal-backdrop.options.mjs +0 -7
  301. package/modal/esm2022/modal-container.component.mjs +0 -155
  302. package/modal/esm2022/modal-options.class.mjs +0 -46
  303. package/modal/esm2022/modal.directive.mjs +0 -365
  304. package/modal/esm2022/modal.module.mjs +0 -44
  305. package/modal/esm2022/models/index.mjs +0 -2
  306. package/modal/esm2022/ngx-bootstrap-modal.mjs +0 -5
  307. package/modal/esm2022/public_api.mjs +0 -9
  308. package/pagination/esm2022/index.mjs +0 -2
  309. package/pagination/esm2022/models/index.mjs +0 -2
  310. package/pagination/esm2022/ngx-bootstrap-pagination.mjs +0 -5
  311. package/pagination/esm2022/pager.component.mjs +0 -256
  312. package/pagination/esm2022/pagination.component.mjs +0 -257
  313. package/pagination/esm2022/pagination.config.mjs +0 -35
  314. package/pagination/esm2022/pagination.module.mjs +0 -25
  315. package/pagination/esm2022/public_api.mjs +0 -5
  316. package/popover/esm2022/index.mjs +0 -2
  317. package/popover/esm2022/ngx-bootstrap-popover.mjs +0 -5
  318. package/popover/esm2022/popover-container.component.mjs +0 -45
  319. package/popover/esm2022/popover.config.mjs +0 -35
  320. package/popover/esm2022/popover.directive.mjs +0 -241
  321. package/popover/esm2022/popover.module.mjs +0 -25
  322. package/popover/esm2022/public_api.mjs +0 -5
  323. package/positioning/esm2022/index.mjs +0 -2
  324. package/positioning/esm2022/models/index.mjs +0 -53
  325. package/positioning/esm2022/modifiers/arrow.mjs +0 -56
  326. package/positioning/esm2022/modifiers/flip.mjs +0 -65
  327. package/positioning/esm2022/modifiers/index.mjs +0 -6
  328. package/positioning/esm2022/modifiers/initData.mjs +0 -44
  329. package/positioning/esm2022/modifiers/preventOverflow.mjs +0 -54
  330. package/positioning/esm2022/modifiers/shift.mjs +0 -24
  331. package/positioning/esm2022/ng-positioning.mjs +0 -39
  332. package/positioning/esm2022/ngx-bootstrap-positioning.mjs +0 -5
  333. package/positioning/esm2022/positioning.service.mjs +0 -71
  334. package/positioning/esm2022/public_api.mjs +0 -5
  335. package/positioning/esm2022/utils/checkMargin.mjs +0 -32
  336. package/positioning/esm2022/utils/computeAutoPlacement.mjs +0 -55
  337. package/positioning/esm2022/utils/findCommonOffsetParent.mjs +0 -40
  338. package/positioning/esm2022/utils/getBordersSize.mjs +0 -10
  339. package/positioning/esm2022/utils/getBoundaries.mjs +0 -70
  340. package/positioning/esm2022/utils/getBoundingClientRect.mjs +0 -56
  341. package/positioning/esm2022/utils/getClientRect.mjs +0 -8
  342. package/positioning/esm2022/utils/getFixedPositionOffsetParent.mjs +0 -16
  343. package/positioning/esm2022/utils/getOffsetParent.mjs +0 -33
  344. package/positioning/esm2022/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -50
  345. package/positioning/esm2022/utils/getOffsets.mjs +0 -11
  346. package/positioning/esm2022/utils/getOppositePlacement.mjs +0 -8
  347. package/positioning/esm2022/utils/getOppositeVariation.mjs +0 -13
  348. package/positioning/esm2022/utils/getOuterSizes.mjs +0 -12
  349. package/positioning/esm2022/utils/getParentNode.mjs +0 -12
  350. package/positioning/esm2022/utils/getReferenceOffsets.mjs +0 -13
  351. package/positioning/esm2022/utils/getRoot.mjs +0 -10
  352. package/positioning/esm2022/utils/getScroll.mjs +0 -14
  353. package/positioning/esm2022/utils/getScrollParent.mjs +0 -28
  354. package/positioning/esm2022/utils/getStyleComputedProperty.mjs +0 -12
  355. package/positioning/esm2022/utils/getTargetOffsets.mjs +0 -30
  356. package/positioning/esm2022/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -19
  357. package/positioning/esm2022/utils/getWindowSizes.mjs +0 -14
  358. package/positioning/esm2022/utils/index.mjs +0 -24
  359. package/positioning/esm2022/utils/isFixed.mjs +0 -16
  360. package/positioning/esm2022/utils/isModifierEnabled.mjs +0 -4
  361. package/positioning/esm2022/utils/isNumeric.mjs +0 -10
  362. package/positioning/esm2022/utils/isOffsetContainer.mjs +0 -11
  363. package/positioning/esm2022/utils/setStyles.mjs +0 -21
  364. package/positioning/esm2022/utils/updateContainerClass.mjs +0 -32
  365. package/progressbar/esm2022/bar.component.mjs +0 -72
  366. package/progressbar/esm2022/index.mjs +0 -2
  367. package/progressbar/esm2022/ngx-bootstrap-progressbar.mjs +0 -5
  368. package/progressbar/esm2022/progressbar-type.interface.mjs +0 -2
  369. package/progressbar/esm2022/progressbar.component.mjs +0 -53
  370. package/progressbar/esm2022/progressbar.config.mjs +0 -19
  371. package/progressbar/esm2022/progressbar.module.mjs +0 -24
  372. package/progressbar/esm2022/public_api.mjs +0 -5
  373. package/rating/esm2022/index.mjs +0 -2
  374. package/rating/esm2022/models/index.mjs +0 -2
  375. package/rating/esm2022/ngx-bootstrap-rating.mjs +0 -5
  376. package/rating/esm2022/public_api.mjs +0 -4
  377. package/rating/esm2022/rating.component.mjs +0 -121
  378. package/rating/esm2022/rating.config.mjs +0 -18
  379. package/rating/esm2022/rating.module.mjs +0 -23
  380. package/sortable/esm2022/draggable-item.mjs +0 -2
  381. package/sortable/esm2022/draggable-item.service.mjs +0 -36
  382. package/sortable/esm2022/index.mjs +0 -2
  383. package/sortable/esm2022/ngx-bootstrap-sortable.mjs +0 -5
  384. package/sortable/esm2022/public_api.mjs +0 -4
  385. package/sortable/esm2022/sortable.component.mjs +0 -270
  386. package/sortable/esm2022/sortable.module.mjs +0 -23
  387. package/tabs/esm2022/index.mjs +0 -2
  388. package/tabs/esm2022/ng-transclude.directive.mjs +0 -29
  389. package/tabs/esm2022/ngx-bootstrap-tabs.mjs +0 -5
  390. package/tabs/esm2022/public_api.mjs +0 -7
  391. package/tabs/esm2022/tab-heading.directive.mjs +0 -21
  392. package/tabs/esm2022/tab.directive.mjs +0 -118
  393. package/tabs/esm2022/tabs.module.mjs +0 -41
  394. package/tabs/esm2022/tabset.component.mjs +0 -216
  395. package/tabs/esm2022/tabset.config.mjs +0 -21
  396. package/timepicker/esm2022/index.mjs +0 -2
  397. package/timepicker/esm2022/models/index.mjs +0 -2
  398. package/timepicker/esm2022/ngx-bootstrap-timepicker.mjs +0 -5
  399. package/timepicker/esm2022/public_api.mjs +0 -6
  400. package/timepicker/esm2022/reducer/timepicker.actions.mjs +0 -53
  401. package/timepicker/esm2022/reducer/timepicker.reducer.mjs +0 -83
  402. package/timepicker/esm2022/reducer/timepicker.store.mjs +0 -21
  403. package/timepicker/esm2022/timepicker-controls.util.mjs +0 -123
  404. package/timepicker/esm2022/timepicker.component.mjs +0 -334
  405. package/timepicker/esm2022/timepicker.config.mjs +0 -54
  406. package/timepicker/esm2022/timepicker.models.mjs +0 -2
  407. package/timepicker/esm2022/timepicker.module.mjs +0 -23
  408. package/timepicker/esm2022/timepicker.utils.mjs +0 -152
  409. package/tooltip/esm2022/index.mjs +0 -2
  410. package/tooltip/esm2022/ngx-bootstrap-tooltip.mjs +0 -5
  411. package/tooltip/esm2022/public_api.mjs +0 -5
  412. package/tooltip/esm2022/tooltip-container.component.mjs +0 -48
  413. package/tooltip/esm2022/tooltip.config.mjs +0 -22
  414. package/tooltip/esm2022/tooltip.directive.mjs +0 -344
  415. package/tooltip/esm2022/tooltip.module.mjs +0 -25
  416. package/typeahead/esm2022/index.mjs +0 -2
  417. package/typeahead/esm2022/latin-map.mjs +0 -827
  418. package/typeahead/esm2022/models/index.mjs +0 -2
  419. package/typeahead/esm2022/ngx-bootstrap-typeahead.mjs +0 -5
  420. package/typeahead/esm2022/public_api.mjs +0 -9
  421. package/typeahead/esm2022/typeahead-animations.mjs +0 -16
  422. package/typeahead/esm2022/typeahead-container.component.mjs +0 -310
  423. package/typeahead/esm2022/typeahead-match.class.mjs +0 -15
  424. package/typeahead/esm2022/typeahead-options.class.mjs +0 -8
  425. package/typeahead/esm2022/typeahead-order.class.mjs +0 -2
  426. package/typeahead/esm2022/typeahead-utils.mjs +0 -77
  427. package/typeahead/esm2022/typeahead.config.mjs +0 -34
  428. package/typeahead/esm2022/typeahead.directive.mjs +0 -573
  429. package/typeahead/esm2022/typeahead.module.mjs +0 -25
  430. package/utils/esm2022/decorators.mjs +0 -23
  431. package/utils/esm2022/facade/browser.mjs +0 -26
  432. package/utils/esm2022/index.mjs +0 -2
  433. package/utils/esm2022/linked-list.class.mjs +0 -247
  434. package/utils/esm2022/ngx-bootstrap-utils.mjs +0 -5
  435. package/utils/esm2022/public_api.mjs +0 -10
  436. package/utils/esm2022/theme-provider.mjs +0 -48
  437. package/utils/esm2022/trigger.class.mjs +0 -14
  438. package/utils/esm2022/triggers.mjs +0 -120
  439. package/utils/esm2022/utils.class.mjs +0 -30
  440. package/utils/esm2022/warn-once.mjs +0 -11
@@ -1,302 +0,0 @@
1
- import { Directive, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2, ViewContainerRef } from '@angular/core';
2
- import { BsDaterangepickerConfig } from './bs-daterangepicker.config';
3
- import { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';
4
- import { Subject, BehaviorSubject } from 'rxjs';
5
- import { filter, takeUntil } from 'rxjs/operators';
6
- import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
7
- import { BsDatepickerConfig } from './bs-datepicker.config';
8
- import { checkBsValue, checkRangesWithMaxDate, setDateRangesCurrentTimeOnDateSelect } from './utils/bs-calendar-utils';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./bs-daterangepicker.config";
11
- import * as i2 from "ngx-bootstrap/component-loader";
12
- export let previousDate;
13
- export class BsDaterangepickerDirective {
14
- /**
15
- * Returns whether or not the daterangepicker is currently being shown
16
- */
17
- get isOpen() {
18
- return this._datepicker.isShown;
19
- }
20
- set isOpen(value) {
21
- this.isOpen$.next(value);
22
- }
23
- /**
24
- * Initial value of daterangepicker
25
- */
26
- set bsValue(value) {
27
- if (this._bsValue === value) {
28
- return;
29
- }
30
- if (value && this.bsConfig?.initCurrentTime) {
31
- value = setDateRangesCurrentTimeOnDateSelect(value);
32
- }
33
- this.initPreviousValue();
34
- this._bsValue = value;
35
- this.bsValueChange.emit(value);
36
- }
37
- get isDatepickerReadonly() {
38
- return this.isDisabled ? '' : null;
39
- }
40
- get rangeInputFormat$() {
41
- return this._rangeInputFormat$;
42
- }
43
- constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
44
- this._config = _config;
45
- this._elementRef = _elementRef;
46
- this._renderer = _renderer;
47
- /**
48
- * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
49
- */
50
- this.placement = 'bottom';
51
- /**
52
- * Specifies events that should trigger. Supports a space separated list of
53
- * event names.
54
- */
55
- this.triggers = 'click';
56
- /**
57
- * Close daterangepicker on outside click
58
- */
59
- this.outsideClick = true;
60
- /**
61
- * A selector specifying the element the daterangepicker should be appended to.
62
- */
63
- this.container = 'body';
64
- this.outsideEsc = true;
65
- this.isDestroy$ = new Subject();
66
- /**
67
- * Indicates whether daterangepicker's content is enabled or not
68
- */
69
- this.isDisabled = false;
70
- /**
71
- * Emits when daterangepicker value has been changed
72
- */
73
- this.bsValueChange = new EventEmitter();
74
- this._subs = [];
75
- this._rangeInputFormat$ = new Subject();
76
- this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
77
- Object.assign(this, _config);
78
- this.onShown = this._datepicker.onShown;
79
- this.onHidden = this._datepicker.onHidden;
80
- this.isOpen$ = new BehaviorSubject(this.isOpen);
81
- }
82
- ngOnInit() {
83
- this.isDestroy$ = new Subject();
84
- this._datepicker.listen({
85
- outsideClick: this.outsideClick,
86
- outsideEsc: this.outsideEsc,
87
- triggers: this.triggers,
88
- show: () => this.show()
89
- });
90
- this.initPreviousValue();
91
- this.setConfig();
92
- }
93
- ngOnChanges(changes) {
94
- if (changes["bsConfig"]) {
95
- if (changes["bsConfig"].currentValue?.initCurrentTime && changes["bsConfig"].currentValue?.initCurrentTime !== changes["bsConfig"].previousValue?.initCurrentTime && this._bsValue) {
96
- this.initPreviousValue();
97
- this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);
98
- this.bsValueChange.emit(this._bsValue);
99
- }
100
- this.setConfig();
101
- this._rangeInputFormat$.next(changes["bsConfig"].currentValue && changes["bsConfig"].currentValue.rangeInputFormat);
102
- }
103
- if (!this._datepickerRef || !this._datepickerRef.instance) {
104
- return;
105
- }
106
- if (changes["minDate"]) {
107
- this._datepickerRef.instance.minDate = this.minDate;
108
- }
109
- if (changes["maxDate"]) {
110
- this._datepickerRef.instance.maxDate = this.maxDate;
111
- }
112
- if (changes["datesDisabled"]) {
113
- this._datepickerRef.instance.datesDisabled = this.datesDisabled;
114
- }
115
- if (changes["datesEnabled"]) {
116
- this._datepickerRef.instance.datesEnabled = this.datesEnabled;
117
- }
118
- if (changes["daysDisabled"]) {
119
- this._datepickerRef.instance.daysDisabled = this.daysDisabled;
120
- }
121
- if (changes["isDisabled"]) {
122
- this._datepickerRef.instance.isDisabled = this.isDisabled;
123
- }
124
- if (changes["dateCustomClasses"]) {
125
- this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
126
- }
127
- }
128
- ngAfterViewInit() {
129
- this.isOpen$.pipe(filter(isOpen => isOpen !== this.isOpen), takeUntil(this.isDestroy$))
130
- .subscribe(() => this.toggle());
131
- }
132
- /**
133
- * Opens an element’s datepicker. This is considered a “manual” triggering of
134
- * the datepicker.
135
- */
136
- show() {
137
- if (this._datepicker.isShown) {
138
- return;
139
- }
140
- this.setConfig();
141
- this._datepickerRef = this._datepicker
142
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
143
- .attach(BsDaterangepickerContainerComponent)
144
- .to(this.container)
145
- .position({ attachment: this.placement })
146
- .show({ placement: this.placement });
147
- this.initSubscribes();
148
- }
149
- initSubscribes() {
150
- // if date changes from external source (model -> view)
151
- this._subs.push(this.bsValueChange.subscribe((value) => {
152
- if (this._datepickerRef) {
153
- this._datepickerRef.instance.value = value;
154
- }
155
- }));
156
- // if date changes from picker (view -> model)
157
- if (this._datepickerRef) {
158
- this._subs.push(this._datepickerRef.instance.valueChange
159
- .pipe(filter((range) => range && range[0] && !!range[1]))
160
- .subscribe((value) => {
161
- this.initPreviousValue();
162
- this.bsValue = value;
163
- if (this.keepDatepickerModalOpened()) {
164
- return;
165
- }
166
- this.hide();
167
- }));
168
- }
169
- }
170
- initPreviousValue() {
171
- previousDate = this._bsValue;
172
- }
173
- keepDatepickerModalOpened() {
174
- if (!previousDate || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {
175
- return false;
176
- }
177
- return this.isDateSame();
178
- }
179
- isDateSame() {
180
- return ((this._bsValue?.[0]?.getDate() === previousDate?.[0]?.getDate())
181
- && (this._bsValue?.[0]?.getMonth() === previousDate?.[0]?.getMonth())
182
- && (this._bsValue?.[0]?.getFullYear() === previousDate?.[0]?.getFullYear())
183
- && (this._bsValue?.[1]?.getDate() === previousDate?.[1]?.getDate())
184
- && (this._bsValue?.[1]?.getMonth() === previousDate?.[1]?.getMonth())
185
- && (this._bsValue?.[1]?.getFullYear() === previousDate?.[1]?.getFullYear()));
186
- }
187
- /**
188
- * Set config for daterangepicker
189
- */
190
- setConfig() {
191
- this._config = Object.assign({}, this._config, this.bsConfig, {
192
- value: this.bsConfig?.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),
193
- isDisabled: this.isDisabled,
194
- minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
195
- maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
196
- daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
197
- dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
198
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
199
- datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
200
- ranges: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),
201
- maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,
202
- initCurrentTime: this.bsConfig?.initCurrentTime,
203
- keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,
204
- keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules
205
- });
206
- }
207
- /**
208
- * Closes an element’s datepicker. This is considered a “manual” triggering of
209
- * the datepicker.
210
- */
211
- hide() {
212
- if (this.isOpen) {
213
- this._datepicker.hide();
214
- }
215
- for (const sub of this._subs) {
216
- sub.unsubscribe();
217
- }
218
- if (this._config.returnFocusToInput) {
219
- this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
220
- }
221
- }
222
- /**
223
- * Toggles an element’s datepicker. This is considered a “manual” triggering
224
- * of the datepicker.
225
- */
226
- toggle() {
227
- if (this.isOpen) {
228
- return this.hide();
229
- }
230
- this.show();
231
- }
232
- unsubscribeSubscriptions() {
233
- if (this._subs?.length) {
234
- this._subs.map(sub => sub.unsubscribe());
235
- this._subs.length = 0;
236
- }
237
- }
238
- ngOnDestroy() {
239
- this._datepicker.dispose();
240
- this.isOpen$.next(false);
241
- if (this.isDestroy$) {
242
- this.isDestroy$.next(null);
243
- this.isDestroy$.complete();
244
- }
245
- this.unsubscribeSubscriptions();
246
- }
247
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsDaterangepickerDirective, deps: [{ token: i1.BsDaterangepickerConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Directive }); }
248
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BsDaterangepickerDirective, isStandalone: true, selector: "[bsDaterangepicker]", inputs: { placement: "placement", triggers: "triggers", outsideClick: "outsideClick", container: "container", outsideEsc: "outsideEsc", isOpen: "isOpen", bsValue: "bsValue", bsConfig: "bsConfig", isDisabled: "isDisabled", minDate: "minDate", maxDate: "maxDate", dateCustomClasses: "dateCustomClasses", daysDisabled: "daysDisabled", datesDisabled: "datesDisabled", datesEnabled: "datesEnabled" }, outputs: { onShown: "onShown", onHidden: "onHidden", bsValueChange: "bsValueChange" }, host: { properties: { "attr.readonly": "this.isDatepickerReadonly" } }, providers: [
249
- ComponentLoaderFactory
250
- ], exportAs: ["bsDaterangepicker"], usesOnChanges: true, ngImport: i0 }); }
251
- }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsDaterangepickerDirective, decorators: [{
253
- type: Directive,
254
- args: [{
255
- selector: '[bsDaterangepicker]',
256
- exportAs: 'bsDaterangepicker',
257
- standalone: true,
258
- providers: [
259
- ComponentLoaderFactory
260
- ]
261
- }]
262
- }], ctorParameters: () => [{ type: i1.BsDaterangepickerConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }], propDecorators: { placement: [{
263
- type: Input
264
- }], triggers: [{
265
- type: Input
266
- }], outsideClick: [{
267
- type: Input
268
- }], container: [{
269
- type: Input
270
- }], outsideEsc: [{
271
- type: Input
272
- }], isOpen: [{
273
- type: Input
274
- }], onShown: [{
275
- type: Output
276
- }], onHidden: [{
277
- type: Output
278
- }], bsValue: [{
279
- type: Input
280
- }], bsConfig: [{
281
- type: Input
282
- }], isDisabled: [{
283
- type: Input
284
- }], minDate: [{
285
- type: Input
286
- }], maxDate: [{
287
- type: Input
288
- }], dateCustomClasses: [{
289
- type: Input
290
- }], daysDisabled: [{
291
- type: Input
292
- }], datesDisabled: [{
293
- type: Input
294
- }], datesEnabled: [{
295
- type: Input
296
- }], bsValueChange: [{
297
- type: Output
298
- }], isDatepickerReadonly: [{
299
- type: HostBinding,
300
- args: ['attr.readonly']
301
- }] } });
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFDaEQsS0FBSyxFQUNMLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN6RyxPQUFPLEVBQTRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQW1CLE1BQU0sZ0NBQWdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUNMLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsb0NBQW9DLEVBQ3JDLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFFbkMsTUFBTSxDQUFDLElBQUksWUFBOEMsQ0FBQztBQVcxRCxNQUFNLE9BQU8sMEJBQTBCO0lBc0JyQzs7T0FFRztJQUNILElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQWVEOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBcUM7UUFD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c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFJSSxhQUFhO3NCQUF0QixNQUFNO2dCQUU0QixvQkFBb0I7c0JBQXRELFdBQVc7dUJBQUUsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxuICBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCxcbiAgT3V0cHV0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc0RhdGVyYW5nZXBpY2tlckNvbmZpZyB9IGZyb20gJy4vYnMtZGF0ZXJhbmdlcGlja2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBCc0RhdGVyYW5nZXBpY2tlckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdGhlbWVzL2JzL2JzLWRhdGVyYW5nZXBpY2tlci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnksIENvbXBvbmVudExvYWRlciB9IGZyb20gJ25neC1ib290c3RyYXAvY29tcG9uZW50LWxvYWRlcic7XG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJDb25maWcgfSBmcm9tICcuL2JzLWRhdGVwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IERhdGVwaWNrZXJEYXRlQ3VzdG9tQ2xhc3NlcyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7XG4gIGNoZWNrQnNWYWx1ZSxcbiAgY2hlY2tSYW5nZXNXaXRoTWF4RGF0ZSxcbiAgc2V0RGF0ZVJhbmdlc0N1cnJlbnRUaW1lT25EYXRlU2VsZWN0XG59IGZyb20gJy4vdXRpbHMvYnMtY2FsZW5kYXItdXRpbHMnO1xuXG5leHBvcnQgbGV0IHByZXZpb3VzRGF0ZTogKERhdGUgfCB1bmRlZmluZWQpW10gfCB1bmRlZmluZWQ7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYnNEYXRlcmFuZ2VwaWNrZXJdJyxcbiAgICBleHBvcnRBczogJ2JzRGF0ZXJhbmdlcGlja2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgQ29tcG9uZW50TG9hZGVyRmFjdG9yeVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQnNEYXRlcmFuZ2VwaWNrZXJEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFBsYWNlbWVudCBvZiBhIGRhdGVyYW5nZXBpY2tlci4gQWNjZXB0czogXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdib3R0b20nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGV2ZW50cyB0aGF0IHNob3VsZCB0cmlnZ2VyLiBTdXBwb3J0cyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mXG4gICAqIGV2ZW50IG5hbWVzLlxuICAgKi9cbiAgQElucHV0KCkgdHJpZ2dlcnMgPSAnY2xpY2snO1xuICAvKipcbiAgICogQ2xvc2UgZGF0ZXJhbmdlcGlja2VyIG9uIG91dHNpZGUgY2xpY2tcbiAgICovXG4gIEBJbnB1dCgpIG91dHNpZGVDbGljayA9IHRydWU7XG4gIC8qKlxuICAgKiBBIHNlbGVjdG9yIHNwZWNpZnlpbmcgdGhlIGVsZW1lbnQgdGhlIGRhdGVyYW5nZXBpY2tlciBzaG91bGQgYmUgYXBwZW5kZWQgdG8uXG4gICAqL1xuICBASW5wdXQoKSBjb250YWluZXIgPSAnYm9keSc7XG5cbiAgQElucHV0KCkgb3V0c2lkZUVzYyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGRhdGVyYW5nZXBpY2tlciBpcyBjdXJyZW50bHkgYmVpbmcgc2hvd25cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVwaWNrZXIuaXNTaG93bjtcbiAgfVxuXG4gIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzT3BlbiQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGF0ZXJhbmdlcGlja2VyIGlzIHNob3duXG4gICAqL1xuICBAT3V0cHV0KCkgb25TaG93bjogRXZlbnRFbWl0dGVyPHVua25vd24+O1xuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGF0ZXJhbmdlcGlja2VyIGlzIGhpZGRlblxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8dW5rbm93bj47XG5cbiAgX2JzVmFsdWU/OiAoRGF0ZXx1bmRlZmluZWQpW107XG4gIGlzT3BlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgaXNEZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgZGF0ZXJhbmdlcGlja2VyXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgYnNWYWx1ZSh2YWx1ZTogKERhdGV8dW5kZWZpbmVkKVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX2JzVmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYnNDb25maWc/LmluaXRDdXJyZW50VGltZSkge1xuICAgICAgdmFsdWUgPSBzZXREYXRlUmFuZ2VzQ3VycmVudFRpbWVPbkRhdGVTZWxlY3QodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmluaXRQcmV2aW91c1ZhbHVlKCk7XG4gICAgdGhpcy5fYnNWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuYnNWYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWcgb2JqZWN0IGZvciBkYXRlcmFuZ2VwaWNrZXJcbiAgICovXG4gIEBJbnB1dCgpIGJzQ29uZmlnPzogUGFydGlhbDxCc0RhdGVyYW5nZXBpY2tlckNvbmZpZz47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBkYXRlcmFuZ2VwaWNrZXIncyBjb250ZW50IGlzIGVuYWJsZWQgb3Igbm90XG4gICAqL1xuICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGRhdGUgd2hpY2ggaXMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cbiAgICovXG4gIEBJbnB1dCgpIG1pbkRhdGU/OiBEYXRlO1xuICAvKipcbiAgICogTWF4aW11bSBkYXRlIHdoaWNoIGlzIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uXG4gICAqL1xuICBASW5wdXQoKSBtYXhEYXRlPzogRGF0ZTtcbiAgLyoqXG4gICAqIERhdGUgY3VzdG9tIGNsYXNzZXNcbiAgICovXG4gIEBJbnB1dCgpIGRhdGVDdXN0b21DbGFzc2VzPzogRGF0ZXBpY2tlckRhdGVDdXN0b21DbGFzc2VzW107XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRheXMsIGUuZy4gWzAsNl0gd2lsbCBkaXNhYmxlIGFsbCBTYXR1cmRheXMgYW5kIFN1bmRheXNcbiAgICovXG4gIEBJbnB1dCgpIGRheXNEaXNhYmxlZD86IG51bWJlcltdO1xuICAvKipcbiAgICogRGlzYWJsZSBzcGVjaWZpYyBkYXRlc1xuICAgKi9cbiAgQElucHV0KCkgZGF0ZXNEaXNhYmxlZD86IERhdGVbXTtcblxuICAvKipcbiAgICogRW5hYmxlIHNwZWNpZmljIGRhdGVzXG4gICAqL1xuICBASW5wdXQoKSBkYXRlc0VuYWJsZWQ/OiBEYXRlW107XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGRhdGVyYW5nZXBpY2tlciB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAqL1xuICBAT3V0cHV0KCkgYnNWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8KChEYXRlfHVuZGVmaW5lZClbXXx1bmRlZmluZWQpPigpO1xuXG4gIEBIb3N0QmluZGluZyAoJ2F0dHIucmVhZG9ubHknKSBnZXQgaXNEYXRlcGlja2VyUmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZCA/ICcnIDogbnVsbDtcbiAgfVxuXG4gIGdldCByYW5nZUlucHV0Rm9ybWF0JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9yYW5nZUlucHV0Rm9ybWF0JDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfZGF0ZXBpY2tlcjogQ29tcG9uZW50TG9hZGVyPEJzRGF0ZXJhbmdlcGlja2VyQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBfZGF0ZXBpY2tlclJlZj86IENvbXBvbmVudFJlZjxCc0RhdGVyYW5nZXBpY2tlckNvbnRhaW5lckNvbXBvbmVudD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JhbmdlSW5wdXRGb3JtYXQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfY29uZmlnOiBCc0RhdGVyYW5nZXBpY2tlckNvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgY2lzOiBDb21wb25lbnRMb2FkZXJGYWN0b3J5KSB7XG4gICAgdGhpcy5fZGF0ZXBpY2tlciA9IGNpcy5jcmVhdGVMb2FkZXI8QnNEYXRlcmFuZ2VwaWNrZXJDb250YWluZXJDb21wb25lbnQ+KFxuICAgICAgX2VsZW1lbnRSZWYsXG4gICAgICBfdmlld0NvbnRhaW5lclJlZixcbiAgICAgIF9yZW5kZXJlclxuICAgICk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBfY29uZmlnKTtcbiAgICB0aGlzLm9uU2hvd24gPSB0aGlzLl9kYXRlcGlja2VyLm9uU2hvd247XG4gICAgdGhpcy5vbkhpZGRlbiA9IHRoaXMuX2RhdGVwaWNrZXIub25IaWRkZW47XG4gICAgdGhpcy5pc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmlzT3Blbik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHRoaXMuX2RhdGVwaWNrZXIubGlzdGVuKHtcbiAgICAgIG91dHNpZGVDbGljazogdGhpcy5vdXRzaWRlQ2xpY2ssXG4gICAgICBvdXRzaWRlRXNjOiB0aGlzLm91dHNpZGVFc2MsXG4gICAgICB0cmlnZ2VyczogdGhpcy50cmlnZ2VycyxcbiAgICAgIHNob3c6ICgpID0+IHRoaXMuc2hvdygpXG4gICAgfSk7XG4gICAgdGhpcy5pbml0UHJldmlvdXNWYWx1ZSgpO1xuICAgIHRoaXMuc2V0Q29uZmlnKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJic0NvbmZpZ1wiXSkge1xuICAgICAgaWYgKGNoYW5nZXNbXCJic0NvbmZpZ1wiXS5jdXJyZW50VmFsdWU/LmluaXRDdXJyZW50VGltZSAmJiBjaGFuZ2VzW1wiYnNDb25maWdcIl0uY3VycmVudFZhbHVlPy5pbml0Q3VycmVudFRpbWUgIT09IGNoYW5nZXNbXCJic0NvbmZpZ1wiXS5wcmV2aW91c1ZhbHVlPy5pbml0Q3VycmVudFRpbWUgJiYgdGhpcy5fYnNWYWx1ZSkge1xuICAgICAgICB0aGlzLmluaXRQcmV2aW91c1ZhbHVlKCk7XG4gICAgICAgIHRoaXMuX2JzVmFsdWUgPSBzZXREYXRlUmFuZ2VzQ3VycmVudFRpbWVPbkRhdGVTZWxlY3QodGhpcy5fYnNWYWx1ZSk7XG4gICAgICAgIHRoaXMuYnNWYWx1ZUNoYW5nZS5lbWl0KHRoaXMuX2JzVmFsdWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldENvbmZpZygpO1xuICAgICAgdGhpcy5fcmFuZ2VJbnB1dEZvcm1hdCQubmV4dChjaGFuZ2VzW1wiYnNDb25maWdcIl0uY3VycmVudFZhbHVlICYmIGNoYW5nZXNbXCJic0NvbmZpZ1wiXS5jdXJyZW50VmFsdWUucmFuZ2VJbnB1dEZvcm1hdCk7XG4gICAgfVxuXG5cbiAgICBpZiAoIXRoaXMuX2RhdGVwaWNrZXJSZWYgfHwgIXRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJtaW5EYXRlXCJdKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLm1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzW1wibWF4RGF0ZVwiXSkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5tYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcImRhdGVzRGlzYWJsZWRcIl0pIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF0ZXNEaXNhYmxlZCA9IHRoaXMuZGF0ZXNEaXNhYmxlZDtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJkYXRlc0VuYWJsZWRcIl0pIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF0ZXNFbmFibGVkID0gdGhpcy5kYXRlc0VuYWJsZWQ7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzW1wiZGF5c0Rpc2FibGVkXCJdKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLmRheXNEaXNhYmxlZCA9IHRoaXMuZGF5c0Rpc2FibGVkO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcImlzRGlzYWJsZWRcIl0pIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZDtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJkYXRlQ3VzdG9tQ2xhc3Nlc1wiXSkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlQ3VzdG9tQ2xhc3NlcyA9IHRoaXMuZGF0ZUN1c3RvbUNsYXNzZXM7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuJC5waXBlKFxuICAgICAgZmlsdGVyKGlzT3BlbiA9PiBpc09wZW4gIT09IHRoaXMuaXNPcGVuKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmlzRGVzdHJveSQpXG4gICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRvZ2dsZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhbiBlbGVtZW504oCZcyBkYXRlcGlja2VyLiBUaGlzIGlzIGNvbnNpZGVyZWQgYSDigJxtYW51YWzigJ0gdHJpZ2dlcmluZyBvZlxuICAgKiB0aGUgZGF0ZXBpY2tlci5cbiAgICovXG4gIHNob3coKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RhdGVwaWNrZXIuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q29uZmlnKCk7XG5cbiAgICB0aGlzLl9kYXRlcGlja2VyUmVmID0gdGhpcy5fZGF0ZXBpY2tlclxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBCc0RhdGVwaWNrZXJDb25maWcsIHVzZVZhbHVlOiB0aGlzLl9jb25maWcgfSlcbiAgICAgIC5hdHRhY2goQnNEYXRlcmFuZ2VwaWNrZXJDb250YWluZXJDb21wb25lbnQpXG4gICAgICAudG8odGhpcy5jb250YWluZXIpXG4gICAgICAucG9zaXRpb24oeyBhdHRhY2htZW50OiB0aGlzLnBsYWNlbWVudCB9KVxuICAgICAgLnNob3coeyBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50IH0pO1xuXG4gICAgdGhpcy5pbml0U3Vic2NyaWJlcygpO1xuICB9XG5cbiAgaW5pdFN1YnNjcmliZXMoKSB7XG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gZXh0ZXJuYWwgc291cmNlIChtb2RlbCAtPiB2aWV3KVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuYnNWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGVwaWNrZXJSZWYpIHtcbiAgICAgICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIGlmIGRhdGUgY2hhbmdlcyBmcm9tIHBpY2tlciAodmlldyAtPiBtb2RlbClcbiAgICBpZiAodGhpcy5fZGF0ZXBpY2tlclJlZikge1xuICAgICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLnZhbHVlQ2hhbmdlXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKHJhbmdlOiBEYXRlW10pID0+IHJhbmdlICYmIHJhbmdlWzBdICYmICEhcmFuZ2VbMV0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFByZXZpb3VzVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuYnNWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMua2VlcERhdGVwaWNrZXJNb2RhbE9wZW5lZCgpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFByZXZpb3VzVmFsdWUoKSB7XG4gICAgcHJldmlvdXNEYXRlID0gdGhpcy5fYnNWYWx1ZTtcbiAgfVxuXG4gIGtlZXBEYXRlcGlja2VyTW9kYWxPcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFwcmV2aW91c0RhdGUgfHwgIXRoaXMuYnNDb25maWc/LmtlZXBEYXRlcGlja2VyT3BlbmVkIHx8ICF0aGlzLl9jb25maWcud2l0aFRpbWVwaWNrZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pc0RhdGVTYW1lKCk7XG4gIH1cblxuICBpc0RhdGVTYW1lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoKHRoaXMuX2JzVmFsdWU/LlswXT8uZ2V0RGF0ZSgpID09PSBwcmV2aW91c0RhdGU/LlswXT8uZ2V0RGF0ZSgpKVxuICAgICAgJiYgKHRoaXMuX2JzVmFsdWU/LlswXT8uZ2V0TW9udGgoKSA9PT0gcHJldmlvdXNEYXRlPy5bMF0/LmdldE1vbnRoKCkpXG4gICAgICAmJiAodGhpcy5fYnNWYWx1ZT8uWzBdPy5nZXRGdWxsWWVhcigpID09PSBwcmV2aW91c0RhdGU/LlswXT8uZ2V0RnVsbFllYXIoKSlcbiAgICAgICYmICh0aGlzLl9ic1ZhbHVlPy5bMV0/LmdldERhdGUoKSA9PT0gcHJldmlvdXNEYXRlPy5bMV0/LmdldERhdGUoKSlcbiAgICAgICYmICh0aGlzLl9ic1ZhbHVlPy5bMV0/LmdldE1vbnRoKCkgPT09IHByZXZpb3VzRGF0ZT8uWzFdPy5nZXRNb250aCgpKVxuICAgICAgJiYgKHRoaXMuX2JzVmFsdWU/LlsxXT8uZ2V0RnVsbFllYXIoKSA9PT0gcHJldmlvdXNEYXRlPy5bMV0/LmdldEZ1bGxZZWFyKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIGZvciBkYXRlcmFuZ2VwaWNrZXJcbiAgICovXG4gIHNldENvbmZpZygpIHtcbiAgICB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB0aGlzLl9jb25maWcsXG4gICAgICB0aGlzLmJzQ29uZmlnLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogdGhpcy5ic0NvbmZpZz8ua2VlcERhdGVzT3V0T2ZSdWxlcyA/IHRoaXMuX2JzVmFsdWUgOiBjaGVja0JzVmFsdWUodGhpcy5fYnNWYWx1ZSwgdGhpcy5tYXhEYXRlIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5tYXhEYXRlKSxcbiAgICAgICAgaXNEaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkLFxuICAgICAgICBtaW5EYXRlOiB0aGlzLm1pbkRhdGUgfHwgdGhpcy5ic0NvbmZpZyAmJiB0aGlzLmJzQ29uZmlnLm1pbkRhdGUsXG4gICAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSB8fCB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcubWF4RGF0ZSxcbiAgICAgICAgZGF5c0Rpc2FibGVkOiB0aGlzLmRheXNEaXNhYmxlZCB8fCB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcuZGF5c0Rpc2FibGVkLFxuICAgICAgICBkYXRlQ3VzdG9tQ2xhc3NlczogdGhpcy5kYXRlQ3VzdG9tQ2xhc3NlcyB8fCB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcuZGF0ZUN1c3RvbUNsYXNzZXMsXG4gICAgICAgIGRhdGVzRGlzYWJsZWQ6IHRoaXMuZGF0ZXNEaXNhYmxlZCB8fCB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcuZGF0ZXNEaXNhYmxlZCxcbiAgICAgICAgZGF0ZXNFbmFibGVkOiB0aGlzLmRhdGVzRW5hYmxlZCB8fCB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcuZGF0ZXNFbmFibGVkLFxuICAgICAgICByYW5nZXM6IGNoZWNrUmFuZ2VzV2l0aE1heERhdGUodGhpcy5ic0NvbmZpZyAmJiB0aGlzLmJzQ29uZmlnLnJhbmdlcywgdGhpcy5tYXhEYXRlIHx8IHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5tYXhEYXRlKSxcbiAgICAgICAgbWF4RGF0ZVJhbmdlOiB0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcubWF4RGF0ZVJhbmdlLFxuICAgICAgICBpbml0Q3VycmVudFRpbWU6IHRoaXMuYnNDb25maWc/LmluaXRDdXJyZW50VGltZSxcbiAgICAgICAga2VlcERhdGVwaWNrZXJPcGVuZWQ6IHRoaXMuYnNDb25maWc/LmtlZXBEYXRlcGlja2VyT3BlbmVkLFxuICAgICAgICBrZWVwRGF0ZXNPdXRPZlJ1bGVzOiB0aGlzLmJzQ29uZmlnPy5rZWVwRGF0ZXNPdXRPZlJ1bGVzXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYW4gZWxlbWVudOKAmXMgZGF0ZXBpY2tlci4gVGhpcyBpcyBjb25zaWRlcmVkIGEg4oCcbWFudWFs4oCdIHRyaWdnZXJpbmcgb2ZcbiAgICogdGhlIGRhdGVwaWNrZXIuXG4gICAqL1xuICBoaWRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlci5oaWRlKCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3ViIG9mIHRoaXMuX3N1YnMpIHtcbiAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcucmV0dXJuRm9jdXNUb0lucHV0KSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgYW4gZWxlbWVudOKAmXMgZGF0ZXBpY2tlci4gVGhpcyBpcyBjb25zaWRlcmVkIGEg4oCcbWFudWFs4oCdIHRyaWdnZXJpbmdcbiAgICogb2YgdGhlIGRhdGVwaWNrZXIuXG4gICAqL1xuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm4gdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG4gIH1cblxuICB1bnN1YnNjcmliZVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuX3N1YnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5fc3Vicy5tYXAoc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICAgIHRoaXMuX3N1YnMubGVuZ3RoID0gMDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRlcGlja2VyLmRpc3Bvc2UoKTtcbiAgICB0aGlzLmlzT3BlbiQubmV4dChmYWxzZSk7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95JCkge1xuICAgICAgdGhpcy5pc0Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgICB0aGlzLmlzRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLnVuc3Vic2NyaWJlU3Vic2NyaXB0aW9ucygpO1xuICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BsDatepickerConfig } from './bs-datepicker.config';
3
- import * as i0 from "@angular/core";
4
- export class BsDaterangepickerConfig extends BsDatepickerConfig {
5
- constructor() {
6
- super(...arguments);
7
- // DatepickerRenderOptions
8
- this.displayMonths = 2;
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsDaterangepickerConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
11
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsDaterangepickerConfig, providedIn: 'root' }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsDaterangepickerConfig, decorators: [{
14
- type: Injectable,
15
- args: [{
16
- providedIn: 'root'
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQUgvRDs7UUFJRSwwQkFBMEI7UUFDakIsa0JBQWEsR0FBRyxDQUFDLENBQUM7S0FDNUI7OEdBSFksdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCc0RhdGVyYW5nZXBpY2tlckNvbmZpZyBleHRlbmRzIEJzRGF0ZXBpY2tlckNvbmZpZyB7XG4gIC8vIERhdGVwaWNrZXJSZW5kZXJPcHRpb25zXG4gIG92ZXJyaWRlIGRpc3BsYXlNb250aHMgPSAyO1xufVxuIl19
@@ -1,32 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class BsLocaleService {
5
- constructor() {
6
- this._defaultLocale = 'en';
7
- this._locale = new BehaviorSubject(this._defaultLocale);
8
- this._localeChange = this._locale.asObservable();
9
- }
10
- get locale() {
11
- return this._locale;
12
- }
13
- get localeChange() {
14
- return this._localeChange;
15
- }
16
- get currentLocale() {
17
- return this._locale.getValue();
18
- }
19
- use(locale) {
20
- if (locale === this.currentLocale) {
21
- return;
22
- }
23
- this._locale.next(locale);
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsLocaleService, providedIn: 'platform' }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsLocaleService, decorators: [{
29
- type: Injectable,
30
- args: [{ providedIn: 'platform' }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbG9jYWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9icy1sb2NhbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBR25ELE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVUsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRCxrQkFBYSxHQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBcUJ6RTtJQW5CQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxHQUFHLENBQUMsTUFBYztRQUNoQixJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQXZCVSxlQUFlO2tIQUFmLGVBQWUsY0FESCxVQUFVOzsyRkFDdEIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdwbGF0Zm9ybSd9KVxuZXhwb3J0IGNsYXNzIEJzTG9jYWxlU2VydmljZSB7XG4gIHByaXZhdGUgX2RlZmF1bHRMb2NhbGUgPSAnZW4nO1xuICBwcml2YXRlIF9sb2NhbGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odGhpcy5fZGVmYXVsdExvY2FsZSk7XG4gIHByaXZhdGUgX2xvY2FsZUNoYW5nZTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5fbG9jYWxlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGdldCBsb2NhbGUoKTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gIH1cblxuICBnZXQgbG9jYWxlQ2hhbmdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZUNoYW5nZTtcbiAgfVxuXG4gIGdldCBjdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgdXNlKGxvY2FsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGxvY2FsZSA9PT0gdGhpcy5jdXJyZW50TG9jYWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbG9jYWxlLm5leHQobG9jYWxlKTtcbiAgfVxufVxuIl19
@@ -1,16 +0,0 @@
1
- import { animate, style, state, transition, trigger } from '@angular/animations';
2
- export const DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
3
- export const datepickerAnimation = trigger('datepickerAnimation', [
4
- state('animated-down', style({ height: '*', overflow: 'hidden' })),
5
- transition('* => animated-down', [
6
- style({ height: 0, overflow: 'hidden' }),
7
- animate(DATEPICKER_ANIMATION_TIMING)
8
- ]),
9
- state('animated-up', style({ height: '*', overflow: 'hidden' })),
10
- transition('* => animated-up', [
11
- style({ height: '*', overflow: 'hidden' }),
12
- animate(DATEPICKER_ANIMATION_TIMING)
13
- ]),
14
- transition('* => unanimated', animate('0s'))
15
- ]);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1hbmltYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUVMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsa0NBQWtDLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQzlCLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtJQUM3QixLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDakUsVUFBVSxDQUFDLG9CQUFvQixFQUFFO1FBQy9CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQztLQUNyQyxDQUFDO0lBQ0YsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQy9ELFVBQVUsQ0FBQyxrQkFBa0IsRUFBRTtRQUM3QixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxPQUFPLENBQUMsMkJBQTJCLENBQUM7S0FDckMsQ0FBQztJQUNGLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSxcbiAgc3RhdGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBEQVRFUElDS0VSX0FOSU1BVElPTl9USU1JTkcgPSAnMjIwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuXG5leHBvcnQgY29uc3QgZGF0ZXBpY2tlckFuaW1hdGlvbjogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhID1cbiAgdHJpZ2dlcignZGF0ZXBpY2tlckFuaW1hdGlvbicsIFtcbiAgICBzdGF0ZSgnYW5pbWF0ZWQtZG93bicsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG92ZXJmbG93OiAnaGlkZGVuJ30pKSxcbiAgICB0cmFuc2l0aW9uKCcqID0+IGFuaW1hdGVkLWRvd24nLCBbXG4gICAgICBzdHlsZSh7IGhlaWdodDogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgYW5pbWF0ZShEQVRFUElDS0VSX0FOSU1BVElPTl9USU1JTkcpXG4gICAgXSksXG4gICAgc3RhdGUoJ2FuaW1hdGVkLXVwJywgc3R5bGUoeyBoZWlnaHQ6ICcqJywgb3ZlcmZsb3c6ICdoaWRkZW4nfSkpLFxuICAgIHRyYW5zaXRpb24oJyogPT4gYW5pbWF0ZWQtdXAnLCBbXG4gICAgICBzdHlsZSh7IGhlaWdodDogJyonLCBvdmVyZmxvdzogJ2hpZGRlbicgfSksXG4gICAgICBhbmltYXRlKERBVEVQSUNLRVJfQU5JTUFUSU9OX1RJTUlORylcbiAgICBdKSxcbiAgICB0cmFuc2l0aW9uKCcqID0+IHVuYW5pbWF0ZWQnLCBhbmltYXRlKCcwcycpKVxuICBdKTtcbiJdfQ==
@@ -1,21 +0,0 @@
1
- // user and model input should handle parsing and validating input values
2
- import { getFirstDayOfMonth } from 'ngx-bootstrap/chronos';
3
- import { getStartingDayOfCalendar } from '../utils/bs-calendar-utils';
4
- import { createMatrix } from '../utils/matrix-utils';
5
- export function calcDaysCalendar(startingDate, options) {
6
- const firstDay = getFirstDayOfMonth(startingDate);
7
- const initialDate = getStartingDayOfCalendar(firstDay, options);
8
- // todo test
9
- const matrixOptions = {
10
- width: options.width || 0,
11
- height: options.height || 0,
12
- initialDate,
13
- shift: { day: 1 }
14
- };
15
- const daysMatrix = createMatrix(matrixOptions, date => date);
16
- return {
17
- daysMatrix,
18
- month: firstDay
19
- };
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsYy1kYXlzLWNhbGVuZGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGVwaWNrZXIvZW5naW5lL2NhbGMtZGF5cy1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5RUFBeUU7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRSxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFlBQWtCLEVBQ2xCLE9BQXlCO0lBRXpCLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVoRSxZQUFZO0lBQ1osTUFBTSxhQUFhLEdBQWtCO1FBQ25DLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUM7UUFDekIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztRQUMzQixXQUFXO1FBQ1gsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtLQUNsQixDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFPLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5FLE9BQU87UUFDTCxVQUFVO1FBQ1YsS0FBSyxFQUFFLFFBQVE7S0FDaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB1c2VyIGFuZCBtb2RlbCBpbnB1dCBzaG91bGQgaGFuZGxlIHBhcnNpbmcgYW5kIHZhbGlkYXRpbmcgaW5wdXQgdmFsdWVzXG5pbXBvcnQgeyBnZXRGaXJzdERheU9mTW9udGggfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuLy8gc2hvdWxkIGFjY2VwdCBzb21lIG9wdGlvbnNcbi8vIHRvZG86IHNwbGl0IG91dCBmb3JtYXR0aW5nXG5pbXBvcnQgeyBEYXlzQ2FsZW5kYXJNb2RlbCwgTW9udGhWaWV3T3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRTdGFydGluZ0RheU9mQ2FsZW5kYXIgfSBmcm9tICcuLi91dGlscy9icy1jYWxlbmRhci11dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVNYXRyaXgsIE1hdHJpeE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9tYXRyaXgtdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0RheXNDYWxlbmRhcihcbiAgc3RhcnRpbmdEYXRlOiBEYXRlLFxuICBvcHRpb25zOiBNb250aFZpZXdPcHRpb25zXG4pOiBEYXlzQ2FsZW5kYXJNb2RlbCB7XG4gIGNvbnN0IGZpcnN0RGF5ID0gZ2V0Rmlyc3REYXlPZk1vbnRoKHN0YXJ0aW5nRGF0ZSk7XG4gIGNvbnN0IGluaXRpYWxEYXRlID0gZ2V0U3RhcnRpbmdEYXlPZkNhbGVuZGFyKGZpcnN0RGF5LCBvcHRpb25zKTtcblxuICAvLyB0b2RvIHRlc3RcbiAgY29uc3QgbWF0cml4T3B0aW9uczogTWF0cml4T3B0aW9ucyA9IHtcbiAgICB3aWR0aDogb3B0aW9ucy53aWR0aCB8fCAwLFxuICAgIGhlaWdodDogb3B0aW9ucy5oZWlnaHQgfHwgMCxcbiAgICBpbml0aWFsRGF0ZSxcbiAgICBzaGlmdDogeyBkYXk6IDEgfVxuICB9O1xuICBjb25zdCBkYXlzTWF0cml4ID0gY3JlYXRlTWF0cml4PERhdGU+KG1hdHJpeE9wdGlvbnMsIGRhdGUgPT4gZGF0ZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkYXlzTWF0cml4LFxuICAgIG1vbnRoOiBmaXJzdERheVxuICB9O1xufVxuIl19
@@ -1,93 +0,0 @@
1
- import { isAfter, isBefore, isDisabledDay, isSameDay, isSameMonth, shiftDate } from 'ngx-bootstrap/chronos';
2
- import { isMonthDisabled, isDisabledDate, isEnabledDate } from '../utils/bs-calendar-utils';
3
- export function flagDaysCalendar(formattedMonth, options) {
4
- formattedMonth.weeks.forEach((week) => {
5
- week.days.forEach((day, dayIndex) => {
6
- // datepicker
7
- const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);
8
- const isHovered = !isOtherMonth && isSameDay(day.date, options.hoveredDate);
9
- // date range picker
10
- const isSelectionStart = !isOtherMonth &&
11
- options.selectedRange &&
12
- isSameDay(day.date, options.selectedRange[0]);
13
- const isSelectionEnd = !isOtherMonth &&
14
- options.selectedRange &&
15
- isSameDay(day.date, options.selectedRange[1]);
16
- const isSelected = (!isOtherMonth && isSameDay(day.date, options.selectedDate)) ||
17
- isSelectionStart ||
18
- isSelectionEnd;
19
- const isInRange = !isOtherMonth &&
20
- options.selectedRange &&
21
- isDateInRange(day.date, options.selectedRange, options.hoveredDate);
22
- const isDisabled = options.isDisabled ||
23
- isBefore(day.date, options.minDate, 'day') ||
24
- isAfter(day.date, options.maxDate, 'day') ||
25
- isDisabledDay(day.date, options.daysDisabled) ||
26
- isDisabledDate(day.date, options.datesDisabled) ||
27
- isEnabledDate(day.date, options.datesEnabled);
28
- const currentDate = new Date();
29
- const isToday = !isOtherMonth && isSameDay(day.date, currentDate);
30
- const customClasses = options.dateCustomClasses && options.dateCustomClasses
31
- .map(dcc => isSameDay(day.date, dcc.date) ? dcc.classes : [])
32
- .reduce((previousValue, currentValue) => previousValue.concat(currentValue), [])
33
- .join(' ')
34
- || '';
35
- const tooltipText = options.dateTooltipTexts && options.dateTooltipTexts
36
- .map(tt => isSameDay(day.date, tt.date) ? tt.tooltipText : '')
37
- .reduce((previousValue, currentValue) => {
38
- previousValue.push(currentValue);
39
- return previousValue;
40
- }, [])
41
- .join(' ')
42
- || '';
43
- // decide update or not
44
- const newDay = Object.assign({}, day, {
45
- isOtherMonth,
46
- isHovered,
47
- isSelected,
48
- isSelectionStart,
49
- isSelectionEnd,
50
- isInRange,
51
- isDisabled,
52
- isToday,
53
- customClasses,
54
- tooltipText
55
- });
56
- if (day.isOtherMonth !== newDay.isOtherMonth ||
57
- day.isHovered !== newDay.isHovered ||
58
- day.isSelected !== newDay.isSelected ||
59
- day.isSelectionStart !== newDay.isSelectionStart ||
60
- day.isSelectionEnd !== newDay.isSelectionEnd ||
61
- day.isDisabled !== newDay.isDisabled ||
62
- day.isInRange !== newDay.isInRange ||
63
- day.customClasses !== newDay.customClasses ||
64
- day.tooltipText !== newDay.tooltipText) {
65
- week.days[dayIndex] = newDay;
66
- }
67
- });
68
- });
69
- // todo: add check for linked calendars
70
- formattedMonth.hideLeftArrow =
71
- options.isDisabled ||
72
- (!!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths);
73
- formattedMonth.hideRightArrow =
74
- options.isDisabled ||
75
- ((!!options.monthIndex || options.monthIndex === 0) && !!options.displayMonths && options.monthIndex < options.displayMonths &&
76
- options.monthIndex + 1 !== options.displayMonths);
77
- formattedMonth.disableLeftArrow = isMonthDisabled(shiftDate(formattedMonth.month, { month: -1 }), options.minDate, options.maxDate);
78
- formattedMonth.disableRightArrow = isMonthDisabled(shiftDate(formattedMonth.month, { month: 1 }), options.minDate, options.maxDate);
79
- return formattedMonth;
80
- }
81
- function isDateInRange(date, selectedRange, hoveredDate) {
82
- if (!date || !selectedRange || !selectedRange[0]) {
83
- return false;
84
- }
85
- if (selectedRange[1]) {
86
- return date > selectedRange[0] && date <= selectedRange[1];
87
- }
88
- if (hoveredDate) {
89
- return date > selectedRange[0] && date <= hoveredDate;
90
- }
91
- return false;
92
- }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy1kYXlzLWNhbGVuZGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGVwaWNrZXIvZW5naW5lL2ZsYWctZGF5cy1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFFBQVEsRUFDUixhQUFhLEVBQ2IsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQWtCNUYsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixjQUFxQyxFQUNyQyxPQUF5QztJQUV6QyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQW1CLEVBQUUsRUFBRTtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQWlCLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQzVELGFBQWE7WUFDYixNQUFNLFlBQVksR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsRSxNQUFNLFNBQVMsR0FDYixDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUQsb0JBQW9CO1lBQ3BCLE1BQU0sZ0JBQWdCLEdBQ3BCLENBQUMsWUFBWTtnQkFDYixPQUFPLENBQUMsYUFBYTtnQkFDckIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sY0FBYyxHQUNsQixDQUFDLFlBQVk7Z0JBQ2IsT0FBTyxDQUFDLGFBQWE7Z0JBQ3JCLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoRCxNQUFNLFVBQVUsR0FDZCxDQUFDLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUQsZ0JBQWdCO2dCQUNoQixjQUFjLENBQUM7WUFFakIsTUFBTSxTQUFTLEdBQ2IsQ0FBQyxZQUFZO2dCQUNiLE9BQU8sQ0FBQyxhQUFhO2dCQUNyQixhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV0RSxNQUFNLFVBQVUsR0FDZCxPQUFPLENBQUMsVUFBVTtnQkFDbEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO2dCQUN6QyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUM3QyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO2dCQUMvQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMvQixNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUVsRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksT0FBTyxDQUFDLGlCQUFpQjtpQkFDekUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQzVELE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDO2lCQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDO21CQUNQLEVBQUUsQ0FBQztZQUVSLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsZ0JBQWdCO2lCQUNuRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDN0QsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxFQUFFO2dCQUN0QyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqQyxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDLEVBQUUsRUFBYyxDQUFDO2lCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDO21CQUNULEVBQUUsQ0FBQztZQUVSLHVCQUF1QjtZQUN2QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ3BDLFlBQVk7Z0JBQ1osU0FBUztnQkFDVCxVQUFVO2dCQUNWLGdCQUFnQjtnQkFDaEIsY0FBYztnQkFDZCxTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsT0FBTztnQkFDUCxhQUFhO2dCQUNiLFdBQVc7YUFDWixDQUFDLENBQUM7WUFFSCxJQUNFLEdBQUcsQ0FBQyxZQUFZLEtBQUssTUFBTSxDQUFDLFlBQVk7Z0JBQ3hDLEdBQUcsQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVM7Z0JBQ2xDLEdBQUcsQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLFVBQVU7Z0JBQ3BDLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLENBQUMsZ0JBQWdCO2dCQUNoRCxHQUFHLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxjQUFjO2dCQUM1QyxHQUFHLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxVQUFVO2dCQUNwQyxHQUFHLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTO2dCQUNsQyxHQUFHLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxhQUFhO2dCQUMxQyxHQUFHLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQ3RDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCx1Q0FBdUM7SUFDdkMsY0FBYyxDQUFDLGFBQWE7UUFDMUIsT0FBTyxDQUFDLFVBQVU7WUFDbEIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRyxjQUFjLENBQUMsY0FBYztRQUMzQixPQUFPLENBQUMsVUFBVTtZQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhO2dCQUMxSCxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsS0FBSyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFdEQsY0FBYyxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FDL0MsU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUM5QyxPQUFPLENBQUMsT0FBTyxFQUNmLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLENBQUM7SUFDRixjQUFjLENBQUMsaUJBQWlCLEdBQUcsZUFBZSxDQUNoRCxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUM3QyxPQUFPLENBQUMsT0FBTyxFQUNmLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLENBQUM7SUFDRixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLElBQVUsRUFDVixhQUFzQixFQUN0QixXQUFrQjtJQUVsQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQixPQUFPLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGF5c0NhbGVuZGFyVmlld01vZGVsLFxuICBEYXlWaWV3TW9kZWwsXG4gIFdlZWtWaWV3TW9kZWwsXG4gIERhdGVwaWNrZXJEYXRlQ3VzdG9tQ2xhc3NlcyxcbiAgRGF0ZXBpY2tlckRhdGVUb29sdGlwVGV4dFxufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5pbXBvcnQge1xuICBpc0FmdGVyLFxuICBpc0JlZm9yZSxcbiAgaXNEaXNhYmxlZERheSxcbiAgaXNTYW1lRGF5LFxuICBpc1NhbWVNb250aCxcbiAgc2hpZnREYXRlXG59IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5cbmltcG9ydCB7IGlzTW9udGhEaXNhYmxlZCwgaXNEaXNhYmxlZERhdGUsIGlzRW5hYmxlZERhdGUgfSBmcm9tICcuLi91dGlscy9icy1jYWxlbmRhci11dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhZ0RheXNDYWxlbmRhck9wdGlvbnMge1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBtaW5EYXRlOiBEYXRlO1xuICBtYXhEYXRlOiBEYXRlO1xuICBkYXlzRGlzYWJsZWQ6IG51bWJlcltdO1xuICBkYXRlc0Rpc2FibGVkOiBEYXRlW107XG4gIGRhdGVzRW5hYmxlZDogRGF0ZVtdO1xuICBob3ZlcmVkRGF0ZTogRGF0ZTtcbiAgc2VsZWN0ZWREYXRlOiBEYXRlO1xuICBzZWxlY3RlZFJhbmdlOiBEYXRlW107XG4gIGRpc3BsYXlNb250aHM6IG51bWJlcjtcbiAgbW9udGhJbmRleDogbnVtYmVyO1xuICBkYXRlQ3VzdG9tQ2xhc3NlczogRGF0ZXBpY2tlckRhdGVDdXN0b21DbGFzc2VzW107XG4gIGRhdGVUb29sdGlwVGV4dHM6IERhdGVwaWNrZXJEYXRlVG9vbHRpcFRleHRbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsYWdEYXlzQ2FsZW5kYXIoXG4gIGZvcm1hdHRlZE1vbnRoOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIG9wdGlvbnM6IFBhcnRpYWw8RmxhZ0RheXNDYWxlbmRhck9wdGlvbnM+XG4pOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwge1xuICBmb3JtYXR0ZWRNb250aC53ZWVrcy5mb3JFYWNoKCh3ZWVrOiBXZWVrVmlld01vZGVsKSA9PiB7XG4gICAgICAgIHdlZWsuZGF5cy5mb3JFYWNoKChkYXk6IERheVZpZXdNb2RlbCwgZGF5SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgLy8gZGF0ZXBpY2tlclxuICAgICAgY29uc3QgaXNPdGhlck1vbnRoID0gIWlzU2FtZU1vbnRoKGRheS5kYXRlLCBmb3JtYXR0ZWRNb250aC5tb250aCk7XG5cbiAgICAgIGNvbnN0IGlzSG92ZXJlZCA9XG4gICAgICAgICFpc090aGVyTW9udGggJiYgaXNTYW1lRGF5KGRheS5kYXRlLCBvcHRpb25zLmhvdmVyZWREYXRlKTtcbiAgICAgIC8vIGRhdGUgcmFuZ2UgcGlja2VyXG4gICAgICBjb25zdCBpc1NlbGVjdGlvblN0YXJ0ID1cbiAgICAgICAgIWlzT3RoZXJNb250aCAmJlxuICAgICAgICBvcHRpb25zLnNlbGVjdGVkUmFuZ2UgJiZcbiAgICAgICAgaXNTYW1lRGF5KGRheS5kYXRlLCBvcHRpb25zLnNlbGVjdGVkUmFuZ2VbMF0pO1xuICAgICAgY29uc3QgaXNTZWxlY3Rpb25FbmQgPVxuICAgICAgICAhaXNPdGhlck1vbnRoICYmXG4gICAgICAgIG9wdGlvbnMuc2VsZWN0ZWRSYW5nZSAmJlxuICAgICAgICBpc1NhbWVEYXkoZGF5LmRhdGUsIG9wdGlvbnMuc2VsZWN0ZWRSYW5nZVsxXSk7XG5cbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPVxuICAgICAgICAoIWlzT3RoZXJNb250aCAmJiBpc1NhbWVEYXkoZGF5LmRhdGUsIG9wdGlvbnMuc2VsZWN0ZWREYXRlKSkgfHxcbiAgICAgICAgaXNTZWxlY3Rpb25TdGFydCB8fFxuICAgICAgICBpc1NlbGVjdGlvbkVuZDtcblxuICAgICAgY29uc3QgaXNJblJhbmdlID1cbiAgICAgICAgIWlzT3RoZXJNb250aCAmJlxuICAgICAgICBvcHRpb25zLnNlbGVjdGVkUmFuZ2UgJiZcbiAgICAgICAgaXNEYXRlSW5SYW5nZShkYXkuZGF0ZSwgb3B0aW9ucy5zZWxlY3RlZFJhbmdlLCBvcHRpb25zLmhvdmVyZWREYXRlKTtcblxuICAgICAgY29uc3QgaXNEaXNhYmxlZCA9XG4gICAgICAgIG9wdGlvbnMuaXNEaXNhYmxlZCB8fFxuICAgICAgICBpc0JlZm9yZShkYXkuZGF0ZSwgb3B0aW9ucy5taW5EYXRlLCAnZGF5JykgfHxcbiAgICAgICAgaXNBZnRlcihkYXkuZGF0ZSwgb3B0aW9ucy5tYXhEYXRlLCAnZGF5JykgfHxcbiAgICAgICAgaXNEaXNhYmxlZERheShkYXkuZGF0ZSwgb3B0aW9ucy5kYXlzRGlzYWJsZWQpIHx8XG4gICAgICAgIGlzRGlzYWJsZWREYXRlKGRheS5kYXRlLCBvcHRpb25zLmRhdGVzRGlzYWJsZWQpIHx8XG4gICAgICAgIGlzRW5hYmxlZERhdGUoZGF5LmRhdGUsIG9wdGlvbnMuZGF0ZXNFbmFibGVkKTtcblxuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgY29uc3QgaXNUb2RheSA9ICFpc090aGVyTW9udGggJiYgaXNTYW1lRGF5KGRheS5kYXRlLCBjdXJyZW50RGF0ZSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUNsYXNzZXMgPSBvcHRpb25zLmRhdGVDdXN0b21DbGFzc2VzICYmIG9wdGlvbnMuZGF0ZUN1c3RvbUNsYXNzZXNcbiAgICAgICAgLm1hcChkY2MgPT4gaXNTYW1lRGF5KGRheS5kYXRlLCBkY2MuZGF0ZSkgPyBkY2MuY2xhc3NlcyA6IFtdKVxuICAgICAgICAucmVkdWNlKChwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpID0+IHByZXZpb3VzVmFsdWUuY29uY2F0KGN1cnJlbnRWYWx1ZSksIFtdKVxuICAgICAgICAuam9pbignICcpXG4gICAgICAgIHx8ICcnO1xuXG4gICAgICBjb25zdCB0b29sdGlwVGV4dCA9IG9wdGlvbnMuZGF0ZVRvb2x0aXBUZXh0cyAmJiBvcHRpb25zLmRhdGVUb29sdGlwVGV4dHNcbiAgICAgICAgICAubWFwKHR0ID0+IGlzU2FtZURheShkYXkuZGF0ZSwgdHQuZGF0ZSkgPyB0dC50b29sdGlwVGV4dCA6ICcnKVxuICAgICAgICAgIC5yZWR1Y2UoKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZS5wdXNoKGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICAgICAgICB9LCBbXSBhcyBzdHJpbmdbXSlcbiAgICAgICAgICAuam9pbignICcpXG4gICAgICAgIHx8ICcnO1xuXG4gICAgICAvLyBkZWNpZGUgdXBkYXRlIG9yIG5vdFxuICAgICAgY29uc3QgbmV3RGF5ID0gT2JqZWN0LmFzc2lnbih7fSwgZGF5LCB7XG4gICAgICAgIGlzT3RoZXJNb250aCxcbiAgICAgICAgaXNIb3ZlcmVkLFxuICAgICAgICBpc1NlbGVjdGVkLFxuICAgICAgICBpc1NlbGVjdGlvblN0YXJ0LFxuICAgICAgICBpc1NlbGVjdGlvbkVuZCxcbiAgICAgICAgaXNJblJhbmdlLFxuICAgICAgICBpc0Rpc2FibGVkLFxuICAgICAgICBpc1RvZGF5LFxuICAgICAgICBjdXN0b21DbGFzc2VzLFxuICAgICAgICB0b29sdGlwVGV4dFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgZGF5LmlzT3RoZXJNb250aCAhPT0gbmV3RGF5LmlzT3RoZXJNb250aCB8fFxuICAgICAgICBkYXkuaXNIb3ZlcmVkICE9PSBuZXdEYXkuaXNIb3ZlcmVkIHx8XG4gICAgICAgIGRheS5pc1NlbGVjdGVkICE9PSBuZXdEYXkuaXNTZWxlY3RlZCB8fFxuICAgICAgICBkYXkuaXNTZWxlY3Rpb25TdGFydCAhPT0gbmV3RGF5LmlzU2VsZWN0aW9uU3RhcnQgfHxcbiAgICAgICAgZGF5LmlzU2VsZWN0aW9uRW5kICE9PSBuZXdEYXkuaXNTZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgZGF5LmlzRGlzYWJsZWQgIT09IG5ld0RheS5pc0Rpc2FibGVkIHx8XG4gICAgICAgIGRheS5pc0luUmFuZ2UgIT09IG5ld0RheS5pc0luUmFuZ2UgfHxcbiAgICAgICAgZGF5LmN1c3RvbUNsYXNzZXMgIT09IG5ld0RheS5jdXN0b21DbGFzc2VzIHx8XG4gICAgICAgIGRheS50b29sdGlwVGV4dCAhPT0gbmV3RGF5LnRvb2x0aXBUZXh0XG4gICAgICApIHtcbiAgICAgICAgd2Vlay5kYXlzW2RheUluZGV4XSA9IG5ld0RheTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gdG9kbzogYWRkIGNoZWNrIGZvciBsaW5rZWQgY2FsZW5kYXJzXG4gIGZvcm1hdHRlZE1vbnRoLmhpZGVMZWZ0QXJyb3cgPVxuICAgIG9wdGlvbnMuaXNEaXNhYmxlZCB8fFxuICAgICghIW9wdGlvbnMubW9udGhJbmRleCAmJiBvcHRpb25zLm1vbnRoSW5kZXggPiAwICYmIG9wdGlvbnMubW9udGhJbmRleCAhPT0gb3B0aW9ucy5kaXNwbGF5TW9udGhzKTtcbiAgZm9ybWF0dGVkTW9udGguaGlkZVJpZ2h0QXJyb3cgPVxuICAgIG9wdGlvbnMuaXNEaXNhYmxlZCB8fFxuICAgICgoISFvcHRpb25zLm1vbnRoSW5kZXggfHwgb3B0aW9ucy5tb250aEluZGV4ID09PSAwKSAmJiAhIW9wdGlvbnMuZGlzcGxheU1vbnRocyAmJiBvcHRpb25zLm1vbnRoSW5kZXggPCBvcHRpb25zLmRpc3BsYXlNb250aHMgJiZcbiAgICAgIG9wdGlvbnMubW9udGhJbmRleCArIDEgIT09IG9wdGlvbnMuZGlzcGxheU1vbnRocyk7XG5cbiAgZm9ybWF0dGVkTW9udGguZGlzYWJsZUxlZnRBcnJvdyA9IGlzTW9udGhEaXNhYmxlZChcbiAgICBzaGlmdERhdGUoZm9ybWF0dGVkTW9udGgubW9udGgsIHsgbW9udGg6IC0xIH0pLFxuICAgIG9wdGlvbnMubWluRGF0ZSxcbiAgICBvcHRpb25zLm1heERhdGVcbiAgKTtcbiAgZm9ybWF0dGVkTW9udGguZGlzYWJsZVJpZ2h0QXJyb3cgPSBpc01vbnRoRGlzYWJsZWQoXG4gICAgc2hpZnREYXRlKGZvcm1hdHRlZE1vbnRoLm1vbnRoLCB7IG1vbnRoOiAxIH0pLFxuICAgIG9wdGlvbnMubWluRGF0ZSxcbiAgICBvcHRpb25zLm1heERhdGVcbiAgKTtcbiAgcmV0dXJuIGZvcm1hdHRlZE1vbnRoO1xufVxuXG5mdW5jdGlvbiBpc0RhdGVJblJhbmdlKFxuICBkYXRlOiBEYXRlLFxuICBzZWxlY3RlZFJhbmdlPzogRGF0ZVtdLFxuICBob3ZlcmVkRGF0ZT86IERhdGVcbik6IGJvb2xlYW4ge1xuICBpZiAoIWRhdGUgfHwgIXNlbGVjdGVkUmFuZ2UgfHwgIXNlbGVjdGVkUmFuZ2VbMF0pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoc2VsZWN0ZWRSYW5nZVsxXSkge1xuICAgIHJldHVybiBkYXRlID4gc2VsZWN0ZWRSYW5nZVswXSAmJiBkYXRlIDw9IHNlbGVjdGVkUmFuZ2VbMV07XG4gIH1cblxuICBpZiAoaG92ZXJlZERhdGUpIHtcbiAgICByZXR1cm4gZGF0ZSA+IHNlbGVjdGVkUmFuZ2VbMF0gJiYgZGF0ZSA8PSBob3ZlcmVkRGF0ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { isSameMonth, shiftDate } from 'ngx-bootstrap/chronos';
2
- import { isDisabledDate, isEnabledDate, isMonthDisabled, isYearDisabled } from '../utils/bs-calendar-utils';
3
- export function flagMonthsCalendar(monthCalendar, options) {
4
- monthCalendar.months.forEach((months, rowIndex) => {
5
- months.forEach((month, monthIndex) => {
6
- let isSelected;
7
- const isHovered = isSameMonth(month.date, options.hoveredMonth);
8
- const isDisabled = options.isDisabled ||
9
- isDisabledDate(month.date, options.datesDisabled) ||
10
- isEnabledDate(month.date, options.datesEnabled, 'month') ||
11
- isMonthDisabled(month.date, options.minDate, options.maxDate);
12
- if (!options.selectedDate && options.selectedRange) {
13
- isSelected = isSameMonth(month.date, options.selectedRange[0]);
14
- if (!isSelected) {
15
- isSelected = isSameMonth(month.date, options.selectedRange[1]);
16
- }
17
- }
18
- else {
19
- isSelected = isSameMonth(month.date, options.selectedDate);
20
- }
21
- const newMonth = Object.assign(/*{},*/ month, {
22
- isHovered,
23
- isDisabled,
24
- isSelected
25
- });
26
- if (month.isHovered !== newMonth.isHovered ||
27
- month.isDisabled !== newMonth.isDisabled ||
28
- month.isSelected !== newMonth.isSelected) {
29
- monthCalendar.months[rowIndex][monthIndex] = newMonth;
30
- }
31
- });
32
- });
33
- // todo: add check for linked calendars
34
- monthCalendar.hideLeftArrow =
35
- !!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths;
36
- monthCalendar.hideRightArrow =
37
- (!!options.monthIndex || options.monthIndex === 0)
38
- && (!!options.displayMonths || options.displayMonths === 0)
39
- && options.monthIndex < options.displayMonths
40
- && options.monthIndex + 1 !== options.displayMonths;
41
- monthCalendar.disableLeftArrow = isYearDisabled(shiftDate(monthCalendar.months[0][0].date, { year: -1 }), options.minDate, options.maxDate);
42
- monthCalendar.disableRightArrow = isYearDisabled(shiftDate(monthCalendar.months[0][0].date, { year: 1 }), options.minDate, options.maxDate);
43
- return monthCalendar;
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy1tb250aHMtY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9lbmdpbmUvZmxhZy1tb250aHMtY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFlNUcsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxhQUFzQyxFQUN0QyxPQUEwQztJQUUxQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDMUIsQ0FBQyxNQUErQixFQUFFLFFBQWdCLEVBQUUsRUFBRTtRQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBNEIsRUFBRSxVQUFrQixFQUFFLEVBQUU7WUFDbEUsSUFBSSxVQUFtQixDQUFDO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRSxNQUFNLFVBQVUsR0FDZCxPQUFPLENBQUMsVUFBVTtnQkFDbEIsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztnQkFDakQsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7Z0JBQ3hELGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkQsVUFBVSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNoQixVQUFVLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDNUMsU0FBUztnQkFDVCxVQUFVO2dCQUNWLFVBQVU7YUFDWCxDQUFDLENBQUM7WUFDSCxJQUNFLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLFNBQVM7Z0JBQ3RDLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLFVBQVU7Z0JBQ3hDLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLFVBQVUsRUFDeEMsQ0FBQztnQkFDRCxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUN4RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQ0YsQ0FBQztJQUVGLHVDQUF1QztJQUN2QyxhQUFhLENBQUMsYUFBYTtRQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFFakcsYUFBYSxDQUFDLGNBQWM7UUFDMUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBRTtlQUNoRCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDO2VBQ3hELE9BQU8sQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWE7ZUFDMUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUV0RCxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUM3QyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUN4RCxPQUFPLENBQUMsT0FBTyxFQUNmLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLENBQUM7SUFDRixhQUFhLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUM5QyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDdkQsT0FBTyxDQUFDLE9BQU8sRUFDZixPQUFPLENBQUMsT0FBTyxDQUNoQixDQUFDO0lBRUYsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2FtZU1vbnRoLCBzaGlmdERhdGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuaW1wb3J0IHtcbiAgTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIENhbGVuZGFyQ2VsbFZpZXdNb2RlbFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgaXNEaXNhYmxlZERhdGUsIGlzRW5hYmxlZERhdGUsIGlzTW9udGhEaXNhYmxlZCwgaXNZZWFyRGlzYWJsZWQgfSBmcm9tICcuLi91dGlscy9icy1jYWxlbmRhci11dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhZ01vbnRoQ2FsZW5kYXJPcHRpb25zIHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgbWluRGF0ZTogRGF0ZTtcbiAgbWF4RGF0ZTogRGF0ZTtcbiAgaG92ZXJlZE1vbnRoOiBEYXRlO1xuICBzZWxlY3RlZERhdGU6IERhdGU7XG4gIHNlbGVjdGVkUmFuZ2U6IERhdGVbXTtcbiAgZGF0ZXNEaXNhYmxlZDogRGF0ZVtdO1xuICBkYXRlc0VuYWJsZWQ6IERhdGVbXTtcbiAgZGlzcGxheU1vbnRoczogbnVtYmVyO1xuICBtb250aEluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGFnTW9udGhzQ2FsZW5kYXIoXG4gIG1vbnRoQ2FsZW5kYXI6IE1vbnRoc0NhbGVuZGFyVmlld01vZGVsLFxuICBvcHRpb25zOiBQYXJ0aWFsPEZsYWdNb250aENhbGVuZGFyT3B0aW9ucz5cbik6IE1vbnRoc0NhbGVuZGFyVmlld01vZGVsIHtcbiAgbW9udGhDYWxlbmRhci5tb250aHMuZm9yRWFjaChcbiAgICAobW9udGhzOiBDYWxlbmRhckNlbGxWaWV3TW9kZWxbXSwgcm93SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbW9udGhzLmZvckVhY2goKG1vbnRoOiBDYWxlbmRhckNlbGxWaWV3TW9kZWwsIG1vbnRoSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICAgICAgY29uc3QgaXNIb3ZlcmVkID0gaXNTYW1lTW9udGgobW9udGguZGF0ZSwgb3B0aW9ucy5ob3ZlcmVkTW9udGgpO1xuICAgICAgICBjb25zdCBpc0Rpc2FibGVkID1cbiAgICAgICAgICBvcHRpb25zLmlzRGlzYWJsZWQgfHxcbiAgICAgICAgICBpc0Rpc2FibGVkRGF0ZShtb250aC5kYXRlLCBvcHRpb25zLmRhdGVzRGlzYWJsZWQpIHx8XG4gICAgICAgICAgaXNFbmFibGVkRGF0ZShtb250aC5kYXRlLCBvcHRpb25zLmRhdGVzRW5hYmxlZCwgJ21vbnRoJykgfHxcbiAgICAgICAgICBpc01vbnRoRGlzYWJsZWQobW9udGguZGF0ZSwgb3B0aW9ucy5taW5EYXRlLCBvcHRpb25zLm1heERhdGUpO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5zZWxlY3RlZERhdGUgJiYgb3B0aW9ucy5zZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgaXNTZWxlY3RlZCA9IGlzU2FtZU1vbnRoKG1vbnRoLmRhdGUsIG9wdGlvbnMuc2VsZWN0ZWRSYW5nZVswXSk7XG4gICAgICAgICAgaWYgKCFpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICBpc1NlbGVjdGVkID0gaXNTYW1lTW9udGgobW9udGguZGF0ZSwgb3B0aW9ucy5zZWxlY3RlZFJhbmdlWzFdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNTZWxlY3RlZCA9IGlzU2FtZU1vbnRoKG1vbnRoLmRhdGUsIG9wdGlvbnMuc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdNb250aCA9IE9iamVjdC5hc3NpZ24oLyp7fSwqLyBtb250aCwge1xuICAgICAgICAgIGlzSG92ZXJlZCxcbiAgICAgICAgICBpc0Rpc2FibGVkLFxuICAgICAgICAgIGlzU2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtb250aC5pc0hvdmVyZWQgIT09IG5ld01vbnRoLmlzSG92ZXJlZCB8fFxuICAgICAgICAgIG1vbnRoLmlzRGlzYWJsZWQgIT09IG5ld01vbnRoLmlzRGlzYWJsZWQgfHxcbiAgICAgICAgICBtb250aC5pc1NlbGVjdGVkICE9PSBuZXdNb250aC5pc1NlbGVjdGVkXG4gICAgICAgICkge1xuICAgICAgICAgIG1vbnRoQ2FsZW5kYXIubW9udGhzW3Jvd0luZGV4XVttb250aEluZGV4XSA9IG5ld01vbnRoO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgLy8gdG9kbzogYWRkIGNoZWNrIGZvciBsaW5rZWQgY2FsZW5kYXJzXG4gIG1vbnRoQ2FsZW5kYXIuaGlkZUxlZnRBcnJvdyA9XG4gICAgISFvcHRpb25zLm1vbnRoSW5kZXggJiYgb3B0aW9ucy5tb250aEluZGV4ID4gMCAmJiBvcHRpb25zLm1vbnRoSW5kZXggIT09IG9wdGlvbnMuZGlzcGxheU1vbnRocztcblxuICBtb250aENhbGVuZGFyLmhpZGVSaWdodEFycm93ID1cbiAgICAoISFvcHRpb25zLm1vbnRoSW5kZXggfHwgb3B0aW9ucy5tb250aEluZGV4ID09PSAwIClcbiAgICAmJiAoISFvcHRpb25zLmRpc3BsYXlNb250aHMgfHwgb3B0aW9ucy5kaXNwbGF5TW9udGhzID09PSAwKVxuICAgICYmIG9wdGlvbnMubW9udGhJbmRleCA8IG9wdGlvbnMuZGlzcGxheU1vbnRoc1xuICAgICYmIG9wdGlvbnMubW9udGhJbmRleCArIDEgIT09IG9wdGlvbnMuZGlzcGxheU1vbnRocztcblxuICBtb250aENhbGVuZGFyLmRpc2FibGVMZWZ0QXJyb3cgPSBpc1llYXJEaXNhYmxlZChcbiAgICBzaGlmdERhdGUobW9udGhDYWxlbmRhci5tb250aHNbMF1bMF0uZGF0ZSwgeyB5ZWFyOiAtMSB9KSxcbiAgICBvcHRpb25zLm1pbkRhdGUsXG4gICAgb3B0aW9ucy5tYXhEYXRlXG4gICk7XG4gIG1vbnRoQ2FsZW5kYXIuZGlzYWJsZVJpZ2h0QXJyb3cgPSBpc1llYXJEaXNhYmxlZChcbiAgICBzaGlmdERhdGUobW9udGhDYWxlbmRhci5tb250aHNbMF1bMF0uZGF0ZSwgeyB5ZWFyOiAxIH0pLFxuICAgIG9wdGlvbnMubWluRGF0ZSxcbiAgICBvcHRpb25zLm1heERhdGVcbiAgKTtcblxuICByZXR1cm4gbW9udGhDYWxlbmRhcjtcbn1cbiJdfQ==