@anglr/datetime 1.0.0-beta.20220217103425 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/changelog.md +12 -0
  2. package/date-fns/datetime-date-fns.d.ts +64 -0
  3. package/date-fns/datetime-date-fns.internal.d.ts +64 -0
  4. package/date-fns/package.json +7 -7
  5. package/date-fns/src/{date-fns.d.ts → index.d.ts} +4 -4
  6. package/date-fns/src/index.d.ts.map +1 -0
  7. package/date-fns/src/misc/tokens.d.ts +10 -10
  8. package/date-fns/src/services/dateFnsDateApi.service.d.ts +36 -33
  9. package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
  10. package/date-fns/src/services/dateFnsLocale.service.d.ts +10 -10
  11. package/date-fns/temp/datetime-date-fns.api.md +47 -0
  12. package/datetime.d.ts +1913 -5
  13. package/datetime.internal.d.ts +2090 -0
  14. package/es2015/date-fns/src/index.js +4 -0
  15. package/es2015/date-fns/src/index.js.map +1 -0
  16. package/es2015/date-fns/src/misc/tokens.js +20 -0
  17. package/es2015/date-fns/src/misc/tokens.js.map +1 -0
  18. package/es2015/date-fns/src/services/dateFnsDateApi.service.js +438 -0
  19. package/es2015/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
  20. package/es2015/date-fns/src/services/dateFnsLocale.service.js +2 -0
  21. package/es2015/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
  22. package/es2015/karma.conf.js +57 -0
  23. package/es2015/karma.conf.js.map +1 -0
  24. package/{moment/src/moment.d.ts → es2015/moment/src/index.js} +3 -3
  25. package/es2015/moment/src/index.js.map +1 -0
  26. package/es2015/moment/src/misc/tokens.js +15 -0
  27. package/es2015/moment/src/misc/tokens.js.map +1 -0
  28. package/es2015/moment/src/services/momentDateApi.service.js +398 -0
  29. package/es2015/moment/src/services/momentDateApi.service.js.map +1 -0
  30. package/{src/datetime.d.ts → es2015/src/index.js} +19 -19
  31. package/es2015/src/index.js.map +1 -0
  32. package/es2015/src/misc/constants.js +33 -0
  33. package/es2015/src/misc/constants.js.map +1 -0
  34. package/es2015/src/misc/datetime.interface.js +2 -0
  35. package/es2015/src/misc/datetime.interface.js.map +1 -0
  36. package/es2015/src/misc/tokens.js +19 -0
  37. package/es2015/src/misc/tokens.js.map +1 -0
  38. package/es2015/src/misc/validators.js +58 -0
  39. package/es2015/src/misc/validators.js.map +1 -0
  40. package/es2015/src/modules/datePipes.module.js +33 -0
  41. package/es2015/src/modules/datePipes.module.js.map +1 -0
  42. package/es2015/src/picker/components/dayPicker/dayPicker.component.js +172 -0
  43. package/es2015/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
  44. package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
  45. package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
  46. package/es2015/src/picker/components/monthPicker/monthPicker.component.js +114 -0
  47. package/es2015/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
  48. package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
  49. package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
  50. package/es2015/src/picker/components/picker/picker.component.animations.js +71 -0
  51. package/es2015/src/picker/components/picker/picker.component.animations.js.map +1 -0
  52. package/es2015/src/picker/components/picker/picker.component.js +241 -0
  53. package/es2015/src/picker/components/picker/picker.component.js.map +1 -0
  54. package/es2015/src/picker/components/pickerBase.component.js +243 -0
  55. package/es2015/src/picker/components/pickerBase.component.js.map +1 -0
  56. package/es2015/src/picker/components/yearPicker/yearPicker.component.js +126 -0
  57. package/es2015/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
  58. package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
  59. package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
  60. package/es2015/src/picker/interfaces.js +5 -0
  61. package/es2015/src/picker/interfaces.js.map +1 -0
  62. package/es2015/src/picker/misc/datetimePicker.interface.js +2 -0
  63. package/es2015/src/picker/misc/datetimePicker.interface.js.map +1 -0
  64. package/es2015/src/picker/misc/tokens.js +6 -0
  65. package/es2015/src/picker/misc/tokens.js.map +1 -0
  66. package/es2015/src/picker/modules/picker.module.js +46 -0
  67. package/es2015/src/picker/modules/picker.module.js.map +1 -0
  68. package/es2015/src/picker/types.js +8 -0
  69. package/es2015/src/picker/types.js.map +1 -0
  70. package/es2015/src/pipes/asRequiredType.js +22 -0
  71. package/es2015/src/pipes/asRequiredType.js.map +1 -0
  72. package/es2015/src/pipes/dateConvert.pipe.js +35 -0
  73. package/es2015/src/pipes/dateConvert.pipe.js.map +1 -0
  74. package/es2015/src/pipes/dateFormat.pipe.js +45 -0
  75. package/es2015/src/pipes/dateFormat.pipe.js.map +1 -0
  76. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +421 -0
  77. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
  78. package/es2015/src/selector/components/selector/selector.component.animations.js +15 -0
  79. package/es2015/src/selector/components/selector/selector.component.animations.js.map +1 -0
  80. package/es2015/src/selector/components/selector/selector.component.js +344 -0
  81. package/es2015/src/selector/components/selector/selector.component.js.map +1 -0
  82. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +317 -0
  83. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
  84. package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
  85. package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
  86. package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
  87. package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
  88. package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
  89. package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
  90. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +119 -0
  91. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
  92. package/es2015/src/selector/interfaces.js +2 -0
  93. package/es2015/src/selector/interfaces.js.map +1 -0
  94. package/es2015/src/selector/misc/datetimeSelector.interface.js +2 -0
  95. package/es2015/src/selector/misc/datetimeSelector.interface.js.map +1 -0
  96. package/es2015/src/selector/misc/tokens.js +6 -0
  97. package/es2015/src/selector/misc/tokens.js.map +1 -0
  98. package/es2015/src/selector/modules/basicSelector.module.js +20 -0
  99. package/es2015/src/selector/modules/basicSelector.module.js.map +1 -0
  100. package/es2015/src/selector/modules/selector.module.js +60 -0
  101. package/es2015/src/selector/modules/selector.module.js.map +1 -0
  102. package/es2015/src/selector/types.js +10 -0
  103. package/es2015/src/selector/types.js.map +1 -0
  104. package/es2015/src/services/dateApi.interface.js +2 -0
  105. package/es2015/src/services/dateApi.interface.js.map +1 -0
  106. package/es2015/src/services/datePositionParser.interface.js +2 -0
  107. package/es2015/src/services/datePositionParser.interface.js.map +1 -0
  108. package/es2015/src/services/datePositionParser.service.js +227 -0
  109. package/es2015/src/services/datePositionParser.service.js.map +1 -0
  110. package/es2015/src/services/dateTimeRelativeParser.service.js +66 -0
  111. package/es2015/src/services/dateTimeRelativeParser.service.js.map +1 -0
  112. package/es2015/src/services/dateValueProvider.service.js +58 -0
  113. package/es2015/src/services/dateValueProvider.service.js.map +1 -0
  114. package/es2015/src/services/formatProvider.interface.js +2 -0
  115. package/es2015/src/services/formatProvider.interface.js.map +1 -0
  116. package/es2015/src/services/index.js +4 -0
  117. package/es2015/src/services/index.js.map +1 -0
  118. package/es2020/date-fns/src/index.js +4 -0
  119. package/es2020/date-fns/src/index.js.map +1 -0
  120. package/es2020/date-fns/src/misc/tokens.js +20 -0
  121. package/es2020/date-fns/src/misc/tokens.js.map +1 -0
  122. package/es2020/date-fns/src/services/dateFnsDateApi.service.js +437 -0
  123. package/es2020/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
  124. package/es2020/date-fns/src/services/dateFnsLocale.service.js +2 -0
  125. package/es2020/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
  126. package/es2020/karma.conf.js +57 -0
  127. package/es2020/karma.conf.js.map +1 -0
  128. package/es2020/moment/src/index.js +3 -0
  129. package/es2020/moment/src/index.js.map +1 -0
  130. package/es2020/moment/src/misc/tokens.js +15 -0
  131. package/es2020/moment/src/misc/tokens.js.map +1 -0
  132. package/es2020/moment/src/services/momentDateApi.service.js +398 -0
  133. package/es2020/moment/src/services/momentDateApi.service.js.map +1 -0
  134. package/es2020/src/index.js +19 -0
  135. package/es2020/src/index.js.map +1 -0
  136. package/es2020/src/misc/constants.js +33 -0
  137. package/es2020/src/misc/constants.js.map +1 -0
  138. package/es2020/src/misc/datetime.interface.js +2 -0
  139. package/es2020/src/misc/datetime.interface.js.map +1 -0
  140. package/es2020/src/misc/tokens.js +19 -0
  141. package/es2020/src/misc/tokens.js.map +1 -0
  142. package/es2020/src/misc/validators.js +58 -0
  143. package/es2020/src/misc/validators.js.map +1 -0
  144. package/es2020/src/modules/datePipes.module.js +33 -0
  145. package/es2020/src/modules/datePipes.module.js.map +1 -0
  146. package/es2020/src/picker/components/dayPicker/dayPicker.component.js +172 -0
  147. package/es2020/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
  148. package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
  149. package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
  150. package/es2020/src/picker/components/monthPicker/monthPicker.component.js +114 -0
  151. package/es2020/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
  152. package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
  153. package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
  154. package/es2020/src/picker/components/picker/picker.component.animations.js +71 -0
  155. package/es2020/src/picker/components/picker/picker.component.animations.js.map +1 -0
  156. package/es2020/src/picker/components/picker/picker.component.js +236 -0
  157. package/es2020/src/picker/components/picker/picker.component.js.map +1 -0
  158. package/es2020/src/picker/components/pickerBase.component.js +243 -0
  159. package/es2020/src/picker/components/pickerBase.component.js.map +1 -0
  160. package/es2020/src/picker/components/yearPicker/yearPicker.component.js +126 -0
  161. package/es2020/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
  162. package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
  163. package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
  164. package/es2020/src/picker/interfaces.js +5 -0
  165. package/es2020/src/picker/interfaces.js.map +1 -0
  166. package/es2020/src/picker/misc/datetimePicker.interface.js +2 -0
  167. package/es2020/src/picker/misc/datetimePicker.interface.js.map +1 -0
  168. package/es2020/src/picker/misc/tokens.js +6 -0
  169. package/es2020/src/picker/misc/tokens.js.map +1 -0
  170. package/es2020/src/picker/modules/picker.module.js +46 -0
  171. package/es2020/src/picker/modules/picker.module.js.map +1 -0
  172. package/es2020/src/picker/types.js +8 -0
  173. package/es2020/src/picker/types.js.map +1 -0
  174. package/es2020/src/pipes/asRequiredType.js +22 -0
  175. package/es2020/src/pipes/asRequiredType.js.map +1 -0
  176. package/es2020/src/pipes/dateConvert.pipe.js +35 -0
  177. package/es2020/src/pipes/dateConvert.pipe.js.map +1 -0
  178. package/es2020/src/pipes/dateFormat.pipe.js +45 -0
  179. package/es2020/src/pipes/dateFormat.pipe.js.map +1 -0
  180. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js +417 -0
  181. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
  182. package/es2020/src/selector/components/selector/selector.component.animations.js +15 -0
  183. package/es2020/src/selector/components/selector/selector.component.animations.js.map +1 -0
  184. package/es2020/src/selector/components/selector/selector.component.js +334 -0
  185. package/es2020/src/selector/components/selector/selector.component.js.map +1 -0
  186. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +314 -0
  187. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
  188. package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
  189. package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
  190. package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
  191. package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
  192. package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
  193. package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
  194. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +118 -0
  195. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
  196. package/es2020/src/selector/interfaces.js +2 -0
  197. package/es2020/src/selector/interfaces.js.map +1 -0
  198. package/es2020/src/selector/misc/datetimeSelector.interface.js +2 -0
  199. package/es2020/src/selector/misc/datetimeSelector.interface.js.map +1 -0
  200. package/es2020/src/selector/misc/tokens.js +6 -0
  201. package/es2020/src/selector/misc/tokens.js.map +1 -0
  202. package/es2020/src/selector/modules/basicSelector.module.js +20 -0
  203. package/es2020/src/selector/modules/basicSelector.module.js.map +1 -0
  204. package/es2020/src/selector/modules/selector.module.js +60 -0
  205. package/es2020/src/selector/modules/selector.module.js.map +1 -0
  206. package/es2020/src/selector/types.js +10 -0
  207. package/es2020/src/selector/types.js.map +1 -0
  208. package/es2020/src/services/dateApi.interface.js +2 -0
  209. package/es2020/src/services/dateApi.interface.js.map +1 -0
  210. package/es2020/src/services/datePositionParser.interface.js +2 -0
  211. package/es2020/src/services/datePositionParser.interface.js.map +1 -0
  212. package/es2020/src/services/datePositionParser.service.js +227 -0
  213. package/es2020/src/services/datePositionParser.service.js.map +1 -0
  214. package/es2020/src/services/dateTimeRelativeParser.service.js +65 -0
  215. package/es2020/src/services/dateTimeRelativeParser.service.js.map +1 -0
  216. package/es2020/src/services/dateValueProvider.service.js +58 -0
  217. package/es2020/src/services/dateValueProvider.service.js.map +1 -0
  218. package/es2020/src/services/formatProvider.interface.js +2 -0
  219. package/es2020/src/services/formatProvider.interface.js.map +1 -0
  220. package/es2020/src/services/index.js +4 -0
  221. package/es2020/src/services/index.js.map +1 -0
  222. package/karma.conf.d.ts +2 -0
  223. package/karma.conf.d.ts.map +1 -0
  224. package/moment/datetime-moment.d.ts +47 -0
  225. package/moment/datetime-moment.internal.d.ts +47 -0
  226. package/moment/package.json +7 -7
  227. package/moment/src/index.d.ts +3 -0
  228. package/moment/src/index.d.ts.map +1 -0
  229. package/moment/src/misc/tokens.d.ts +5 -5
  230. package/moment/src/services/momentDateApi.service.d.ts +35 -32
  231. package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
  232. package/moment/temp/datetime-moment.api.md +36 -0
  233. package/package.json +91 -48
  234. package/src/index.d.ts +19 -0
  235. package/src/index.d.ts.map +1 -0
  236. package/src/misc/constants.d.ts +32 -32
  237. package/src/misc/datetime.interface.d.ts +34 -34
  238. package/src/misc/tokens.d.ts +10 -10
  239. package/src/misc/validators.d.ts +25 -25
  240. package/src/modules/datePipes.module.d.ts +12 -5
  241. package/src/modules/datePipes.module.d.ts.map +1 -1
  242. package/src/picker/components/dayPicker/dayPicker.component.d.ts +68 -65
  243. package/src/picker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
  244. package/src/picker/components/dayPicker/dayPicker.component.html +7 -7
  245. package/src/picker/components/dayPicker/dayPicker.interfaces.d.ts +10 -10
  246. package/src/picker/components/monthPicker/monthPicker.component.d.ts +52 -49
  247. package/src/picker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
  248. package/src/picker/components/monthPicker/monthPicker.component.html +6 -6
  249. package/src/picker/components/monthPicker/monthPicker.interfaces.d.ts +6 -6
  250. package/src/picker/components/picker/picker.component.animations.d.ts +4 -4
  251. package/src/picker/components/picker/picker.component.d.ts +104 -101
  252. package/src/picker/components/picker/picker.component.d.ts.map +1 -1
  253. package/src/picker/components/pickerBase.component.d.ts +169 -166
  254. package/src/picker/components/pickerBase.component.d.ts.map +1 -1
  255. package/src/picker/components/yearPicker/yearPicker.component.d.ts +57 -54
  256. package/src/picker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
  257. package/src/picker/components/yearPicker/yearPicker.component.html +6 -6
  258. package/src/picker/components/yearPicker/yearPicker.interfaces.d.ts +6 -6
  259. package/src/picker/interfaces.d.ts +4 -4
  260. package/src/picker/misc/datetimePicker.interface.d.ts +188 -188
  261. package/src/picker/misc/tokens.d.ts +6 -6
  262. package/src/picker/modules/picker.module.d.ts +16 -5
  263. package/src/picker/modules/picker.module.d.ts.map +1 -1
  264. package/src/picker/types.d.ts +7 -7
  265. package/src/pipes/asRequiredType.d.ts +21 -0
  266. package/src/pipes/asRequiredType.d.ts.map +1 -0
  267. package/src/pipes/dateConvert.pipe.d.ts +18 -15
  268. package/src/pipes/dateConvert.pipe.d.ts.map +1 -1
  269. package/src/pipes/dateFormat.pipe.d.ts +20 -17
  270. package/src/pipes/dateFormat.pipe.d.ts.map +1 -1
  271. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts +187 -184
  272. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
  273. package/src/selector/components/selector/selector.component.animations.d.ts +4 -4
  274. package/src/selector/components/selector/selector.component.d.ts +155 -152
  275. package/src/selector/components/selector/selector.component.d.ts.map +1 -1
  276. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +170 -167
  277. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
  278. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts +22 -19
  279. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts.map +1 -1
  280. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts +22 -19
  281. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts.map +1 -1
  282. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts +21 -18
  283. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts.map +1 -1
  284. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts +53 -50
  285. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts.map +1 -1
  286. package/src/selector/interfaces.d.ts +1 -1
  287. package/src/selector/misc/datetimeSelector.interface.d.ts +82 -82
  288. package/src/selector/misc/tokens.d.ts +6 -6
  289. package/src/selector/modules/basicSelector.module.d.ts +10 -5
  290. package/src/selector/modules/basicSelector.module.d.ts.map +1 -1
  291. package/src/selector/modules/selector.module.d.ts +18 -5
  292. package/src/selector/modules/selector.module.d.ts.map +1 -1
  293. package/src/selector/types.d.ts +9 -9
  294. package/src/services/dateApi.interface.d.ts +275 -275
  295. package/src/services/datePositionParser.interface.d.ts +40 -40
  296. package/src/services/datePositionParser.service.d.ts +60 -57
  297. package/src/services/datePositionParser.service.d.ts.map +1 -1
  298. package/src/services/dateTimeRelativeParser.service.d.ts +21 -18
  299. package/src/services/dateTimeRelativeParser.service.d.ts.map +1 -1
  300. package/src/services/dateValueProvider.service.d.ts +18 -15
  301. package/src/services/dateValueProvider.service.d.ts.map +1 -1
  302. package/src/services/formatProvider.interface.d.ts +17 -17
  303. package/src/services/index.d.ts +3 -3
  304. package/tsconfig.karma.json +5 -6
  305. package/version.bak +1 -1
  306. package/appveyor.yml +0 -70
  307. package/date-fns/dist/es2015/date-fns/index.js +0 -10
  308. package/date-fns/dist/es2015/date-fns/public_api.js +0 -7
  309. package/date-fns/dist/es2015/date-fns/src/date-fns.js +0 -9
  310. package/date-fns/dist/es2015/date-fns/src/misc/tokens.js +0 -32
  311. package/date-fns/dist/es2015/date-fns/src/services/dateFnsDateApi.service.js +0 -512
  312. package/date-fns/dist/es2015/date-fns/src/services/dateFnsLocale.service.js +0 -18
  313. package/date-fns/dist/es5/date-fns/index.js +0 -10
  314. package/date-fns/dist/es5/date-fns/public_api.js +0 -7
  315. package/date-fns/dist/es5/date-fns/src/date-fns.js +0 -9
  316. package/date-fns/dist/es5/date-fns/src/misc/tokens.js +0 -32
  317. package/date-fns/dist/es5/date-fns/src/services/dateFnsDateApi.service.js +0 -902
  318. package/date-fns/dist/es5/date-fns/src/services/dateFnsLocale.service.js +0 -18
  319. package/date-fns/index.d.ts +0 -5
  320. package/date-fns/index.d.ts.map +0 -1
  321. package/date-fns/index.metadata.json +0 -1
  322. package/date-fns/public_api.d.ts +0 -2
  323. package/date-fns/public_api.d.ts.map +0 -1
  324. package/date-fns/src/date-fns.d.ts.map +0 -1
  325. package/date-fns/src/services/dateFnsDateApi.service.ngfactory.d.ts.map +0 -1
  326. package/datetime.d.ts.map +0 -1
  327. package/datetime.metadata.json +0 -1
  328. package/dist/es2015/datetime.js +0 -10
  329. package/dist/es2015/public_api.js +0 -7
  330. package/dist/es2015/src/datetime.js +0 -24
  331. package/dist/es2015/src/misc/constants.js +0 -46
  332. package/dist/es2015/src/misc/datetime.interface.js +0 -52
  333. package/dist/es2015/src/misc/tokens.js +0 -29
  334. package/dist/es2015/src/misc/validators.js +0 -80
  335. package/dist/es2015/src/modules/datePipes.module.js +0 -26
  336. package/dist/es2015/src/picker/components/dayPicker/dayPicker.component.js +0 -215
  337. package/dist/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
  338. package/dist/es2015/src/picker/components/monthPicker/monthPicker.component.js +0 -138
  339. package/dist/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
  340. package/dist/es2015/src/picker/components/picker/picker.component.animations.js +0 -77
  341. package/dist/es2015/src/picker/components/picker/picker.component.js +0 -386
  342. package/dist/es2015/src/picker/components/pickerBase.component.js +0 -406
  343. package/dist/es2015/src/picker/components/yearPicker/yearPicker.component.js +0 -158
  344. package/dist/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
  345. package/dist/es2015/src/picker/interfaces.js +0 -10
  346. package/dist/es2015/src/picker/misc/datetimePicker.interface.js +0 -245
  347. package/dist/es2015/src/picker/misc/tokens.js +0 -12
  348. package/dist/es2015/src/picker/modules/picker.module.js +0 -35
  349. package/dist/es2015/src/picker/types.js +0 -13
  350. package/dist/es2015/src/pipes/dateConvert.pipe.js +0 -50
  351. package/dist/es2015/src/pipes/dateFormat.pipe.js +0 -64
  352. package/dist/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +0 -588
  353. package/dist/es2015/src/selector/components/selector/selector.component.animations.js +0 -21
  354. package/dist/es2015/src/selector/components/selector/selector.component.js +0 -514
  355. package/dist/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -456
  356. package/dist/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -73
  357. package/dist/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -73
  358. package/dist/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -70
  359. package/dist/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -171
  360. package/dist/es2015/src/selector/interfaces.js +0 -7
  361. package/dist/es2015/src/selector/misc/datetimeSelector.interface.js +0 -106
  362. package/dist/es2015/src/selector/misc/tokens.js +0 -12
  363. package/dist/es2015/src/selector/modules/basicSelector.module.js +0 -20
  364. package/dist/es2015/src/selector/modules/selector.module.js +0 -45
  365. package/dist/es2015/src/selector/types.js +0 -15
  366. package/dist/es2015/src/services/dateApi.interface.js +0 -316
  367. package/dist/es2015/src/services/datePositionParser.interface.js +0 -56
  368. package/dist/es2015/src/services/datePositionParser.service.js +0 -297
  369. package/dist/es2015/src/services/dateTimeRelativeParser.service.js +0 -97
  370. package/dist/es2015/src/services/dateValueProvider.service.js +0 -79
  371. package/dist/es2015/src/services/formatProvider.interface.js +0 -28
  372. package/dist/es2015/src/services/index.js +0 -9
  373. package/dist/es5/datetime.js +0 -10
  374. package/dist/es5/public_api.js +0 -7
  375. package/dist/es5/src/datetime.js +0 -24
  376. package/dist/es5/src/misc/constants.js +0 -46
  377. package/dist/es5/src/misc/datetime.interface.js +0 -52
  378. package/dist/es5/src/misc/tokens.js +0 -29
  379. package/dist/es5/src/misc/validators.js +0 -124
  380. package/dist/es5/src/modules/datePipes.module.js +0 -30
  381. package/dist/es5/src/picker/components/dayPicker/dayPicker.component.js +0 -323
  382. package/dist/es5/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
  383. package/dist/es5/src/picker/components/monthPicker/monthPicker.component.js +0 -233
  384. package/dist/es5/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
  385. package/dist/es5/src/picker/components/picker/picker.component.animations.js +0 -77
  386. package/dist/es5/src/picker/components/picker/picker.component.js +0 -460
  387. package/dist/es5/src/picker/components/pickerBase.component.js +0 -561
  388. package/dist/es5/src/picker/components/yearPicker/yearPicker.component.js +0 -253
  389. package/dist/es5/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
  390. package/dist/es5/src/picker/interfaces.js +0 -10
  391. package/dist/es5/src/picker/misc/datetimePicker.interface.js +0 -245
  392. package/dist/es5/src/picker/misc/tokens.js +0 -12
  393. package/dist/es5/src/picker/modules/picker.module.js +0 -39
  394. package/dist/es5/src/picker/types.js +0 -13
  395. package/dist/es5/src/pipes/dateConvert.pipe.js +0 -63
  396. package/dist/es5/src/pipes/dateFormat.pipe.js +0 -79
  397. package/dist/es5/src/selector/components/inputDateTime/inputDateTime.component.js +0 -808
  398. package/dist/es5/src/selector/components/selector/selector.component.animations.js +0 -21
  399. package/dist/es5/src/selector/components/selector/selector.component.js +0 -653
  400. package/dist/es5/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -656
  401. package/dist/es5/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -84
  402. package/dist/es5/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -84
  403. package/dist/es5/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -82
  404. package/dist/es5/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -230
  405. package/dist/es5/src/selector/interfaces.js +0 -7
  406. package/dist/es5/src/selector/misc/datetimeSelector.interface.js +0 -106
  407. package/dist/es5/src/selector/misc/tokens.js +0 -12
  408. package/dist/es5/src/selector/modules/basicSelector.module.js +0 -24
  409. package/dist/es5/src/selector/modules/selector.module.js +0 -49
  410. package/dist/es5/src/selector/types.js +0 -15
  411. package/dist/es5/src/services/dateApi.interface.js +0 -316
  412. package/dist/es5/src/services/datePositionParser.interface.js +0 -56
  413. package/dist/es5/src/services/datePositionParser.service.js +0 -366
  414. package/dist/es5/src/services/dateTimeRelativeParser.service.js +0 -108
  415. package/dist/es5/src/services/dateValueProvider.service.js +0 -92
  416. package/dist/es5/src/services/formatProvider.interface.js +0 -28
  417. package/dist/es5/src/services/index.js +0 -9
  418. package/moment/dist/es2015/moment/index.js +0 -10
  419. package/moment/dist/es2015/moment/public_api.js +0 -7
  420. package/moment/dist/es2015/moment/src/misc/tokens.js +0 -26
  421. package/moment/dist/es2015/moment/src/moment.js +0 -8
  422. package/moment/dist/es2015/moment/src/services/momentDateApi.service.js +0 -466
  423. package/moment/dist/es5/moment/index.js +0 -10
  424. package/moment/dist/es5/moment/public_api.js +0 -7
  425. package/moment/dist/es5/moment/src/misc/tokens.js +0 -26
  426. package/moment/dist/es5/moment/src/moment.js +0 -8
  427. package/moment/dist/es5/moment/src/services/momentDateApi.service.js +0 -858
  428. package/moment/index.d.ts +0 -5
  429. package/moment/index.d.ts.map +0 -1
  430. package/moment/index.metadata.json +0 -1
  431. package/moment/public_api.d.ts +0 -2
  432. package/moment/public_api.d.ts.map +0 -1
  433. package/moment/src/moment.d.ts.map +0 -1
  434. package/moment/src/services/momentDateApi.service.ngfactory.d.ts.map +0 -1
  435. package/public_api.d.ts +0 -2
  436. package/public_api.d.ts.map +0 -1
  437. package/src/datetime.d.ts.map +0 -1
  438. package/src/modules/datePipes.module.ngfactory.d.ts.map +0 -1
  439. package/src/picker/components/dayPicker/dayPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  440. package/src/picker/components/dayPicker/dayPicker.component.ngfactory.d.ts.map +0 -1
  441. package/src/picker/components/monthPicker/monthPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  442. package/src/picker/components/monthPicker/monthPicker.component.ngfactory.d.ts.map +0 -1
  443. package/src/picker/components/picker/picker.component.ngfactory.d.ts.map +0 -1
  444. package/src/picker/components/yearPicker/yearPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  445. package/src/picker/components/yearPicker/yearPicker.component.ngfactory.d.ts.map +0 -1
  446. package/src/picker/modules/picker.module.ngfactory.d.ts.map +0 -1
  447. package/src/pipes/dateConvert.pipe.ngfactory.d.ts.map +0 -1
  448. package/src/pipes/dateFormat.pipe.ngfactory.d.ts.map +0 -1
  449. package/src/selector/components/inputDateTime/inputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
  450. package/src/selector/components/inputDateTime/inputDateTime.component.ngfactory.d.ts.map +0 -1
  451. package/src/selector/components/selector/selector.component.css.shim.ngstyle.d.ts.map +0 -1
  452. package/src/selector/components/selector/selector.component.ngfactory.d.ts.map +0 -1
  453. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
  454. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.ngfactory.d.ts.map +0 -1
  455. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.ngfactory.d.ts.map +0 -1
  456. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.ngfactory.d.ts.map +0 -1
  457. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.ngfactory.d.ts.map +0 -1
  458. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.ngfactory.d.ts.map +0 -1
  459. package/src/selector/modules/basicSelector.module.ngfactory.d.ts.map +0 -1
  460. package/src/selector/modules/selector.module.ngfactory.d.ts.map +0 -1
  461. package/src/services/datePositionParser.service.ngfactory.d.ts.map +0 -1
  462. package/src/services/dateTimeRelativeParser.service.ngfactory.d.ts.map +0 -1
  463. package/src/services/dateValueProvider.service.ngfactory.d.ts.map +0 -1
