mis-crystal-design-system 14.0.55-test-v4 → 14.0.55-test-v6

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 (460) hide show
  1. package/datepicker/base/bs-datepicker-container.d.ts +44 -0
  2. package/datepicker/bs-datepicker-inline.component.d.ts +64 -0
  3. package/datepicker/bs-datepicker-inline.config.d.ts +6 -0
  4. package/datepicker/bs-datepicker-input.directive.d.ts +33 -0
  5. package/datepicker/bs-datepicker.component.d.ts +126 -0
  6. package/datepicker/bs-datepicker.config.d.ts +143 -0
  7. package/datepicker/bs-datepicker.module.d.ts +29 -0
  8. package/datepicker/bs-daterangepicker-inline.component.d.ts +64 -0
  9. package/datepicker/bs-daterangepicker-inline.config.d.ts +9 -0
  10. package/datepicker/bs-daterangepicker-input.directive.d.ts +33 -0
  11. package/datepicker/bs-daterangepicker.component.d.ts +118 -0
  12. package/datepicker/bs-daterangepicker.config.d.ts +7 -0
  13. package/datepicker/bs-locale.service.d.ts +13 -0
  14. package/datepicker/chronos/create/check-overflow.d.ts +2 -0
  15. package/datepicker/chronos/create/clone.d.ts +1 -0
  16. package/datepicker/chronos/create/date-from-array.d.ts +2 -0
  17. package/datepicker/chronos/create/from-anything.d.ts +4 -0
  18. package/datepicker/chronos/create/from-array.d.ts +2 -0
  19. package/datepicker/chronos/create/from-object.d.ts +2 -0
  20. package/datepicker/chronos/create/from-string-and-array.d.ts +2 -0
  21. package/datepicker/chronos/create/from-string-and-format.d.ts +4 -0
  22. package/datepicker/chronos/create/from-string.d.ts +4 -0
  23. package/datepicker/chronos/create/local.d.ts +3 -0
  24. package/datepicker/chronos/create/parsing-flags.d.ts +2 -0
  25. package/datepicker/chronos/create/parsing.types.d.ts +64 -0
  26. package/datepicker/chronos/create/valid.d.ts +6 -0
  27. package/datepicker/chronos/duration/bubble.d.ts +4 -0
  28. package/datepicker/chronos/duration/constructor.d.ts +21 -0
  29. package/datepicker/chronos/duration/create.d.ts +8 -0
  30. package/datepicker/chronos/duration/humanize.d.ts +5 -0
  31. package/datepicker/chronos/duration/valid.d.ts +2 -0
  32. package/datepicker/chronos/format/format.d.ts +11 -0
  33. package/datepicker/chronos/format.d.ts +5 -0
  34. package/datepicker/chronos/i18n/ar.d.ts +2 -0
  35. package/datepicker/chronos/i18n/bg.d.ts +2 -0
  36. package/datepicker/chronos/i18n/ca.d.ts +2 -0
  37. package/datepicker/chronos/i18n/cs.d.ts +2 -0
  38. package/datepicker/chronos/i18n/da.d.ts +2 -0
  39. package/datepicker/chronos/i18n/de.d.ts +2 -0
  40. package/datepicker/chronos/i18n/en-gb.d.ts +2 -0
  41. package/datepicker/chronos/i18n/es-do.d.ts +2 -0
  42. package/datepicker/chronos/i18n/es-us.d.ts +2 -0
  43. package/datepicker/chronos/i18n/es.d.ts +2 -0
  44. package/datepicker/chronos/i18n/et.d.ts +2 -0
  45. package/datepicker/chronos/i18n/fi.d.ts +2 -0
  46. package/datepicker/chronos/i18n/fr.d.ts +2 -0
  47. package/datepicker/chronos/i18n/gl.d.ts +2 -0
  48. package/datepicker/chronos/i18n/he.d.ts +2 -0
  49. package/datepicker/chronos/i18n/hi.d.ts +2 -0
  50. package/datepicker/chronos/i18n/hr.d.ts +2 -0
  51. package/datepicker/chronos/i18n/hu.d.ts +2 -0
  52. package/datepicker/chronos/i18n/id.d.ts +2 -0
  53. package/datepicker/chronos/i18n/it.d.ts +2 -0
  54. package/datepicker/chronos/i18n/ja.d.ts +2 -0
  55. package/datepicker/chronos/i18n/ka.d.ts +2 -0
  56. package/datepicker/chronos/i18n/kk.d.ts +2 -0
  57. package/datepicker/chronos/i18n/ko.d.ts +2 -0
  58. package/datepicker/chronos/i18n/lt.d.ts +2 -0
  59. package/datepicker/chronos/i18n/lv.d.ts +2 -0
  60. package/datepicker/chronos/i18n/mn.d.ts +2 -0
  61. package/datepicker/chronos/i18n/nb.d.ts +2 -0
  62. package/datepicker/chronos/i18n/nl-be.d.ts +2 -0
  63. package/datepicker/chronos/i18n/nl.d.ts +2 -0
  64. package/datepicker/chronos/i18n/pl.d.ts +2 -0
  65. package/datepicker/chronos/i18n/pt-br.d.ts +2 -0
  66. package/datepicker/chronos/i18n/ro.d.ts +2 -0
  67. package/datepicker/chronos/i18n/ru.d.ts +2 -0
  68. package/datepicker/chronos/i18n/sk.d.ts +2 -0
  69. package/datepicker/chronos/i18n/sl.d.ts +2 -0
  70. package/datepicker/chronos/i18n/sq.d.ts +2 -0
  71. package/datepicker/chronos/i18n/sv.d.ts +2 -0
  72. package/datepicker/chronos/i18n/th-be.d.ts +2 -0
  73. package/datepicker/chronos/i18n/th.d.ts +2 -0
  74. package/datepicker/chronos/i18n/tr.d.ts +2 -0
  75. package/datepicker/chronos/i18n/uk.d.ts +2 -0
  76. package/datepicker/chronos/i18n/vi.d.ts +2 -0
  77. package/datepicker/chronos/i18n/zh-cn.d.ts +2 -0
  78. package/datepicker/chronos/index.d.ts +1 -0
  79. package/datepicker/chronos/locale/calendar.d.ts +8 -0
  80. package/datepicker/chronos/locale/locale.class.d.ts +143 -0
  81. package/datepicker/chronos/locale/locale.defaults.d.ts +11 -0
  82. package/datepicker/chronos/locale/locales.d.ts +7 -0
  83. package/datepicker/chronos/moment/add-subtract.d.ts +5 -0
  84. package/datepicker/chronos/moment/calendar.d.ts +15 -0
  85. package/datepicker/chronos/moment/diff.d.ts +3 -0
  86. package/datepicker/chronos/moment/min-max.d.ts +2 -0
  87. package/datepicker/chronos/parse/regex.d.ts +22 -0
  88. package/datepicker/chronos/parse/token.d.ts +5 -0
  89. package/datepicker/chronos/public_api.d.ts +57 -0
  90. package/datepicker/chronos/test/chain.d.ts +214 -0
  91. package/datepicker/chronos/types.d.ts +36 -0
  92. package/datepicker/chronos/units/aliases.d.ts +7 -0
  93. package/datepicker/chronos/units/constants.d.ts +9 -0
  94. package/datepicker/chronos/units/day-of-month.d.ts +1 -0
  95. package/datepicker/chronos/units/day-of-week.d.ts +20 -0
  96. package/datepicker/chronos/units/day-of-year.d.ts +3 -0
  97. package/datepicker/chronos/units/hour.d.ts +1 -0
  98. package/datepicker/chronos/units/index.d.ts +18 -0
  99. package/datepicker/chronos/units/millisecond.d.ts +1 -0
  100. package/datepicker/chronos/units/minute.d.ts +1 -0
  101. package/datepicker/chronos/units/month.d.ts +2 -0
  102. package/datepicker/chronos/units/offset.d.ts +10 -0
  103. package/datepicker/chronos/units/priorities.d.ts +1 -0
  104. package/datepicker/chronos/units/quarter.d.ts +3 -0
  105. package/datepicker/chronos/units/second.d.ts +1 -0
  106. package/datepicker/chronos/units/timestamp.d.ts +1 -0
  107. package/datepicker/chronos/units/timezone.d.ts +3 -0
  108. package/datepicker/chronos/units/week-calendar-utils.d.ts +9 -0
  109. package/datepicker/chronos/units/week-year.d.ts +8 -0
  110. package/datepicker/chronos/units/week.d.ts +6 -0
  111. package/datepicker/chronos/units/year.d.ts +4 -0
  112. package/datepicker/chronos/utils/abs-ceil.d.ts +1 -0
  113. package/datepicker/chronos/utils/abs-round.d.ts +1 -0
  114. package/datepicker/chronos/utils/compare-arrays.d.ts +1 -0
  115. package/datepicker/chronos/utils/date-compare.d.ts +9 -0
  116. package/datepicker/chronos/utils/date-getters.d.ts +18 -0
  117. package/datepicker/chronos/utils/date-setters.d.ts +12 -0
  118. package/datepicker/chronos/utils/defaults.d.ts +1 -0
  119. package/datepicker/chronos/utils/start-end-of.d.ts +3 -0
  120. package/datepicker/chronos/utils/type-checks.d.ts +12 -0
  121. package/datepicker/chronos/utils/zero-fill.d.ts +1 -0
  122. package/datepicker/chronos/utils.d.ts +2 -0
  123. package/datepicker/component-loader/bs-component-ref.class.d.ts +5 -0
  124. package/datepicker/component-loader/component-loader.class.d.ts +75 -0
  125. package/datepicker/component-loader/component-loader.factory.d.ts +21 -0
  126. package/datepicker/component-loader/content-ref.class.d.ts +7 -0
  127. package/datepicker/component-loader/index.d.ts +1 -0
  128. package/datepicker/component-loader/listen-options.model.d.ts +11 -0
  129. package/datepicker/component-loader/public_api.d.ts +4 -0
  130. package/datepicker/date-formatter.d.ts +3 -0
  131. package/datepicker/datepicker-animations.d.ts +3 -0
  132. package/datepicker/datepicker-inner.component.d.ts +78 -0
  133. package/datepicker/datepicker.component.d.ts +81 -0
  134. package/datepicker/datepicker.config.d.ts +22 -0
  135. package/datepicker/datepicker.module.d.ts +15 -0
  136. package/datepicker/daypicker.component.d.ts +17 -0
  137. package/datepicker/engine/calc-days-calendar.d.ts +2 -0
  138. package/datepicker/engine/flag-days-calendar.d.ts +17 -0
  139. package/datepicker/engine/flag-months-calendar.d.ts +12 -0
  140. package/datepicker/engine/flag-years-calendar.d.ts +12 -0
  141. package/datepicker/engine/format-days-calendar.d.ts +4 -0
  142. package/datepicker/engine/format-months-calendar.d.ts +2 -0
  143. package/datepicker/engine/format-years-calendar.d.ts +4 -0
  144. package/datepicker/engine/view-mode.d.ts +2 -0
  145. package/datepicker/index.d.ts +1 -0
  146. package/datepicker/mini-ngrx/index.d.ts +1 -0
  147. package/datepicker/mini-ngrx/public_api.d.ts +7 -0
  148. package/datepicker/mini-ngrx/state.class.d.ts +8 -0
  149. package/datepicker/mini-ngrx/store.class.d.ts +16 -0
  150. package/datepicker/models/index.d.ts +102 -0
  151. package/datepicker/monthpicker.component.d.ts +14 -0
  152. package/datepicker/positioning/index.d.ts +1 -0
  153. package/datepicker/positioning/models/index.d.ts +41 -0
  154. package/datepicker/positioning/modifiers/arrow.d.ts +2 -0
  155. package/datepicker/positioning/modifiers/flip.d.ts +2 -0
  156. package/datepicker/positioning/modifiers/index.d.ts +5 -0
  157. package/datepicker/positioning/modifiers/initData.d.ts +2 -0
  158. package/datepicker/positioning/modifiers/preventOverflow.d.ts +2 -0
  159. package/datepicker/positioning/modifiers/shift.d.ts +2 -0
  160. package/datepicker/positioning/ng-positioning.d.ts +8 -0
  161. package/datepicker/positioning/positioning.service.d.ts +48 -0
  162. package/datepicker/positioning/public_api.d.ts +2 -0
  163. package/datepicker/positioning/utils/computeAutoPlacement.d.ts +2 -0
  164. package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +1 -0
  165. package/datepicker/positioning/utils/getBordersSize.d.ts +4 -0
  166. package/datepicker/positioning/utils/getBoundaries.d.ts +1 -0
  167. package/datepicker/positioning/utils/getBoundingClientRect.d.ts +2 -0
  168. package/datepicker/positioning/utils/getClientRect.d.ts +5 -0
  169. package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +4 -0
  170. package/datepicker/positioning/utils/getOffsetParent.d.ts +1 -0
  171. package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
  172. package/datepicker/positioning/utils/getOffsets.d.ts +2 -0
  173. package/datepicker/positioning/utils/getOppositePlacement.d.ts +4 -0
  174. package/datepicker/positioning/utils/getOppositeVariation.d.ts +4 -0
  175. package/datepicker/positioning/utils/getOuterSizes.d.ts +7 -0
  176. package/datepicker/positioning/utils/getParentNode.d.ts +4 -0
  177. package/datepicker/positioning/utils/getReferenceOffsets.d.ts +2 -0
  178. package/datepicker/positioning/utils/getRoot.d.ts +4 -0
  179. package/datepicker/positioning/utils/getScroll.d.ts +4 -0
  180. package/datepicker/positioning/utils/getScrollParent.d.ts +1 -0
  181. package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +4 -0
  182. package/datepicker/positioning/utils/getTargetOffsets.d.ts +2 -0
  183. package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
  184. package/datepicker/positioning/utils/getWindowSizes.d.ts +4 -0
  185. package/datepicker/positioning/utils/includeScroll.d.ts +2 -0
  186. package/datepicker/positioning/utils/index.d.ts +23 -0
  187. package/datepicker/positioning/utils/isBrowser.d.ts +1 -0
  188. package/datepicker/positioning/utils/isFixed.d.ts +1 -0
  189. package/datepicker/positioning/utils/isIE.d.ts +1 -0
  190. package/datepicker/positioning/utils/isModifierEnabled.d.ts +4 -0
  191. package/datepicker/positioning/utils/isNumeric.d.ts +4 -0
  192. package/datepicker/positioning/utils/isOffsetContainer.d.ts +1 -0
  193. package/datepicker/positioning/utils/setStyles.d.ts +5 -0
  194. package/datepicker/positioning/utils/updateContainerClass.d.ts +6 -0
  195. package/datepicker/public_api.d.ts +25 -0
  196. package/datepicker/reducer/_defaults.d.ts +2 -0
  197. package/datepicker/reducer/bs-datepicker.actions.d.ts +46 -0
  198. package/datepicker/reducer/bs-datepicker.effects.d.ts +41 -0
  199. package/datepicker/reducer/bs-datepicker.reducer.d.ts +3 -0
  200. package/datepicker/reducer/bs-datepicker.state.d.ts +43 -0
  201. package/datepicker/reducer/bs-datepicker.store.d.ts +8 -0
  202. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +5 -0
  203. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +6 -0
  204. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +17 -0
  205. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +36 -0
  206. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +14 -0
  207. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +13 -0
  208. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +12 -0
  209. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +40 -0
  210. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +13 -0
  211. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +26 -0
  212. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +16 -0
  213. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +8 -0
  214. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +16 -0
  215. package/datepicker/utils/bs-calendar-utils.d.ts +10 -0
  216. package/datepicker/utils/matrix-utils.d.ts +9 -0
  217. package/datepicker/utils-v2/decorators.d.ts +1 -0
  218. package/datepicker/utils-v2/facade/browser.d.ts +23 -0
  219. package/datepicker/utils-v2/index.d.ts +1 -0
  220. package/datepicker/utils-v2/linked-list.class.d.ts +26 -0
  221. package/datepicker/utils-v2/public_api.d.ts +10 -0
  222. package/datepicker/utils-v2/theme-provider.d.ts +2 -0
  223. package/datepicker/utils-v2/trigger.class.d.ts +6 -0
  224. package/datepicker/utils-v2/triggers.d.ts +18 -0
  225. package/datepicker/utils-v2/utils.class.d.ts +4 -0
  226. package/datepicker/utils-v2/warn-once.d.ts +1 -0
  227. package/datepicker/yearpicker.component.d.ts +14 -0
  228. package/esm2020/datepicker/base/bs-datepicker-container.mjs +47 -0
  229. package/esm2020/datepicker/bs-datepicker-inline.component.mjs +137 -0
  230. package/esm2020/datepicker/bs-datepicker-inline.config.mjs +14 -0
  231. package/esm2020/datepicker/bs-datepicker-input.directive.mjs +160 -0
  232. package/esm2020/datepicker/bs-datepicker.component.mjs +254 -0
  233. package/esm2020/datepicker/bs-datepicker.config.mjs +87 -0
  234. package/esm2020/datepicker/bs-datepicker.module.mjs +126 -0
  235. package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +134 -0
  236. package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +21 -0
  237. package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +192 -0
  238. package/esm2020/datepicker/bs-daterangepicker.component.mjs +240 -0
  239. package/esm2020/datepicker/bs-daterangepicker.config.mjs +19 -0
  240. package/esm2020/datepicker/bs-locale.service.mjs +32 -0
  241. package/esm2020/datepicker/chronos/create/check-overflow.mjs +30 -0
  242. package/esm2020/datepicker/chronos/create/clone.mjs +6 -0
  243. package/esm2020/datepicker/chronos/create/date-from-array.mjs +17 -0
  244. package/esm2020/datepicker/chronos/create/from-anything.mjs +107 -0
  245. package/esm2020/datepicker/chronos/create/from-array.mjs +136 -0
  246. package/esm2020/datepicker/chronos/create/from-object.mjs +17 -0
  247. package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +38 -0
  248. package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +106 -0
  249. package/esm2020/datepicker/chronos/create/from-string.mjs +227 -0
  250. package/esm2020/datepicker/chronos/create/local.mjs +16 -0
  251. package/esm2020/datepicker/chronos/create/parsing-flags.mjs +26 -0
  252. package/esm2020/datepicker/chronos/create/parsing.types.mjs +2 -0
  253. package/esm2020/datepicker/chronos/create/valid.mjs +42 -0
  254. package/esm2020/datepicker/chronos/duration/bubble.mjs +47 -0
  255. package/esm2020/datepicker/chronos/duration/constructor.mjs +130 -0
  256. package/esm2020/datepicker/chronos/duration/create.mjs +113 -0
  257. package/esm2020/datepicker/chronos/duration/humanize.mjs +80 -0
  258. package/esm2020/datepicker/chronos/duration/valid.mjs +43 -0
  259. package/esm2020/datepicker/chronos/format/format.mjs +51 -0
  260. package/esm2020/datepicker/chronos/format.mjs +46 -0
  261. package/esm2020/datepicker/chronos/i18n/ar.mjs +128 -0
  262. package/esm2020/datepicker/chronos/i18n/bg.mjs +94 -0
  263. package/esm2020/datepicker/chronos/i18n/ca.mjs +91 -0
  264. package/esm2020/datepicker/chronos/i18n/cs.mjs +179 -0
  265. package/esm2020/datepicker/chronos/i18n/da.mjs +50 -0
  266. package/esm2020/datepicker/chronos/i18n/de.mjs +72 -0
  267. package/esm2020/datepicker/chronos/i18n/en-gb.mjs +61 -0
  268. package/esm2020/datepicker/chronos/i18n/es-do.mjs +85 -0
  269. package/esm2020/datepicker/chronos/i18n/es-us.mjs +79 -0
  270. package/esm2020/datepicker/chronos/i18n/es.mjs +84 -0
  271. package/esm2020/datepicker/chronos/i18n/et.mjs +73 -0
  272. package/esm2020/datepicker/chronos/i18n/fi.mjs +100 -0
  273. package/esm2020/datepicker/chronos/i18n/fr.mjs +76 -0
  274. package/esm2020/datepicker/chronos/i18n/gl.mjs +84 -0
  275. package/esm2020/datepicker/chronos/i18n/he.mjs +98 -0
  276. package/esm2020/datepicker/chronos/i18n/hi.mjs +124 -0
  277. package/esm2020/datepicker/chronos/i18n/hr.mjs +62 -0
  278. package/esm2020/datepicker/chronos/i18n/hu.mjs +104 -0
  279. package/esm2020/datepicker/chronos/i18n/id.mjs +83 -0
  280. package/esm2020/datepicker/chronos/i18n/it.mjs +65 -0
  281. package/esm2020/datepicker/chronos/i18n/ja.mjs +75 -0
  282. package/esm2020/datepicker/chronos/i18n/ka.mjs +87 -0
  283. package/esm2020/datepicker/chronos/i18n/kk.mjs +76 -0
  284. package/esm2020/datepicker/chronos/i18n/ko.mjs +77 -0
  285. package/esm2020/datepicker/chronos/i18n/lt.mjs +116 -0
  286. package/esm2020/datepicker/chronos/i18n/lv.mjs +56 -0
  287. package/esm2020/datepicker/chronos/i18n/mn.mjs +99 -0
  288. package/esm2020/datepicker/chronos/i18n/nb.mjs +53 -0
  289. package/esm2020/datepicker/chronos/i18n/nl-be.mjs +81 -0
  290. package/esm2020/datepicker/chronos/i18n/nl.mjs +80 -0
  291. package/esm2020/datepicker/chronos/i18n/pl.mjs +126 -0
  292. package/esm2020/datepicker/chronos/i18n/pt-br.mjs +56 -0
  293. package/esm2020/datepicker/chronos/i18n/ro.mjs +66 -0
  294. package/esm2020/datepicker/chronos/i18n/ru.mjs +181 -0
  295. package/esm2020/datepicker/chronos/i18n/sk.mjs +157 -0
  296. package/esm2020/datepicker/chronos/i18n/sl.mjs +184 -0
  297. package/esm2020/datepicker/chronos/i18n/sq.mjs +54 -0
  298. package/esm2020/datepicker/chronos/i18n/sv.mjs +63 -0
  299. package/esm2020/datepicker/chronos/i18n/th-be.mjs +74 -0
  300. package/esm2020/datepicker/chronos/i18n/th.mjs +59 -0
  301. package/esm2020/datepicker/chronos/i18n/tr.mjs +82 -0
  302. package/esm2020/datepicker/chronos/i18n/uk.mjs +147 -0
  303. package/esm2020/datepicker/chronos/i18n/vi.mjs +74 -0
  304. package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +114 -0
  305. package/esm2020/datepicker/chronos/index.mjs +2 -0
  306. package/esm2020/datepicker/chronos/locale/calendar.mjs +9 -0
  307. package/esm2020/datepicker/chronos/locale/locale.class.mjs +532 -0
  308. package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +40 -0
  309. package/esm2020/datepicker/chronos/locale/locales.mjs +229 -0
  310. package/esm2020/datepicker/chronos/moment/add-subtract.mjs +35 -0
  311. package/esm2020/datepicker/chronos/moment/calendar.mjs +41 -0
  312. package/esm2020/datepicker/chronos/moment/diff.mjs +70 -0
  313. package/esm2020/datepicker/chronos/moment/min-max.mjs +38 -0
  314. package/esm2020/datepicker/chronos/parse/regex.mjs +49 -0
  315. package/esm2020/datepicker/chronos/parse/token.mjs +32 -0
  316. package/esm2020/datepicker/chronos/public_api.mjs +56 -0
  317. package/esm2020/datepicker/chronos/test/chain.mjs +711 -0
  318. package/esm2020/datepicker/chronos/types.mjs +2 -0
  319. package/esm2020/datepicker/chronos/units/aliases.mjs +35 -0
  320. package/esm2020/datepicker/chronos/units/constants.mjs +11 -0
  321. package/esm2020/datepicker/chronos/units/day-of-month.mjs +31 -0
  322. package/esm2020/datepicker/chronos/units/day-of-week.mjs +129 -0
  323. package/esm2020/datepicker/chronos/units/day-of-year.mjs +37 -0
  324. package/esm2020/datepicker/chronos/units/hour.mjs +127 -0
  325. package/esm2020/datepicker/chronos/units/index.mjs +19 -0
  326. package/esm2020/datepicker/chronos/units/millisecond.mjs +60 -0
  327. package/esm2020/datepicker/chronos/units/minute.mjs +23 -0
  328. package/esm2020/datepicker/chronos/units/month.mjs +63 -0
  329. package/esm2020/datepicker/chronos/units/offset.mjs +210 -0
  330. package/esm2020/datepicker/chronos/units/priorities.mjs +21 -0
  331. package/esm2020/datepicker/chronos/units/quarter.mjs +39 -0
  332. package/esm2020/datepicker/chronos/units/second.mjs +23 -0
  333. package/esm2020/datepicker/chronos/units/timestamp.mjs +28 -0
  334. package/esm2020/datepicker/chronos/units/timezone.mjs +19 -0
  335. package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +70 -0
  336. package/esm2020/datepicker/chronos/units/week-year.mjs +101 -0
  337. package/esm2020/datepicker/chronos/units/week.mjs +58 -0
  338. package/esm2020/datepicker/chronos/units/year.mjs +60 -0
  339. package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +4 -0
  340. package/esm2020/datepicker/chronos/utils/abs-round.mjs +4 -0
  341. package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +16 -0
  342. package/esm2020/datepicker/chronos/utils/date-compare.mjs +55 -0
  343. package/esm2020/datepicker/chronos/utils/date-getters.mjs +67 -0
  344. package/esm2020/datepicker/chronos/utils/date-setters.mjs +75 -0
  345. package/esm2020/datepicker/chronos/utils/defaults.mjs +11 -0
  346. package/esm2020/datepicker/chronos/utils/start-end-of.mjs +57 -0
  347. package/esm2020/datepicker/chronos/utils/type-checks.mjs +56 -0
  348. package/esm2020/datepicker/chronos/utils/zero-fill.mjs +10 -0
  349. package/esm2020/datepicker/chronos/utils.mjs +7 -0
  350. package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +3 -0
  351. package/esm2020/datepicker/component-loader/component-loader.class.mjs +272 -0
  352. package/esm2020/datepicker/component-loader/component-loader.factory.mjs +29 -0
  353. package/esm2020/datepicker/component-loader/content-ref.class.mjs +12 -0
  354. package/esm2020/datepicker/component-loader/index.mjs +2 -0
  355. package/esm2020/datepicker/component-loader/listen-options.model.mjs +2 -0
  356. package/esm2020/datepicker/component-loader/public_api.mjs +5 -0
  357. package/esm2020/datepicker/date-formatter.mjs +7 -0
  358. package/esm2020/datepicker/datepicker-animations.mjs +16 -0
  359. package/esm2020/datepicker/datepicker-inner.component.mjs +323 -0
  360. package/esm2020/datepicker/datepicker.component.mjs +182 -0
  361. package/esm2020/datepicker/datepicker.config.mjs +32 -0
  362. package/esm2020/datepicker/datepicker.module.mjs +49 -0
  363. package/esm2020/datepicker/daypicker.component.mjs +314 -0
  364. package/esm2020/datepicker/engine/calc-days-calendar.mjs +19 -0
  365. package/esm2020/datepicker/engine/flag-days-calendar.mjs +91 -0
  366. package/esm2020/datepicker/engine/flag-months-calendar.mjs +41 -0
  367. package/esm2020/datepicker/engine/flag-years-calendar.mjs +39 -0
  368. package/esm2020/datepicker/engine/format-days-calendar.mjs +29 -0
  369. package/esm2020/datepicker/engine/format-months-calendar.mjs +19 -0
  370. package/esm2020/datepicker/engine/format-years-calendar.mjs +35 -0
  371. package/esm2020/datepicker/engine/view-mode.mjs +4 -0
  372. package/esm2020/datepicker/index.mjs +2 -0
  373. package/esm2020/datepicker/mini-ngrx/index.mjs +2 -0
  374. package/esm2020/datepicker/mini-ngrx/public_api.mjs +3 -0
  375. package/esm2020/datepicker/mini-ngrx/state.class.mjs +16 -0
  376. package/esm2020/datepicker/mini-ngrx/store.class.mjs +43 -0
  377. package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +5 -0
  378. package/esm2020/datepicker/models/index.mjs +9 -0
  379. package/esm2020/datepicker/monthpicker.component.mjs +145 -0
  380. package/esm2020/datepicker/positioning/index.mjs +2 -0
  381. package/esm2020/datepicker/positioning/models/index.mjs +2 -0
  382. package/esm2020/datepicker/positioning/modifiers/arrow.mjs +56 -0
  383. package/esm2020/datepicker/positioning/modifiers/flip.mjs +66 -0
  384. package/esm2020/datepicker/positioning/modifiers/index.mjs +6 -0
  385. package/esm2020/datepicker/positioning/modifiers/initData.mjs +42 -0
  386. package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +59 -0
  387. package/esm2020/datepicker/positioning/modifiers/shift.mjs +24 -0
  388. package/esm2020/datepicker/positioning/ng-positioning.mjs +30 -0
  389. package/esm2020/datepicker/positioning/positioning.service.mjs +75 -0
  390. package/esm2020/datepicker/positioning/public_api.mjs +3 -0
  391. package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +57 -0
  392. package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +40 -0
  393. package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +10 -0
  394. package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +56 -0
  395. package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +55 -0
  396. package/esm2020/datepicker/positioning/utils/getClientRect.mjs +8 -0
  397. package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +17 -0
  398. package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +32 -0
  399. package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +51 -0
  400. package/esm2020/datepicker/positioning/utils/getOffsets.mjs +11 -0
  401. package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +8 -0
  402. package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +13 -0
  403. package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +14 -0
  404. package/esm2020/datepicker/positioning/utils/getParentNode.mjs +10 -0
  405. package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +13 -0
  406. package/esm2020/datepicker/positioning/utils/getRoot.mjs +10 -0
  407. package/esm2020/datepicker/positioning/utils/getScroll.mjs +14 -0
  408. package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +26 -0
  409. package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +13 -0
  410. package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +30 -0
  411. package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +19 -0
  412. package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +18 -0
  413. package/esm2020/datepicker/positioning/utils/includeScroll.mjs +15 -0
  414. package/esm2020/datepicker/positioning/utils/index.mjs +24 -0
  415. package/esm2020/datepicker/positioning/utils/isBrowser.mjs +2 -0
  416. package/esm2020/datepicker/positioning/utils/isFixed.mjs +16 -0
  417. package/esm2020/datepicker/positioning/utils/isIE.mjs +16 -0
  418. package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +10 -0
  419. package/esm2020/datepicker/positioning/utils/isNumeric.mjs +7 -0
  420. package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +9 -0
  421. package/esm2020/datepicker/positioning/utils/setStyles.mjs +17 -0
  422. package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +22 -0
  423. package/esm2020/datepicker/public_api.mjs +25 -0
  424. package/esm2020/datepicker/reducer/_defaults.mjs +5 -0
  425. package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +136 -0
  426. package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +169 -0
  427. package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +302 -0
  428. package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +12 -0
  429. package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +21 -0
  430. package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +54 -0
  431. package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +23 -0
  432. package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +78 -0
  433. package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +319 -0
  434. package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +52 -0
  435. package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +203 -0
  436. package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +111 -0
  437. package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +362 -0
  438. package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +203 -0
  439. package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +308 -0
  440. package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +106 -0
  441. package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +64 -0
  442. package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +107 -0
  443. package/esm2020/datepicker/utils/bs-calendar-utils.mjs +43 -0
  444. package/esm2020/datepicker/utils/matrix-utils.mjs +14 -0
  445. package/esm2020/datepicker/utils-v2/decorators.mjs +25 -0
  446. package/esm2020/datepicker/utils-v2/facade/browser.mjs +24 -0
  447. package/esm2020/datepicker/utils-v2/index.mjs +2 -0
  448. package/esm2020/datepicker/utils-v2/linked-list.class.mjs +240 -0
  449. package/esm2020/datepicker/utils-v2/public_api.mjs +11 -0
  450. package/esm2020/datepicker/utils-v2/theme-provider.mjs +35 -0
  451. package/esm2020/datepicker/utils-v2/trigger.class.mjs +10 -0
  452. package/esm2020/datepicker/utils-v2/triggers.mjs +110 -0
  453. package/esm2020/datepicker/utils-v2/utils.class.mjs +21 -0
  454. package/esm2020/datepicker/utils-v2/warn-once.mjs +12 -0
  455. package/esm2020/datepicker/yearpicker.component.mjs +147 -0
  456. package/fesm2015/mis-crystal-design-system-datepicker.mjs +14950 -0
  457. package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +1 -0
  458. package/fesm2020/mis-crystal-design-system-datepicker.mjs +14572 -0
  459. package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +1 -0
  460. package/package.json +9 -1
