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

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 (475) hide show
  1. package/dropdown/dropdown.component.d.ts +2 -1
  2. package/dynamic-form/dynamic-form.component.d.ts +10 -2
  3. package/esm2020/async-search-dropdown/async-dropdown.component.mjs +1 -1
  4. package/esm2020/dropdown/dropdown.component.mjs +79 -50
  5. package/esm2020/dynamic-form/dynamic-form.component.mjs +471 -213
  6. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  7. package/fesm2015/mis-crystal-design-system-dropdown.mjs +87 -49
  8. package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -1
  9. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +524 -212
  10. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  11. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  12. package/fesm2020/mis-crystal-design-system-dropdown.mjs +78 -49
  13. package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -1
  14. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +470 -212
  15. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  16. package/package.json +1 -9
  17. package/datepicker/base/bs-datepicker-container.d.ts +0 -44
  18. package/datepicker/bs-datepicker-inline.component.d.ts +0 -64
  19. package/datepicker/bs-datepicker-inline.config.d.ts +0 -6
  20. package/datepicker/bs-datepicker-input.directive.d.ts +0 -33
  21. package/datepicker/bs-datepicker.component.d.ts +0 -126
  22. package/datepicker/bs-datepicker.config.d.ts +0 -143
  23. package/datepicker/bs-datepicker.module.d.ts +0 -29
  24. package/datepicker/bs-daterangepicker-inline.component.d.ts +0 -64
  25. package/datepicker/bs-daterangepicker-inline.config.d.ts +0 -9
  26. package/datepicker/bs-daterangepicker-input.directive.d.ts +0 -33
  27. package/datepicker/bs-daterangepicker.component.d.ts +0 -118
  28. package/datepicker/bs-daterangepicker.config.d.ts +0 -7
  29. package/datepicker/bs-locale.service.d.ts +0 -13
  30. package/datepicker/chronos/create/check-overflow.d.ts +0 -2
  31. package/datepicker/chronos/create/clone.d.ts +0 -1
  32. package/datepicker/chronos/create/date-from-array.d.ts +0 -2
  33. package/datepicker/chronos/create/from-anything.d.ts +0 -4
  34. package/datepicker/chronos/create/from-array.d.ts +0 -2
  35. package/datepicker/chronos/create/from-object.d.ts +0 -2
  36. package/datepicker/chronos/create/from-string-and-array.d.ts +0 -2
  37. package/datepicker/chronos/create/from-string-and-format.d.ts +0 -4
  38. package/datepicker/chronos/create/from-string.d.ts +0 -4
  39. package/datepicker/chronos/create/local.d.ts +0 -3
  40. package/datepicker/chronos/create/parsing-flags.d.ts +0 -2
  41. package/datepicker/chronos/create/parsing.types.d.ts +0 -64
  42. package/datepicker/chronos/create/valid.d.ts +0 -6
  43. package/datepicker/chronos/duration/bubble.d.ts +0 -4
  44. package/datepicker/chronos/duration/constructor.d.ts +0 -21
  45. package/datepicker/chronos/duration/create.d.ts +0 -8
  46. package/datepicker/chronos/duration/humanize.d.ts +0 -5
  47. package/datepicker/chronos/duration/valid.d.ts +0 -2
  48. package/datepicker/chronos/format/format.d.ts +0 -11
  49. package/datepicker/chronos/format.d.ts +0 -5
  50. package/datepicker/chronos/i18n/ar.d.ts +0 -2
  51. package/datepicker/chronos/i18n/bg.d.ts +0 -2
  52. package/datepicker/chronos/i18n/ca.d.ts +0 -2
  53. package/datepicker/chronos/i18n/cs.d.ts +0 -2
  54. package/datepicker/chronos/i18n/da.d.ts +0 -2
  55. package/datepicker/chronos/i18n/de.d.ts +0 -2
  56. package/datepicker/chronos/i18n/en-gb.d.ts +0 -2
  57. package/datepicker/chronos/i18n/es-do.d.ts +0 -2
  58. package/datepicker/chronos/i18n/es-us.d.ts +0 -2
  59. package/datepicker/chronos/i18n/es.d.ts +0 -2
  60. package/datepicker/chronos/i18n/et.d.ts +0 -2
  61. package/datepicker/chronos/i18n/fi.d.ts +0 -2
  62. package/datepicker/chronos/i18n/fr.d.ts +0 -2
  63. package/datepicker/chronos/i18n/gl.d.ts +0 -2
  64. package/datepicker/chronos/i18n/he.d.ts +0 -2
  65. package/datepicker/chronos/i18n/hi.d.ts +0 -2
  66. package/datepicker/chronos/i18n/hr.d.ts +0 -2
  67. package/datepicker/chronos/i18n/hu.d.ts +0 -2
  68. package/datepicker/chronos/i18n/id.d.ts +0 -2
  69. package/datepicker/chronos/i18n/it.d.ts +0 -2
  70. package/datepicker/chronos/i18n/ja.d.ts +0 -2
  71. package/datepicker/chronos/i18n/ka.d.ts +0 -2
  72. package/datepicker/chronos/i18n/kk.d.ts +0 -2
  73. package/datepicker/chronos/i18n/ko.d.ts +0 -2
  74. package/datepicker/chronos/i18n/lt.d.ts +0 -2
  75. package/datepicker/chronos/i18n/lv.d.ts +0 -2
  76. package/datepicker/chronos/i18n/mn.d.ts +0 -2
  77. package/datepicker/chronos/i18n/nb.d.ts +0 -2
  78. package/datepicker/chronos/i18n/nl-be.d.ts +0 -2
  79. package/datepicker/chronos/i18n/nl.d.ts +0 -2
  80. package/datepicker/chronos/i18n/pl.d.ts +0 -2
  81. package/datepicker/chronos/i18n/pt-br.d.ts +0 -2
  82. package/datepicker/chronos/i18n/ro.d.ts +0 -2
  83. package/datepicker/chronos/i18n/ru.d.ts +0 -2
  84. package/datepicker/chronos/i18n/sk.d.ts +0 -2
  85. package/datepicker/chronos/i18n/sl.d.ts +0 -2
  86. package/datepicker/chronos/i18n/sq.d.ts +0 -2
  87. package/datepicker/chronos/i18n/sv.d.ts +0 -2
  88. package/datepicker/chronos/i18n/th-be.d.ts +0 -2
  89. package/datepicker/chronos/i18n/th.d.ts +0 -2
  90. package/datepicker/chronos/i18n/tr.d.ts +0 -2
  91. package/datepicker/chronos/i18n/uk.d.ts +0 -2
  92. package/datepicker/chronos/i18n/vi.d.ts +0 -2
  93. package/datepicker/chronos/i18n/zh-cn.d.ts +0 -2
  94. package/datepicker/chronos/index.d.ts +0 -1
  95. package/datepicker/chronos/locale/calendar.d.ts +0 -8
  96. package/datepicker/chronos/locale/locale.class.d.ts +0 -143
  97. package/datepicker/chronos/locale/locale.defaults.d.ts +0 -11
  98. package/datepicker/chronos/locale/locales.d.ts +0 -7
  99. package/datepicker/chronos/moment/add-subtract.d.ts +0 -5
  100. package/datepicker/chronos/moment/calendar.d.ts +0 -15
  101. package/datepicker/chronos/moment/diff.d.ts +0 -3
  102. package/datepicker/chronos/moment/min-max.d.ts +0 -2
  103. package/datepicker/chronos/parse/regex.d.ts +0 -22
  104. package/datepicker/chronos/parse/token.d.ts +0 -5
  105. package/datepicker/chronos/public_api.d.ts +0 -57
  106. package/datepicker/chronos/test/chain.d.ts +0 -214
  107. package/datepicker/chronos/types.d.ts +0 -36
  108. package/datepicker/chronos/units/aliases.d.ts +0 -7
  109. package/datepicker/chronos/units/constants.d.ts +0 -9
  110. package/datepicker/chronos/units/day-of-month.d.ts +0 -1
  111. package/datepicker/chronos/units/day-of-week.d.ts +0 -20
  112. package/datepicker/chronos/units/day-of-year.d.ts +0 -3
  113. package/datepicker/chronos/units/hour.d.ts +0 -1
  114. package/datepicker/chronos/units/index.d.ts +0 -18
  115. package/datepicker/chronos/units/millisecond.d.ts +0 -1
  116. package/datepicker/chronos/units/minute.d.ts +0 -1
  117. package/datepicker/chronos/units/month.d.ts +0 -2
  118. package/datepicker/chronos/units/offset.d.ts +0 -10
  119. package/datepicker/chronos/units/priorities.d.ts +0 -1
  120. package/datepicker/chronos/units/quarter.d.ts +0 -3
  121. package/datepicker/chronos/units/second.d.ts +0 -1
  122. package/datepicker/chronos/units/timestamp.d.ts +0 -1
  123. package/datepicker/chronos/units/timezone.d.ts +0 -3
  124. package/datepicker/chronos/units/week-calendar-utils.d.ts +0 -9
  125. package/datepicker/chronos/units/week-year.d.ts +0 -8
  126. package/datepicker/chronos/units/week.d.ts +0 -6
  127. package/datepicker/chronos/units/year.d.ts +0 -4
  128. package/datepicker/chronos/utils/abs-ceil.d.ts +0 -1
  129. package/datepicker/chronos/utils/abs-round.d.ts +0 -1
  130. package/datepicker/chronos/utils/compare-arrays.d.ts +0 -1
  131. package/datepicker/chronos/utils/date-compare.d.ts +0 -9
  132. package/datepicker/chronos/utils/date-getters.d.ts +0 -18
  133. package/datepicker/chronos/utils/date-setters.d.ts +0 -12
  134. package/datepicker/chronos/utils/defaults.d.ts +0 -1
  135. package/datepicker/chronos/utils/start-end-of.d.ts +0 -3
  136. package/datepicker/chronos/utils/type-checks.d.ts +0 -12
  137. package/datepicker/chronos/utils/zero-fill.d.ts +0 -1
  138. package/datepicker/chronos/utils.d.ts +0 -2
  139. package/datepicker/component-loader/bs-component-ref.class.d.ts +0 -5
  140. package/datepicker/component-loader/component-loader.class.d.ts +0 -75
  141. package/datepicker/component-loader/component-loader.factory.d.ts +0 -21
  142. package/datepicker/component-loader/content-ref.class.d.ts +0 -7
  143. package/datepicker/component-loader/index.d.ts +0 -1
  144. package/datepicker/component-loader/listen-options.model.d.ts +0 -11
  145. package/datepicker/component-loader/public_api.d.ts +0 -4
  146. package/datepicker/date-formatter.d.ts +0 -3
  147. package/datepicker/datepicker-animations.d.ts +0 -3
  148. package/datepicker/datepicker-inner.component.d.ts +0 -78
  149. package/datepicker/datepicker.component.d.ts +0 -81
  150. package/datepicker/datepicker.config.d.ts +0 -22
  151. package/datepicker/datepicker.module.d.ts +0 -15
  152. package/datepicker/daypicker.component.d.ts +0 -17
  153. package/datepicker/engine/calc-days-calendar.d.ts +0 -2
  154. package/datepicker/engine/flag-days-calendar.d.ts +0 -17
  155. package/datepicker/engine/flag-months-calendar.d.ts +0 -12
  156. package/datepicker/engine/flag-years-calendar.d.ts +0 -12
  157. package/datepicker/engine/format-days-calendar.d.ts +0 -4
  158. package/datepicker/engine/format-months-calendar.d.ts +0 -2
  159. package/datepicker/engine/format-years-calendar.d.ts +0 -4
  160. package/datepicker/engine/view-mode.d.ts +0 -2
  161. package/datepicker/index.d.ts +0 -1
  162. package/datepicker/mini-ngrx/index.d.ts +0 -1
  163. package/datepicker/mini-ngrx/public_api.d.ts +0 -7
  164. package/datepicker/mini-ngrx/state.class.d.ts +0 -8
  165. package/datepicker/mini-ngrx/store.class.d.ts +0 -16
  166. package/datepicker/models/index.d.ts +0 -102
  167. package/datepicker/monthpicker.component.d.ts +0 -14
  168. package/datepicker/positioning/index.d.ts +0 -1
  169. package/datepicker/positioning/models/index.d.ts +0 -41
  170. package/datepicker/positioning/modifiers/arrow.d.ts +0 -2
  171. package/datepicker/positioning/modifiers/flip.d.ts +0 -2
  172. package/datepicker/positioning/modifiers/index.d.ts +0 -5
  173. package/datepicker/positioning/modifiers/initData.d.ts +0 -2
  174. package/datepicker/positioning/modifiers/preventOverflow.d.ts +0 -2
  175. package/datepicker/positioning/modifiers/shift.d.ts +0 -2
  176. package/datepicker/positioning/ng-positioning.d.ts +0 -8
  177. package/datepicker/positioning/positioning.service.d.ts +0 -48
  178. package/datepicker/positioning/public_api.d.ts +0 -2
  179. package/datepicker/positioning/utils/computeAutoPlacement.d.ts +0 -2
  180. package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +0 -1
  181. package/datepicker/positioning/utils/getBordersSize.d.ts +0 -4
  182. package/datepicker/positioning/utils/getBoundaries.d.ts +0 -1
  183. package/datepicker/positioning/utils/getBoundingClientRect.d.ts +0 -2
  184. package/datepicker/positioning/utils/getClientRect.d.ts +0 -5
  185. package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +0 -4
  186. package/datepicker/positioning/utils/getOffsetParent.d.ts +0 -1
  187. package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +0 -2
  188. package/datepicker/positioning/utils/getOffsets.d.ts +0 -2
  189. package/datepicker/positioning/utils/getOppositePlacement.d.ts +0 -4
  190. package/datepicker/positioning/utils/getOppositeVariation.d.ts +0 -4
  191. package/datepicker/positioning/utils/getOuterSizes.d.ts +0 -7
  192. package/datepicker/positioning/utils/getParentNode.d.ts +0 -4
  193. package/datepicker/positioning/utils/getReferenceOffsets.d.ts +0 -2
  194. package/datepicker/positioning/utils/getRoot.d.ts +0 -4
  195. package/datepicker/positioning/utils/getScroll.d.ts +0 -4
  196. package/datepicker/positioning/utils/getScrollParent.d.ts +0 -1
  197. package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +0 -4
  198. package/datepicker/positioning/utils/getTargetOffsets.d.ts +0 -2
  199. package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +0 -2
  200. package/datepicker/positioning/utils/getWindowSizes.d.ts +0 -4
  201. package/datepicker/positioning/utils/includeScroll.d.ts +0 -2
  202. package/datepicker/positioning/utils/index.d.ts +0 -23
  203. package/datepicker/positioning/utils/isBrowser.d.ts +0 -1
  204. package/datepicker/positioning/utils/isFixed.d.ts +0 -1
  205. package/datepicker/positioning/utils/isIE.d.ts +0 -1
  206. package/datepicker/positioning/utils/isModifierEnabled.d.ts +0 -4
  207. package/datepicker/positioning/utils/isNumeric.d.ts +0 -4
  208. package/datepicker/positioning/utils/isOffsetContainer.d.ts +0 -1
  209. package/datepicker/positioning/utils/setStyles.d.ts +0 -5
  210. package/datepicker/positioning/utils/updateContainerClass.d.ts +0 -6
  211. package/datepicker/public_api.d.ts +0 -25
  212. package/datepicker/reducer/_defaults.d.ts +0 -2
  213. package/datepicker/reducer/bs-datepicker.actions.d.ts +0 -46
  214. package/datepicker/reducer/bs-datepicker.effects.d.ts +0 -41
  215. package/datepicker/reducer/bs-datepicker.reducer.d.ts +0 -3
  216. package/datepicker/reducer/bs-datepicker.state.d.ts +0 -43
  217. package/datepicker/reducer/bs-datepicker.store.d.ts +0 -8
  218. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +0 -5
  219. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +0 -6
  220. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +0 -17
  221. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +0 -36
  222. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +0 -14
  223. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +0 -13
  224. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +0 -12
  225. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +0 -40
  226. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +0 -13
  227. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +0 -26
  228. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +0 -16
  229. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +0 -8
  230. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +0 -16
  231. package/datepicker/utils/bs-calendar-utils.d.ts +0 -10
  232. package/datepicker/utils/matrix-utils.d.ts +0 -9
  233. package/datepicker/utils-v2/decorators.d.ts +0 -1
  234. package/datepicker/utils-v2/facade/browser.d.ts +0 -23
  235. package/datepicker/utils-v2/index.d.ts +0 -1
  236. package/datepicker/utils-v2/linked-list.class.d.ts +0 -26
  237. package/datepicker/utils-v2/public_api.d.ts +0 -10
  238. package/datepicker/utils-v2/theme-provider.d.ts +0 -2
  239. package/datepicker/utils-v2/trigger.class.d.ts +0 -6
  240. package/datepicker/utils-v2/triggers.d.ts +0 -18
  241. package/datepicker/utils-v2/utils.class.d.ts +0 -4
  242. package/datepicker/utils-v2/warn-once.d.ts +0 -1
  243. package/datepicker/yearpicker.component.d.ts +0 -14
  244. package/esm2020/datepicker/base/bs-datepicker-container.mjs +0 -47
  245. package/esm2020/datepicker/bs-datepicker-inline.component.mjs +0 -137
  246. package/esm2020/datepicker/bs-datepicker-inline.config.mjs +0 -14
  247. package/esm2020/datepicker/bs-datepicker-input.directive.mjs +0 -160
  248. package/esm2020/datepicker/bs-datepicker.component.mjs +0 -254
  249. package/esm2020/datepicker/bs-datepicker.config.mjs +0 -87
  250. package/esm2020/datepicker/bs-datepicker.module.mjs +0 -126
  251. package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +0 -134
  252. package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +0 -21
  253. package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +0 -192
  254. package/esm2020/datepicker/bs-daterangepicker.component.mjs +0 -240
  255. package/esm2020/datepicker/bs-daterangepicker.config.mjs +0 -19
  256. package/esm2020/datepicker/bs-locale.service.mjs +0 -32
  257. package/esm2020/datepicker/chronos/create/check-overflow.mjs +0 -30
  258. package/esm2020/datepicker/chronos/create/clone.mjs +0 -6
  259. package/esm2020/datepicker/chronos/create/date-from-array.mjs +0 -17
  260. package/esm2020/datepicker/chronos/create/from-anything.mjs +0 -107
  261. package/esm2020/datepicker/chronos/create/from-array.mjs +0 -136
  262. package/esm2020/datepicker/chronos/create/from-object.mjs +0 -17
  263. package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +0 -38
  264. package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +0 -106
  265. package/esm2020/datepicker/chronos/create/from-string.mjs +0 -227
  266. package/esm2020/datepicker/chronos/create/local.mjs +0 -16
  267. package/esm2020/datepicker/chronos/create/parsing-flags.mjs +0 -26
  268. package/esm2020/datepicker/chronos/create/parsing.types.mjs +0 -2
  269. package/esm2020/datepicker/chronos/create/valid.mjs +0 -42
  270. package/esm2020/datepicker/chronos/duration/bubble.mjs +0 -47
  271. package/esm2020/datepicker/chronos/duration/constructor.mjs +0 -130
  272. package/esm2020/datepicker/chronos/duration/create.mjs +0 -113
  273. package/esm2020/datepicker/chronos/duration/humanize.mjs +0 -80
  274. package/esm2020/datepicker/chronos/duration/valid.mjs +0 -43
  275. package/esm2020/datepicker/chronos/format/format.mjs +0 -51
  276. package/esm2020/datepicker/chronos/format.mjs +0 -46
  277. package/esm2020/datepicker/chronos/i18n/ar.mjs +0 -128
  278. package/esm2020/datepicker/chronos/i18n/bg.mjs +0 -94
  279. package/esm2020/datepicker/chronos/i18n/ca.mjs +0 -91
  280. package/esm2020/datepicker/chronos/i18n/cs.mjs +0 -179
  281. package/esm2020/datepicker/chronos/i18n/da.mjs +0 -50
  282. package/esm2020/datepicker/chronos/i18n/de.mjs +0 -72
  283. package/esm2020/datepicker/chronos/i18n/en-gb.mjs +0 -61
  284. package/esm2020/datepicker/chronos/i18n/es-do.mjs +0 -85
  285. package/esm2020/datepicker/chronos/i18n/es-us.mjs +0 -79
  286. package/esm2020/datepicker/chronos/i18n/es.mjs +0 -84
  287. package/esm2020/datepicker/chronos/i18n/et.mjs +0 -73
  288. package/esm2020/datepicker/chronos/i18n/fi.mjs +0 -100
  289. package/esm2020/datepicker/chronos/i18n/fr.mjs +0 -76
  290. package/esm2020/datepicker/chronos/i18n/gl.mjs +0 -84
  291. package/esm2020/datepicker/chronos/i18n/he.mjs +0 -98
  292. package/esm2020/datepicker/chronos/i18n/hi.mjs +0 -124
  293. package/esm2020/datepicker/chronos/i18n/hr.mjs +0 -62
  294. package/esm2020/datepicker/chronos/i18n/hu.mjs +0 -104
  295. package/esm2020/datepicker/chronos/i18n/id.mjs +0 -83
  296. package/esm2020/datepicker/chronos/i18n/it.mjs +0 -65
  297. package/esm2020/datepicker/chronos/i18n/ja.mjs +0 -75
  298. package/esm2020/datepicker/chronos/i18n/ka.mjs +0 -87
  299. package/esm2020/datepicker/chronos/i18n/kk.mjs +0 -76
  300. package/esm2020/datepicker/chronos/i18n/ko.mjs +0 -77
  301. package/esm2020/datepicker/chronos/i18n/lt.mjs +0 -116
  302. package/esm2020/datepicker/chronos/i18n/lv.mjs +0 -56
  303. package/esm2020/datepicker/chronos/i18n/mn.mjs +0 -99
  304. package/esm2020/datepicker/chronos/i18n/nb.mjs +0 -53
  305. package/esm2020/datepicker/chronos/i18n/nl-be.mjs +0 -81
  306. package/esm2020/datepicker/chronos/i18n/nl.mjs +0 -80
  307. package/esm2020/datepicker/chronos/i18n/pl.mjs +0 -126
  308. package/esm2020/datepicker/chronos/i18n/pt-br.mjs +0 -56
  309. package/esm2020/datepicker/chronos/i18n/ro.mjs +0 -66
  310. package/esm2020/datepicker/chronos/i18n/ru.mjs +0 -181
  311. package/esm2020/datepicker/chronos/i18n/sk.mjs +0 -157
  312. package/esm2020/datepicker/chronos/i18n/sl.mjs +0 -184
  313. package/esm2020/datepicker/chronos/i18n/sq.mjs +0 -54
  314. package/esm2020/datepicker/chronos/i18n/sv.mjs +0 -63
  315. package/esm2020/datepicker/chronos/i18n/th-be.mjs +0 -74
  316. package/esm2020/datepicker/chronos/i18n/th.mjs +0 -59
  317. package/esm2020/datepicker/chronos/i18n/tr.mjs +0 -82
  318. package/esm2020/datepicker/chronos/i18n/uk.mjs +0 -147
  319. package/esm2020/datepicker/chronos/i18n/vi.mjs +0 -74
  320. package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +0 -114
  321. package/esm2020/datepicker/chronos/index.mjs +0 -2
  322. package/esm2020/datepicker/chronos/locale/calendar.mjs +0 -9
  323. package/esm2020/datepicker/chronos/locale/locale.class.mjs +0 -532
  324. package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +0 -40
  325. package/esm2020/datepicker/chronos/locale/locales.mjs +0 -229
  326. package/esm2020/datepicker/chronos/moment/add-subtract.mjs +0 -35
  327. package/esm2020/datepicker/chronos/moment/calendar.mjs +0 -41
  328. package/esm2020/datepicker/chronos/moment/diff.mjs +0 -70
  329. package/esm2020/datepicker/chronos/moment/min-max.mjs +0 -38
  330. package/esm2020/datepicker/chronos/parse/regex.mjs +0 -49
  331. package/esm2020/datepicker/chronos/parse/token.mjs +0 -32
  332. package/esm2020/datepicker/chronos/public_api.mjs +0 -56
  333. package/esm2020/datepicker/chronos/test/chain.mjs +0 -711
  334. package/esm2020/datepicker/chronos/types.mjs +0 -2
  335. package/esm2020/datepicker/chronos/units/aliases.mjs +0 -35
  336. package/esm2020/datepicker/chronos/units/constants.mjs +0 -11
  337. package/esm2020/datepicker/chronos/units/day-of-month.mjs +0 -31
  338. package/esm2020/datepicker/chronos/units/day-of-week.mjs +0 -129
  339. package/esm2020/datepicker/chronos/units/day-of-year.mjs +0 -37
  340. package/esm2020/datepicker/chronos/units/hour.mjs +0 -127
  341. package/esm2020/datepicker/chronos/units/index.mjs +0 -19
  342. package/esm2020/datepicker/chronos/units/millisecond.mjs +0 -60
  343. package/esm2020/datepicker/chronos/units/minute.mjs +0 -23
  344. package/esm2020/datepicker/chronos/units/month.mjs +0 -63
  345. package/esm2020/datepicker/chronos/units/offset.mjs +0 -210
  346. package/esm2020/datepicker/chronos/units/priorities.mjs +0 -21
  347. package/esm2020/datepicker/chronos/units/quarter.mjs +0 -39
  348. package/esm2020/datepicker/chronos/units/second.mjs +0 -23
  349. package/esm2020/datepicker/chronos/units/timestamp.mjs +0 -28
  350. package/esm2020/datepicker/chronos/units/timezone.mjs +0 -19
  351. package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +0 -70
  352. package/esm2020/datepicker/chronos/units/week-year.mjs +0 -101
  353. package/esm2020/datepicker/chronos/units/week.mjs +0 -58
  354. package/esm2020/datepicker/chronos/units/year.mjs +0 -60
  355. package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +0 -4
  356. package/esm2020/datepicker/chronos/utils/abs-round.mjs +0 -4
  357. package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +0 -16
  358. package/esm2020/datepicker/chronos/utils/date-compare.mjs +0 -55
  359. package/esm2020/datepicker/chronos/utils/date-getters.mjs +0 -67
  360. package/esm2020/datepicker/chronos/utils/date-setters.mjs +0 -75
  361. package/esm2020/datepicker/chronos/utils/defaults.mjs +0 -11
  362. package/esm2020/datepicker/chronos/utils/start-end-of.mjs +0 -57
  363. package/esm2020/datepicker/chronos/utils/type-checks.mjs +0 -56
  364. package/esm2020/datepicker/chronos/utils/zero-fill.mjs +0 -10
  365. package/esm2020/datepicker/chronos/utils.mjs +0 -7
  366. package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +0 -3
  367. package/esm2020/datepicker/component-loader/component-loader.class.mjs +0 -272
  368. package/esm2020/datepicker/component-loader/component-loader.factory.mjs +0 -29
  369. package/esm2020/datepicker/component-loader/content-ref.class.mjs +0 -12
  370. package/esm2020/datepicker/component-loader/index.mjs +0 -2
  371. package/esm2020/datepicker/component-loader/listen-options.model.mjs +0 -2
  372. package/esm2020/datepicker/component-loader/public_api.mjs +0 -5
  373. package/esm2020/datepicker/date-formatter.mjs +0 -7
  374. package/esm2020/datepicker/datepicker-animations.mjs +0 -16
  375. package/esm2020/datepicker/datepicker-inner.component.mjs +0 -323
  376. package/esm2020/datepicker/datepicker.component.mjs +0 -182
  377. package/esm2020/datepicker/datepicker.config.mjs +0 -32
  378. package/esm2020/datepicker/datepicker.module.mjs +0 -49
  379. package/esm2020/datepicker/daypicker.component.mjs +0 -314
  380. package/esm2020/datepicker/engine/calc-days-calendar.mjs +0 -19
  381. package/esm2020/datepicker/engine/flag-days-calendar.mjs +0 -91
  382. package/esm2020/datepicker/engine/flag-months-calendar.mjs +0 -41
  383. package/esm2020/datepicker/engine/flag-years-calendar.mjs +0 -39
  384. package/esm2020/datepicker/engine/format-days-calendar.mjs +0 -29
  385. package/esm2020/datepicker/engine/format-months-calendar.mjs +0 -19
  386. package/esm2020/datepicker/engine/format-years-calendar.mjs +0 -35
  387. package/esm2020/datepicker/engine/view-mode.mjs +0 -4
  388. package/esm2020/datepicker/index.mjs +0 -2
  389. package/esm2020/datepicker/mini-ngrx/index.mjs +0 -2
  390. package/esm2020/datepicker/mini-ngrx/public_api.mjs +0 -3
  391. package/esm2020/datepicker/mini-ngrx/state.class.mjs +0 -16
  392. package/esm2020/datepicker/mini-ngrx/store.class.mjs +0 -43
  393. package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +0 -5
  394. package/esm2020/datepicker/models/index.mjs +0 -9
  395. package/esm2020/datepicker/monthpicker.component.mjs +0 -145
  396. package/esm2020/datepicker/positioning/index.mjs +0 -2
  397. package/esm2020/datepicker/positioning/models/index.mjs +0 -2
  398. package/esm2020/datepicker/positioning/modifiers/arrow.mjs +0 -56
  399. package/esm2020/datepicker/positioning/modifiers/flip.mjs +0 -66
  400. package/esm2020/datepicker/positioning/modifiers/index.mjs +0 -6
  401. package/esm2020/datepicker/positioning/modifiers/initData.mjs +0 -42
  402. package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +0 -59
  403. package/esm2020/datepicker/positioning/modifiers/shift.mjs +0 -24
  404. package/esm2020/datepicker/positioning/ng-positioning.mjs +0 -30
  405. package/esm2020/datepicker/positioning/positioning.service.mjs +0 -75
  406. package/esm2020/datepicker/positioning/public_api.mjs +0 -3
  407. package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +0 -57
  408. package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +0 -40
  409. package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +0 -10
  410. package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +0 -56
  411. package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +0 -55
  412. package/esm2020/datepicker/positioning/utils/getClientRect.mjs +0 -8
  413. package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +0 -17
  414. package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +0 -32
  415. package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -51
  416. package/esm2020/datepicker/positioning/utils/getOffsets.mjs +0 -11
  417. package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +0 -8
  418. package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +0 -13
  419. package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +0 -14
  420. package/esm2020/datepicker/positioning/utils/getParentNode.mjs +0 -10
  421. package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +0 -13
  422. package/esm2020/datepicker/positioning/utils/getRoot.mjs +0 -10
  423. package/esm2020/datepicker/positioning/utils/getScroll.mjs +0 -14
  424. package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +0 -26
  425. package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +0 -13
  426. package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +0 -30
  427. package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -19
  428. package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +0 -18
  429. package/esm2020/datepicker/positioning/utils/includeScroll.mjs +0 -15
  430. package/esm2020/datepicker/positioning/utils/index.mjs +0 -24
  431. package/esm2020/datepicker/positioning/utils/isBrowser.mjs +0 -2
  432. package/esm2020/datepicker/positioning/utils/isFixed.mjs +0 -16
  433. package/esm2020/datepicker/positioning/utils/isIE.mjs +0 -16
  434. package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +0 -10
  435. package/esm2020/datepicker/positioning/utils/isNumeric.mjs +0 -7
  436. package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +0 -9
  437. package/esm2020/datepicker/positioning/utils/setStyles.mjs +0 -17
  438. package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +0 -22
  439. package/esm2020/datepicker/public_api.mjs +0 -25
  440. package/esm2020/datepicker/reducer/_defaults.mjs +0 -5
  441. package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +0 -136
  442. package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +0 -169
  443. package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +0 -302
  444. package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +0 -12
  445. package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +0 -21
  446. package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +0 -54
  447. package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +0 -23
  448. package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +0 -78
  449. package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +0 -319
  450. package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +0 -52
  451. package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +0 -203
  452. package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +0 -111
  453. package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +0 -362
  454. package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +0 -203
  455. package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +0 -308
  456. package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +0 -106
  457. package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +0 -64
  458. package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +0 -107
  459. package/esm2020/datepicker/utils/bs-calendar-utils.mjs +0 -43
  460. package/esm2020/datepicker/utils/matrix-utils.mjs +0 -14
  461. package/esm2020/datepicker/utils-v2/decorators.mjs +0 -25
  462. package/esm2020/datepicker/utils-v2/facade/browser.mjs +0 -24
  463. package/esm2020/datepicker/utils-v2/index.mjs +0 -2
  464. package/esm2020/datepicker/utils-v2/linked-list.class.mjs +0 -240
  465. package/esm2020/datepicker/utils-v2/public_api.mjs +0 -11
  466. package/esm2020/datepicker/utils-v2/theme-provider.mjs +0 -35
  467. package/esm2020/datepicker/utils-v2/trigger.class.mjs +0 -10
  468. package/esm2020/datepicker/utils-v2/triggers.mjs +0 -110
  469. package/esm2020/datepicker/utils-v2/utils.class.mjs +0 -21
  470. package/esm2020/datepicker/utils-v2/warn-once.mjs +0 -12
  471. package/esm2020/datepicker/yearpicker.component.mjs +0 -147
  472. package/fesm2015/mis-crystal-design-system-datepicker.mjs +0 -14950
  473. package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +0 -1
  474. package/fesm2020/mis-crystal-design-system-datepicker.mjs +0 -14572
  475. package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +0 -1