@@ -1,656 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: src/selector/components/simpleInputDateTime/simpleInputDateTime.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, ChangeDetectionStrategy, Inject, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core';
7
- import { Subject } from 'rxjs';
8
- import { DATE_API } from '../../../misc/tokens';
9
- import { DateValueProvider } from '../../../services/dateValueProvider.service';
10
- /**
11
- * Component used as datetime selector with simple input
12
- * @template TDate
13
- */
14
- var SimpleInputDateTimeSelectorComponent = /** @class */ (function () {
15
- //######################### constructor #########################
16
- function SimpleInputDateTimeSelectorComponent(_dateApi, _valueProvider, _changeDetector) {
17
- this._dateApi = _dateApi;
18
- this._valueProvider = _valueProvider;
19
- this._changeDetector = _changeDetector;
20
- //######################### protected fields #########################
21
- /**
22
- * Occurs when value changes
23
- */
24
- this._valueChange = new Subject();
25
- /**
26
- * Occurs when selector is touched by user
27
- */
28
- this._touched = new Subject();
29
- /**
30
- * Occurs when selector requires picker to be displayed or hidden
31
- */
32
- this._pickerRequest = new Subject();
33
- /**
34
- * Currently used format for displaying data
35
- */
36
- this._format = '';
37
- /**
38
- * Current value representation as date api wrapper
39
- */
40
- this._dateApiValue = null;
41
- /**
42
- * Indication whether is current value valid value
43
- */
44
- this._isValid = true;
45
- /**
46
- * Minimal possible value that can be picked
47
- */
48
- this._minValue = null;
49
- /**
50
- * Maximal possible value that can be picked
51
- */
52
- this._maxValue = null;
53
- //######################### public properties - template bindings #########################
54
- /**
55
- * Indication whether is input disabled
56
- * \@internal
57
- */
58
- this.disabled = false;
59
- }
60
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "format", {
61
- //######################### public properties - implementation of DateTimeSelector #########################
62
- /**
63
- * Gets or sets currently used format for displaying data
64
- */
65
- get:
66
- //######################### public properties - implementation of DateTimeSelector #########################
67
- /**
68
- * Gets or sets currently used format for displaying data
69
- * @return {?}
70
- */
71
- function () {
72
- return this._format;
73
- },
74
- set: /**
75
- * @param {?} value
76
- * @return {?}
77
- */
78
- function (value) {
79
- this._format = value;
80
- },
81
- enumerable: false,
82
- configurable: true
83
- });
84
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "value", {
85
- /**
86
- * Gets current value of datetime
87
- */
88
- get: /**
89
- * Gets current value of datetime
90
- * @return {?}
91
- */
92
- function () {
93
- if (!this._dateApiValue || !this._isValid) {
94
- return null;
95
- }
96
- return this._valueProvider.getValue(this._dateApiValue.value, this._format);
97
- },
98
- enumerable: false,
99
- configurable: true
100
- });
101
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "formattedValue", {
102
- /**
103
- * Gets formatted value
104
- */
105
- get: /**
106
- * Gets formatted value
107
- * @return {?}
108
- */
109
- function () {
110
- if (!this._isValid) {
111
- return null;
112
- }
113
- return this.currentValue;
114
- },
115
- enumerable: false,
116
- configurable: true
117
- });
118
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "valid", {
119
- /**
120
- * Gets indication whether is current value valid
121
- */
122
- get: /**
123
- * Gets indication whether is current value valid
124
- * @return {?}
125
- */
126
- function () {
127
- return this._isValid;
128
- },
129
- enumerable: false,
130
- configurable: true
131
- });
132
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "valueChange", {
133
- /**
134
- * Occurs when value changes
135
- */
136
- get: /**
137
- * Occurs when value changes
138
- * @return {?}
139
- */
140
- function () {
141
- return this._valueChange.asObservable();
142
- },
143
- enumerable: false,
144
- configurable: true
145
- });
146
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "touched", {
147
- /**
148
- * Occurs when selector is touched by user
149
- */
150
- get: /**
151
- * Occurs when selector is touched by user
152
- * @return {?}
153
- */
154
- function () {
155
- return this._touched.asObservable();
156
- },
157
- enumerable: false,
158
- configurable: true
159
- });
160
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "pickerRequest", {
161
- /**
162
- * Occurs when selector requires picker to be displayed
163
- */
164
- get: /**
165
- * Occurs when selector requires picker to be displayed
166
- * @return {?}
167
- */
168
- function () {
169
- return this._pickerRequest.asObservable();
170
- },
171
- enumerable: false,
172
- configurable: true
173
- });
174
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "currentValue", {
175
- //######################### protected properties #########################
176
- /**
177
- * Gets or sets string representation current of value
178
- */
179
- get:
180
- //######################### protected properties #########################
181
- /**
182
- * Gets or sets string representation current of value
183
- * @protected
184
- * @return {?}
185
- */
186
- function () {
187
- return this.input.value || null;
188
- },
189
- set: /**
190
- * @protected
191
- * @param {?} value
192
- * @return {?}
193
- */
194
- function (value) {
195
- if (this.input) {
196
- this.input.value = value !== null && value !== void 0 ? value : '';
197
- }
198
- },
199
- enumerable: false,
200
- configurable: true
201
- });
202
- Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "input", {
203
- /**
204
- * Gets input element used for handling date time value
205
- */
206
- get: /**
207
- * Gets input element used for handling date time value
208
- * @protected
209
- * @return {?}
210
- */
211
- function () {
212
- return (/** @type {?} */ (this.inputElement)).nativeElement;
213
- },
214
- enumerable: false,
215
- configurable: true
216
- });
217
- //######################### public methods - implementation of DateTimeSelector #########################
218
- /**
219
- * Sets minimal possible value for picker, that can be picked
220
- * @param value - Minimal possible value that can be picked
221
- */
222
- //######################### public methods - implementation of DateTimeSelector #########################
223
- /**
224
- * Sets minimal possible value for picker, that can be picked
225
- * @param {?} value - Minimal possible value that can be picked
226
- * @return {?}
227
- */
228
- SimpleInputDateTimeSelectorComponent.prototype.setMinValue =
229
- //######################### public methods - implementation of DateTimeSelector #########################
230
- /**
231
- * Sets minimal possible value for picker, that can be picked
232
- * @param {?} value - Minimal possible value that can be picked
233
- * @return {?}
234
- */
235
- function (value) {
236
- this._minValue = value;
237
- };
238
- /**
239
- * Sets maximal possible value for picker, that can be picked
240
- * @param value - Maximal possible value that can be picked
241
- */
242
- /**
243
- * Sets maximal possible value for picker, that can be picked
244
- * @param {?} value - Maximal possible value that can be picked
245
- * @return {?}
246
- */
247
- SimpleInputDateTimeSelectorComponent.prototype.setMaxValue = /**
248
- * Sets maximal possible value for picker, that can be picked
249
- * @param {?} value - Maximal possible value that can be picked
250
- * @return {?}
251
- */
252
- function (value) {
253
- this._maxValue = value;
254
- };
255
- /**
256
- * Sets value of datetime selector
257
- * @param value - Value to be set to this selector
258
- */
259
- /**
260
- * Sets value of datetime selector
261
- * @param {?} value - Value to be set to this selector
262
- * @return {?}
263
- */
264
- SimpleInputDateTimeSelectorComponent.prototype.setValue = /**
265
- * Sets value of datetime selector
266
- * @param {?} value - Value to be set to this selector
267
- * @return {?}
268
- */
269
- function (value) {
270
- if (value === null || value === void 0 ? void 0 : value.from) {
271
- this._dateApiValue = this._dateApi.getValue(value === null || value === void 0 ? void 0 : value.from, this._format);
272
- this._isValid = this._dateApiValue.isValid();
273
- this._show();
274
- }
275
- else {
276
- this._clearValue();
277
- }
278
- };
279
- /**
280
- * Sets as 'control' disabled
281
- * @param disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
282
- */
283
- /**
284
- * Sets as 'control' disabled
285
- * @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
286
- * @return {?}
287
- */
288
- SimpleInputDateTimeSelectorComponent.prototype.setDisabled = /**
289
- * Sets as 'control' disabled
290
- * @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
291
- * @return {?}
292
- */
293
- function (disabled) {
294
- if (disabled === void 0) { disabled = true; }
295
- this.disabled = disabled;
296
- };
297
- /**
298
- * Explicitly runs invalidation of content (change detection)
299
- */
300
- /**
301
- * Explicitly runs invalidation of content (change detection)
302
- * @return {?}
303
- */
304
- SimpleInputDateTimeSelectorComponent.prototype.invalidateVisuals = /**
305
- * Explicitly runs invalidation of content (change detection)
306
- * @return {?}
307
- */
308
- function () {
309
- this._changeDetector.detectChanges();
310
- };
311
- //######################### public methods - template bindings #########################
312
- /**
313
- * Handles gaining of focus
314
- * @internal
315
- */
316
- //######################### public methods - template bindings #########################
317
- /**
318
- * Handles gaining of focus
319
- * \@internal
320
- * @return {?}
321
- */
322
- SimpleInputDateTimeSelectorComponent.prototype.handleFocus =
323
- //######################### public methods - template bindings #########################
324
- /**
325
- * Handles gaining of focus
326
- * \@internal
327
- * @return {?}
328
- */
329
- function () {
330
- this._pickerRequest.next(true);
331
- //no value
332
- if (!this._dateApiValue) {
333
- this._dateApiValue = this._dateApi.now();
334
- this._isValid = this._dateApiValue.isValid();
335
- if (this._minMaxConstraintTest()) {
336
- this._clearValue();
337
- }
338
- else {
339
- this._valueChange.next();
340
- }
341
- }
342
- if (!this._isValid) {
343
- return;
344
- }
345
- this._show();
346
- };
347
- /**
348
- * Handles blur on input
349
- * @internal
350
- */
351
- /**
352
- * Handles blur on input
353
- * \@internal
354
- * @return {?}
355
- */
356
- SimpleInputDateTimeSelectorComponent.prototype.handleBlur = /**
357
- * Handles blur on input
358
- * \@internal
359
- * @return {?}
360
- */
361
- function () {
362
- this._pickerRequest.next(false);
363
- };
364
- /**
365
- * Handles user input
366
- * @internal
367
- */
368
- /**
369
- * Handles user input
370
- * \@internal
371
- * @return {?}
372
- */
373
- SimpleInputDateTimeSelectorComponent.prototype.handleInput = /**
374
- * Handles user input
375
- * \@internal
376
- * @return {?}
377
- */
378
- function () {
379
- //empty value
380
- if (!this.currentValue) {
381
- this._clearValue();
382
- this._valueChange.next();
383
- return;
384
- }
385
- this._dateApiValue = this._dateApi.getValue(this.currentValue, this._format);
386
- this._isValid = this._dateApiValue.isValid();
387
- this._valueChange.next();
388
- };
389
- /**
390
- * Handles click event inside of input
391
- * @internal
392
- */
393
- /**
394
- * Handles click event inside of input
395
- * \@internal
396
- * @return {?}
397
- */
398
- SimpleInputDateTimeSelectorComponent.prototype.handleClick = /**
399
- * Handles click event inside of input
400
- * \@internal
401
- * @return {?}
402
- */
403
- function () {
404
- this._pickerRequest.next(true);
405
- };
406
- /**
407
- * Handles keyboard events
408
- * @param event - Keyboard event that occured
409
- * @param input - Html input element that holds current value and selection
410
- * @internal
411
- */
412
- /**
413
- * Handles keyboard events
414
- * \@internal
415
- * @param {?} event - Keyboard event that occured
416
- * @return {?}
417
- */
418
- SimpleInputDateTimeSelectorComponent.prototype.handleKeyboard = /**
419
- * Handles keyboard events
420
- * \@internal
421
- * @param {?} event - Keyboard event that occured
422
- * @return {?}
423
- */
424
- function (event) {
425
- var _this = this;
426
- var _a;
427
- if (!((_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.isValid())) {
428
- return;
429
- }
430
- switch (event.key) {
431
- case 'ArrowRight':
432
- case 'ArrowLeft':
433
- {
434
- event.preventDefault();
435
- event.stopPropagation();
436
- this._withMinMaxConstraint((/**
437
- * @return {?}
438
- */
439
- function () { return event.key == 'ArrowLeft' ? (/** @type {?} */ (_this._dateApiValue)).subtractDays(1) : (/** @type {?} */ (_this._dateApiValue)).addDays(1); }));
440
- this._show();
441
- break;
442
- }
443
- case 'ArrowUp':
444
- case 'ArrowDown':
445
- {
446
- event.preventDefault();
447
- event.stopPropagation();
448
- this._withMinMaxConstraint((/**
449
- * @return {?}
450
- */
451
- function () { return event.key == 'ArrowUp' ? (/** @type {?} */ (_this._dateApiValue)).subtractWeeks(1) : (/** @type {?} */ (_this._dateApiValue)).addWeeks(1); }));
452
- this._show();
453
- break;
454
- }
455
- case 'Escape':
456
- {
457
- this._pickerRequest.next(false);
458
- break;
459
- }
460
- case ' ':
461
- {
462
- if (event.ctrlKey) {
463
- this._pickerRequest.next(true);
464
- }
465
- break;
466
- }
467
- }
468
- };
469
- //######################### protected methods #########################
470
- /**
471
- * Clears current value
472
- */
473
- //######################### protected methods #########################
474
- /**
475
- * Clears current value
476
- * @protected
477
- * @return {?}
478
- */
479
- SimpleInputDateTimeSelectorComponent.prototype._clearValue =
480
- //######################### protected methods #########################
481
- /**
482
- * Clears current value
483
- * @protected
484
- * @return {?}
485
- */
486
- function () {
487
- this._dateApiValue = null;
488
- this._isValid = true;
489
- this.currentValue = null;
490
- };
491
- /**
492
- * Tests whether are min or max constraint broken, returns true if constraint is broken
493
- */
494
- /**
495
- * Tests whether are min or max constraint broken, returns true if constraint is broken
496
- * @protected
497
- * @return {?}
498
- */
499
- SimpleInputDateTimeSelectorComponent.prototype._minMaxConstraintTest = /**
500
- * Tests whether are min or max constraint broken, returns true if constraint is broken
501
- * @protected
502
- * @return {?}
503
- */
504
- function () {
505
- return (!!this._minValue && (/** @type {?} */ (this._dateApiValue)).isBefore(this._minValue)) ||
506
- (!!this._maxValue && (/** @type {?} */ (this._dateApiValue)).isAfter(this._maxValue));
507
- };
508
- /**
509
- * Runs code with check whether min max constrains was broken
510
- * @param code - Code that should be executed which can change current value
511
- */
512
- /**
513
- * Runs code with check whether min max constrains was broken
514
- * @protected
515
- * @param {?} code - Code that should be executed which can change current value
516
- * @return {?}
517
- */
518
- SimpleInputDateTimeSelectorComponent.prototype._withMinMaxConstraint = /**
519
- * Runs code with check whether min max constrains was broken
520
- * @protected
521
- * @param {?} code - Code that should be executed which can change current value
522
- * @return {?}
523
- */
524
- function (code) {
525
- var _a;
526
- (/** @type {?} */ (this._dateApiValue)).updateOriginal();
527
- code();
528
- //min value constraint failure
529
- if (this._minMaxConstraintTest()) {
530
- (_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.resetOriginal();
531
- return;
532
- }
533
- this._valueChange.next();
534
- };
535
- /**
536
- * Shows current value in input
537
- */
538
- /**
539
- * Shows current value in input
540
- * @protected
541
- * @return {?}
542
- */
543
- SimpleInputDateTimeSelectorComponent.prototype._show = /**
544
- * Shows current value in input
545
- * @protected
546
- * @return {?}
547
- */
548
- function () {
549
- var _a, _b;
550
- if (this._isValid) {
551
- this.currentValue = (_b = (_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.format(this._format)) !== null && _b !== void 0 ? _b : null;
552
- }
553
- };
554
- SimpleInputDateTimeSelectorComponent.decorators = [
555
- { type: Component, args: [{
556
- selector: 'simple-input-date-time-selector',
557
- template: "<input type=\"text\"\r\n #input\r\n (focus)=\"handleFocus()\"\r\n (blur)=\"handleBlur()\"\r\n (input)=\"handleInput()\"\r\n (click)=\"handleClick()\"\r\n (keydown)=\"handleKeyboard($any($event))\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\">",
558
- changeDetection: ChangeDetectionStrategy.OnPush,
559
- styles: [":host\r\n{\r\n display: block;\r\n}\r\n\r\ninput\r\n{\r\n width: 100%;\r\n}"]
560
- },] }
561
- ];
562
- /** @nocollapse */
563
- SimpleInputDateTimeSelectorComponent.ctorParameters = function () { return [
564
- { type: undefined, decorators: [{ type: Inject, args: [DATE_API,] }] },
565
- { type: DateValueProvider },
566
- { type: ChangeDetectorRef }
567
- ]; };
568
- SimpleInputDateTimeSelectorComponent.propDecorators = {
569
- inputElement: [{ type: ViewChild, args: ['input', { static: true },] }]
570
- };
571
- return SimpleInputDateTimeSelectorComponent;
572
- }());
573
- export { SimpleInputDateTimeSelectorComponent };
574
- if (false) {
575
- /**
576
- * Occurs when value changes
577
- * @type {?}
578
- * @protected
579
- */
580
- SimpleInputDateTimeSelectorComponent.prototype._valueChange;
581
- /**
582
- * Occurs when selector is touched by user
583
- * @type {?}
584
- * @protected
585
- */
586
- SimpleInputDateTimeSelectorComponent.prototype._touched;
587
- /**
588
- * Occurs when selector requires picker to be displayed or hidden
589
- * @type {?}
590
- * @protected
591
- */
592
- SimpleInputDateTimeSelectorComponent.prototype._pickerRequest;
593
- /**
594
- * Currently used format for displaying data
595
- * @type {?}
596
- * @protected
597
- */
598
- SimpleInputDateTimeSelectorComponent.prototype._format;
599
- /**
600
- * Current value representation as date api wrapper
601
- * @type {?}
602
- * @protected
603
- */
604
- SimpleInputDateTimeSelectorComponent.prototype._dateApiValue;
605
- /**
606
- * Indication whether is current value valid value
607
- * @type {?}
608
- * @protected
609
- */
610
- SimpleInputDateTimeSelectorComponent.prototype._isValid;
611
- /**
612
- * Minimal possible value that can be picked
613
- * @type {?}
614
- * @protected
615
- */
616
- SimpleInputDateTimeSelectorComponent.prototype._minValue;
617
- /**
618
- * Maximal possible value that can be picked
619
- * @type {?}
620
- * @protected
621
- */
622
- SimpleInputDateTimeSelectorComponent.prototype._maxValue;
623
- /**
624
- * Gets or sets placeholder that is displayed when there is no value selected
625
- * @type {?}
626
- */
627
- SimpleInputDateTimeSelectorComponent.prototype.placeholder;
628
- /**
629
- * Indication whether is input disabled
630
- * \@internal
631
- * @type {?}
632
- */
633
- SimpleInputDateTimeSelectorComponent.prototype.disabled;
634
- /**
635
- * Instance of html input element
636
- * \@internal
637
- * @type {?}
638
- */
639
- SimpleInputDateTimeSelectorComponent.prototype.inputElement;
640
- /**
641
- * @type {?}
642
- * @protected
643
- */
644
- SimpleInputDateTimeSelectorComponent.prototype._dateApi;
645
- /**
646
- * @type {?}
647
- * @protected
648
- */
649
- SimpleInputDateTimeSelectorComponent.prototype._valueProvider;
650
- /**
651
- * @type {?}
652
- * @protected
653
- */
654
- SimpleInputDateTimeSelectorComponent.prototype._changeDetector;
655
- }
656
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlSW5wdXREYXRlVGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VsZWN0b3IvY29tcG9uZW50cy9zaW1wbGVJbnB1dERhdGVUaW1lL3NpbXBsZUlucHV0RGF0ZVRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFNOUU7SUEwS0ksaUVBQWlFO0lBQ2pFLDhDQUF3QyxRQUF3QixFQUMxQyxjQUF3QyxFQUN4QyxlQUFrQztRQUZoQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQW1COzs7OztRQS9KOUMsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQzs7OztRQUtsRCxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7Ozs7UUFLOUMsbUJBQWMsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQzs7OztRQUsxRCxZQUFPLEdBQVcsRUFBRSxDQUFDOzs7O1FBS3JCLGtCQUFhLEdBQThCLElBQUksQ0FBQzs7OztRQUtoRCxhQUFRLEdBQVksSUFBSSxDQUFDOzs7O1FBS3pCLGNBQVMsR0FBZSxJQUFJLENBQUM7Ozs7UUFLN0IsY0FBUyxHQUFlLElBQUksQ0FBQzs7Ozs7O1FBcUZoQyxhQUFRLEdBQVksS0FBSyxDQUFDO0lBeUNqQyxDQUFDO0lBdkhE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LFNBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzs7SUE4UXRDLDJDQUFDO0NBQUEsQUE1WkQsSUE0WkM7U0FyWlksb0NBQW9DOzs7Ozs7O0lBTzdDLDREQUE0RDs7Ozs7O0lBSzVELHdEQUF3RDs7Ozs7O0lBS3hELDhEQUFvRTs7Ozs7O0lBS3BFLHVEQUErQjs7Ozs7O0lBSy9CLDZEQUEwRDs7Ozs7O0lBSzFELHdEQUFtQzs7Ozs7O0lBS25DLHlEQUF1Qzs7Ozs7O0lBS3ZDLHlEQUF1Qzs7Ozs7SUFtQnZDLDJEQUFxQzs7Ozs7O0lBa0VyQyx3REFBaUM7Ozs7OztJQVFqQyw0REFDbUQ7Ozs7O0lBNEJ2Qyx3REFBb0Q7Ozs7O0lBQ3BELDhEQUFrRDs7Ozs7SUFDbEQsK0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbmplY3QsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtEYXRlVGltZVZhbHVlfSBmcm9tICcuLi8uLi8uLi9taXNjL2RhdGV0aW1lLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9BUEl9IGZyb20gJy4uLy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlQXBpLCBEYXRlQXBpT2JqZWN0fSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7RGF0ZVZhbHVlUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RhdGVWYWx1ZVByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RhdGVUaW1lU2VsZWN0b3J9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWVTZWxlY3Rvci5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGFzIGRhdGV0aW1lIHNlbGVjdG9yIHdpdGggc2ltcGxlIGlucHV0XHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG57XHJcbiAgICBzZWxlY3RvcjogJ3NpbXBsZS1pbnB1dC1kYXRlLXRpbWUtc2VsZWN0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdzaW1wbGVJbnB1dERhdGVUaW1lLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydzaW1wbGVJbnB1dERhdGVUaW1lLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGUgPSBhbnk+IGltcGxlbWVudHMgRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT5cclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIGlzIHRvdWNoZWQgYnkgdXNlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gc2VsZWN0b3IgcmVxdWlyZXMgcGlja2VyIHRvIGJlIGRpc3BsYXllZCBvciBoaWRkZW5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9waWNrZXJSZXF1ZXN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnRseSB1c2VkIGZvcm1hdCBmb3IgZGlzcGxheWluZyBkYXRhXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfZm9ybWF0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgcmVwcmVzZW50YXRpb24gYXMgZGF0ZSBhcGkgd3JhcHBlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2RhdGVBcGlWYWx1ZTogbnVsbHxEYXRlQXBpT2JqZWN0PFREYXRlPiA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgY3VycmVudCB2YWx1ZSB2YWxpZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2lzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWluaW1hbCBwb3NzaWJsZSB2YWx1ZSB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9taW5WYWx1ZTogVERhdGV8bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXhpbWFsIHBvc3NpYmxlIHZhbHVlIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21heFZhbHVlOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlVGltZVNlbGVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBjdXJyZW50bHkgdXNlZCBmb3JtYXQgZm9yIGRpc3BsYXlpbmcgZGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdCgpOiBzdHJpbmdcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZylcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBwbGFjZWhvbGRlciB0aGF0IGlzIGRpc3BsYXllZCB3aGVuIHRoZXJlIGlzIG5vIHZhbHVlIHNlbGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nfHVuZGVmaW5lZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgY3VycmVudCB2YWx1ZSBvZiBkYXRldGltZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGxcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fZGF0ZUFwaVZhbHVlIHx8ICF0aGlzLl9pc1ZhbGlkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVQcm92aWRlci5nZXRWYWx1ZSh0aGlzLl9kYXRlQXBpVmFsdWUudmFsdWUsIHRoaXMuX2Zvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGZvcm1hdHRlZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZ3xudWxsXHJcbiAgICB7XHJcbiAgICAgICAgaWYoIXRoaXMuX2lzVmFsaWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIGlzIGN1cnJlbnQgdmFsdWUgdmFsaWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiB2YWx1ZSBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIGlzIHRvdWNoZWQgYnkgdXNlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogT2JzZXJ2YWJsZTx2b2lkPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gc2VsZWN0b3IgcmVxdWlyZXMgcGlja2VyIHRvIGJlIGRpc3BsYXllZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHBpY2tlclJlcXVlc3QoKTogT2JzZXJ2YWJsZTxib29sZWFuPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9waWNrZXJSZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gd2hldGhlciBpcyBpbnB1dCBkaXNhYmxlZFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGNoaWxkcmVuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc3RhbmNlIG9mIGh0bWwgaW5wdXQgZWxlbWVudFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHN0cmluZyByZXByZXNlbnRhdGlvbiBjdXJyZW50IG9mIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgY3VycmVudFZhbHVlKCk6IHN0cmluZ3xudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQudmFsdWUgfHwgbnVsbDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBzZXQgY3VycmVudFZhbHVlKHZhbHVlOiBzdHJpbmd8bnVsbClcclxuICAgIHtcclxuICAgICAgICBpZih0aGlzLmlucHV0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5wdXQgZWxlbWVudCB1c2VkIGZvciBoYW5kbGluZyBkYXRlIHRpbWUgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBpbnB1dCgpOiBIVE1MSW5wdXRFbGVtZW50XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50IS5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERBVEVfQVBJKSBwcm90ZWN0ZWQgX2RhdGVBcGk6IERhdGVBcGk8VERhdGU+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlVGltZVNlbGVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE1pbmltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRNaW5WYWx1ZSh2YWx1ZTogVERhdGV8bnVsbCk6IHZvaWRcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gTWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldE1heFZhbHVlKHZhbHVlOiBURGF0ZXxudWxsKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHZhbHVlIG9mIGRhdGV0aW1lIHNlbGVjdG9yXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBiZSBzZXQgdG8gdGhpcyBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGwpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYodmFsdWU/LmZyb20pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlPy5mcm9tLCB0aGlzLl9mb3JtYXQpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJWYWx1ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYXMgJ2NvbnRyb2wnIGRpc2FibGVkXHJcbiAgICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBJbmRpY2F0aW9uIHdoZXRoZXIgc2V0cyB2YWx1ZSBhcyBkaXNhYmxlZCwgaWYgb21pdHRlZCBpdCBpcyBzYW1lIGFzIGRpc2FibGVkIHNldCB0byB0cnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwbGljaXRseSBydW5zIGludmFsaWRhdGlvbiBvZiBjb250ZW50IChjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW52YWxpZGF0ZVZpc3VhbHMoKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGdhaW5pbmcgb2YgZm9jdXNcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlRm9jdXMoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dCh0cnVlKTtcclxuXHJcbiAgICAgICAgLy9ubyB2YWx1ZVxyXG4gICAgICAgIGlmKCF0aGlzLl9kYXRlQXBpVmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSB0aGlzLl9kYXRlQXBpLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmKHRoaXMuX21pbk1heENvbnN0cmFpbnRUZXN0KCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyVmFsdWUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX2lzVmFsaWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGJsdXIgb24gaW5wdXRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlQmx1cigpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyUmVxdWVzdC5uZXh0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdXNlciBpbnB1dFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dCgpXHJcbiAgICB7XHJcbiAgICAgICAgLy9lbXB0eSB2YWx1ZVxyXG4gICAgICAgIGlmKCF0aGlzLmN1cnJlbnRWYWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyVmFsdWUoKTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UubmV4dCgpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZGF0ZUFwaVZhbHVlID0gdGhpcy5fZGF0ZUFwaS5nZXRWYWx1ZSh0aGlzLmN1cnJlbnRWYWx1ZSwgdGhpcy5fZm9ybWF0KTtcclxuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGNsaWNrIGV2ZW50IGluc2lkZSBvZiBpbnB1dFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVDbGljaygpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyUmVxdWVzdC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBrZXlib2FyZCBldmVudHNcclxuICAgICAqIEBwYXJhbSBldmVudCAtIEtleWJvYXJkIGV2ZW50IHRoYXQgb2NjdXJlZFxyXG4gICAgICogQHBhcmFtIGlucHV0IC0gSHRtbCBpbnB1dCBlbGVtZW50IHRoYXQgaG9sZHMgY3VycmVudCB2YWx1ZSBhbmQgc2VsZWN0aW9uXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmKCF0aGlzLl9kYXRlQXBpVmFsdWU/LmlzVmFsaWQoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaChldmVudC5rZXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcclxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3dpdGhNaW5NYXhDb25zdHJhaW50KCgpID0+IGV2ZW50LmtleSA9PSAnQXJyb3dMZWZ0JyA/IHRoaXMuX2RhdGVBcGlWYWx1ZSEuc3VidHJhY3REYXlzKDEpIDogdGhpcy5fZGF0ZUFwaVZhbHVlIS5hZGREYXlzKDEpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3dpdGhNaW5NYXhDb25zdHJhaW50KCgpID0+IGV2ZW50LmtleSA9PSAnQXJyb3dVcCcgPyB0aGlzLl9kYXRlQXBpVmFsdWUhLnN1YnRyYWN0V2Vla3MoMSkgOiB0aGlzLl9kYXRlQXBpVmFsdWUhLmFkZFdlZWtzKDEpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9waWNrZXJSZXF1ZXN0Lm5leHQoZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJyAnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZihldmVudC5jdHJsS2V5KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIGN1cnJlbnQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9jbGVhclZhbHVlKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlc3RzIHdoZXRoZXIgYXJlIG1pbiBvciBtYXggY29uc3RyYWludCBicm9rZW4sIHJldHVybnMgdHJ1ZSBpZiBjb25zdHJhaW50IGlzIGJyb2tlblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21pbk1heENvbnN0cmFpbnRUZXN0KCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gKCEhdGhpcy5fbWluVmFsdWUgJiYgdGhpcy5fZGF0ZUFwaVZhbHVlIS5pc0JlZm9yZSh0aGlzLl9taW5WYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICghIXRoaXMuX21heFZhbHVlICYmIHRoaXMuX2RhdGVBcGlWYWx1ZSEuaXNBZnRlcih0aGlzLl9tYXhWYWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUnVucyBjb2RlIHdpdGggY2hlY2sgd2hldGhlciBtaW4gbWF4IGNvbnN0cmFpbnMgd2FzIGJyb2tlblxyXG4gICAgICogQHBhcmFtIGNvZGUgLSBDb2RlIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIHdoaWNoIGNhbiBjaGFuZ2UgY3VycmVudCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3dpdGhNaW5NYXhDb25zdHJhaW50KGNvZGU6ICgpID0+IHZvaWQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZGF0ZUFwaVZhbHVlIS51cGRhdGVPcmlnaW5hbCgpO1xyXG5cclxuICAgICAgICBjb2RlKCk7XHJcblxyXG4gICAgICAgIC8vbWluIHZhbHVlIGNvbnN0cmFpbnQgZmFpbHVyZVxyXG4gICAgICAgIGlmKHRoaXMuX21pbk1heENvbnN0cmFpbnRUZXN0KCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWU/LnJlc2V0T3JpZ2luYWwoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIGN1cnJlbnQgdmFsdWUgaW4gaW5wdXRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9zaG93KClcclxuICAgIHtcclxuICAgICAgICBpZih0aGlzLl9pc1ZhbGlkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLl9kYXRlQXBpVmFsdWU/LmZvcm1hdCh0aGlzLl9mb3JtYXQpID8/IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19