@@ -0,0 +1,302 @@
1
+ // tslint:disable:max-file-line-count
2
+ import { initialDatePickerState } from './bs-datepicker.state';
3
+ import { MisDatePickerActions } from './bs-datepicker.actions';
4
+ import { calcDaysCalendar } from '../engine/calc-days-calendar';
5
+ import { formatDaysCalendar } from '../engine/format-days-calendar';
6
+ import { flagDaysCalendar } from '../engine/flag-days-calendar';
7
+ import { setFullDate, shiftDate, isArray, isDateValid, startOf, getLocale, isAfter, isBefore, isSame } from '../chronos';
8
+ import { canSwitchMode } from '../engine/view-mode';
9
+ import { formatMonthsCalendar } from '../engine/format-months-calendar';
10
+ import { flagMonthsCalendar } from '../engine/flag-months-calendar';
11
+ import { formatYearsCalendar, initialYearShift, yearsPerCalendar } from '../engine/format-years-calendar';
12
+ import { flagYearsCalendar } from '../engine/flag-years-calendar';
13
+ import { getYearsCalendarInitialDate } from '../utils/bs-calendar-utils';
14
+ /* tslint:disable-next-line: cyclomatic-complexity */
15
+ export function misDatePickerReducer(state = initialDatePickerState, action) {
16
+ switch (action.type) {
17
+ case MisDatePickerActions.CALCULATE: {
18
+ return calculateReducer(state);
19
+ }
20
+ case MisDatePickerActions.FORMAT: {
21
+ return formatReducer(state, action);
22
+ }
23
+ case MisDatePickerActions.FLAG: {
24
+ return flagReducer(state, action);
25
+ }
26
+ case MisDatePickerActions.NAVIGATE_OFFSET: {
27
+ return navigateOffsetReducer(state, action);
28
+ }
29
+ case MisDatePickerActions.NAVIGATE_TO: {
30
+ const payload = action.payload;
31
+ const date = setFullDate(state.view.date, payload.unit);
32
+ let newState;
33
+ let mode;
34
+ if (canSwitchMode(payload.viewMode, state.minMode)) {
35
+ mode = payload.viewMode;
36
+ newState = { view: { date, mode } };
37
+ }
38
+ else {
39
+ mode = state.view.mode;
40
+ newState = { selectedDate: date, view: { date, mode } };
41
+ }
42
+ return Object.assign({}, state, newState);
43
+ }
44
+ case MisDatePickerActions.CHANGE_VIEWMODE: {
45
+ if (!canSwitchMode(action.payload, state.minMode)) {
46
+ return state;
47
+ }
48
+ const date = state.view.date;
49
+ const mode = action.payload;
50
+ const newState = { view: { date, mode } };
51
+ return Object.assign({}, state, newState);
52
+ }
53
+ case MisDatePickerActions.HOVER: {
54
+ return Object.assign({}, state, { hoveredDate: action.payload });
55
+ }
56
+ case MisDatePickerActions.SELECT: {
57
+ const newState = {
58
+ selectedDate: action.payload,
59
+ view: state.view
60
+ };
61
+ const mode = state.view.mode;
62
+ const _date = action.payload || state.view.date;
63
+ const date = getViewDate(_date, state.minDate, state.maxDate);
64
+ newState.view = { mode, date };
65
+ return Object.assign({}, state, newState);
66
+ }
67
+ case MisDatePickerActions.SET_OPTIONS: {
68
+ const newState = action.payload;
69
+ // preserve view mode
70
+ const mode = newState.minMode ? newState.minMode : state.view.mode;
71
+ const _viewDate = isDateValid(newState.value) && newState.value
72
+ || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0]
73
+ || state.view.date;
74
+ const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);
75
+ newState.view = { mode, date };
76
+ // update selected value
77
+ if (newState.value) {
78
+ // if new value is array we work with date range
79
+ if (isArray(newState.value)) {
80
+ newState.selectedRange = newState.value;
81
+ }
82
+ // if new value is a date -> datepicker
83
+ if (newState.value instanceof Date) {
84
+ newState.selectedDate = newState.value;
85
+ }
86
+ // provided value is not supported :)
87
+ // need to report it somehow
88
+ }
89
+ return Object.assign({}, state, newState);
90
+ }
91
+ // date range picker
92
+ case MisDatePickerActions.SELECT_RANGE: {
93
+ const newState = {
94
+ selectedRange: action.payload,
95
+ view: state.view
96
+ };
97
+ const mode = state.view.mode;
98
+ const _date = action.payload && action.payload[0] || state.view.date;
99
+ const date = getViewDate(_date, state.minDate, state.maxDate);
100
+ newState.view = { mode, date };
101
+ return Object.assign({}, state, newState);
102
+ }
103
+ case MisDatePickerActions.SET_MIN_DATE: {
104
+ return Object.assign({}, state, {
105
+ minDate: action.payload
106
+ });
107
+ }
108
+ case MisDatePickerActions.SET_MAX_DATE: {
109
+ return Object.assign({}, state, {
110
+ maxDate: action.payload
111
+ });
112
+ }
113
+ case MisDatePickerActions.SET_IS_DISABLED: {
114
+ return Object.assign({}, state, {
115
+ isDisabled: action.payload
116
+ });
117
+ }
118
+ case MisDatePickerActions.SET_DATE_CUSTOM_CLASSES: {
119
+ return Object.assign({}, state, {
120
+ dateCustomClasses: action.payload
121
+ });
122
+ }
123
+ case MisDatePickerActions.SET_DATE_TOOLTIP_TEXTS: {
124
+ return Object.assign({}, state, {
125
+ dateTooltipTexts: action.payload
126
+ });
127
+ }
128
+ default:
129
+ return state;
130
+ }
131
+ }
132
+ function calculateReducer(state) {
133
+ // how many calendars
134
+ const displayMonths = (state.displayOneMonthRange &&
135
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
136
+ // use selected date on initial rendering if set
137
+ let viewDate = state.view.date;
138
+ if (state.view.mode === 'day') {
139
+ if (state.showPreviousMonth && state.selectedRange && state.selectedRange.length === 0) {
140
+ viewDate = shiftDate(viewDate, { month: -1 });
141
+ }
142
+ state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();
143
+ const monthsModel = new Array(displayMonths);
144
+ for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {
145
+ // todo: for unlinked calendars it will be harder
146
+ monthsModel[monthIndex] = calcDaysCalendar(viewDate, state.monthViewOptions);
147
+ viewDate = shiftDate(viewDate, { month: 1 });
148
+ }
149
+ return Object.assign({}, state, { monthsModel });
150
+ }
151
+ if (state.view.mode === 'month') {
152
+ const monthsCalendar = new Array(displayMonths);
153
+ for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
154
+ // todo: for unlinked calendars it will be harder
155
+ monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));
156
+ viewDate = shiftDate(viewDate, { year: 1 });
157
+ }
158
+ return Object.assign({}, state, { monthsCalendar });
159
+ }
160
+ if (state.view.mode === 'year') {
161
+ const yearsCalendarModel = new Array(displayMonths);
162
+ for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
163
+ // todo: for unlinked calendars it will be harder
164
+ yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined);
165
+ viewDate = shiftDate(viewDate, { year: yearsPerCalendar });
166
+ }
167
+ return Object.assign({}, state, { yearsCalendarModel });
168
+ }
169
+ return state;
170
+ }
171
+ function formatReducer(state, action) {
172
+ if (state.view.mode === 'day') {
173
+ const formattedMonths = state.monthsModel.map((month, monthIndex) => formatDaysCalendar(month, getFormatOptions(state), monthIndex));
174
+ return Object.assign({}, state, { formattedMonths });
175
+ }
176
+ // how many calendars
177
+ const displayMonths = state.displayMonths;
178
+ // check initial rendering
179
+ // use selected date on initial rendering if set
180
+ let viewDate = state.view.date;
181
+ if (state.view.mode === 'month') {
182
+ const monthsCalendar = new Array(displayMonths);
183
+ for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
184
+ // todo: for unlinked calendars it will be harder
185
+ monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));
186
+ viewDate = shiftDate(viewDate, { year: 1 });
187
+ }
188
+ return Object.assign({}, state, { monthsCalendar });
189
+ }
190
+ if (state.view.mode === 'year') {
191
+ const yearsCalendarModel = new Array(displayMonths);
192
+ for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
193
+ // todo: for unlinked calendars it will be harder
194
+ yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state));
195
+ viewDate = shiftDate(viewDate, { year: 16 });
196
+ }
197
+ return Object.assign({}, state, { yearsCalendarModel });
198
+ }
199
+ return state;
200
+ }
201
+ function flagReducer(state, action) {
202
+ const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
203
+ if (state.view.mode === 'day') {
204
+ const flaggedMonths = state.formattedMonths.map((formattedMonth, monthIndex) => flagDaysCalendar(formattedMonth, {
205
+ isDisabled: state.isDisabled,
206
+ minDate: state.minDate,
207
+ maxDate: state.maxDate,
208
+ daysDisabled: state.daysDisabled,
209
+ datesDisabled: state.datesDisabled,
210
+ datesEnabled: state.datesEnabled,
211
+ hoveredDate: state.hoveredDate,
212
+ selectedDate: state.selectedDate,
213
+ selectedRange: state.selectedRange,
214
+ displayMonths,
215
+ dateCustomClasses: state.dateCustomClasses,
216
+ dateTooltipTexts: state.dateTooltipTexts,
217
+ monthIndex
218
+ }));
219
+ return Object.assign({}, state, { flaggedMonths });
220
+ }
221
+ if (state.view.mode === 'month') {
222
+ const flaggedMonthsCalendar = state.monthsCalendar.map((formattedMonth, monthIndex) => flagMonthsCalendar(formattedMonth, {
223
+ isDisabled: state.isDisabled,
224
+ minDate: state.minDate,
225
+ maxDate: state.maxDate,
226
+ hoveredMonth: state.hoveredMonth,
227
+ selectedDate: state.selectedDate,
228
+ selectedRange: state.selectedRange,
229
+ displayMonths,
230
+ monthIndex
231
+ }));
232
+ return Object.assign({}, state, { flaggedMonthsCalendar });
233
+ }
234
+ if (state.view.mode === 'year') {
235
+ const yearsCalendarFlagged = state.yearsCalendarModel.map((formattedMonth, yearIndex) => flagYearsCalendar(formattedMonth, {
236
+ isDisabled: state.isDisabled,
237
+ minDate: state.minDate,
238
+ maxDate: state.maxDate,
239
+ hoveredYear: state.hoveredYear,
240
+ selectedDate: state.selectedDate,
241
+ selectedRange: state.selectedRange,
242
+ displayMonths,
243
+ yearIndex
244
+ }));
245
+ return Object.assign({}, state, { yearsCalendarFlagged });
246
+ }
247
+ return state;
248
+ }
249
+ function navigateOffsetReducer(state, action) {
250
+ const newState = {
251
+ view: {
252
+ mode: state.view.mode,
253
+ date: shiftViewDate(state, action)
254
+ }
255
+ };
256
+ return Object.assign({}, state, newState);
257
+ }
258
+ function shiftViewDate(state, action) {
259
+ if (state.view.mode === 'year' && state.minMode === 'year') {
260
+ const initialDate = getYearsCalendarInitialDate(state, 0);
261
+ const middleDate = shiftDate(initialDate, { year: -initialYearShift });
262
+ return shiftDate(middleDate, action.payload);
263
+ }
264
+ return shiftDate(startOf(state.view.date, 'month'), action.payload);
265
+ }
266
+ function getFormatOptions(state) {
267
+ return {
268
+ locale: state.locale,
269
+ monthTitle: state.monthTitle,
270
+ yearTitle: state.yearTitle,
271
+ dayLabel: state.dayLabel,
272
+ monthLabel: state.monthLabel,
273
+ yearLabel: state.yearLabel,
274
+ weekNumbers: state.weekNumbers
275
+ };
276
+ }
277
+ /**
278
+ * if view date is provided (bsValue|ngModel) it should be shown
279
+ * if view date is not provider:
280
+ * if minDate>currentDate (default view value), show minDate
281
+ * if maxDate<currentDate(default view value) show maxDate
282
+ */
283
+ function getViewDate(viewDate, minDate, maxDate) {
284
+ const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;
285
+ if (minDate && isAfter(minDate, _date, 'day')) {
286
+ return minDate;
287
+ }
288
+ if (maxDate && isBefore(maxDate, _date, 'day')) {
289
+ return maxDate;
290
+ }
291
+ return _date;
292
+ }
293
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
294
+ if (maxDate && isSame(maxDate, viewDate, 'day')) {
295
+ return true;
296
+ }
297
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
298
+ return true;
299
+ }
300
+ return false;
301
+ }
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9yZWR1Y2VyL2JzLWRhdGVwaWNrZXIucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFzQixzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULE9BQU8sRUFDUCxXQUFXLEVBQ1gsT0FBTyxFQUNQLFNBQVMsRUFDVCxPQUFPLEVBQ1AsUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHekUscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFLLEdBQUcsc0JBQXNCLEVBQy9CLE1B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QUksT0FBTyxJQUFJLE9BQU8sSUFBSyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ3BFLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTptYXgtZmlsZS1saW5lLWNvdW50XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyU3RhdGUsIGluaXRpYWxEYXRlUGlja2VyU3RhdGUgfSBmcm9tICcuL2JzLWRhdGVwaWNrZXIuc3RhdGUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vbWluaS1uZ3J4JztcbmltcG9ydCB7IE1pc0RhdGVQaWNrZXJBY3Rpb25zIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmFjdGlvbnMnO1xuaW1wb3J0IHsgY2FsY0RheXNDYWxlbmRhciB9IGZyb20gJy4uL2VuZ2luZS9jYWxjLWRheXMtY2FsZW5kYXInO1xuaW1wb3J0IHsgZm9ybWF0RGF5c0NhbGVuZGFyIH0gZnJvbSAnLi4vZW5naW5lL2Zvcm1hdC1kYXlzLWNhbGVuZGFyJztcbmltcG9ydCB7IGZsYWdEYXlzQ2FsZW5kYXIgfSBmcm9tICcuLi9lbmdpbmUvZmxhZy1kYXlzLWNhbGVuZGFyJztcbmltcG9ydCB7XG4gIHNldEZ1bGxEYXRlLFxuICBzaGlmdERhdGUsXG4gIGlzQXJyYXksXG4gIGlzRGF0ZVZhbGlkLFxuICBzdGFydE9mLFxuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc1NhbWVcbn0gZnJvbSAnLi4vY2hyb25vcyc7XG5pbXBvcnQgeyBjYW5Td2l0Y2hNb2RlIH0gZnJvbSAnLi4vZW5naW5lL3ZpZXctbW9kZSc7XG5pbXBvcnQgeyBmb3JtYXRNb250aHNDYWxlbmRhciB9IGZyb20gJy4uL2VuZ2luZS9mb3JtYXQtbW9udGhzLWNhbGVuZGFyJztcbmltcG9ydCB7IGZsYWdNb250aHNDYWxlbmRhciB9IGZyb20gJy4uL2VuZ2luZS9mbGFnLW1vbnRocy1jYWxlbmRhcic7XG5pbXBvcnQgeyBmb3JtYXRZZWFyc0NhbGVuZGFyLCBpbml0aWFsWWVhclNoaWZ0LCB5ZWFyc1BlckNhbGVuZGFyIH0gZnJvbSAnLi4vZW5naW5lL2Zvcm1hdC15ZWFycy1jYWxlbmRhcic7XG5pbXBvcnQgeyBmbGFnWWVhcnNDYWxlbmRhciB9IGZyb20gJy4uL2VuZ2luZS9mbGFnLXllYXJzLWNhbGVuZGFyJztcbmltcG9ydCB7IEJzVmlld05hdmlnYXRpb25FdmVudCwgRGF0ZVBpY2tlckZvcm1hdE9wdGlvbnMsIE1pc0RhdGVQaWNrZXJWaWV3TW9kZSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRZZWFyc0NhbGVuZGFySW5pdGlhbERhdGUgfSBmcm9tICcuLi91dGlscy9icy1jYWxlbmRhci11dGlscyc7XG5cblxuLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjeWNsb21hdGljLWNvbXBsZXhpdHkgKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXNEYXRlUGlja2VyUmVkdWNlcihzdGF0ZSA9IGluaXRpYWxEYXRlUGlja2VyU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IEFjdGlvbik6IE1pc0RhdGVQaWNrZXJTdGF0ZSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLkNBTENVTEFURToge1xuICAgICAgcmV0dXJuIGNhbGN1bGF0ZVJlZHVjZXIoc3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgTWlzRGF0ZVBpY2tlckFjdGlvbnMuRk9STUFUOiB7XG4gICAgICByZXR1cm4gZm9ybWF0UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICB9XG5cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLkZMQUc6IHtcbiAgICAgIHJldHVybiBmbGFnUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICB9XG5cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLk5BVklHQVRFX09GRlNFVDoge1xuICAgICAgcmV0dXJuIG5hdmlnYXRlT2Zmc2V0UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICB9XG5cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLk5BVklHQVRFX1RPOiB7XG4gICAgICBjb25zdCBwYXlsb2FkOiBCc1ZpZXdOYXZpZ2F0aW9uRXZlbnQgPSBhY3Rpb24ucGF5bG9hZDtcblxuICAgICAgY29uc3QgZGF0ZSA9IHNldEZ1bGxEYXRlKHN0YXRlLnZpZXcuZGF0ZSwgcGF5bG9hZC51bml0KTtcbiAgICAgIGxldCBuZXdTdGF0ZTtcbiAgICAgIGxldCBtb2RlOiBNaXNEYXRlUGlja2VyVmlld01vZGU7XG4gICAgICBpZiAoY2FuU3dpdGNoTW9kZShwYXlsb2FkLnZpZXdNb2RlLCBzdGF0ZS5taW5Nb2RlKSkge1xuICAgICAgICBtb2RlID0gcGF5bG9hZC52aWV3TW9kZTtcbiAgICAgICAgbmV3U3RhdGUgPSB7IHZpZXc6IHsgZGF0ZSwgbW9kZSB9IH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgICBuZXdTdGF0ZSA9IHsgc2VsZWN0ZWREYXRlOiBkYXRlLCB2aWV3OiB7IGRhdGUsIG1vZGUgfSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIG5ld1N0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLkNIQU5HRV9WSUVXTU9ERToge1xuICAgICAgaWYgKCFjYW5Td2l0Y2hNb2RlKGFjdGlvbi5wYXlsb2FkLCBzdGF0ZS5taW5Nb2RlKSkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRlID0gc3RhdGUudmlldy5kYXRlO1xuICAgICAgY29uc3QgbW9kZSA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7IHZpZXc6IHsgZGF0ZSwgbW9kZSB9IH07XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgTWlzRGF0ZVBpY2tlckFjdGlvbnMuSE9WRVI6IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBob3ZlcmVkRGF0ZTogYWN0aW9uLnBheWxvYWQgfSk7XG4gICAgfVxuXG4gICAgY2FzZSBNaXNEYXRlUGlja2VyQWN0aW9ucy5TRUxFQ1Q6IHtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBzZWxlY3RlZERhdGU6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB2aWV3OiBzdGF0ZS52aWV3XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgY29uc3QgX2RhdGUgPSBhY3Rpb24ucGF5bG9hZCB8fCBzdGF0ZS52aWV3LmRhdGU7XG4gICAgICBjb25zdCBkYXRlID0gZ2V0Vmlld0RhdGUoX2RhdGUsIHN0YXRlLm1pbkRhdGUsIHN0YXRlLm1heERhdGUpO1xuICAgICAgbmV3U3RhdGUudmlldyA9IHsgbW9kZSwgZGF0ZSB9O1xuXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIG5ld1N0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLlNFVF9PUFRJT05TOiB7XG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgLy8gcHJlc2VydmUgdmlldyBtb2RlXG4gICAgICBjb25zdCBtb2RlID0gbmV3U3RhdGUubWluTW9kZSA/IG5ld1N0YXRlLm1pbk1vZGUgOiBzdGF0ZS52aWV3Lm1vZGU7XG4gICAgICBjb25zdCBfdmlld0RhdGUgPSBpc0RhdGVWYWxpZChuZXdTdGF0ZS52YWx1ZSkgJiYgbmV3U3RhdGUudmFsdWVcbiAgICAgICAgfHwgaXNBcnJheShuZXdTdGF0ZS52YWx1ZSkgJiYgaXNEYXRlVmFsaWQobmV3U3RhdGUudmFsdWVbMF0pICYmIG5ld1N0YXRlLnZhbHVlWzBdXG4gICAgICAgIHx8IHN0YXRlLnZpZXcuZGF0ZTtcbiAgICAgIGNvbnN0IGRhdGUgPSBnZXRWaWV3RGF0ZShfdmlld0RhdGUsIG5ld1N0YXRlLm1pbkRhdGUsIG5ld1N0YXRlLm1heERhdGUpO1xuICAgICAgbmV3U3RhdGUudmlldyA9IHsgbW9kZSwgZGF0ZSB9O1xuICAgICAgLy8gdXBkYXRlIHNlbGVjdGVkIHZhbHVlXG4gICAgICBpZiAobmV3U3RhdGUudmFsdWUpIHtcbiAgICAgICAgLy8gaWYgbmV3IHZhbHVlIGlzIGFycmF5IHdlIHdvcmsgd2l0aCBkYXRlIHJhbmdlXG4gICAgICAgIGlmIChpc0FycmF5KG5ld1N0YXRlLnZhbHVlKSkge1xuICAgICAgICAgIG5ld1N0YXRlLnNlbGVjdGVkUmFuZ2UgPSBuZXdTdGF0ZS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIG5ldyB2YWx1ZSBpcyBhIGRhdGUgLT4gZGF0ZXBpY2tlclxuICAgICAgICBpZiAobmV3U3RhdGUudmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgbmV3U3RhdGUuc2VsZWN0ZWREYXRlID0gbmV3U3RhdGUudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwcm92aWRlZCB2YWx1ZSBpcyBub3Qgc3VwcG9ydGVkIDopXG4gICAgICAgIC8vIG5lZWQgdG8gcmVwb3J0IGl0IHNvbWVob3dcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBuZXdTdGF0ZSk7XG4gICAgfVxuXG4gICAgLy8gZGF0ZSByYW5nZSBwaWNrZXJcbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLlNFTEVDVF9SQU5HRToge1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2U6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB2aWV3OiBzdGF0ZS52aWV3XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgY29uc3QgX2RhdGUgPSBhY3Rpb24ucGF5bG9hZCAmJiBhY3Rpb24ucGF5bG9hZFswXSB8fCBzdGF0ZS52aWV3LmRhdGU7XG4gICAgICBjb25zdCBkYXRlID0gZ2V0Vmlld0RhdGUoX2RhdGUsIHN0YXRlLm1pbkRhdGUsIHN0YXRlLm1heERhdGUpO1xuICAgICAgbmV3U3RhdGUudmlldyA9IHsgbW9kZSwgZGF0ZSB9O1xuXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIG5ld1N0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLlNFVF9NSU5fREFURToge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICAgIG1pbkRhdGU6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FzZSBNaXNEYXRlUGlja2VyQWN0aW9ucy5TRVRfTUFYX0RBVEU6IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge1xuICAgICAgICBtYXhEYXRlOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNhc2UgTWlzRGF0ZVBpY2tlckFjdGlvbnMuU0VUX0lTX0RJU0FCTEVEOiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogYWN0aW9uLnBheWxvYWRcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYXNlIE1pc0RhdGVQaWNrZXJBY3Rpb25zLlNFVF9EQVRFX0NVU1RPTV9DTEFTU0VTOiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtcbiAgICAgICAgZGF0ZUN1c3RvbUNsYXNzZXM6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FzZSBNaXNEYXRlUGlja2VyQWN0aW9ucy5TRVRfREFURV9UT09MVElQX1RFWFRTOiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtcbiAgICAgICAgZGF0ZVRvb2x0aXBUZXh0czogYWN0aW9uLnBheWxvYWRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlUmVkdWNlcihzdGF0ZTogTWlzRGF0ZVBpY2tlclN0YXRlKTogTWlzRGF0ZVBpY2tlclN0YXRlIHtcbiAgLy8gaG93IG1hbnkgY2FsZW5kYXJzXG4gIGNvbnN0IGRpc3BsYXlNb250aHMgPSAoc3RhdGUuZGlzcGxheU9uZU1vbnRoUmFuZ2UgJiZcbiAgICBpc0Rpc3BsYXlPbmVNb250aChzdGF0ZS52aWV3LmRhdGUsIHN0YXRlLm1pbkRhdGUsIHN0YXRlLm1heERhdGUpKSA/IDEgOiBzdGF0ZS5kaXNwbGF5TW9udGhzO1xuXG4gIC8vIHVzZSBzZWxlY3RlZCBkYXRlIG9uIGluaXRpYWwgcmVuZGVyaW5nIGlmIHNldFxuICBsZXQgdmlld0RhdGUgPSBzdGF0ZS52aWV3LmRhdGU7XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ2RheScpIHtcbiAgICBpZiAoc3RhdGUuc2hvd1ByZXZpb3VzTW9udGggJiYgc3RhdGUuc2VsZWN0ZWRSYW5nZSAmJiBzdGF0ZS5zZWxlY3RlZFJhbmdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdmlld0RhdGUgPSBzaGlmdERhdGUodmlld0RhdGUsIHsgbW9udGg6IC0xIH0pO1xuICAgIH1cblxuICAgIHN0YXRlLm1vbnRoVmlld09wdGlvbnMuZmlyc3REYXlPZldlZWsgPSBnZXRMb2NhbGUoc3RhdGUubG9jYWxlKS5maXJzdERheU9mV2VlaygpO1xuICAgIGNvbnN0IG1vbnRoc01vZGVsID0gbmV3IEFycmF5KGRpc3BsYXlNb250aHMpO1xuICAgIGZvciAobGV0IG1vbnRoSW5kZXggPSAwOyBtb250aEluZGV4IDwgZGlzcGxheU1vbnRoczsgbW9udGhJbmRleCsrKSB7XG4gICAgICAvLyB0b2RvOiBmb3IgdW5saW5rZWQgY2FsZW5kYXJzIGl0IHdpbGwgYmUgaGFyZGVyXG4gICAgICBtb250aHNNb2RlbFttb250aEluZGV4XSA9IGNhbGNEYXlzQ2FsZW5kYXIoXG4gICAgICAgIHZpZXdEYXRlLFxuICAgICAgICBzdGF0ZS5tb250aFZpZXdPcHRpb25zXG4gICAgICApO1xuICAgICAgdmlld0RhdGUgPSBzaGlmdERhdGUodmlld0RhdGUsIHsgbW9udGg6IDEgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IG1vbnRoc01vZGVsIH0pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ21vbnRoJykge1xuICAgIGNvbnN0IG1vbnRoc0NhbGVuZGFyID0gbmV3IEFycmF5KGRpc3BsYXlNb250aHMpO1xuICAgIGZvciAoXG4gICAgICBsZXQgY2FsZW5kYXJJbmRleCA9IDA7XG4gICAgICBjYWxlbmRhckluZGV4IDwgZGlzcGxheU1vbnRocztcbiAgICAgIGNhbGVuZGFySW5kZXgrK1xuICAgICkge1xuICAgICAgLy8gdG9kbzogZm9yIHVubGlua2VkIGNhbGVuZGFycyBpdCB3aWxsIGJlIGhhcmRlclxuICAgICAgbW9udGhzQ2FsZW5kYXJbY2FsZW5kYXJJbmRleF0gPSBmb3JtYXRNb250aHNDYWxlbmRhcihcbiAgICAgICAgdmlld0RhdGUsXG4gICAgICAgIGdldEZvcm1hdE9wdGlvbnMoc3RhdGUpXG4gICAgICApO1xuICAgICAgdmlld0RhdGUgPSBzaGlmdERhdGUodmlld0RhdGUsIHsgeWVhcjogMSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgbW9udGhzQ2FsZW5kYXIgfSk7XG4gIH1cblxuICBpZiAoc3RhdGUudmlldy5tb2RlID09PSAneWVhcicpIHtcbiAgICBjb25zdCB5ZWFyc0NhbGVuZGFyTW9kZWwgPSBuZXcgQXJyYXkoZGlzcGxheU1vbnRocyk7XG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGNhbGVuZGFySW5kZXggPSAwO1xuICAgICAgY2FsZW5kYXJJbmRleCA8IGRpc3BsYXlNb250aHM7XG4gICAgICBjYWxlbmRhckluZGV4KytcbiAgICApIHtcbiAgICAgIC8vIHRvZG86IGZvciB1bmxpbmtlZCBjYWxlbmRhcnMgaXQgd2lsbCBiZSBoYXJkZXJcbiAgICAgIHllYXJzQ2FsZW5kYXJNb2RlbFtjYWxlbmRhckluZGV4XSA9IGZvcm1hdFllYXJzQ2FsZW5kYXIoXG4gICAgICAgIHZpZXdEYXRlLFxuICAgICAgICBnZXRGb3JtYXRPcHRpb25zKHN0YXRlKSxcbiAgICAgICAgc3RhdGUubWluTW9kZSA9PT0gJ3llYXInID8gZ2V0WWVhcnNDYWxlbmRhckluaXRpYWxEYXRlKHN0YXRlLCBjYWxlbmRhckluZGV4KSA6IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICAgIHZpZXdEYXRlID0gc2hpZnREYXRlKHZpZXdEYXRlLCB7IHllYXI6IHllYXJzUGVyQ2FsZW5kYXIgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IHllYXJzQ2FsZW5kYXJNb2RlbCB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0UmVkdWNlcihzdGF0ZTogTWlzRGF0ZVBpY2tlclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IEFjdGlvbik6IE1pc0RhdGVQaWNrZXJTdGF0ZSB7XG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdkYXknKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkTW9udGhzID0gc3RhdGUubW9udGhzTW9kZWwubWFwKChtb250aCwgbW9udGhJbmRleCkgPT5cbiAgICAgIGZvcm1hdERheXNDYWxlbmRhcihtb250aCwgZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZSksIG1vbnRoSW5kZXgpXG4gICAgKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBmb3JtYXR0ZWRNb250aHMgfSk7XG4gIH1cblxuICAvLyBob3cgbWFueSBjYWxlbmRhcnNcbiAgY29uc3QgZGlzcGxheU1vbnRocyA9IHN0YXRlLmRpc3BsYXlNb250aHM7XG4gIC8vIGNoZWNrIGluaXRpYWwgcmVuZGVyaW5nXG4gIC8vIHVzZSBzZWxlY3RlZCBkYXRlIG9uIGluaXRpYWwgcmVuZGVyaW5nIGlmIHNldFxuICBsZXQgdmlld0RhdGUgPSBzdGF0ZS52aWV3LmRhdGU7XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ21vbnRoJykge1xuICAgIGNvbnN0IG1vbnRoc0NhbGVuZGFyID0gbmV3IEFycmF5KGRpc3BsYXlNb250aHMpO1xuICAgIGZvciAoXG4gICAgICBsZXQgY2FsZW5kYXJJbmRleCA9IDA7XG4gICAgICBjYWxlbmRhckluZGV4IDwgZGlzcGxheU1vbnRocztcbiAgICAgIGNhbGVuZGFySW5kZXgrK1xuICAgICkge1xuICAgICAgLy8gdG9kbzogZm9yIHVubGlua2VkIGNhbGVuZGFycyBpdCB3aWxsIGJlIGhhcmRlclxuICAgICAgbW9udGhzQ2FsZW5kYXJbY2FsZW5kYXJJbmRleF0gPSBmb3JtYXRNb250aHNDYWxlbmRhcihcbiAgICAgICAgdmlld0RhdGUsXG4gICAgICAgIGdldEZvcm1hdE9wdGlvbnMoc3RhdGUpXG4gICAgICApO1xuICAgICAgdmlld0RhdGUgPSBzaGlmdERhdGUodmlld0RhdGUsIHsgeWVhcjogMSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgbW9udGhzQ2FsZW5kYXIgfSk7XG4gIH1cblxuICBpZiAoc3RhdGUudmlldy5tb2RlID09PSAneWVhcicpIHtcbiAgICBjb25zdCB5ZWFyc0NhbGVuZGFyTW9kZWwgPSBuZXcgQXJyYXkoZGlzcGxheU1vbnRocyk7XG4gICAgZm9yIChcbiAgICAgIGxldCBjYWxlbmRhckluZGV4ID0gMDtcbiAgICAgIGNhbGVuZGFySW5kZXggPCBkaXNwbGF5TW9udGhzO1xuICAgICAgY2FsZW5kYXJJbmRleCsrXG4gICAgKSB7XG4gICAgICAvLyB0b2RvOiBmb3IgdW5saW5rZWQgY2FsZW5kYXJzIGl0IHdpbGwgYmUgaGFyZGVyXG4gICAgICB5ZWFyc0NhbGVuZGFyTW9kZWxbY2FsZW5kYXJJbmRleF0gPSBmb3JtYXRZZWFyc0NhbGVuZGFyKFxuICAgICAgICB2aWV3RGF0ZSxcbiAgICAgICAgZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZSlcbiAgICAgICk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwgeyB5ZWFyOiAxNiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgeWVhcnNDYWxlbmRhck1vZGVsIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBmbGFnUmVkdWNlcihzdGF0ZTogTWlzRGF0ZVBpY2tlclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBBY3Rpb24pOiBNaXNEYXRlUGlja2VyU3RhdGUge1xuICBjb25zdCBkaXNwbGF5TW9udGhzID0gaXNEaXNwbGF5T25lTW9udGgoc3RhdGUudmlldy5kYXRlLCBzdGF0ZS5taW5EYXRlLCBzdGF0ZS5tYXhEYXRlKSA/IDEgOiBzdGF0ZS5kaXNwbGF5TW9udGhzO1xuICBpZiAoc3RhdGUudmlldy5tb2RlID09PSAnZGF5Jykge1xuICAgIGNvbnN0IGZsYWdnZWRNb250aHMgPSBzdGF0ZS5mb3JtYXR0ZWRNb250aHMubWFwKFxuICAgICAgKGZvcm1hdHRlZE1vbnRoLCBtb250aEluZGV4KSA9PlxuICAgICAgICBmbGFnRGF5c0NhbGVuZGFyKGZvcm1hdHRlZE1vbnRoLCB7XG4gICAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgICBtaW5EYXRlOiBzdGF0ZS5taW5EYXRlLFxuICAgICAgICAgIG1heERhdGU6IHN0YXRlLm1heERhdGUsXG4gICAgICAgICAgZGF5c0Rpc2FibGVkOiBzdGF0ZS5kYXlzRGlzYWJsZWQsXG4gICAgICAgICAgZGF0ZXNEaXNhYmxlZDogc3RhdGUuZGF0ZXNEaXNhYmxlZCxcbiAgICAgICAgICBkYXRlc0VuYWJsZWQ6IHN0YXRlLmRhdGVzRW5hYmxlZCxcbiAgICAgICAgICBob3ZlcmVkRGF0ZTogc3RhdGUuaG92ZXJlZERhdGUsXG4gICAgICAgICAgc2VsZWN0ZWREYXRlOiBzdGF0ZS5zZWxlY3RlZERhdGUsXG4gICAgICAgICAgc2VsZWN0ZWRSYW5nZTogc3RhdGUuc2VsZWN0ZWRSYW5nZSxcbiAgICAgICAgICBkaXNwbGF5TW9udGhzLFxuICAgICAgICAgIGRhdGVDdXN0b21DbGFzc2VzOiBzdGF0ZS5kYXRlQ3VzdG9tQ2xhc3NlcyxcbiAgICAgICAgICBkYXRlVG9vbHRpcFRleHRzOiBzdGF0ZS5kYXRlVG9vbHRpcFRleHRzLFxuICAgICAgICAgIG1vbnRoSW5kZXhcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IGZsYWdnZWRNb250aHMgfSk7XG4gIH1cblxuICBpZiAoc3RhdGUudmlldy5tb2RlID09PSAnbW9udGgnKSB7XG4gICAgY29uc3QgZmxhZ2dlZE1vbnRoc0NhbGVuZGFyID0gc3RhdGUubW9udGhzQ2FsZW5kYXIubWFwKFxuICAgICAgKGZvcm1hdHRlZE1vbnRoLCBtb250aEluZGV4KSA9PlxuICAgICAgICBmbGFnTW9udGhzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgICBpc0Rpc2FibGVkOiBzdGF0ZS5pc0Rpc2FibGVkLFxuICAgICAgICAgIG1pbkRhdGU6IHN0YXRlLm1pbkRhdGUsXG4gICAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgICBob3ZlcmVkTW9udGg6IHN0YXRlLmhvdmVyZWRNb250aCxcbiAgICAgICAgICBzZWxlY3RlZERhdGU6IHN0YXRlLnNlbGVjdGVkRGF0ZSxcbiAgICAgICAgICBzZWxlY3RlZFJhbmdlOiBzdGF0ZS5zZWxlY3RlZFJhbmdlLFxuICAgICAgICAgIGRpc3BsYXlNb250aHMsXG4gICAgICAgICAgbW9udGhJbmRleFxuICAgICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgZmxhZ2dlZE1vbnRoc0NhbGVuZGFyIH0pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ3llYXInKSB7XG4gICAgY29uc3QgeWVhcnNDYWxlbmRhckZsYWdnZWQgPSBzdGF0ZS55ZWFyc0NhbGVuZGFyTW9kZWwubWFwKFxuICAgICAgKGZvcm1hdHRlZE1vbnRoLCB5ZWFySW5kZXgpID0+XG4gICAgICAgIGZsYWdZZWFyc0NhbGVuZGFyKGZvcm1hdHRlZE1vbnRoLCB7XG4gICAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgICBtaW5EYXRlOiBzdGF0ZS5taW5EYXRlLFxuICAgICAgICAgIG1heERhdGU6IHN0YXRlLm1heERhdGUsXG4gICAgICAgICAgaG92ZXJlZFllYXI6IHN0YXRlLmhvdmVyZWRZZWFyLFxuICAgICAgICAgIHNlbGVjdGVkRGF0ZTogc3RhdGUuc2VsZWN0ZWREYXRlLFxuICAgICAgICAgIHNlbGVjdGVkUmFuZ2U6IHN0YXRlLnNlbGVjdGVkUmFuZ2UsXG4gICAgICAgICAgZGlzcGxheU1vbnRocyxcbiAgICAgICAgICB5ZWFySW5kZXhcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IHllYXJzQ2FsZW5kYXJGbGFnZ2VkIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBuYXZpZ2F0ZU9mZnNldFJlZHVjZXIoc3RhdGU6IE1pc0RhdGVQaWNrZXJTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBNaXNEYXRlUGlja2VyU3RhdGUge1xuICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICB2aWV3OiB7XG4gICAgICBtb2RlOiBzdGF0ZS52aWV3Lm1vZGUsXG4gICAgICBkYXRlOiBzaGlmdFZpZXdEYXRlKHN0YXRlLCBhY3Rpb24pXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xufVxuXG5mdW5jdGlvbiBzaGlmdFZpZXdEYXRlKHN0YXRlOiBNaXNEYXRlUGlja2VyU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogRGF0ZSB7XG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICd5ZWFyJyAmJiBzdGF0ZS5taW5Nb2RlID09PSAneWVhcicpIHtcbiAgICBjb25zdCBpbml0aWFsRGF0ZSA9IGdldFllYXJzQ2FsZW5kYXJJbml0aWFsRGF0ZShzdGF0ZSwgMCk7XG4gICAgY29uc3QgbWlkZGxlRGF0ZSA9IHNoaWZ0RGF0ZShpbml0aWFsRGF0ZSwgeyB5ZWFyOiAtaW5pdGlhbFllYXJTaGlmdCB9KTtcblxuICAgIHJldHVybiBzaGlmdERhdGUobWlkZGxlRGF0ZSwgYWN0aW9uLnBheWxvYWQpO1xuICB9XG5cbiAgcmV0dXJuIHNoaWZ0RGF0ZShzdGFydE9mKHN0YXRlLnZpZXcuZGF0ZSwgJ21vbnRoJyksIGFjdGlvbi5wYXlsb2FkKTtcbn1cblxuZnVuY3Rpb24gZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZTogTWlzRGF0ZVBpY2tlclN0YXRlKTogRGF0ZVBpY2tlckZvcm1hdE9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGxvY2FsZTogc3RhdGUubG9jYWxlLFxuXG4gICAgbW9udGhUaXRsZTogc3RhdGUubW9udGhUaXRsZSxcbiAgICB5ZWFyVGl0bGU6IHN0YXRlLnllYXJUaXRsZSxcblxuICAgIGRheUxhYmVsOiBzdGF0ZS5kYXlMYWJlbCxcbiAgICBtb250aExhYmVsOiBzdGF0ZS5tb250aExhYmVsLFxuICAgIHllYXJMYWJlbDogc3RhdGUueWVhckxhYmVsLFxuXG4gICAgd2Vla051bWJlcnM6IHN0YXRlLndlZWtOdW1iZXJzXG4gIH07XG59XG5cbi8qKlxuICogaWYgdmlldyBkYXRlIGlzIHByb3ZpZGVkIChic1ZhbHVlfG5nTW9kZWwpIGl0IHNob3VsZCBiZSBzaG93blxuICogaWYgdmlldyBkYXRlIGlzIG5vdCBwcm92aWRlcjpcbiAqIGlmIG1pbkRhdGU+Y3VycmVudERhdGUgKGRlZmF1bHQgdmlldyB2YWx1ZSksIHNob3cgbWluRGF0ZVxuICogaWYgbWF4RGF0ZTxjdXJyZW50RGF0ZShkZWZhdWx0IHZpZXcgdmFsdWUpIHNob3cgbWF4RGF0ZVxuICovXG5mdW5jdGlvbiBnZXRWaWV3RGF0ZSh2aWV3RGF0ZTogRGF0ZSB8IERhdGVbXSwgbWluRGF0ZTogRGF0ZSwgbWF4RGF0ZTogRGF0ZSkge1xuICBjb25zdCBfZGF0ZSA9IEFycmF5LmlzQXJyYXkodmlld0RhdGUpID8gdmlld0RhdGVbMF0gOiB2aWV3RGF0ZTtcblxuICBpZiAobWluRGF0ZSAmJiBpc0FmdGVyKG1pbkRhdGUsIF9kYXRlLCAnZGF5JykpIHtcbiAgICByZXR1cm4gbWluRGF0ZTtcbiAgfVxuXG4gIGlmIChtYXhEYXRlICYmIGlzQmVmb3JlKG1heERhdGUsIF9kYXRlLCAnZGF5JykpIHtcbiAgICByZXR1cm4gbWF4RGF0ZTtcbiAgfVxuXG4gIHJldHVybiBfZGF0ZTtcbn1cblxuZnVuY3Rpb24gaXNEaXNwbGF5T25lTW9udGgodmlld0RhdGU6IERhdGUsIG1pbkRhdGU6IERhdGUsIG1heERhdGU6IERhdGUpIHtcbiAgaWYgKG1heERhdGUgJiYgaXNTYW1lKG1heERhdGUsIHZpZXdEYXRlLCAnZGF5JykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChtaW5EYXRlICYmIG1heERhdGUgJiYgIG1pbkRhdGUuZ2V0TW9udGgoKSA9PT0gbWF4RGF0ZS5nZXRNb250aCgpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { defaultMonthOptions } from './_defaults';
2
+ import { MisDatePickerConfig } from '../bs-datepicker.config';
3
+ export class MisDatePickerState {
4
+ }
5
+ const _initialView = { date: new Date(), mode: 'day' };
6
+ export const initialDatePickerState = Object.assign(new MisDatePickerConfig(), {
7
+ locale: 'en',
8
+ view: _initialView,
9
+ selectedRange: [],
10
+ monthViewOptions: defaultMonthOptions
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU85RCxNQUFNLE9BQU8sa0JBQWtCO0NBMkQ5QjtBQUVELE1BQU0sWUFBWSxHQUEyQixFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBdUIsTUFBTSxDQUFDLE1BQU0sQ0FDckUsSUFBSSxtQkFBbUIsRUFBRSxFQUN6QjtJQUNFLE1BQU0sRUFBRSxJQUFJO0lBQ1osSUFBSSxFQUFFLFlBQVk7SUFDbEIsYUFBYSxFQUFFLEVBQUU7SUFDakIsZ0JBQWdCLEVBQUUsbUJBQW1CO0NBQ3RDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1pc0RhdGVQaWNrZXJWaWV3TW9kZSxcbiAgRGF0ZVBpY2tlckZvcm1hdE9wdGlvbnMsXG4gIERhdGVQaWNrZXJSZW5kZXJPcHRpb25zLFxuICBEYXRlUGlja2VyRGF0ZUN1c3RvbUNsYXNzZXMsXG4gIERhdGVQaWNrZXJEYXRlVG9vbHRpcFRleHQsXG4gIERheXNDYWxlbmRhck1vZGVsLFxuICBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIE1vbnRoc0NhbGVuZGFyVmlld01vZGVsLFxuICBNb250aFZpZXdPcHRpb25zLFxuICBZZWFyc0NhbGVuZGFyVmlld01vZGVsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBkZWZhdWx0TW9udGhPcHRpb25zIH0gZnJvbSAnLi9fZGVmYXVsdHMnO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJy4uL2JzLWRhdGVwaWNrZXIuY29uZmlnJztcblxuZXhwb3J0IGludGVyZmFjZSBNaXNEYXRlUGlja2VyVmlld1N0YXRlIHtcbiAgZGF0ZTogRGF0ZTtcbiAgbW9kZTogTWlzRGF0ZVBpY2tlclZpZXdNb2RlO1xufVxuXG5leHBvcnQgY2xhc3MgTWlzRGF0ZVBpY2tlclN0YXRlXG4gIGltcGxlbWVudHMgRGF0ZVBpY2tlclJlbmRlck9wdGlvbnMsIERhdGVQaWNrZXJGb3JtYXRPcHRpb25zIHtcbiAgLy8gZGF0ZSBwaWNrZXJcbiAgc2VsZWN0ZWREYXRlPzogRGF0ZTtcbiAgLy8gZGF0ZXJhbmdlIHBpY2tlclxuICBzZWxlY3RlZFJhbmdlPzogRGF0ZVtdO1xuXG4gIC8vIGluaXRpYWwgZGF0ZSBvZiBjYWxlbmRhciwgdG9kYXkgYnkgZGVmYXVsdFxuICB2aWV3OiBNaXNEYXRlUGlja2VyVmlld1N0YXRlO1xuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvLyBib3VuZHNcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xuICBkYXlzRGlzYWJsZWQ/OiBudW1iZXJbXTtcbiAgZGF0ZXNEaXNhYmxlZD86IERhdGVbXTtcbiAgZGF0ZXNFbmFibGVkPzogRGF0ZVtdO1xuICBtaW5Nb2RlPzogTWlzRGF0ZVBpY2tlclZpZXdNb2RlO1xuICBkYXRlQ3VzdG9tQ2xhc3Nlcz86IERhdGVQaWNrZXJEYXRlQ3VzdG9tQ2xhc3Nlc1tdO1xuICBkYXRlVG9vbHRpcFRleHRzPzogRGF0ZVBpY2tlckRhdGVUb29sdGlwVGV4dFtdO1xuXG4gIGhvdmVyZWREYXRlPzogRGF0ZTtcbiAgaG92ZXJlZE1vbnRoPzogRGF0ZTtcbiAgaG92ZXJlZFllYXI/OiBEYXRlO1xuXG4gIC8vIGRheXMgY2FsZW5kYXJcbiAgbW9udGhzTW9kZWw/OiBEYXlzQ2FsZW5kYXJNb2RlbFtdO1xuICBmb3JtYXR0ZWRNb250aHM/OiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWxbXTtcbiAgZmxhZ2dlZE1vbnRocz86IERheXNDYWxlbmRhclZpZXdNb2RlbFtdO1xuICBzZWxlY3RGcm9tT3RoZXJNb250aD86IGJvb2xlYW47XG4gIHNob3dQcmV2aW91c01vbnRoPzogYm9vbGVhbjsgLy8gZGF0ZVJhbmdlUGlja2VyIG9ubHk7XG4gIGRpc3BsYXlPbmVNb250aFJhbmdlPzogYm9vbGVhbjsgLy8gZGF0ZVJhbmdlUGlja2VyIG9ubHk7XG5cbiAgLy8gbW9udGhzIGNhbGVuZGFyXG4gIG1vbnRoc0NhbGVuZGFyPzogTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWxbXTtcbiAgZmxhZ2dlZE1vbnRoc0NhbGVuZGFyPzogTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWxbXTtcblxuICAvLyB5ZWFycyBjYWxlbmRhclxuICB5ZWFyc0NhbGVuZGFyTW9kZWw/OiBZZWFyc0NhbGVuZGFyVmlld01vZGVsW107XG4gIHllYXJzQ2FsZW5kYXJGbGFnZ2VkPzogWWVhcnNDYWxlbmRhclZpZXdNb2RlbFtdO1xuXG4gIC8vIG9wdGlvbnNcbiAgbW9udGhWaWV3T3B0aW9uczogTW9udGhWaWV3T3B0aW9ucztcblxuICAvLyBEYXRlUGlja2VyUmVuZGVyT3B0aW9uc1xuICBzaG93V2Vla051bWJlcnM/OiBib29sZWFuO1xuICBkaXNwbGF5TW9udGhzPzogbnVtYmVyO1xuXG4gIC8vIERhdGVQaWNrZXJGb3JtYXRPcHRpb25zXG4gIGxvY2FsZTogc3RyaW5nO1xuXG4gIG1vbnRoVGl0bGU6IHN0cmluZztcbiAgeWVhclRpdGxlOiBzdHJpbmc7XG5cbiAgZGF5TGFiZWw6IHN0cmluZztcbiAgbW9udGhMYWJlbDogc3RyaW5nO1xuICB5ZWFyTGFiZWw6IHN0cmluZztcblxuICB3ZWVrTnVtYmVyczogc3RyaW5nO1xufVxuXG5jb25zdCBfaW5pdGlhbFZpZXc6IE1pc0RhdGVQaWNrZXJWaWV3U3RhdGUgPSB7IGRhdGU6IG5ldyBEYXRlKCksIG1vZGU6ICdkYXknIH07XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsRGF0ZVBpY2tlclN0YXRlOiBNaXNEYXRlUGlja2VyU3RhdGUgPSBPYmplY3QuYXNzaWduKFxuICBuZXcgTWlzRGF0ZVBpY2tlckNvbmZpZygpLFxuICB7XG4gICAgbG9jYWxlOiAnZW4nLFxuICAgIHZpZXc6IF9pbml0aWFsVmlldyxcbiAgICBzZWxlY3RlZFJhbmdlOiBbXSxcbiAgICBtb250aFZpZXdPcHRpb25zOiBkZWZhdWx0TW9udGhPcHRpb25zXG4gIH1cbik7XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { MiniStore, MiniState } from '../mini-ngrx';
3
+ import { initialDatePickerState } from './bs-datepicker.state';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { misDatePickerReducer } from './bs-datepicker.reducer';
6
+ import * as i0 from "@angular/core";
7
+ export class MisDatePickerStore extends MiniStore {
8
+ constructor() {
9
+ const _dispatcher = new BehaviorSubject({
10
+ type: '[datepicker] dispatcher init'
11
+ });
12
+ const state = new MiniState(initialDatePickerState, _dispatcher, misDatePickerReducer);
13
+ super(_dispatcher, misDatePickerReducer, state);
14
+ }
15
+ }
16
+ MisDatePickerStore.ɵfac = function MisDatePickerStore_Factory(t) { return new (t || MisDatePickerStore)(); };
17
+ MisDatePickerStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MisDatePickerStore, factory: MisDatePickerStore.ɵfac });
18
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDatePickerStore, [{
19
+ type: Injectable
20
+ }], function () { return []; }, null); })();
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFzQixzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRy9ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUE2QjtJQUNuRTtRQUNFLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFTO1lBQzlDLElBQUksRUFBRSw4QkFBOEI7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQ3pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsb0JBQW9CLENBQ3JCLENBQUM7UUFDRixLQUFLLENBQUMsV0FBVyxFQUFFLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7O29GQVhVLGtCQUFrQjt3RUFBbEIsa0JBQWtCLFdBQWxCLGtCQUFrQjt1RkFBbEIsa0JBQWtCO2NBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaW5pU3RvcmUsIEFjdGlvbiwgTWluaVN0YXRlIH0gZnJvbSAnLi4vbWluaS1uZ3J4JztcbmltcG9ydCB7IE1pc0RhdGVQaWNrZXJTdGF0ZSwgaW5pdGlhbERhdGVQaWNrZXJTdGF0ZSB9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci5zdGF0ZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1pc0RhdGVQaWNrZXJSZWR1Y2VyIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLnJlZHVjZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWlzRGF0ZVBpY2tlclN0b3JlIGV4dGVuZHMgTWluaVN0b3JlPE1pc0RhdGVQaWNrZXJTdGF0ZT4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBfZGlzcGF0Y2hlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uPih7XG4gICAgICB0eXBlOiAnW2RhdGVwaWNrZXJdIGRpc3BhdGNoZXIgaW5pdCdcbiAgICB9KTtcbiAgICBjb25zdCBzdGF0ZSA9IG5ldyBNaW5pU3RhdGU8TWlzRGF0ZVBpY2tlclN0YXRlPihcbiAgICAgIGluaXRpYWxEYXRlUGlja2VyU3RhdGUsXG4gICAgICBfZGlzcGF0Y2hlcixcbiAgICAgIG1pc0RhdGVQaWNrZXJSZWR1Y2VyXG4gICAgKTtcbiAgICBzdXBlcihfZGlzcGF0Y2hlciwgbWlzRGF0ZVBpY2tlclJlZHVjZXIsIHN0YXRlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,54 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "./bs-current-date-view.component";
5
+ import * as i3 from "./bs-timepicker-view.component";
6
+ function BsCalendarLayoutComponent_mis_current_date_0_Template(rf, ctx) { if (rf & 1) {
7
+ i0.ɵɵelement(0, "mis-current-date", 4);
8
+ } }
9
+ function BsCalendarLayoutComponent_mis_timepicker_5_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelement(0, "mis-timepicker");
11
+ } }
12
+ const _c0 = [[["mis-datepicker-navigation-view"]], "*"];
13
+ const _c1 = ["mis-datepicker-navigation-view", "*"];
14
+ export class BsCalendarLayoutComponent {
15
+ }
16
+ BsCalendarLayoutComponent.ɵfac = function BsCalendarLayoutComponent_Factory(t) { return new (t || BsCalendarLayoutComponent)(); };
17
+ BsCalendarLayoutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BsCalendarLayoutComponent, selectors: [["mis-calendar-layout"]], ngContentSelectors: _c1, decls: 6, vars: 2, consts: [["title", "hey there", 4, "ngIf"], [1, "bs-datepicker-head"], [1, "bs-datepicker-body"], [4, "ngIf"], ["title", "hey there"]], template: function BsCalendarLayoutComponent_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵprojectionDef(_c0);
19
+ i0.ɵɵtemplate(0, BsCalendarLayoutComponent_mis_current_date_0_Template, 1, 0, "mis-current-date", 0);
20
+ i0.ɵɵelementStart(1, "div", 1);
21
+ i0.ɵɵprojection(2);
22
+ i0.ɵɵelementEnd();
23
+ i0.ɵɵelementStart(3, "div", 2);
24
+ i0.ɵɵprojection(4, 1);
25
+ i0.ɵɵelementEnd();
26
+ i0.ɵɵtemplate(5, BsCalendarLayoutComponent_mis_timepicker_5_Template, 1, 0, "mis-timepicker", 3);
27
+ } if (rf & 2) {
28
+ i0.ɵɵproperty("ngIf", false);
29
+ i0.ɵɵadvance(5);
30
+ i0.ɵɵproperty("ngIf", false);
31
+ } }, dependencies: [i1.NgIf, i2.BsCurrentDateViewComponent, i3.BsTimepickerViewComponent], encapsulation: 2 });
32
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BsCalendarLayoutComponent, [{
33
+ type: Component,
34
+ args: [{
35
+ selector: 'mis-calendar-layout',
36
+ template: `
37
+ <!-- current date, will be added in nearest releases -->
38
+ <mis-current-date title="hey there" *ngIf="false"></mis-current-date>
39
+
40
+ <!--navigation-->
41
+ <div class="bs-datepicker-head">
42
+ <ng-content select="mis-datepicker-navigation-view"></ng-content>
43
+ </div>
44
+
45
+ <div class="bs-datepicker-body">
46
+ <ng-content></ng-content>
47
+ </div>
48
+
49
+ <!--timepicker-->
50
+ <mis-timepicker *ngIf="false"></mis-timepicker>
51
+ `
52
+ }]
53
+ }], null, null); })();
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtY2FsZW5kYXItbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvdGhlbWVzL2JzL2JzLWNhbGVuZGFyLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lBTXRDLHNDQUFxRTs7O0lBWXJFLGlDQUErQzs7OztBQUduRCxNQUFNLE9BQU8seUJBQXlCOztrR0FBekIseUJBQXlCOzRFQUF6Qix5QkFBeUI7O1FBZmxDLG9HQUFxRTtRQUdyRSw4QkFBZ0M7UUFDOUIsa0JBQWlFO1FBQ25FLGlCQUFNO1FBRU4sOEJBQWdDO1FBQzlCLHFCQUF5QjtRQUMzQixpQkFBTTtRQUdOLGdHQUErQzs7UUFaViw0QkFBVztRQVkvQixlQUFXO1FBQVgsNEJBQVc7O3VGQUduQix5QkFBeUI7Y0FuQnJDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztHQWVUO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLWNhbGVuZGFyLWxheW91dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLSBjdXJyZW50IGRhdGUsIHdpbGwgYmUgYWRkZWQgaW4gbmVhcmVzdCByZWxlYXNlcyAtLT5cbiAgICA8bWlzLWN1cnJlbnQtZGF0ZSB0aXRsZT1cImhleSB0aGVyZVwiICpuZ0lmPVwiZmFsc2VcIj48L21pcy1jdXJyZW50LWRhdGU+XG5cbiAgICA8IS0tbmF2aWdhdGlvbi0tPlxuICAgIDxkaXYgY2xhc3M9XCJicy1kYXRlcGlja2VyLWhlYWRcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1pcy1kYXRlcGlja2VyLW5hdmlnYXRpb24tdmlld1wiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJicy1kYXRlcGlja2VyLWJvZHlcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS10aW1lcGlja2VyLS0+XG4gICAgPG1pcy10aW1lcGlja2VyICpuZ0lmPVwiZmFsc2VcIj48L21pcy10aW1lcGlja2VyPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEJzQ2FsZW5kYXJMYXlvdXRDb21wb25lbnQgeyB9XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BsCurrentDateViewComponent {
4
+ }
5
+ BsCurrentDateViewComponent.ɵfac = function BsCurrentDateViewComponent_Factory(t) { return new (t || BsCurrentDateViewComponent)(); };
6
+ BsCurrentDateViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BsCurrentDateViewComponent, selectors: [["mis-current-date"]], inputs: { title: "title" }, decls: 3, vars: 1, consts: [[1, "current-timedate"]], template: function BsCurrentDateViewComponent_Template(rf, ctx) { if (rf & 1) {
7
+ i0.ɵɵelementStart(0, "div", 0)(1, "span");
8
+ i0.ɵɵtext(2);
9
+ i0.ɵɵelementEnd()();
10
+ } if (rf & 2) {
11
+ i0.ɵɵadvance(2);
12
+ i0.ɵɵtextInterpolate(ctx.title);
13
+ } }, encapsulation: 2 });
14
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BsCurrentDateViewComponent, [{
15
+ type: Component,
16
+ args: [{
17
+ selector: 'mis-current-date',
18
+ template: `<div class="current-timedate"><span>{{ title }}</span></div>`
19
+ }]
20
+ }], null, { title: [{
21
+ type: Input
22
+ }] }); })();
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtY3VycmVudC1kYXRlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci90aGVtZXMvYnMvYnMtY3VycmVudC1kYXRlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1qRCxNQUFNLE9BQU8sMEJBQTBCOztvR0FBMUIsMEJBQTBCOzZFQUExQiwwQkFBMEI7UUFGMUIsOEJBQThCLFdBQUE7UUFBTSxZQUFXO1FBQUEsaUJBQU8sRUFBQTs7UUFBbEIsZUFBVztRQUFYLCtCQUFXOzt1RkFFL0MsMEJBQTBCO2NBSnRDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUUsOERBQThEO2FBQ3pFO2dCQUVVLEtBQUs7a0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLWN1cnJlbnQtZGF0ZScsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImN1cnJlbnQtdGltZWRhdGVcIj48c3Bhbj57eyB0aXRsZSB9fTwvc3Bhbj48L2Rpdj5gXG59KVxuZXhwb3J0IGNsYXNzIEJzQ3VycmVudERhdGVWaWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ function BsCustomDatesViewComponent_button_1_Template(rf, ctx) { if (rf & 1) {
5
+ const _r3 = i0.ɵɵgetCurrentView();
6
+ i0.ɵɵelementStart(0, "button", 2);
7
+ i0.ɵɵlistener("click", function BsCustomDatesViewComponent_button_1_Template_button_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r3); const range_r1 = restoredCtx.$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectFromRanges(range_r1)); });
8
+ i0.ɵɵtext(1);
9
+ i0.ɵɵelementEnd();
10
+ } if (rf & 2) {
11
+ const range_r1 = ctx.$implicit;
12
+ const ctx_r0 = i0.ɵɵnextContext();
13
+ i0.ɵɵclassProp("selected", range_r1.value === ctx_r0.selectedRange);
14
+ i0.ɵɵadvance(1);
15
+ i0.ɵɵtextInterpolate1(" ", range_r1.label, " ");
16
+ } }
17
+ export class BsCustomDatesViewComponent {
18
+ constructor() {
19
+ this.onSelect = new EventEmitter();
20
+ this.customRange = null;
21
+ }
22
+ selectFromRanges(range) {
23
+ this.onSelect.emit(range);
24
+ }
25
+ checkRange() {
26
+ return this.ranges ? this.ranges.filter(range => range.value === this.selectedRange).length > 0 : false;
27
+ }
28
+ }
29
+ BsCustomDatesViewComponent.ɵfac = function BsCustomDatesViewComponent_Factory(t) { return new (t || BsCustomDatesViewComponent)(); };
30
+ BsCustomDatesViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BsCustomDatesViewComponent, selectors: [["mis-custom-date-view"]], inputs: { ranges: "ranges", selectedRange: "selectedRange", customRangeLabel: "customRangeLabel" }, outputs: { onSelect: "onSelect" }, decls: 4, vars: 4, consts: [[1, "bs-datepicker-predefined-btns"], ["type", "button", "class", "btn", 3, "selected", "click", 4, "ngFor", "ngForOf"], ["type", "button", 1, "btn", 3, "click"]], template: function BsCustomDatesViewComponent_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelementStart(0, "div", 0);
32
+ i0.ɵɵtemplate(1, BsCustomDatesViewComponent_button_1_Template, 2, 3, "button", 1);
33
+ i0.ɵɵelementStart(2, "button", 2);
34
+ i0.ɵɵlistener("click", function BsCustomDatesViewComponent_Template_button_click_2_listener() { return ctx.selectFromRanges(ctx.customRange); });
35
+ i0.ɵɵtext(3);
36
+ i0.ɵɵelementEnd()();
37
+ } if (rf & 2) {
38
+ i0.ɵɵadvance(1);
39
+ i0.ɵɵproperty("ngForOf", ctx.ranges);
40
+ i0.ɵɵadvance(1);
41
+ i0.ɵɵclassProp("selected", !ctx.checkRange());
42
+ i0.ɵɵadvance(1);
43
+ i0.ɵɵtextInterpolate1(" ", ctx.customRangeLabel, " ");
44
+ } }, dependencies: [i1.NgForOf], encapsulation: 2, changeDetection: 0 });
45
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BsCustomDatesViewComponent, [{
46
+ type: Component,
47
+ args: [{
48
+ selector: 'mis-custom-date-view',
49
+ template: `
50
+ <div class="bs-datepicker-predefined-btns">
51
+ <button *ngFor="let range of ranges"
52
+ type="button"
53
+ class="btn"
54
+ (click)="selectFromRanges(range)"
55
+ [class.selected]="range.value === selectedRange">
56
+ {{ range.label }}
57
+ </button>
58
+ <button
59
+ type="button"
60
+ class="btn"
61
+ (click)="selectFromRanges(customRange)"
62
+ [class.selected]="!checkRange()">
63
+ {{customRangeLabel}}
64
+ </button>
65
+ </div>
66
+ `,
67
+ changeDetection: ChangeDetectionStrategy.OnPush
68
+ }]
69
+ }], null, { ranges: [{
70
+ type: Input
71
+ }], selectedRange: [{
72
+ type: Input
73
+ }], customRangeLabel: [{
74
+ type: Input
75
+ }], onSelect: [{
76
+ type: Output
77
+ }] }); })();
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtY3VzdG9tLWRhdGVzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci90aGVtZXMvYnMvYnMtY3VzdG9tLWRhdGVzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0lBVzFGLGlDQUltRDtJQURqRCxzT0FBUyxlQUFBLGlDQUF1QixDQUFBLElBQUM7SUFFakMsWUFDRjtJQUFBLGlCQUFTOzs7O0lBRlAsbUVBQWdEO0lBQ2hELGVBQ0Y7SUFERSwrQ0FDRjs7QUFZTixNQUFNLE9BQU8sMEJBQTBCO0lBdEJ2QztRQTBCWSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFdkQsZ0JBQVcsR0FBUSxJQUFJLENBQUM7S0FVekI7SUFSQyxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDMUcsQ0FBQzs7b0dBZFUsMEJBQTBCOzZFQUExQiwwQkFBMEI7UUFuQm5DLDhCQUEyQztRQUN6QyxpRkFNUztRQUNULGlDQUltQztRQURqQyx1R0FBUyxxQ0FBNkIsSUFBQztRQUV2QyxZQUNGO1FBQUEsaUJBQVMsRUFBQTs7UUFiaUIsZUFBUztRQUFULG9DQUFTO1FBV2pDLGVBQWdDO1FBQWhDLDZDQUFnQztRQUNoQyxlQUNGO1FBREUscURBQ0Y7O3VGQUtPLDBCQUEwQjtjQXRCdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7Z0JBRVUsTUFBTTtrQkFBZCxLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNJLFFBQVE7a0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBCc0N1c3RvbURhdGVzIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IERhdGUgfCBEYXRlW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pcy1jdXN0b20tZGF0ZS12aWV3JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYnMtZGF0ZXBpY2tlci1wcmVkZWZpbmVkLWJ0bnNcIj5cbiAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IHJhbmdlIG9mIHJhbmdlc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0blwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RGcm9tUmFuZ2VzKHJhbmdlKVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJyYW5nZS52YWx1ZSA9PT0gc2VsZWN0ZWRSYW5nZVwiPlxuICAgICAgICB7eyByYW5nZS5sYWJlbCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0blwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RGcm9tUmFuZ2VzKGN1c3RvbVJhbmdlKVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCIhY2hlY2tSYW5nZSgpXCI+XG4gICAgICAgIHt7Y3VzdG9tUmFuZ2VMYWJlbH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQnNDdXN0b21EYXRlc1ZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSByYW5nZXM6IEJzQ3VzdG9tRGF0ZXNbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRSYW5nZTogRGF0ZVtdO1xuICBASW5wdXQoKSBjdXN0b21SYW5nZUxhYmVsOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8QnNDdXN0b21EYXRlcz4oKTtcblxuICBjdXN0b21SYW5nZTogYW55ID0gbnVsbDtcblxuICBzZWxlY3RGcm9tUmFuZ2VzKHJhbmdlOiBCc0N1c3RvbURhdGVzKSB7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KHJhbmdlKTtcbiAgfVxuXG4gIGNoZWNrUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VzID8gdGhpcy5yYW5nZXMuZmlsdGVyKHJhbmdlID0+IHJhbmdlLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkUmFuZ2UpLmxlbmd0aCA+IDAgOiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=