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

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,160 @@
1
+ import { Directive, forwardRef, Host } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { formatDate, getLocale, isAfter, isBefore, isDate, isDateValid, parseDate, utcAsLocal } from './chronos';
4
+ import { Subscription } from 'rxjs';
5
+ import { distinctUntilChanged } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./bs-datepicker.component";
8
+ import * as i2 from "./bs-locale.service";
9
+ const BS_DATEPICKER_VALUE_ACCESSOR = {
10
+ provide: NG_VALUE_ACCESSOR,
11
+ /* tslint:disable-next-line: no-use-before-declare */
12
+ useExisting: forwardRef(() => MisDatePickerInputDirective),
13
+ multi: true
14
+ };
15
+ const BS_DATEPICKER_VALIDATOR = {
16
+ provide: NG_VALIDATORS,
17
+ /* tslint:disable-next-line: no-use-before-declare */
18
+ useExisting: forwardRef(() => MisDatePickerInputDirective),
19
+ multi: true
20
+ };
21
+ export class MisDatePickerInputDirective {
22
+ constructor(_picker, _localeService, _renderer, _elRef, changeDetection) {
23
+ this._picker = _picker;
24
+ this._localeService = _localeService;
25
+ this._renderer = _renderer;
26
+ this._elRef = _elRef;
27
+ this.changeDetection = changeDetection;
28
+ this._onChange = Function.prototype;
29
+ this._onTouched = Function.prototype;
30
+ /* tslint:disable-next-line: no-unused-variable */
31
+ this._validatorChange = Function.prototype;
32
+ this._subs = new Subscription();
33
+ }
34
+ ngOnInit() {
35
+ // update input value on datepicker value update
36
+ this._subs.add(this._picker.bsValueChange.subscribe((value) => {
37
+ this._setInputValue(value);
38
+ if (this._value !== value) {
39
+ this._value = value;
40
+ this._onChange(value);
41
+ this._onTouched();
42
+ }
43
+ this.changeDetection.markForCheck();
44
+ }));
45
+ // update input value on locale change
46
+ this._subs.add(this._localeService.localeChange.subscribe(() => {
47
+ this._setInputValue(this._value);
48
+ }));
49
+ this._subs.add(this._picker.dateInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {
50
+ this._setInputValue(this._value);
51
+ }));
52
+ }
53
+ ngOnDestroy() {
54
+ this._subs.unsubscribe();
55
+ }
56
+ onKeydownEvent(event) {
57
+ if (event.keyCode === 13 || event.code === 'Enter') {
58
+ this.hide();
59
+ }
60
+ }
61
+ _setInputValue(value) {
62
+ const initialDate = !value ? ''
63
+ : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);
64
+ this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);
65
+ }
66
+ onChange(event) {
67
+ /* tslint:disable-next-line: no-any*/
68
+ this.writeValue(event.target.value);
69
+ this._onChange(this._value);
70
+ if (this._picker._config.returnFocusToInput) {
71
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
72
+ }
73
+ this._onTouched();
74
+ }
75
+ validate(c) {
76
+ const _value = c.value;
77
+ /* tslint:disable-next-line: prefer-switch */
78
+ if (_value === null || _value === undefined || _value === '') {
79
+ return null;
80
+ }
81
+ if (isDate(_value)) {
82
+ const _isDateValid = isDateValid(_value);
83
+ if (!_isDateValid) {
84
+ return { misDate: { invalid: _value } };
85
+ }
86
+ if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {
87
+ this.writeValue(this._picker.minDate);
88
+ return { misDate: { minDate: this._picker.minDate } };
89
+ }
90
+ if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {
91
+ this.writeValue(this._picker.maxDate);
92
+ return { misDate: { maxDate: this._picker.maxDate } };
93
+ }
94
+ }
95
+ }
96
+ registerOnValidatorChange(fn) {
97
+ this._validatorChange = fn;
98
+ }
99
+ writeValue(value) {
100
+ if (!value) {
101
+ this._value = null;
102
+ }
103
+ else {
104
+ const _localeKey = this._localeService.currentLocale;
105
+ const _locale = getLocale(_localeKey);
106
+ if (!_locale) {
107
+ throw new Error(`Locale "${_localeKey}" is not defined, please add it with "defineLocale(...)"`);
108
+ }
109
+ this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);
110
+ if (this._picker._config.useUtc) {
111
+ this._value = utcAsLocal(this._value);
112
+ }
113
+ }
114
+ this._picker.bsValue = this._value;
115
+ }
116
+ setDisabledState(isDisabled) {
117
+ this._picker.isDisabled = isDisabled;
118
+ if (isDisabled) {
119
+ this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');
120
+ return;
121
+ }
122
+ this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');
123
+ }
124
+ registerOnChange(fn) {
125
+ this._onChange = fn;
126
+ }
127
+ registerOnTouched(fn) {
128
+ this._onTouched = fn;
129
+ }
130
+ onBlur() {
131
+ this._onTouched();
132
+ }
133
+ hide() {
134
+ this._picker.hide();
135
+ this._renderer.selectRootElement(this._elRef.nativeElement).blur();
136
+ if (this._picker._config.returnFocusToInput) {
137
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
138
+ }
139
+ }
140
+ }
141
+ MisDatePickerInputDirective.ɵfac = function MisDatePickerInputDirective_Factory(t) { return new (t || MisDatePickerInputDirective)(i0.ɵɵdirectiveInject(i1.MisDatePickerDirective, 1), i0.ɵɵdirectiveInject(i2.BsLocaleService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
142
+ MisDatePickerInputDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MisDatePickerInputDirective, selectors: [["input", "misDatePicker", ""]], hostBindings: function MisDatePickerInputDirective_HostBindings(rf, ctx) { if (rf & 1) {
143
+ i0.ɵɵlistener("change", function MisDatePickerInputDirective_change_HostBindingHandler($event) { return ctx.onChange($event); })("keyup.esc", function MisDatePickerInputDirective_keyup_esc_HostBindingHandler() { return ctx.hide(); })("keydown", function MisDatePickerInputDirective_keydown_HostBindingHandler($event) { return ctx.onKeydownEvent($event); })("blur", function MisDatePickerInputDirective_blur_HostBindingHandler() { return ctx.onBlur(); });
144
+ } }, features: [i0.ɵɵProvidersFeature([BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR])] });
145
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDatePickerInputDirective, [{
146
+ type: Directive,
147
+ args: [{
148
+ selector: `input[misDatePicker]`,
149
+ host: {
150
+ '(change)': 'onChange($event)',
151
+ '(keyup.esc)': 'hide()',
152
+ '(keydown)': 'onKeydownEvent($event)',
153
+ '(blur)': 'onBlur()'
154
+ },
155
+ providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
156
+ }]
157
+ }], function () { return [{ type: i1.MisDatePickerDirective, decorators: [{
158
+ type: Host
159
+ }] }, { type: i2.BsLocaleService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, null); })();
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVwaWNrZXItaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsVUFBVSxFQUNWLElBQUksRUFLTCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sV0FBVyxDQUFDO0FBSW5CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFdEQsTUFBTSw0QkFBNEIsR0FBYTtJQUM3QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLHFEQUFxRDtJQUNyRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQWE7SUFDeEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIscURBQXFEO0lBQ3JELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7SUFDMUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBWUYsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUE0QixPQUErQixFQUN2QyxjQUErQixFQUMvQixTQUFvQixFQUNwQixNQUFrQixFQUNsQixlQUFrQztRQUoxQixZQUFPLEdBQVAsT0FBTyxDQUF3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QUMsNEJBQTRCLEVBQUUsdUJBQXVCLENBQUM7YUFDbkU7O3NCQVVjLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUHJvdmlkZXIsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIGZvcm1hdERhdGUsXG4gIGdldExvY2FsZSxcbiAgaXNBZnRlcixcbiAgaXNCZWZvcmUsXG4gIGlzRGF0ZSxcbiAgaXNEYXRlVmFsaWQsXG4gIHBhcnNlRGF0ZSxcbiAgdXRjQXNMb2NhbFxufSBmcm9tICcuL2Nocm9ub3MnO1xuXG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICcuL2JzLWxvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEJTX0RBVEVQSUNLRVJfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmUgKi9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWlzRGF0ZVBpY2tlcklucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbmNvbnN0IEJTX0RBVEVQSUNLRVJfVkFMSURBVE9SOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmUgKi9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWlzRGF0ZVBpY2tlcklucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYGlucHV0W21pc0RhdGVQaWNrZXJdYCxcbiAgaG9zdDoge1xuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZSgkZXZlbnQpJyxcbiAgICAnKGtleXVwLmVzYyknOiAnaGlkZSgpJyxcbiAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bkV2ZW50KCRldmVudCknLFxuICAgICcoYmx1ciknOiAnb25CbHVyKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW0JTX0RBVEVQSUNLRVJfVkFMVUVfQUNDRVNTT1IsIEJTX0RBVEVQSUNLRVJfVkFMSURBVE9SXVxufSlcbmV4cG9ydCBjbGFzcyBNaXNEYXRlUGlja2VySW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX29uQ2hhbmdlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuICBwcml2YXRlIF9vblRvdWNoZWQgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdW51c2VkLXZhcmlhYmxlICovXG4gIHByaXZhdGUgX3ZhbGlkYXRvckNoYW5nZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgcHJpdmF0ZSBfdmFsdWU6IERhdGU7XG4gIHByaXZhdGUgX3N1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIF9waWNrZXI6IE1pc0RhdGVQaWNrZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB1cGRhdGUgaW5wdXQgdmFsdWUgb24gZGF0ZXBpY2tlciB2YWx1ZSB1cGRhdGVcbiAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgIHRoaXMuX3BpY2tlci5ic1ZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IERhdGUpID0+IHtcbiAgICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIHVwZGF0ZSBpbnB1dCB2YWx1ZSBvbiBsb2NhbGUgY2hhbmdlXG4gICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICB0aGlzLl9sb2NhbGVTZXJ2aWNlLmxvY2FsZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgIHRoaXMuX3BpY2tlci5kYXRlSW5wdXRGb3JtYXQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3NldElucHV0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH0pXG4gICk7XG59XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vicy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25LZXlkb3duRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgX3NldElucHV0VmFsdWUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICBjb25zdCBpbml0aWFsRGF0ZSA9ICF2YWx1ZSA/ICcnXG4gICAgICA6IGZvcm1hdERhdGUodmFsdWUsIHRoaXMuX3BpY2tlci5fY29uZmlnLmRhdGVJbnB1dEZvcm1hdCwgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlKTtcblxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIGluaXRpYWxEYXRlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICB0aGlzLndyaXRlVmFsdWUoKGV2ZW50LnRhcmdldCBhcyBhbnkpLnZhbHVlKTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnJldHVybkZvY3VzVG9JbnB1dCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgX3ZhbHVlOiBEYXRlIHwgc3RyaW5nID0gYy52YWx1ZTtcblxuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogcHJlZmVyLXN3aXRjaCAqL1xuICAgIGlmIChfdmFsdWUgPT09IG51bGwgfHwgX3ZhbHVlID09PSB1bmRlZmluZWQgfHwgX3ZhbHVlID09PSAnJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGlzRGF0ZShfdmFsdWUpKSB7XG4gICAgICBjb25zdCBfaXNEYXRlVmFsaWQgPSBpc0RhdGVWYWxpZChfdmFsdWUpO1xuICAgICAgaWYgKCFfaXNEYXRlVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIHsgbWlzRGF0ZTogeyBpbnZhbGlkOiBfdmFsdWUgfSB9O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5taW5EYXRlICYmIGlzQmVmb3JlKF92YWx1ZSwgdGhpcy5fcGlja2VyLm1pbkRhdGUsICdkYXRlJykpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3BpY2tlci5taW5EYXRlKTtcblxuICAgICAgICByZXR1cm4geyBtaXNEYXRlOiB7IG1pbkRhdGU6IHRoaXMuX3BpY2tlci5taW5EYXRlIH0gfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3BpY2tlciAmJiB0aGlzLl9waWNrZXIubWF4RGF0ZSAmJiBpc0FmdGVyKF92YWx1ZSwgdGhpcy5fcGlja2VyLm1heERhdGUsICdkYXRlJykpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3BpY2tlci5tYXhEYXRlKTtcblxuICAgICAgICByZXR1cm4geyBtaXNEYXRlOiB7IG1heERhdGU6IHRoaXMuX3BpY2tlci5tYXhEYXRlIH0gfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBfbG9jYWxlS2V5ID0gdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlO1xuICAgICAgY29uc3QgX2xvY2FsZSA9IGdldExvY2FsZShfbG9jYWxlS2V5KTtcbiAgICAgIGlmICghX2xvY2FsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYExvY2FsZSBcIiR7X2xvY2FsZUtleX1cIiBpcyBub3QgZGVmaW5lZCwgcGxlYXNlIGFkZCBpdCB3aXRoIFwiZGVmaW5lTG9jYWxlKC4uLilcImBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdmFsdWUgPSBwYXJzZURhdGUodmFsdWUsIHRoaXMuX3BpY2tlci5fY29uZmlnLmRhdGVJbnB1dEZvcm1hdCwgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlKTtcblxuICAgICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnVzZVV0Yykge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHV0Y0FzTG9jYWwodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3BpY2tlci5ic1ZhbHVlID0gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9waWNrZXIuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuX3BpY2tlci5oaWRlKCk7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCkuYmx1cigpO1xuICAgIGlmICh0aGlzLl9waWNrZXIuX2NvbmZpZy5yZXR1cm5Gb2N1c1RvSW5wdXQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,254 @@
1
+ // tslint:disable:max-file-line-count
2
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
3
+ import { MisDatePickerContainerComponent } from './themes/bs/bs-datepicker-container.component';
4
+ import { Subject, BehaviorSubject } from 'rxjs';
5
+ import { filter, takeUntil } from 'rxjs/operators';
6
+ import { MisDatePickerConfig } from './bs-datepicker.config';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./bs-datepicker.config";
9
+ import * as i2 from "./component-loader";
10
+ export class MisDatePickerDirective {
11
+ constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
12
+ this._config = _config;
13
+ this._elementRef = _elementRef;
14
+ this._renderer = _renderer;
15
+ /**
16
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
17
+ */
18
+ this.placement = 'bottom';
19
+ /**
20
+ * Specifies events that should trigger. Supports a space separated list of
21
+ * event names.
22
+ */
23
+ this.triggers = 'click';
24
+ /**
25
+ * Close datepicker on outside click
26
+ */
27
+ this.outsideClick = true;
28
+ /**
29
+ * A selector specifying the element the datepicker should be appended to.
30
+ */
31
+ this.container = 'body';
32
+ this.outsideEsc = true;
33
+ /**
34
+ * Emits when datepicker value has been changed
35
+ */
36
+ this.bsValueChange = new EventEmitter();
37
+ this._subs = [];
38
+ this._dateInputFormat$ = new Subject();
39
+ // todo: assign only subset of fields
40
+ Object.assign(this, this._config);
41
+ this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
42
+ this.onShown = this._datepicker.onShown;
43
+ this.onHidden = this._datepicker.onHidden;
44
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
45
+ }
46
+ /**
47
+ * Returns whether or not the datepicker is currently being shown
48
+ */
49
+ get isOpen() {
50
+ return this._datepicker.isShown;
51
+ }
52
+ set isOpen(value) {
53
+ this.isOpen$.next(value);
54
+ }
55
+ /**
56
+ * Initial value of datepicker
57
+ */
58
+ set bsValue(value) {
59
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
60
+ return;
61
+ }
62
+ if (!this._bsValue && value) {
63
+ const now = new Date();
64
+ value.setMilliseconds(now.getMilliseconds());
65
+ value.setSeconds(now.getSeconds());
66
+ value.setMinutes(now.getMinutes());
67
+ value.setHours(now.getHours());
68
+ }
69
+ this._bsValue = value;
70
+ this.bsValueChange.emit(value);
71
+ }
72
+ /**
73
+ * Config object for datepicker
74
+ */
75
+ set misConfig(misConfig) {
76
+ this._misConfig = misConfig;
77
+ this.setConfig();
78
+ this._dateInputFormat$.next(misConfig && misConfig.dateInputFormat);
79
+ }
80
+ get misConfig() {
81
+ return this._misConfig;
82
+ }
83
+ get dateInputFormat$() {
84
+ return this._dateInputFormat$;
85
+ }
86
+ ngOnInit() {
87
+ this.isDestroy$ = new Subject();
88
+ this._datepicker.listen({
89
+ outsideClick: this.outsideClick,
90
+ outsideEsc: this.outsideEsc,
91
+ triggers: this.triggers,
92
+ show: () => this.show()
93
+ });
94
+ this.setConfig();
95
+ }
96
+ ngOnChanges(changes) {
97
+ if (!this._datepickerRef || !this._datepickerRef.instance) {
98
+ return;
99
+ }
100
+ if (changes.minDate) {
101
+ this._datepickerRef.instance.minDate = this.minDate;
102
+ }
103
+ if (changes.maxDate) {
104
+ this._datepickerRef.instance.maxDate = this.maxDate;
105
+ }
106
+ if (changes.daysDisabled) {
107
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
108
+ }
109
+ if (changes.datesDisabled) {
110
+ this._datepickerRef.instance.datesDisabled = this.datesDisabled;
111
+ }
112
+ if (changes.datesEnabled) {
113
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
114
+ }
115
+ if (changes.isDisabled) {
116
+ this._datepickerRef.instance.isDisabled = this.isDisabled;
117
+ }
118
+ if (changes.dateCustomClasses) {
119
+ this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
120
+ }
121
+ if (changes.dateTooltipTexts) {
122
+ this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;
123
+ }
124
+ }
125
+ ngAfterViewInit() {
126
+ this.isOpen$.pipe(filter(isOpen => isOpen !== this.isOpen), takeUntil(this.isDestroy$))
127
+ .subscribe(() => this.toggle());
128
+ }
129
+ /**
130
+ * Opens an element’s datepicker. This is considered a “manual” triggering of
131
+ * the datepicker.
132
+ */
133
+ show() {
134
+ if (this._datepicker.isShown) {
135
+ return;
136
+ }
137
+ this.setConfig();
138
+ this._datepickerRef = this._datepicker
139
+ .provide({ provide: MisDatePickerConfig, useValue: this._config })
140
+ .attach(MisDatePickerContainerComponent)
141
+ .to(this.container)
142
+ .position({ attachment: this.placement })
143
+ .show({ placement: this.placement });
144
+ // if date changes from external source (model -> view)
145
+ this._subs.push(this.bsValueChange.subscribe((value) => {
146
+ this._datepickerRef.instance.value = value;
147
+ }));
148
+ // if date changes from picker (view -> model)
149
+ this._subs.push(this._datepickerRef.instance.valueChange.subscribe((value) => {
150
+ this.bsValue = value;
151
+ this.hide();
152
+ }));
153
+ }
154
+ /**
155
+ * Closes an element’s datepicker. This is considered a “manual” triggering of
156
+ * the datepicker.
157
+ */
158
+ hide() {
159
+ if (this.isOpen) {
160
+ this._datepicker.hide();
161
+ }
162
+ for (const sub of this._subs) {
163
+ sub.unsubscribe();
164
+ }
165
+ if (this._config.returnFocusToInput) {
166
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
167
+ }
168
+ }
169
+ /**
170
+ * Toggles an element’s datepicker. This is considered a “manual” triggering
171
+ * of the datepicker.
172
+ */
173
+ toggle() {
174
+ if (this.isOpen) {
175
+ return this.hide();
176
+ }
177
+ this.show();
178
+ }
179
+ /**
180
+ * Set config for datepicker
181
+ */
182
+ setConfig() {
183
+ this._config = Object.assign({}, this._config, this.misConfig, {
184
+ value: this._bsValue,
185
+ isDisabled: this.isDisabled,
186
+ minDate: this.minDate || this.misConfig && this.misConfig.minDate,
187
+ maxDate: this.maxDate || this.misConfig && this.misConfig.maxDate,
188
+ daysDisabled: this.daysDisabled || this.misConfig && this.misConfig.daysDisabled,
189
+ dateCustomClasses: this.dateCustomClasses || this.misConfig && this.misConfig.dateCustomClasses,
190
+ dateTooltipTexts: this.dateTooltipTexts || this.misConfig && this.misConfig.dateTooltipTexts,
191
+ datesDisabled: this.datesDisabled || this.misConfig && this.misConfig.datesDisabled,
192
+ datesEnabled: this.datesEnabled || this.misConfig && this.misConfig.datesEnabled,
193
+ minMode: this.minMode || this.misConfig && this.misConfig.minMode
194
+ });
195
+ }
196
+ ngOnDestroy() {
197
+ this._datepicker.dispose();
198
+ this.isOpen$.next(false);
199
+ if (this.isDestroy$) {
200
+ this.isDestroy$.next();
201
+ this.isDestroy$.complete();
202
+ }
203
+ }
204
+ }
205
+ MisDatePickerDirective.ɵfac = function MisDatePickerDirective_Factory(t) { return new (t || MisDatePickerDirective)(i0.ɵɵdirectiveInject(i1.MisDatePickerConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.ComponentLoaderFactory)); };
206
+ MisDatePickerDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MisDatePickerDirective, selectors: [["", "misDatePicker", ""]], inputs: { placement: "placement", triggers: "triggers", outsideClick: "outsideClick", container: "container", outsideEsc: "outsideEsc", isOpen: "isOpen", bsValue: "bsValue", misConfig: "misConfig", isDisabled: "isDisabled", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", daysDisabled: "daysDisabled", datesDisabled: "datesDisabled", datesEnabled: "datesEnabled", dateCustomClasses: "dateCustomClasses", dateTooltipTexts: "dateTooltipTexts" }, outputs: { onShown: "onShown", onHidden: "onHidden", bsValueChange: "bsValueChange" }, exportAs: ["misDatePicker"], features: [i0.ɵɵNgOnChangesFeature] });
207
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDatePickerDirective, [{
208
+ type: Directive,
209
+ args: [{
210
+ selector: '[misDatePicker]',
211
+ exportAs: 'misDatePicker'
212
+ }]
213
+ }], function () { return [{ type: i1.MisDatePickerConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }]; }, { placement: [{
214
+ type: Input
215
+ }], triggers: [{
216
+ type: Input
217
+ }], outsideClick: [{
218
+ type: Input
219
+ }], container: [{
220
+ type: Input
221
+ }], outsideEsc: [{
222
+ type: Input
223
+ }], isOpen: [{
224
+ type: Input
225
+ }], onShown: [{
226
+ type: Output
227
+ }], onHidden: [{
228
+ type: Output
229
+ }], bsValue: [{
230
+ type: Input
231
+ }], misConfig: [{
232
+ type: Input
233
+ }], isDisabled: [{
234
+ type: Input
235
+ }], minDate: [{
236
+ type: Input
237
+ }], maxDate: [{
238
+ type: Input
239
+ }], minMode: [{
240
+ type: Input
241
+ }], daysDisabled: [{
242
+ type: Input
243
+ }], datesDisabled: [{
244
+ type: Input
245
+ }], datesEnabled: [{
246
+ type: Input
247
+ }], dateCustomClasses: [{
248
+ type: Input
249
+ }], dateTooltipTexts: [{
250
+ type: Input
251
+ }], bsValueChange: [{
252
+ type: Output
253
+ }] }); })();
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUNyQyxPQUFPLEVBQ1MsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQ3JDLE1BQU0sRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEcsT0FBTyxFQUE0QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFPN0QsTUFBTSxPQUFPLHNCQUFzQjtJQXVJakMsWUFBbUIsT0FBNEIsRUFDMUIsV0FBdUIsRUFDdkIsU0FBb0IsRUFDN0IsaUJBQW1DLEVBQ25DLEdBQTJCO1FBSnBCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUF4SXpDOztXQUVHO1FBQ00sY0FBUyxHQUF3QyxRQUFRLENBQUM7UUFDbkU7OztXQUdHO1FBQ00sYUFBUSxHQUFHLE9BQU8sQ0FBQztRQUM1Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCOztXQUVHO1FBQ00sY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUVuQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBb0czQjs7V0FFRztRQUNPLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFNdkQsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFLcEIsc0JBQWlCLEdB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QUFLO1lBSUcsU0FBUztrQkFBakIsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFNRixNQUFNO2tCQURULEtBQUs7WUFhSSxPQUFPO2tCQUFoQixNQUFNO1lBS0csUUFBUTtrQkFBakIsTUFBTTtZQVNILE9BQU87a0JBRFYsS0FBSztZQXNCTyxTQUFTO2tCQUFyQixLQUFLO1lBV0csVUFBVTtrQkFBbEIsS0FBSztZQUlHLE9BQU87a0JBQWYsS0FBSztZQUlHLE9BQU87a0JBQWYsS0FBSztZQUtHLE9BQU87a0JBQWYsS0FBSztZQUtHLFlBQVk7a0JBQXBCLEtBQUs7WUFLRyxhQUFhO2tCQUFyQixLQUFLO1lBSUcsWUFBWTtrQkFBcEIsS0FBSztZQUlHLGlCQUFpQjtrQkFBekIsS0FBSztZQUlHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUlJLGFBQWE7a0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTptYXgtZmlsZS1saW5lLWNvdW50XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYsIEFmdGVyVmlld0luaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdGhlbWVzL2JzL2JzLWRhdGVwaWNrZXItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyVmlld01vZGUsIERhdGVQaWNrZXJEYXRlQ3VzdG9tQ2xhc3NlcywgRGF0ZVBpY2tlckRhdGVUb29sdGlwVGV4dCB9IGZyb20gJy4vbW9kZWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21pc0RhdGVQaWNrZXJdJyxcbiAgZXhwb3J0QXM6ICdtaXNEYXRlUGlja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBNaXNEYXRlUGlja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBQbGFjZW1lbnQgb2YgYSBkYXRlcGlja2VyLiBBY2NlcHRzOiBcInRvcFwiLCBcImJvdHRvbVwiLCBcImxlZnRcIiwgXCJyaWdodFwiXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ6ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ2JvdHRvbSc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgZXZlbnRzIHRoYXQgc2hvdWxkIHRyaWdnZXIuIFN1cHBvcnRzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2ZcbiAgICogZXZlbnQgbmFtZXMuXG4gICAqL1xuICBASW5wdXQoKSB0cmlnZ2VycyA9ICdjbGljayc7XG4gIC8qKlxuICAgKiBDbG9zZSBkYXRlcGlja2VyIG9uIG91dHNpZGUgY2xpY2tcbiAgICovXG4gIEBJbnB1dCgpIG91dHNpZGVDbGljayA9IHRydWU7XG4gIC8qKlxuICAgKiBBIHNlbGVjdG9yIHNwZWNpZnlpbmcgdGhlIGVsZW1lbnQgdGhlIGRhdGVwaWNrZXIgc2hvdWxkIGJlIGFwcGVuZGVkIHRvLlxuICAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyID0gJ2JvZHknO1xuXG4gIEBJbnB1dCgpIG91dHNpZGVFc2MgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBkYXRlcGlja2VyIGlzIGN1cnJlbnRseSBiZWluZyBzaG93blxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZXBpY2tlci5pc1Nob3duO1xuICB9XG5cbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNPcGVuJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBkYXRlcGlja2VyIGlzIHNob3duXG4gICAqL1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIEBPdXRwdXQoKSBvblNob3duOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRhdGVwaWNrZXIgaXMgaGlkZGVuXG4gICAqL1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgX2JzVmFsdWU6IERhdGU7XG4gIGlzT3BlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgaXNEZXN0cm95JDogU3ViamVjdDx2b2lkPjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgZGF0ZXBpY2tlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGJzVmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICBpZiAodGhpcy5fYnNWYWx1ZSAmJiB2YWx1ZSAmJiB0aGlzLl9ic1ZhbHVlLmdldFRpbWUoKSA9PT0gdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9ic1ZhbHVlICYmIHZhbHVlKSB7XG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICB2YWx1ZS5zZXRNaWxsaXNlY29uZHMobm93LmdldE1pbGxpc2Vjb25kcygpKTtcbiAgICAgIHZhbHVlLnNldFNlY29uZHMobm93LmdldFNlY29uZHMoKSk7XG4gICAgICB2YWx1ZS5zZXRNaW51dGVzKG5vdy5nZXRNaW51dGVzKCkpO1xuICAgICAgdmFsdWUuc2V0SG91cnMobm93LmdldEhvdXJzKCkpO1xuICAgIH1cblxuICAgIHRoaXMuX2JzVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmJzVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlnIG9iamVjdCBmb3IgZGF0ZXBpY2tlclxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1pc0NvbmZpZyhtaXNDb25maWc6IFBhcnRpYWw8TWlzRGF0ZVBpY2tlckNvbmZpZz4pIHtcbiAgICB0aGlzLl9taXNDb25maWcgPSBtaXNDb25maWc7XG4gICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB0aGlzLl9kYXRlSW5wdXRGb3JtYXQkLm5leHQobWlzQ29uZmlnICYmIG1pc0NvbmZpZy5kYXRlSW5wdXRGb3JtYXQpO1xuICB9XG4gIGdldCBtaXNDb25maWcoKTogUGFydGlhbDxNaXNEYXRlUGlja2VyQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMuX21pc0NvbmZpZztcbiAgfVxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgZGF0ZXBpY2tlcidzIGNvbnRlbnQgaXMgZW5hYmxlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNaW5pbXVtIGRhdGUgd2hpY2ggaXMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cbiAgICovXG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGU7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRhdGUgd2hpY2ggaXMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cbiAgICovXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gdmlldyBtb2RlIDogZGF5LCBtb250aCwgb3IgeWVhclxuICAgKi9cbiAgQElucHV0KCkgbWluTW9kZTogTWlzRGF0ZVBpY2tlclZpZXdNb2RlO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIENlcnRhaW4gZGF5cyBpbiB0aGUgd2Vla1xuICAgKi9cbiAgQElucHV0KCkgZGF5c0Rpc2FibGVkOiBudW1iZXJbXTtcblxuICAvKipcbiAgICogRGlzYWJsZSBzcGVjaWZpYyBkYXRlc1xuICAgKi9cbiAgQElucHV0KCkgZGF0ZXNEaXNhYmxlZDogRGF0ZVtdO1xuICAvKipcbiAgICogRW5hYmxlIHNwZWNpZmljIGRhdGVzXG4gICAqL1xuICBASW5wdXQoKSBkYXRlc0VuYWJsZWQ6IERhdGVbXTtcbiAgLyoqXG4gICAqIERhdGUgY3VzdG9tIGNsYXNzZXNcbiAgICovXG4gIEBJbnB1dCgpIGRhdGVDdXN0b21DbGFzc2VzOiBEYXRlUGlja2VyRGF0ZUN1c3RvbUNsYXNzZXNbXTtcbiAgLyoqXG4gICAqIERhdGUgdG9vbHRpcCB0ZXh0XG4gICAqL1xuICBASW5wdXQoKSBkYXRlVG9vbHRpcFRleHRzOiBEYXRlUGlja2VyRGF0ZVRvb2x0aXBUZXh0W107XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGRhdGVwaWNrZXIgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZFxuICAgKi9cbiAgQE91dHB1dCgpIGJzVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBnZXQgZGF0ZUlucHV0Rm9ybWF0JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRlSW5wdXRGb3JtYXQkO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgX2RhdGVwaWNrZXI6IENvbXBvbmVudExvYWRlcjxNaXNEYXRlUGlja2VyQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBfZGF0ZXBpY2tlclJlZjogQ29tcG9uZW50UmVmPE1pc0RhdGVQaWNrZXJDb250YWluZXJDb21wb25lbnQ+O1xuICBwcml2YXRlIF9taXNDb25maWc6IFBhcnRpYWw8TWlzRGF0ZVBpY2tlckNvbmZpZz47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGVJbnB1dEZvcm1hdCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIF9jb25maWc6IE1pc0RhdGVQaWNrZXJDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIGNpczogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSkge1xuICAgIC8vIHRvZG86IGFzc2lnbiBvbmx5IHN1YnNldCBvZiBmaWVsZHNcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHRoaXMuX2NvbmZpZyk7XG4gICAgdGhpcy5fZGF0ZXBpY2tlciA9IGNpcy5jcmVhdGVMb2FkZXI8TWlzRGF0ZVBpY2tlckNvbnRhaW5lckNvbXBvbmVudD4oXG4gICAgICBfZWxlbWVudFJlZixcbiAgICAgIF92aWV3Q29udGFpbmVyUmVmLFxuICAgICAgX3JlbmRlcmVyXG4gICAgKTtcbiAgICB0aGlzLm9uU2hvd24gPSB0aGlzLl9kYXRlcGlja2VyLm9uU2hvd247XG4gICAgdGhpcy5vbkhpZGRlbiA9IHRoaXMuX2RhdGVwaWNrZXIub25IaWRkZW47XG4gICAgdGhpcy5pc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmlzT3Blbik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHRoaXMuX2RhdGVwaWNrZXIubGlzdGVuKHtcbiAgICAgIG91dHNpZGVDbGljazogdGhpcy5vdXRzaWRlQ2xpY2ssXG4gICAgICBvdXRzaWRlRXNjOiB0aGlzLm91dHNpZGVFc2MsXG4gICAgICB0cmlnZ2VyczogdGhpcy50cmlnZ2VycyxcbiAgICAgIHNob3c6ICgpID0+IHRoaXMuc2hvdygpXG4gICAgfSk7XG4gICAgdGhpcy5zZXRDb25maWcoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RhdGVwaWNrZXJSZWYgfHwgIXRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5taW5EYXRlKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLm1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMubWF4RGF0ZSkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5tYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmRheXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXlzRGlzYWJsZWQgPSB0aGlzLmRheXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kYXRlc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLmRhdGVzRGlzYWJsZWQgPSB0aGlzLmRhdGVzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZXNFbmFibGVkKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyUmVmLmluc3RhbmNlLmRhdGVzRW5hYmxlZCA9IHRoaXMuZGF0ZXNFbmFibGVkO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kYXRlQ3VzdG9tQ2xhc3Nlcykge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlQ3VzdG9tQ2xhc3NlcyA9IHRoaXMuZGF0ZUN1c3RvbUNsYXNzZXM7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZVRvb2x0aXBUZXh0cykge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlVG9vbHRpcFRleHRzID0gdGhpcy5kYXRlVG9vbHRpcFRleHRzO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3BlbiQucGlwZShcbiAgICAgIGZpbHRlcihpc09wZW4gPT4gaXNPcGVuICE9PSB0aGlzLmlzT3BlbiksXG4gICAgICB0YWtlVW50aWwodGhpcy5pc0Rlc3Ryb3kkKVxuICAgIClcbiAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGFuIGVsZW1lbnTigJlzIGRhdGVwaWNrZXIuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mXG4gICAqIHRoZSBkYXRlcGlja2VyLlxuICAgKi9cbiAgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGF0ZXBpY2tlci5pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDb25maWcoKTtcblxuICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYgPSB0aGlzLl9kYXRlcGlja2VyXG4gICAgICAucHJvdmlkZSh7cHJvdmlkZTogTWlzRGF0ZVBpY2tlckNvbmZpZywgdXNlVmFsdWU6IHRoaXMuX2NvbmZpZ30pXG4gICAgICAuYXR0YWNoKE1pc0RhdGVQaWNrZXJDb250YWluZXJDb21wb25lbnQpXG4gICAgICAudG8odGhpcy5jb250YWluZXIpXG4gICAgICAucG9zaXRpb24oe2F0dGFjaG1lbnQ6IHRoaXMucGxhY2VtZW50fSlcbiAgICAgIC5zaG93KHtwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50fSk7XG5cbiAgICAvLyBpZiBkYXRlIGNoYW5nZXMgZnJvbSBleHRlcm5hbCBzb3VyY2UgKG1vZGVsIC0+IHZpZXcpXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgdGhpcy5ic1ZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IERhdGUpID0+IHtcbiAgICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gcGlja2VyICh2aWV3IC0+IG1vZGVsKVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZTogRGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLmJzVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGFuIGVsZW1lbnTigJlzIGRhdGVwaWNrZXIuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mXG4gICAqIHRoZSBkYXRlcGlja2VyLlxuICAgKi9cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXIuaGlkZSgpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLl9zdWJzKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLnJldHVybkZvY3VzVG9JbnB1dCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGFuIGVsZW1lbnTigJlzIGRhdGVwaWNrZXIuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nXG4gICAqIG9mIHRoZSBkYXRlcGlja2VyLlxuICAgKi9cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgZm9yIGRhdGVwaWNrZXJcbiAgICovXG4gIHNldENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jb25maWcsIHRoaXMubWlzQ29uZmlnLCB7XG4gICAgICB2YWx1ZTogdGhpcy5fYnNWYWx1ZSxcbiAgICAgIGlzRGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSB8fCB0aGlzLm1pc0NvbmZpZyAmJiB0aGlzLm1pc0NvbmZpZy5taW5EYXRlLFxuICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLm1heERhdGUsXG4gICAgICBkYXlzRGlzYWJsZWQ6IHRoaXMuZGF5c0Rpc2FibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRheXNEaXNhYmxlZCxcbiAgICAgIGRhdGVDdXN0b21DbGFzc2VzOiB0aGlzLmRhdGVDdXN0b21DbGFzc2VzIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVDdXN0b21DbGFzc2VzLFxuICAgICAgZGF0ZVRvb2x0aXBUZXh0czogdGhpcy5kYXRlVG9vbHRpcFRleHRzIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVUb29sdGlwVGV4dHMsXG4gICAgICBkYXRlc0Rpc2FibGVkOiB0aGlzLmRhdGVzRGlzYWJsZWQgfHwgdGhpcy5taXNDb25maWcgJiYgdGhpcy5taXNDb25maWcuZGF0ZXNEaXNhYmxlZCxcbiAgICAgIGRhdGVzRW5hYmxlZDogdGhpcy5kYXRlc0VuYWJsZWQgfHwgdGhpcy5taXNDb25maWcgJiYgdGhpcy5taXNDb25maWcuZGF0ZXNFbmFibGVkLFxuICAgICAgbWluTW9kZTogdGhpcy5taW5Nb2RlIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLm1pbk1vZGVcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGVwaWNrZXIuZGlzcG9zZSgpO1xuICAgIHRoaXMuaXNPcGVuJC5uZXh0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3kkKSB7XG4gICAgICB0aGlzLmlzRGVzdHJveSQubmV4dCgpO1xuICAgICAgdGhpcy5pc0Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * For date range picker there are `MisDateRangePickerConfig` which inherits all properties,
5
+ * except `displayMonths`, for range picker it default to `2`
6
+ */
7
+ export class MisDatePickerConfig {
8
+ constructor() {
9
+ /** sets use adaptive position */
10
+ this.adaptivePosition = false;
11
+ /** sets use UTC date time format */
12
+ this.useUtc = false;
13
+ /** turn on/off animation */
14
+ this.isAnimated = false;
15
+ /**
16
+ * The view that the datepicker should start in
17
+ */
18
+ this.startView = 'day';
19
+ /**
20
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
21
+ */
22
+ this.returnFocusToInput = false;
23
+ /** CSS class which will be applied to datepicker container,
24
+ * usually used to set color theme
25
+ */
26
+ this.containerClass = 'theme-green';
27
+ // DatePickerRenderOptions
28
+ this.displayMonths = 1;
29
+ /**
30
+ * Allows to hide week numbers in datepicker
31
+ */
32
+ this.showWeekNumbers = false;
33
+ this.dateInputFormat = 'L';
34
+ // range picker
35
+ this.rangeSeparator = ' - ';
36
+ /**
37
+ * Date format for date range input field
38
+ */
39
+ this.rangeInputFormat = 'L';
40
+ // DatePickerFormatOptions
41
+ this.monthTitle = 'MMMM';
42
+ this.yearTitle = 'YYYY';
43
+ this.dayLabel = 'D';
44
+ this.monthLabel = 'MMMM';
45
+ this.yearLabel = 'YYYY';
46
+ this.weekNumbers = 'w';
47
+ /**
48
+ * Shows 'today' button
49
+ */
50
+ this.showTodayButton = false;
51
+ /**
52
+ * Shows clear button
53
+ */
54
+ this.showClearButton = false;
55
+ /**
56
+ * Positioning of 'today' button
57
+ */
58
+ this.todayPosition = 'center';
59
+ /**
60
+ * Positioning of 'clear' button
61
+ */
62
+ this.clearPosition = 'right';
63
+ /**
64
+ * Label for 'today' button
65
+ */
66
+ this.todayButtonLabel = 'Today';
67
+ /**
68
+ * Label for 'clear' button
69
+ */
70
+ this.clearButtonLabel = 'Clear';
71
+ /**
72
+ * Label for 'custom range' button
73
+ */
74
+ this.customRangeButtonLabel = 'Custom Range';
75
+ /* To enable emmission of date range on selecting start and end dates */
76
+ this.emitOnDateRangeSelect = false;
77
+ }
78
+ }
79
+ MisDatePickerConfig.ɵfac = function MisDatePickerConfig_Factory(t) { return new (t || MisDatePickerConfig)(); };
80
+ MisDatePickerConfig.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MisDatePickerConfig, factory: MisDatePickerConfig.ɵfac, providedIn: 'root' });
81
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDatePickerConfig, [{
82
+ type: Injectable,
83
+ args: [{
84
+ providedIn: 'root'
85
+ }]
86
+ }], null, null); })();
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVwaWNrZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTNDOzs7R0FHRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJRSxpQ0FBaUM7UUFDakMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLG9DQUFvQztRQUNwQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsNEJBQTRCO1FBQzVCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFXbkI7O1dBRUc7UUFDSCxjQUFTLEdBQTBCLEtBQUssQ0FBQztRQXlEekM7O1dBRUc7UUFDSCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0I7O1dBRUc7UUFDSCxtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUUvQiwwQkFBMEI7UUFDMUIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEI7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixvQkFBZSxHQUFHLEdBQUcsQ0FBQztRQUN0QixlQUFlO1FBQ2YsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFZdkIsMEJBQTBCO1FBQzFCLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFDcEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUNwQixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBRWxCOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qjs7V0FFRztRQUNILGtCQUFhLEdBQUcsUUFBUSxDQUFDO1FBRXpCOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxPQUFPLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFFM0I7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFFM0I7O1dBRUc7UUFDSCwyQkFBc0IsR0FBRyxjQUFjLENBQUM7UUFFeEMsd0VBQXdFO1FBQ3hFLDBCQUFxQixHQUFhLEtBQUssQ0FBQztLQUN6Qzs7c0ZBN0pZLG1CQUFtQjt5RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGbEIsTUFBTTt1RkFFUCxtQkFBbUI7Y0FIL0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRGF0ZVBpY2tlclJlbmRlck9wdGlvbnMsXG4gIE1pc0RhdGVQaWNrZXJWaWV3TW9kZSxcbiAgRGF0ZVBpY2tlckRhdGVDdXN0b21DbGFzc2VzLFxuICBEYXRlUGlja2VyRGF0ZVRvb2x0aXBUZXh0XG59IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IEJzQ3VzdG9tRGF0ZXMgfSBmcm9tICcuL3RoZW1lcy9icy9icy1jdXN0b20tZGF0ZXMtdmlldy5jb21wb25lbnQnO1xuXG5cbi8qKlxuICogRm9yIGRhdGUgcmFuZ2UgcGlja2VyIHRoZXJlIGFyZSBgTWlzRGF0ZVJhbmdlUGlja2VyQ29uZmlnYCB3aGljaCBpbmhlcml0cyBhbGwgcHJvcGVydGllcyxcbiAqIGV4Y2VwdCBgZGlzcGxheU1vbnRoc2AsIGZvciByYW5nZSBwaWNrZXIgaXQgZGVmYXVsdCB0byBgMmBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWlzRGF0ZVBpY2tlckNvbmZpZyBpbXBsZW1lbnRzIERhdGVQaWNrZXJSZW5kZXJPcHRpb25zIHtcbiAgLyoqIHNldHMgdXNlIGFkYXB0aXZlIHBvc2l0aW9uICovXG4gIGFkYXB0aXZlUG9zaXRpb24gPSBmYWxzZTtcbiAgLyoqIHNldHMgdXNlIFVUQyBkYXRlIHRpbWUgZm9ybWF0ICovXG4gIHVzZVV0YyA9IGZhbHNlO1xuICAvKiogdHVybiBvbi9vZmYgYW5pbWF0aW9uICovXG4gIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbiAgdmFsdWU/OiBEYXRlIHwgRGF0ZVtdO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmF1bHQgbWluIGRhdGUgZm9yIGFsbCBkYXRlL3JhbmdlIHBpY2tlcnNcbiAgICovXG4gIG1pbkRhdGU/OiBEYXRlO1xuICAvKipcbiAgICogRGVmYXVsdCBtYXggZGF0ZSBmb3IgYWxsIGRhdGUvcmFuZ2UgcGlja2Vyc1xuICAgKi9cbiAgbWF4RGF0ZT86IERhdGU7XG4gIC8qKlxuICAgKiBUaGUgdmlldyB0aGF0IHRoZSBkYXRlcGlja2VyIHNob3VsZCBzdGFydCBpblxuICAgKi9cbiAgc3RhcnRWaWV3OiBNaXNEYXRlUGlja2VyVmlld01vZGUgPSAnZGF5JztcbiAgLyoqXG4gICAqIERlZmF1bHQgZGF0ZSBjdXN0b20gY2xhc3NlcyBmb3IgYWxsIGRhdGUvcmFuZ2UgcGlja2Vyc1xuICAgKi9cbiAgZGF0ZUN1c3RvbUNsYXNzZXM6IERhdGVQaWNrZXJEYXRlQ3VzdG9tQ2xhc3Nlc1tdO1xuICAvKipcbiAgICogRGVmYXVsdCB0b29sdGlwIHRleHQgZm9yIGFsbCBkYXRlL3JhbmdlIHBpY2tlcnNcbiAgICovXG4gIGRhdGVUb29sdGlwVGV4dHM/OiBEYXRlUGlja2VyRGF0ZVRvb2x0aXBUZXh0W107XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRheXMsIGUuZy4gWzAsNl0gd2lsbCBkaXNhYmxlIGFsbCBTYXR1cmRheXMgYW5kIFN1bmRheXNcbiAgICovXG4gIGRheXNEaXNhYmxlZD86IG51bWJlcltdO1xuICAvKipcbiAgICogRGlzYWJsZSBzcGVjaWZpYyBkYXRlc1xuICAgKi9cbiAgZGF0ZXNEaXNhYmxlZD86IERhdGVbXTtcbiAgLyoqXG4gICAqIFNob3cgb25lIG1vbnRocyBmb3Igc3BlY2lhbCBjYXNlcyAob25seSBmb3IgZGF0ZVJhbmdlUGlja2VyKVxuICAgKiAxLiBtYXhEYXRlIGlzIGVxdWFsIHRvIHRvZGF5J3MgZGF0ZVxuICAgKiAyLiBtaW5EYXRlJ3MgbW9udGggaXMgZXF1YWwgdG8gbWF4RGF0ZSdzIG1vbnRoXG4gICAqL1xuICBkaXNwbGF5T25lTW9udGhSYW5nZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgc3BlY2lmaWMgZGF0ZXNcbiAgICovXG4gIGRhdGVzRW5hYmxlZD86IERhdGVbXTtcbiAgLyoqXG4gICAqIE1ha2VzIGRhdGVzIGZyb20gb3RoZXIgbW9udGhzIGFjdGl2ZVxuICAgKi9cbiAgc2VsZWN0RnJvbU90aGVyTW9udGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbGxvd3Mgc2VsZWN0IGZpcnN0IGRhdGUgb2YgdGhlIHdlZWsgYnkgY2xpY2sgb24gd2VlayBudW1iZXJcbiAgICovXG4gIHNlbGVjdFdlZWs/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbGxvd3Mgc2VsZWN0IGRhdGVyYW5nZSBhcyBmaXJzdCBhbmQgbGFzdCBkYXkgb2Ygd2VlayBieSBjbGljayBvbiB3ZWVrIG51bWJlciAoZGF0ZVJhbmdlUGlja2VyIG9ubHkpXG4gICAqL1xuICBzZWxlY3RXZWVrRGF0ZVJhbmdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvd3MgcHJldmlvdXMgYW5kIGN1cnJlbnQgbW9udGgsIGluc3RlYWQgb2YgY3VycmVudCBhbmQgbmV4dCAoZGF0ZVJhbmdlUGlja2VyIG9ubHkpXG4gICAqL1xuICBzaG93UHJldmlvdXNNb250aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZCBjbGFzcyB0byBjdXJyZW50IGRheVxuICAgKi9cbiAgY3VzdG9tVG9kYXlDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmYXVsdCBtb2RlIGZvciBhbGwgZGF0ZSBwaWNrZXJzXG4gICAqL1xuICBtaW5Nb2RlPzogTWlzRGF0ZVBpY2tlclZpZXdNb2RlO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCByZXR1cm5zIGZvY3VzIHRvIHRoZSBkYXRlcGlja2VyIC8gZGF0ZXJhbmdlcGlja2VyIGlucHV0IGFmdGVyIGRhdGUgc2VsZWN0aW9uXG4gICAqL1xuICByZXR1cm5Gb2N1c1RvSW5wdXQgPSBmYWxzZTtcblxuICAvKiogQ1NTIGNsYXNzIHdoaWNoIHdpbGwgYmUgYXBwbGllZCB0byBkYXRlcGlja2VyIGNvbnRhaW5lcixcbiAgICogdXN1YWxseSB1c2VkIHRvIHNldCBjb2xvciB0aGVtZVxuICAgKi9cbiAgY29udGFpbmVyQ2xhc3MgPSAndGhlbWUtZ3JlZW4nO1xuXG4gIC8vIERhdGVQaWNrZXJSZW5kZXJPcHRpb25zXG4gIGRpc3BsYXlNb250aHMgPSAxO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGhpZGUgd2VlayBudW1iZXJzIGluIGRhdGVwaWNrZXJcbiAgICovXG4gIHNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuXG4gIGRhdGVJbnB1dEZvcm1hdCA9ICdMJztcbiAgLy8gcmFuZ2UgcGlja2VyXG4gIHJhbmdlU2VwYXJhdG9yID0gJyAtICc7XG4gIC8qKlxuICAgKiBEYXRlIGZvcm1hdCBmb3IgZGF0ZSByYW5nZSBpbnB1dCBmaWVsZFxuICAgKi9cbiAgcmFuZ2VJbnB1dEZvcm1hdCA9ICdMJztcblxuICAvKipcbiAgICogUHJlZGVmaW5lZCByYW5nZXNcbiAgICovXG4gIHJhbmdlcz86IEJzQ3VzdG9tRGF0ZXNbXTtcblxuICAvKipcbiAgICogTWF4IERhdGUgUmFuZ2UgaW4gZGF5c1xuICAgKi9cbiAgbWF4RGF0ZVJhbmdlPzogbnVtYmVyO1xuXG4gIC8vIERhdGVQaWNrZXJGb3JtYXRPcHRpb25zXG4gIG1vbnRoVGl0bGUgPSAnTU1NTSc7XG4gIHllYXJUaXRsZSA9ICdZWVlZJztcbiAgZGF5TGFiZWwgPSAnRCc7XG4gIG1vbnRoTGFiZWwgPSAnTU1NTSc7XG4gIHllYXJMYWJlbCA9ICdZWVlZJztcbiAgd2Vla051bWJlcnMgPSAndyc7XG5cbiAgLyoqXG4gICAqIFNob3dzICd0b2RheScgYnV0dG9uXG4gICAqL1xuICBzaG93VG9kYXlCdXR0b24gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2hvd3MgY2xlYXIgYnV0dG9uXG4gICAqL1xuICBzaG93Q2xlYXJCdXR0b24gPSBmYWxzZTtcblxuICAvKipcbiAgICogUG9zaXRpb25pbmcgb2YgJ3RvZGF5JyBidXR0b25cbiAgICovXG4gIHRvZGF5UG9zaXRpb24gPSAnY2VudGVyJztcblxuICAvKipcbiAgICogUG9zaXRpb25pbmcgb2YgJ2NsZWFyJyBidXR0b25cbiAgICovXG4gIGNsZWFyUG9zaXRpb24gPSAncmlnaHQnO1xuXG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgJ3RvZGF5JyBidXR0b25cbiAgICovXG4gIHRvZGF5QnV0dG9uTGFiZWwgPSAnVG9kYXknO1xuXG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgJ2NsZWFyJyBidXR0b25cbiAgICovXG4gIGNsZWFyQnV0dG9uTGFiZWwgPSAnQ2xlYXInO1xuXG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgJ2N1c3RvbSByYW5nZScgYnV0dG9uXG4gICAqL1xuICBjdXN0b21SYW5nZUJ1dHRvbkxhYmVsID0gJ0N1c3RvbSBSYW5nZSc7XG5cbiAgLyogVG8gZW5hYmxlIGVtbWlzc2lvbiBvZiBkYXRlIHJhbmdlIG9uIHNlbGVjdGluZyBzdGFydCBhbmQgZW5kIGRhdGVzICovXG4gIGVtaXRPbkRhdGVSYW5nZVNlbGVjdDogYm9vbGVhbiA9ICBmYWxzZTtcbn1cbiJdfQ==