@@ -1,134 +0,0 @@
1
- import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
- import { filter } from 'rxjs/operators';
3
- import { MisDatePickerConfig } from './bs-datepicker.config';
4
- import { MisDateRangePickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./bs-daterangepicker-inline.config";
7
- import * as i2 from "./component-loader";
8
- export class MisDateRangePickerInlineDirective {
9
- constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
10
- this._config = _config;
11
- this._elementRef = _elementRef;
12
- /**
13
- * Emits when daterangepicker value has been changed
14
- */
15
- this.bsValueChange = new EventEmitter();
16
- this._subs = [];
17
- // todo: assign only subset of fields
18
- Object.assign(this, this._config);
19
- this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
20
- }
21
- /**
22
- * Initial value of datepicker
23
- */
24
- set bsValue(value) {
25
- if (this._bsValue === value) {
26
- return;
27
- }
28
- this._bsValue = value;
29
- this.bsValueChange.emit(value);
30
- }
31
- ngOnInit() {
32
- this.setConfig();
33
- // if date changes from external source (model -> view)
34
- this._subs.push(this.bsValueChange.subscribe((value) => {
35
- this._datepickerRef.instance.value = value;
36
- }));
37
- // if date changes from picker (view -> model)
38
- this._subs.push(this._datepickerRef.instance.valueChange
39
- .pipe(filter((range) => range && range[0] && !!range[1]))
40
- .subscribe((value) => {
41
- this.bsValue = value;
42
- }));
43
- }
44
- ngOnChanges(changes) {
45
- if (!this._datepickerRef || !this._datepickerRef.instance) {
46
- return;
47
- }
48
- if (changes.minDate) {
49
- this._datepickerRef.instance.minDate = this.minDate;
50
- this.setConfig();
51
- }
52
- if (changes.maxDate) {
53
- this._datepickerRef.instance.maxDate = this.maxDate;
54
- this.setConfig();
55
- }
56
- if (changes.datesEnabled) {
57
- this._datepickerRef.instance.datesEnabled = this.datesEnabled;
58
- }
59
- if (changes.datesDisabled) {
60
- this._datepickerRef.instance.datesDisabled = this.datesDisabled;
61
- this.setConfig();
62
- }
63
- if (changes.daysDisabled) {
64
- this._datepickerRef.instance.daysDisabled = this.daysDisabled;
65
- this.setConfig();
66
- }
67
- if (changes.isDisabled) {
68
- this._datepickerRef.instance.isDisabled = this.isDisabled;
69
- this.setConfig();
70
- }
71
- if (changes.dateCustomClasses) {
72
- this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
73
- this.setConfig();
74
- }
75
- }
76
- /**
77
- * Set config for datepicker
78
- */
79
- setConfig() {
80
- if (this._datepicker) {
81
- this._datepicker.hide();
82
- }
83
- this._config = Object.assign({}, this._config, this.misConfig, {
84
- value: this._bsValue,
85
- isDisabled: this.isDisabled,
86
- minDate: this.minDate || this.misConfig && this.misConfig.minDate,
87
- maxDate: this.maxDate || this.misConfig && this.misConfig.maxDate,
88
- daysDisabled: this.daysDisabled || this.misConfig && this.misConfig.daysDisabled,
89
- dateCustomClasses: this.dateCustomClasses || this.misConfig && this.misConfig.dateCustomClasses,
90
- datesDisabled: this.datesDisabled || this.misConfig && this.misConfig.datesDisabled,
91
- datesEnabled: this.datesEnabled || this.misConfig && this.misConfig.datesEnabled,
92
- ranges: this.misConfig && this.misConfig.ranges,
93
- maxDateRange: this.misConfig && this.misConfig.maxDateRange
94
- });
95
- this._datepickerRef = this._datepicker
96
- .provide({ provide: MisDatePickerConfig, useValue: this._config })
97
- .attach(MisDateRangePickerInlineContainerComponent)
98
- .to(this._elementRef)
99
- .show();
100
- }
101
- ngOnDestroy() {
102
- this._datepicker.dispose();
103
- }
104
- }
105
- MisDateRangePickerInlineDirective.ɵfac = function MisDateRangePickerInlineDirective_Factory(t) { return new (t || MisDateRangePickerInlineDirective)(i0.ɵɵdirectiveInject(i1.MisDateRangePickerInlineConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.ComponentLoaderFactory)); };
106
- MisDateRangePickerInlineDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MisDateRangePickerInlineDirective, selectors: [["mis-daterangepicker-inline"]], inputs: { bsValue: "bsValue", misConfig: "misConfig", isDisabled: "isDisabled", minDate: "minDate", maxDate: "maxDate", dateCustomClasses: "dateCustomClasses", daysDisabled: "daysDisabled", datesDisabled: "datesDisabled", datesEnabled: "datesEnabled" }, outputs: { bsValueChange: "bsValueChange" }, exportAs: ["misDateRangePickerInline"], features: [i0.ɵɵNgOnChangesFeature] });
107
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDateRangePickerInlineDirective, [{
108
- type: Directive,
109
- args: [{
110
- selector: 'mis-daterangepicker-inline',
111
- exportAs: 'misDateRangePickerInline'
112
- }]
113
- }], function () { return [{ type: i1.MisDateRangePickerInlineConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }]; }, { bsValue: [{
114
- type: Input
115
- }], misConfig: [{
116
- type: Input
117
- }], isDisabled: [{
118
- type: Input
119
- }], minDate: [{
120
- type: Input
121
- }], maxDate: [{
122
- type: Input
123
- }], dateCustomClasses: [{
124
- type: Input
125
- }], daysDisabled: [{
126
- type: Input
127
- }], datesDisabled: [{
128
- type: Input
129
- }], datesEnabled: [{
130
- type: Input
131
- }], bsValueChange: [{
132
- type: Output
133
- }] }); })();
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci1pbmxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDUyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFDckMsTUFBTSxFQUMxQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7QUFPdkgsTUFBTSxPQUFPLGlDQUFpQztJQXdENUMsWUFDUyxPQUF1QyxFQUN0QyxXQUF1QixFQUMvQixTQUFvQixFQUNwQixpQkFBbUMsRUFDbkMsR0FBMkI7UUFKcEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0M7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFaakM7O1dBRUc7UUFDTyxrQkFBYSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBWW5DLHFDQUFxQztRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUNqQyxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztJQXBFRDs7T0FFRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJ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QUksQ0FBQyxXQUFXLENBQUM7YUFDcEIsSUFBSSxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7a0hBcktVLGlDQUFpQztvRkFBakMsaUNBQWlDO3VGQUFqQyxpQ0FBaUM7Y0FKN0MsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRSwwQkFBMEI7YUFDckM7c01BT0ssT0FBTztrQkFEVixLQUFLO1lBWUcsU0FBUztrQkFBakIsS0FBSztZQUlHLFVBQVU7a0JBQWxCLEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFJRyxZQUFZO2tCQUFwQixLQUFLO1lBSUcsYUFBYTtrQkFBckIsS0FBSztZQUlHLFlBQVk7a0JBQXBCLEtBQUs7WUFJSSxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuL2NvbXBvbmVudC1sb2FkZXInO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWlzRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgTWlzRGF0ZVJhbmdlUGlja2VySW5saW5lQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLmNvbmZpZyc7XG5pbXBvcnQgeyBNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3RoZW1lcy9icy9icy1kYXRlcmFuZ2VwaWNrZXItaW5saW5lLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckRhdGVDdXN0b21DbGFzc2VzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdtaXMtZGF0ZXJhbmdlcGlja2VyLWlubGluZScsXG4gIGV4cG9ydEFzOiAnbWlzRGF0ZVJhbmdlUGlja2VySW5saW5lJ1xufSlcbmV4cG9ydCBjbGFzcyBNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgX2JzVmFsdWU6IERhdGVbXTtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgZGF0ZXBpY2tlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGJzVmFsdWUodmFsdWU6IERhdGVbXSkge1xuICAgIGlmICh0aGlzLl9ic1ZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9ic1ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5ic1ZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZyBvYmplY3QgZm9yIGRhdGVwaWNrZXJcbiAgICovXG4gIEBJbnB1dCgpIG1pc0NvbmZpZzogUGFydGlhbDxNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb25maWc+O1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgZGF0ZXBpY2tlciBpcyBlbmFibGVkIG9yIG5vdFxuICAgKi9cbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1pbmltdW0gZGF0ZSB3aGljaCBpcyBhdmFpbGFibGUgZm9yIHNlbGVjdGlvblxuICAgKi9cbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIE1heGltdW0gZGF0ZSB3aGljaCBpcyBhdmFpbGFibGUgZm9yIHNlbGVjdGlvblxuICAgKi9cbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIERhdGUgY3VzdG9tIGNsYXNzZXNcbiAgICovXG4gIEBJbnB1dCgpIGRhdGVDdXN0b21DbGFzc2VzOiBEYXRlUGlja2VyRGF0ZUN1c3RvbUNsYXNzZXNbXTtcbiAgLyoqXG4gICAqIERpc2FibGUgc3BlY2lmaWMgZGF5cywgZS5nLiBbMCw2XSB3aWxsIGRpc2FibGUgYWxsIFNhdHVyZGF5cyBhbmQgU3VuZGF5c1xuICAgKi9cbiAgQElucHV0KCkgZGF5c0Rpc2FibGVkPzogbnVtYmVyW107XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRhdGVzXG4gICAqL1xuICBASW5wdXQoKSBkYXRlc0Rpc2FibGVkOiBEYXRlW107XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRhdGVzXG4gICAqL1xuICBASW5wdXQoKSBkYXRlc0VuYWJsZWQ6IERhdGVbXTtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGF0ZXJhbmdlcGlja2VyIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBic1ZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBfZGF0ZXBpY2tlcjogQ29tcG9uZW50TG9hZGVyPE1pc0RhdGVSYW5nZVBpY2tlcklubGluZUNvbnRhaW5lckNvbXBvbmVudD47XG4gIHByaXZhdGUgX2RhdGVwaWNrZXJSZWY6IENvbXBvbmVudFJlZjxNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfY29uZmlnOiBNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb25maWcsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBjaXM6IENvbXBvbmVudExvYWRlckZhY3RvcnlcbiAgKSB7XG4gICAgLy8gdG9kbzogYXNzaWduIG9ubHkgc3Vic2V0IG9mIGZpZWxkc1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgdGhpcy5fY29uZmlnKTtcbiAgICB0aGlzLl9kYXRlcGlja2VyID0gY2lzLmNyZWF0ZUxvYWRlcjxNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQ+KFxuICAgICAgX2VsZW1lbnRSZWYsXG4gICAgICBfdmlld0NvbnRhaW5lclJlZixcbiAgICAgIF9yZW5kZXJlclxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENvbmZpZygpO1xuXG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gZXh0ZXJuYWwgc291cmNlIChtb2RlbCAtPiB2aWV3KVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuYnNWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gaWYgZGF0ZSBjaGFuZ2VzIGZyb20gcGlja2VyICh2aWV3IC0+IG1vZGVsKVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UudmFsdWVDaGFuZ2VcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChyYW5nZTogRGF0ZVtdKSA9PiByYW5nZSAmJiByYW5nZVswXSAmJiAhIXJhbmdlWzFdKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlW10pID0+IHtcbiAgICAgICAgICB0aGlzLmJzVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGF0ZXBpY2tlclJlZiB8fCAhdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm1pbkRhdGUpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UubWluRGF0ZSA9IHRoaXMubWluRGF0ZTtcbiAgICAgIHRoaXMuc2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMubWF4RGF0ZSkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5tYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xuICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kYXRlc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF0ZXNFbmFibGVkID0gdGhpcy5kYXRlc0VuYWJsZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGF0ZXBpY2tlclJlZi5pbnN0YW5jZS5kYXRlc0Rpc2FibGVkID0gdGhpcy5kYXRlc0Rpc2FibGVkO1xuICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kYXlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF5c0Rpc2FibGVkID0gdGhpcy5kYXlzRGlzYWJsZWQ7XG4gICAgICB0aGlzLnNldENvbmZpZygpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZDtcbiAgICAgIHRoaXMuc2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZUN1c3RvbUNsYXNzZXMpIHtcbiAgICAgIHRoaXMuX2RhdGVwaWNrZXJSZWYuaW5zdGFuY2UuZGF0ZUN1c3RvbUNsYXNzZXMgPSB0aGlzLmRhdGVDdXN0b21DbGFzc2VzO1xuICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyBmb3IgZGF0ZXBpY2tlclxuICAgKi9cbiAgc2V0Q29uZmlnKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLl9kYXRlcGlja2VyLmhpZGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jb25maWcsIHRoaXMubWlzQ29uZmlnLCB7XG4gICAgICB2YWx1ZTogdGhpcy5fYnNWYWx1ZSxcbiAgICAgIGlzRGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSB8fCB0aGlzLm1pc0NvbmZpZyAmJiB0aGlzLm1pc0NvbmZpZy5taW5EYXRlLFxuICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLm1heERhdGUsXG4gICAgICBkYXlzRGlzYWJsZWQ6IHRoaXMuZGF5c0Rpc2FibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRheXNEaXNhYmxlZCxcbiAgICAgIGRhdGVDdXN0b21DbGFzc2VzOiB0aGlzLmRhdGVDdXN0b21DbGFzc2VzIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVDdXN0b21DbGFzc2VzLFxuICAgICAgZGF0ZXNEaXNhYmxlZDogdGhpcy5kYXRlc0Rpc2FibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVzRGlzYWJsZWQsXG4gICAgICBkYXRlc0VuYWJsZWQ6IHRoaXMuZGF0ZXNFbmFibGVkIHx8IHRoaXMubWlzQ29uZmlnICYmIHRoaXMubWlzQ29uZmlnLmRhdGVzRW5hYmxlZCxcbiAgICAgIHJhbmdlczogdGhpcy5taXNDb25maWcgJiYgdGhpcy5taXNDb25maWcucmFuZ2VzLFxuICAgICAgbWF4RGF0ZVJhbmdlOiB0aGlzLm1pc0NvbmZpZyAmJiB0aGlzLm1pc0NvbmZpZy5tYXhEYXRlUmFuZ2VcbiAgICB9KTtcblxuXG4gICAgdGhpcy5fZGF0ZXBpY2tlclJlZiA9IHRoaXMuX2RhdGVwaWNrZXJcbiAgICAgIC5wcm92aWRlKHsgcHJvdmlkZTogTWlzRGF0ZVBpY2tlckNvbmZpZywgdXNlVmFsdWU6IHRoaXMuX2NvbmZpZyB9KVxuICAgICAgLmF0dGFjaChNaXNEYXRlUmFuZ2VQaWNrZXJJbmxpbmVDb250YWluZXJDb21wb25lbnQpXG4gICAgICAudG8odGhpcy5fZWxlbWVudFJlZilcbiAgICAgIC5zaG93KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiBhbnkge1xuICAgIHRoaXMuX2RhdGVwaWNrZXIuZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { MisDatePickerConfig } from './bs-datepicker.config';
3
- import * as i0 from "@angular/core";
4
- export class MisDateRangePickerInlineConfig extends MisDatePickerConfig {
5
- constructor() {
6
- super(...arguments);
7
- // DatePickerRenderOptions
8
- this.displayMonths = 2;
9
- /** turn on/off animation */
10
- this.isAnimated = false;
11
- }
12
- }
13
- MisDateRangePickerInlineConfig.ɵfac = /*@__PURE__*/ function () { let ɵMisDateRangePickerInlineConfig_BaseFactory; return function MisDateRangePickerInlineConfig_Factory(t) { return (ɵMisDateRangePickerInlineConfig_BaseFactory || (ɵMisDateRangePickerInlineConfig_BaseFactory = i0.ɵɵgetInheritedFactory(MisDateRangePickerInlineConfig)))(t || MisDateRangePickerInlineConfig); }; }();
14
- MisDateRangePickerInlineConfig.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MisDateRangePickerInlineConfig, factory: MisDateRangePickerInlineConfig.ɵfac, providedIn: 'root' });
15
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDateRangePickerInlineConfig, [{
16
- type: Injectable,
17
- args: [{
18
- providedIn: 'root'
19
- }]
20
- }], null, null); })();
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlubGluZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2JzLWRhdGVyYW5nZXBpY2tlci1pbmxpbmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBSzdELE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxtQkFBbUI7SUFIdkU7O1FBSUksMEJBQTBCO1FBQzFCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLDRCQUE0QjtRQUM1QixlQUFVLEdBQUcsS0FBSyxDQUFDO0tBQ3RCOzs4U0FMWSw4QkFBOEIsU0FBOUIsOEJBQThCO29GQUE5Qiw4QkFBOEIsV0FBOUIsOEJBQThCLG1CQUY3QixNQUFNO3VGQUVQLDhCQUE4QjtjQUgxQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaXNEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1pc0RhdGVSYW5nZVBpY2tlcklubGluZUNvbmZpZyBleHRlbmRzIE1pc0RhdGVQaWNrZXJDb25maWcge1xuICAgIC8vIERhdGVQaWNrZXJSZW5kZXJPcHRpb25zXG4gICAgZGlzcGxheU1vbnRocyA9IDI7XG4gICAgLyoqIHR1cm4gb24vb2ZmIGFuaW1hdGlvbiAqL1xuICAgIGlzQW5pbWF0ZWQgPSBmYWxzZTtcbn1cbiJdfQ==
@@ -1,192 +0,0 @@
1
- import { Directive, forwardRef, Host } from '@angular/core';
2
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { parseDate, formatDate, getLocale, isAfter, isBefore, isArray, isDateValid, 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-daterangepicker.component";
8
- import * as i2 from "./bs-locale.service";
9
- const BS_DATERANGEPICKER_VALUE_ACCESSOR = {
10
- provide: NG_VALUE_ACCESSOR,
11
- /* tslint:disable-next-line: no-use-before-declare */
12
- useExisting: forwardRef(() => MisDateRangePickerInputDirective),
13
- multi: true
14
- };
15
- const BS_DATERANGEPICKER_VALIDATOR = {
16
- provide: NG_VALIDATORS,
17
- /* tslint:disable-next-line: no-use-before-declare */
18
- useExisting: forwardRef(() => MisDateRangePickerInputDirective),
19
- multi: true
20
- };
21
- export class MisDateRangePickerInputDirective {
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(
50
- // update input value on format change
51
- this._picker.rangeInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {
52
- this._setInputValue(this._value);
53
- }));
54
- }
55
- ngOnDestroy() {
56
- this._subs.unsubscribe();
57
- }
58
- onKeydownEvent(event) {
59
- if (event.keyCode === 13 || event.code === 'Enter') {
60
- this.hide();
61
- }
62
- }
63
- _setInputValue(date) {
64
- let range = '';
65
- if (date) {
66
- const start = !date[0] ? ''
67
- : formatDate(date[0], this._picker._config.rangeInputFormat, this._localeService.currentLocale);
68
- const end = !date[1] ? ''
69
- : formatDate(date[1], this._picker._config.rangeInputFormat, this._localeService.currentLocale);
70
- range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';
71
- }
72
- this._renderer.setProperty(this._elRef.nativeElement, 'value', range);
73
- }
74
- onChange(event) {
75
- /* tslint:disable-next-line: no-any*/
76
- this.writeValue(event.target.value);
77
- this._onChange(this._value);
78
- if (this._picker._config.returnFocusToInput) {
79
- this._renderer.selectRootElement(this._elRef.nativeElement).focus();
80
- }
81
- this._onTouched();
82
- }
83
- validate(c) {
84
- const _value = c.value;
85
- const errors = [];
86
- if (_value === null || _value === undefined || !isArray(_value)) {
87
- return null;
88
- }
89
- // @ts-ignore
90
- _value.sort((a, b) => a - b);
91
- const _isFirstDateValid = isDateValid(_value[0]);
92
- const _isSecondDateValid = isDateValid(_value[1]);
93
- if (!_isFirstDateValid) {
94
- return { misDate: { invalid: _value[0] } };
95
- }
96
- if (!_isSecondDateValid) {
97
- return { misDate: { invalid: _value[1] } };
98
- }
99
- if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {
100
- _value[0] = this._picker.minDate;
101
- errors.push({ misDate: { minDate: this._picker.minDate } });
102
- }
103
- if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {
104
- _value[1] = this._picker.maxDate;
105
- errors.push({ misDate: { maxDate: this._picker.maxDate } });
106
- }
107
- if (errors.length > 0) {
108
- this.writeValue(_value);
109
- return errors;
110
- }
111
- }
112
- registerOnValidatorChange(fn) {
113
- this._validatorChange = fn;
114
- }
115
- writeValue(value) {
116
- if (!value) {
117
- this._value = null;
118
- }
119
- else {
120
- const _localeKey = this._localeService.currentLocale;
121
- const _locale = getLocale(_localeKey);
122
- if (!_locale) {
123
- throw new Error(`Locale "${_localeKey}" is not defined, please add it with "defineLocale(...)"`);
124
- }
125
- let _input = [];
126
- if (typeof value === 'string') {
127
- const trimmedSeparator = this._picker._config.rangeSeparator.trim();
128
- _input = value
129
- .split(trimmedSeparator.length > 0 ? trimmedSeparator : this._picker._config.rangeSeparator)
130
- .map(_val => _val.trim());
131
- }
132
- if (Array.isArray(value)) {
133
- _input = value;
134
- }
135
- this._value = _input
136
- .map((_val) => {
137
- if (this._picker._config.useUtc) {
138
- return utcAsLocal(parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale));
139
- }
140
- return parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale);
141
- })
142
- .map((date) => (isNaN(date.valueOf()) ? null : date));
143
- }
144
- this._picker.bsValue = this._value;
145
- }
146
- setDisabledState(isDisabled) {
147
- this._picker.isDisabled = isDisabled;
148
- if (isDisabled) {
149
- this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');
150
- return;
151
- }
152
- this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');
153
- }
154
- /* tslint:disable-next-line: no-any*/
155
- registerOnChange(fn) {
156
- this._onChange = fn;
157
- }
158
- /* tslint:disable-next-line: no-any*/
159
- registerOnTouched(fn) {
160
- this._onTouched = fn;
161
- }
162
- onBlur() {
163
- this._onTouched();
164
- }
165
- hide() {
166
- this._picker.hide();
167
- this._renderer.selectRootElement(this._elRef.nativeElement).blur();
168
- if (this._picker._config.returnFocusToInput) {
169
- this._renderer.selectRootElement(this._elRef.nativeElement).focus();
170
- }
171
- }
172
- }
173
- MisDateRangePickerInputDirective.ɵfac = function MisDateRangePickerInputDirective_Factory(t) { return new (t || MisDateRangePickerInputDirective)(i0.ɵɵdirectiveInject(i1.MisDateRangePickerDirective, 1), i0.ɵɵdirectiveInject(i2.BsLocaleService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
174
- MisDateRangePickerInputDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: MisDateRangePickerInputDirective, selectors: [["input", "misDateRangePicker", ""]], hostBindings: function MisDateRangePickerInputDirective_HostBindings(rf, ctx) { if (rf & 1) {
175
- i0.ɵɵlistener("change", function MisDateRangePickerInputDirective_change_HostBindingHandler($event) { return ctx.onChange($event); })("keyup.esc", function MisDateRangePickerInputDirective_keyup_esc_HostBindingHandler() { return ctx.hide(); })("keydown", function MisDateRangePickerInputDirective_keydown_HostBindingHandler($event) { return ctx.onKeydownEvent($event); })("blur", function MisDateRangePickerInputDirective_blur_HostBindingHandler() { return ctx.onBlur(); });
176
- } }, features: [i0.ɵɵProvidersFeature([BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR])] });
177
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MisDateRangePickerInputDirective, [{
178
- type: Directive,
179
- args: [{
180
- selector: `input[misDateRangePicker]`,
181
- host: {
182
- '(change)': 'onChange($event)',
183
- '(keyup.esc)': 'hide()',
184
- '(keydown)': 'onKeydownEvent($event)',
185
- '(blur)': 'onBlur()'
186
- },
187
- providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
188
- }]
189
- }], function () { return [{ type: i1.MisDateRangePickerDirective, decorators: [{
190
- type: Host
191
- }] }, { type: i2.BsLocaleService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, null); })();
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXJhbmdlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvYnMtZGF0ZXJhbmdlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFVBQVUsRUFDVixJQUFJLEVBS0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsRUFHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixPQUFPLEVBQ1AsV0FBVyxFQUNYLFVBQVUsRUFDWCxNQUFNLFdBQVcsQ0FBQztBQUluQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXRELE1BQU0saUNBQWlDLEdBQWE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixxREFBcUQ7SUFDckQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztJQUMvRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFhO0lBQzdDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLHFEQUFxRDtJQUNyRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQWFGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFBNEIsT0FBb0MsRUFDNUMsY0FBK0IsRUFDL0IsU0FBb0IsRUFDcEIsTUFBa0IsRUFDbEIsZUFBa0M7UUFKMUIsWUFBTyxHQUFQ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QUM7SUFDdEIsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckU7SUFDSCxDQUFDOztnSEFsTVUsZ0NBQWdDO21GQUFoQyxnQ0FBZ0M7cUhBQWhDLG9CQUFnQixvR0FBaEIsVUFBTSxzR0FBTiwwQkFBc0IsMEZBQXRCLFlBQVE7MENBRlIsQ0FBQyxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQzt1RkFFakUsZ0NBQWdDO2NBVjVDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0osVUFBVSxFQUFFLGtCQUFrQjtvQkFDOUIsYUFBYSxFQUFFLFFBQVE7b0JBQ3ZCLFdBQVcsRUFBRSx3QkFBd0I7b0JBQ3JDLFFBQVEsRUFBRSxVQUFVO2lCQUNyQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQzthQUM3RTs7c0JBVWMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQcm92aWRlcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgcGFyc2VEYXRlLFxuICBmb3JtYXREYXRlLFxuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc0FycmF5LFxuICBpc0RhdGVWYWxpZCxcbiAgdXRjQXNMb2NhbFxufSBmcm9tICcuL2Nocm9ub3MnO1xuXG5pbXBvcnQgeyBNaXNEYXRlUmFuZ2VQaWNrZXJEaXJlY3RpdmUgfSBmcm9tICcuL2JzLWRhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi9icy1sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBCU19EQVRFUkFOR0VQSUNLRVJfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmUgKi9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWlzRGF0ZVJhbmdlUGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuY29uc3QgQlNfREFURVJBTkdFUElDS0VSX1ZBTElEQVRPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdXNlLWJlZm9yZS1kZWNsYXJlICovXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1pc0RhdGVSYW5nZVBpY2tlcklucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWVcbn07XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgaW5wdXRbbWlzRGF0ZVJhbmdlUGlja2VyXWAsXG4gIGhvc3Q6IHtcbiAgICAnKGNoYW5nZSknOiAnb25DaGFuZ2UoJGV2ZW50KScsXG4gICAgJyhrZXl1cC5lc2MpJzogJ2hpZGUoKScsXG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd25FdmVudCgkZXZlbnQpJyxcbiAgICAnKGJsdXIpJzogJ29uQmx1cigpJ1xuICB9LFxuICBwcm92aWRlcnM6IFtCU19EQVRFUkFOR0VQSUNLRVJfVkFMVUVfQUNDRVNTT1IsIEJTX0RBVEVSQU5HRVBJQ0tFUl9WQUxJREFUT1JdXG59KVxuZXhwb3J0IGNsYXNzIE1pc0RhdGVSYW5nZVBpY2tlcklucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9vbkNoYW5nZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXVudXNlZC12YXJpYWJsZSAqL1xuICBwcml2YXRlIF92YWxpZGF0b3JDaGFuZ2UgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIHByaXZhdGUgX3ZhbHVlOiBEYXRlW107XG4gIHByaXZhdGUgX3N1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIF9waWNrZXI6IE1pc0RhdGVSYW5nZVBpY2tlckRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9jYWxlU2VydmljZTogQnNMb2NhbGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB1cGRhdGUgaW5wdXQgdmFsdWUgb24gZGF0ZXBpY2tlciB2YWx1ZSB1cGRhdGVcbiAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgIHRoaXMuX3BpY2tlci5ic1ZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IERhdGVbXSkgPT4ge1xuICAgICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSkpO1xuXG4gICAgLy8gdXBkYXRlIGlucHV0IHZhbHVlIG9uIGxvY2FsZSBjaGFuZ2VcbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLl9sb2NhbGVTZXJ2aWNlLmxvY2FsZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfSkpO1xuXG4gICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICAvLyB1cGRhdGUgaW5wdXQgdmFsdWUgb24gZm9ybWF0IGNoYW5nZVxuICAgICAgdGhpcy5fcGlja2VyLnJhbmdlSW5wdXRGb3JtYXQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2V0SW5wdXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbktleWRvd25FdmVudChldmVudDphbnkpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgX3NldElucHV0VmFsdWUoZGF0ZTogRGF0ZVtdKTogdm9pZCB7XG4gICAgbGV0IHJhbmdlID0gJyc7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0OiBzdHJpbmcgPSAhZGF0ZVswXSA/ICcnXG4gICAgICAgIDogZm9ybWF0RGF0ZShkYXRlWzBdLFxuICAgICAgICAgIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsXG4gICAgICAgICAgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlXG4gICAgICAgICk7XG4gICAgICBjb25zdCBlbmQ6IHN0cmluZyA9ICFkYXRlWzFdID8gJydcbiAgICAgICAgOiBmb3JtYXREYXRlKFxuICAgICAgICAgIGRhdGVbMV0sXG4gICAgICAgICAgdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VJbnB1dEZvcm1hdCxcbiAgICAgICAgICB0aGlzLl9sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVcbiAgICAgICAgKTtcbiAgICAgIHJhbmdlID0gKHN0YXJ0ICYmIGVuZCkgPyBzdGFydCArIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yICsgZW5kIDogJyc7XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHJhbmdlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICB0aGlzLndyaXRlVmFsdWUoKGV2ZW50LnRhcmdldCBhcyBhbnkpLnZhbHVlKTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnJldHVybkZvY3VzVG9JbnB1dCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgX3ZhbHVlOiBbRGF0ZSwgRGF0ZV0gPSBjLnZhbHVlO1xuICAgIGNvbnN0IGVycm9yczogb2JqZWN0W10gPSBbXTtcblxuICAgIGlmIChfdmFsdWUgPT09IG51bGwgfHwgX3ZhbHVlID09PSB1bmRlZmluZWQgfHwgIWlzQXJyYXkoX3ZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIF92YWx1ZS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG5cbiAgICBjb25zdCBfaXNGaXJzdERhdGVWYWxpZCA9IGlzRGF0ZVZhbGlkKF92YWx1ZVswXSk7XG4gICAgY29uc3QgX2lzU2Vjb25kRGF0ZVZhbGlkID0gaXNEYXRlVmFsaWQoX3ZhbHVlWzFdKTtcblxuICAgIGlmICghX2lzRmlyc3REYXRlVmFsaWQpIHtcbiAgICAgIHJldHVybiB7IG1pc0RhdGU6IHsgaW52YWxpZDogX3ZhbHVlWzBdIH0gfTtcbiAgICB9XG5cbiAgICBpZiAoIV9pc1NlY29uZERhdGVWYWxpZCkge1xuICAgICAgcmV0dXJuIHsgbWlzRGF0ZTogeyBpbnZhbGlkOiBfdmFsdWVbMV0gfSB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9waWNrZXIgJiYgdGhpcy5fcGlja2VyLm1pbkRhdGUgJiYgaXNCZWZvcmUoX3ZhbHVlWzBdLCB0aGlzLl9waWNrZXIubWluRGF0ZSwgJ2RhdGUnKSkge1xuICAgICAgX3ZhbHVlWzBdID0gdGhpcy5fcGlja2VyLm1pbkRhdGU7XG4gICAgICBlcnJvcnMucHVzaCh7IG1pc0RhdGU6IHsgbWluRGF0ZTogdGhpcy5fcGlja2VyLm1pbkRhdGUgfSB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGlja2VyICYmIHRoaXMuX3BpY2tlci5tYXhEYXRlICYmIGlzQWZ0ZXIoX3ZhbHVlWzFdLCB0aGlzLl9waWNrZXIubWF4RGF0ZSwgJ2RhdGUnKSkge1xuICAgICAgX3ZhbHVlWzFdID0gdGhpcy5fcGlja2VyLm1heERhdGU7XG4gICAgICBlcnJvcnMucHVzaCh7IG1pc0RhdGU6IHsgbWF4RGF0ZTogdGhpcy5fcGlja2VyLm1heERhdGUgfSB9KTtcbiAgICB9XG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoX3ZhbHVlKTtcblxuICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlW10gfCBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IF9sb2NhbGVLZXkgPSB0aGlzLl9sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGU7XG4gICAgICBjb25zdCBfbG9jYWxlID0gZ2V0TG9jYWxlKF9sb2NhbGVLZXkpO1xuICAgICAgaWYgKCFfbG9jYWxlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTG9jYWxlIFwiJHtfbG9jYWxlS2V5fVwiIGlzIG5vdCBkZWZpbmVkLCBwbGVhc2UgYWRkIGl0IHdpdGggXCJkZWZpbmVMb2NhbGUoLi4uKVwiYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsZXQgX2lucHV0OiAoc3RyaW5nIHwgRGF0ZSlbXSA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZFNlcGFyYXRvciA9IHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yLnRyaW0oKTtcbiAgICAgICAgX2lucHV0ID0gdmFsdWVcbiAgICAgICAgICAuc3BsaXQodHJpbW1lZFNlcGFyYXRvci5sZW5ndGggPiAwID8gdHJpbW1lZFNlcGFyYXRvciA6IHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlU2VwYXJhdG9yKVxuICAgICAgICAgIC5tYXAoX3ZhbCA9PiBfdmFsLnRyaW0oKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBfaW5wdXQgPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdmFsdWUgPSBfaW5wdXRcbiAgICAgICAgLm1hcCgoX3ZhbDogc3RyaW5nIHwgRGF0ZSk6IERhdGUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BpY2tlci5fY29uZmlnLnVzZVV0Yykge1xuICAgICAgICAgICAgICByZXR1cm4gdXRjQXNMb2NhbChcbiAgICAgICAgICAgICAgICBwYXJzZURhdGUoX3ZhbCwgdGhpcy5fcGlja2VyLl9jb25maWcucmFuZ2VJbnB1dEZvcm1hdCwgdGhpcy5fbG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VEYXRlKF92YWwsIHRoaXMuX3BpY2tlci5fY29uZmlnLnJhbmdlSW5wdXRGb3JtYXQsIHRoaXMuX2xvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZSk7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIC5tYXAoKGRhdGU6IERhdGUpID0+IChpc05hTihkYXRlLnZhbHVlT2YoKSkgPyBudWxsIDogZGF0ZSkpO1xuICAgIH1cblxuICAgIHRoaXMuX3BpY2tlci5ic1ZhbHVlID0gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9waWNrZXIuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLl9waWNrZXIuaGlkZSgpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcblxuICAgIGlmICh0aGlzLl9waWNrZXIuX2NvbmZpZy5yZXR1cm5Gb2N1c1RvSW5wdXQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=