@anglr/datetime 2.0.0-beta.20220221103100 → 2.0.1

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 (456) hide show
  1. package/changelog.md +19 -0
  2. package/date-fns/package.json +7 -7
  3. package/date-fns/src/{date-fns.d.ts → index.d.ts} +4 -4
  4. package/date-fns/src/index.d.ts.map +1 -0
  5. package/date-fns/src/misc/tokens.d.ts +10 -10
  6. package/date-fns/src/services/dateFnsDateApi.service.d.ts +36 -33
  7. package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
  8. package/date-fns/src/services/dateFnsLocale.service.d.ts +10 -10
  9. package/es2015/date-fns/src/index.js +4 -0
  10. package/es2015/date-fns/src/index.js.map +1 -0
  11. package/es2015/date-fns/src/misc/tokens.js +20 -0
  12. package/es2015/date-fns/src/misc/tokens.js.map +1 -0
  13. package/es2015/date-fns/src/services/dateFnsDateApi.service.js +438 -0
  14. package/es2015/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
  15. package/es2015/date-fns/src/services/dateFnsLocale.service.js +2 -0
  16. package/es2015/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
  17. package/es2015/karma.conf.js +57 -0
  18. package/es2015/karma.conf.js.map +1 -0
  19. package/{moment/src/moment.d.ts → es2015/moment/src/index.js} +3 -3
  20. package/es2015/moment/src/index.js.map +1 -0
  21. package/es2015/moment/src/misc/tokens.js +15 -0
  22. package/es2015/moment/src/misc/tokens.js.map +1 -0
  23. package/es2015/moment/src/services/momentDateApi.service.js +398 -0
  24. package/es2015/moment/src/services/momentDateApi.service.js.map +1 -0
  25. package/{src/datetime.d.ts → es2015/src/index.js} +19 -19
  26. package/es2015/src/index.js.map +1 -0
  27. package/es2015/src/misc/constants.js +33 -0
  28. package/es2015/src/misc/constants.js.map +1 -0
  29. package/es2015/src/misc/datetime.interface.js +2 -0
  30. package/es2015/src/misc/datetime.interface.js.map +1 -0
  31. package/es2015/src/misc/tokens.js +19 -0
  32. package/es2015/src/misc/tokens.js.map +1 -0
  33. package/es2015/src/misc/validators.js +58 -0
  34. package/es2015/src/misc/validators.js.map +1 -0
  35. package/es2015/src/modules/datePipes.module.js +33 -0
  36. package/es2015/src/modules/datePipes.module.js.map +1 -0
  37. package/es2015/src/picker/components/dayPicker/dayPicker.component.js +172 -0
  38. package/es2015/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
  39. package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
  40. package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
  41. package/es2015/src/picker/components/monthPicker/monthPicker.component.js +114 -0
  42. package/es2015/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
  43. package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
  44. package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
  45. package/es2015/src/picker/components/picker/picker.component.animations.js +71 -0
  46. package/es2015/src/picker/components/picker/picker.component.animations.js.map +1 -0
  47. package/es2015/src/picker/components/picker/picker.component.js +241 -0
  48. package/es2015/src/picker/components/picker/picker.component.js.map +1 -0
  49. package/es2015/src/picker/components/pickerBase.component.js +243 -0
  50. package/es2015/src/picker/components/pickerBase.component.js.map +1 -0
  51. package/es2015/src/picker/components/yearPicker/yearPicker.component.js +126 -0
  52. package/es2015/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
  53. package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
  54. package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
  55. package/es2015/src/picker/interfaces.js +5 -0
  56. package/es2015/src/picker/interfaces.js.map +1 -0
  57. package/es2015/src/picker/misc/datetimePicker.interface.js +2 -0
  58. package/es2015/src/picker/misc/datetimePicker.interface.js.map +1 -0
  59. package/es2015/src/picker/misc/tokens.js +6 -0
  60. package/es2015/src/picker/misc/tokens.js.map +1 -0
  61. package/es2015/src/picker/modules/picker.module.js +46 -0
  62. package/es2015/src/picker/modules/picker.module.js.map +1 -0
  63. package/es2015/src/picker/types.js +8 -0
  64. package/es2015/src/picker/types.js.map +1 -0
  65. package/es2015/src/pipes/asRequiredType.js +22 -0
  66. package/es2015/src/pipes/asRequiredType.js.map +1 -0
  67. package/es2015/src/pipes/dateConvert.pipe.js +35 -0
  68. package/es2015/src/pipes/dateConvert.pipe.js.map +1 -0
  69. package/es2015/src/pipes/dateFormat.pipe.js +45 -0
  70. package/es2015/src/pipes/dateFormat.pipe.js.map +1 -0
  71. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +421 -0
  72. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
  73. package/es2015/src/selector/components/selector/selector.component.animations.js +15 -0
  74. package/es2015/src/selector/components/selector/selector.component.animations.js.map +1 -0
  75. package/es2015/src/selector/components/selector/selector.component.js +344 -0
  76. package/es2015/src/selector/components/selector/selector.component.js.map +1 -0
  77. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +317 -0
  78. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
  79. package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
  80. package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
  81. package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
  82. package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
  83. package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
  84. package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
  85. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +119 -0
  86. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
  87. package/es2015/src/selector/interfaces.js +2 -0
  88. package/es2015/src/selector/interfaces.js.map +1 -0
  89. package/es2015/src/selector/misc/datetimeSelector.interface.js +2 -0
  90. package/es2015/src/selector/misc/datetimeSelector.interface.js.map +1 -0
  91. package/es2015/src/selector/misc/tokens.js +6 -0
  92. package/es2015/src/selector/misc/tokens.js.map +1 -0
  93. package/es2015/src/selector/modules/basicSelector.module.js +20 -0
  94. package/es2015/src/selector/modules/basicSelector.module.js.map +1 -0
  95. package/es2015/src/selector/modules/selector.module.js +60 -0
  96. package/es2015/src/selector/modules/selector.module.js.map +1 -0
  97. package/es2015/src/selector/types.js +10 -0
  98. package/es2015/src/selector/types.js.map +1 -0
  99. package/es2015/src/services/dateApi.interface.js +2 -0
  100. package/es2015/src/services/dateApi.interface.js.map +1 -0
  101. package/es2015/src/services/datePositionParser.interface.js +2 -0
  102. package/es2015/src/services/datePositionParser.interface.js.map +1 -0
  103. package/es2015/src/services/datePositionParser.service.js +227 -0
  104. package/es2015/src/services/datePositionParser.service.js.map +1 -0
  105. package/es2015/src/services/dateTimeRelativeParser.service.js +66 -0
  106. package/es2015/src/services/dateTimeRelativeParser.service.js.map +1 -0
  107. package/es2015/src/services/dateValueProvider.service.js +58 -0
  108. package/es2015/src/services/dateValueProvider.service.js.map +1 -0
  109. package/es2015/src/services/formatProvider.interface.js +2 -0
  110. package/es2015/src/services/formatProvider.interface.js.map +1 -0
  111. package/es2015/src/services/index.js +4 -0
  112. package/es2015/src/services/index.js.map +1 -0
  113. package/es2020/date-fns/src/index.js +4 -0
  114. package/es2020/date-fns/src/index.js.map +1 -0
  115. package/es2020/date-fns/src/misc/tokens.js +20 -0
  116. package/es2020/date-fns/src/misc/tokens.js.map +1 -0
  117. package/es2020/date-fns/src/services/dateFnsDateApi.service.js +437 -0
  118. package/es2020/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
  119. package/es2020/date-fns/src/services/dateFnsLocale.service.js +2 -0
  120. package/es2020/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
  121. package/es2020/karma.conf.js +57 -0
  122. package/es2020/karma.conf.js.map +1 -0
  123. package/es2020/moment/src/index.js +3 -0
  124. package/es2020/moment/src/index.js.map +1 -0
  125. package/es2020/moment/src/misc/tokens.js +15 -0
  126. package/es2020/moment/src/misc/tokens.js.map +1 -0
  127. package/es2020/moment/src/services/momentDateApi.service.js +398 -0
  128. package/es2020/moment/src/services/momentDateApi.service.js.map +1 -0
  129. package/es2020/src/index.js +19 -0
  130. package/es2020/src/index.js.map +1 -0
  131. package/es2020/src/misc/constants.js +33 -0
  132. package/es2020/src/misc/constants.js.map +1 -0
  133. package/es2020/src/misc/datetime.interface.js +2 -0
  134. package/es2020/src/misc/datetime.interface.js.map +1 -0
  135. package/es2020/src/misc/tokens.js +19 -0
  136. package/es2020/src/misc/tokens.js.map +1 -0
  137. package/es2020/src/misc/validators.js +58 -0
  138. package/es2020/src/misc/validators.js.map +1 -0
  139. package/es2020/src/modules/datePipes.module.js +33 -0
  140. package/es2020/src/modules/datePipes.module.js.map +1 -0
  141. package/es2020/src/picker/components/dayPicker/dayPicker.component.js +172 -0
  142. package/es2020/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
  143. package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
  144. package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
  145. package/es2020/src/picker/components/monthPicker/monthPicker.component.js +114 -0
  146. package/es2020/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
  147. package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
  148. package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
  149. package/es2020/src/picker/components/picker/picker.component.animations.js +71 -0
  150. package/es2020/src/picker/components/picker/picker.component.animations.js.map +1 -0
  151. package/es2020/src/picker/components/picker/picker.component.js +236 -0
  152. package/es2020/src/picker/components/picker/picker.component.js.map +1 -0
  153. package/es2020/src/picker/components/pickerBase.component.js +243 -0
  154. package/es2020/src/picker/components/pickerBase.component.js.map +1 -0
  155. package/es2020/src/picker/components/yearPicker/yearPicker.component.js +126 -0
  156. package/es2020/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
  157. package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
  158. package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
  159. package/es2020/src/picker/interfaces.js +5 -0
  160. package/es2020/src/picker/interfaces.js.map +1 -0
  161. package/es2020/src/picker/misc/datetimePicker.interface.js +2 -0
  162. package/es2020/src/picker/misc/datetimePicker.interface.js.map +1 -0
  163. package/es2020/src/picker/misc/tokens.js +6 -0
  164. package/es2020/src/picker/misc/tokens.js.map +1 -0
  165. package/es2020/src/picker/modules/picker.module.js +46 -0
  166. package/es2020/src/picker/modules/picker.module.js.map +1 -0
  167. package/es2020/src/picker/types.js +8 -0
  168. package/es2020/src/picker/types.js.map +1 -0
  169. package/es2020/src/pipes/asRequiredType.js +22 -0
  170. package/es2020/src/pipes/asRequiredType.js.map +1 -0
  171. package/es2020/src/pipes/dateConvert.pipe.js +35 -0
  172. package/es2020/src/pipes/dateConvert.pipe.js.map +1 -0
  173. package/es2020/src/pipes/dateFormat.pipe.js +45 -0
  174. package/es2020/src/pipes/dateFormat.pipe.js.map +1 -0
  175. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js +417 -0
  176. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
  177. package/es2020/src/selector/components/selector/selector.component.animations.js +15 -0
  178. package/es2020/src/selector/components/selector/selector.component.animations.js.map +1 -0
  179. package/es2020/src/selector/components/selector/selector.component.js +334 -0
  180. package/es2020/src/selector/components/selector/selector.component.js.map +1 -0
  181. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +314 -0
  182. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
  183. package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
  184. package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
  185. package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
  186. package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
  187. package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
  188. package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
  189. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +118 -0
  190. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
  191. package/es2020/src/selector/interfaces.js +2 -0
  192. package/es2020/src/selector/interfaces.js.map +1 -0
  193. package/es2020/src/selector/misc/datetimeSelector.interface.js +2 -0
  194. package/es2020/src/selector/misc/datetimeSelector.interface.js.map +1 -0
  195. package/es2020/src/selector/misc/tokens.js +6 -0
  196. package/es2020/src/selector/misc/tokens.js.map +1 -0
  197. package/es2020/src/selector/modules/basicSelector.module.js +20 -0
  198. package/es2020/src/selector/modules/basicSelector.module.js.map +1 -0
  199. package/es2020/src/selector/modules/selector.module.js +60 -0
  200. package/es2020/src/selector/modules/selector.module.js.map +1 -0
  201. package/es2020/src/selector/types.js +10 -0
  202. package/es2020/src/selector/types.js.map +1 -0
  203. package/es2020/src/services/dateApi.interface.js +2 -0
  204. package/es2020/src/services/dateApi.interface.js.map +1 -0
  205. package/es2020/src/services/datePositionParser.interface.js +2 -0
  206. package/es2020/src/services/datePositionParser.interface.js.map +1 -0
  207. package/es2020/src/services/datePositionParser.service.js +227 -0
  208. package/es2020/src/services/datePositionParser.service.js.map +1 -0
  209. package/es2020/src/services/dateTimeRelativeParser.service.js +65 -0
  210. package/es2020/src/services/dateTimeRelativeParser.service.js.map +1 -0
  211. package/es2020/src/services/dateValueProvider.service.js +58 -0
  212. package/es2020/src/services/dateValueProvider.service.js.map +1 -0
  213. package/es2020/src/services/formatProvider.interface.js +2 -0
  214. package/es2020/src/services/formatProvider.interface.js.map +1 -0
  215. package/es2020/src/services/index.js +4 -0
  216. package/es2020/src/services/index.js.map +1 -0
  217. package/karma.conf.d.ts +2 -0
  218. package/karma.conf.d.ts.map +1 -0
  219. package/moment/package.json +7 -7
  220. package/moment/src/index.d.ts +3 -0
  221. package/moment/src/index.d.ts.map +1 -0
  222. package/moment/src/misc/tokens.d.ts +5 -5
  223. package/moment/src/services/momentDateApi.service.d.ts +35 -32
  224. package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
  225. package/package.json +100 -48
  226. package/src/index.d.ts +19 -0
  227. package/src/index.d.ts.map +1 -0
  228. package/src/misc/constants.d.ts +32 -32
  229. package/src/misc/datetime.interface.d.ts +34 -34
  230. package/src/misc/tokens.d.ts +10 -10
  231. package/src/misc/validators.d.ts +25 -25
  232. package/src/modules/datePipes.module.d.ts +12 -5
  233. package/src/modules/datePipes.module.d.ts.map +1 -1
  234. package/src/picker/components/dayPicker/dayPicker.component.d.ts +68 -65
  235. package/src/picker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
  236. package/src/picker/components/dayPicker/dayPicker.component.html +7 -7
  237. package/src/picker/components/dayPicker/dayPicker.interfaces.d.ts +10 -10
  238. package/src/picker/components/monthPicker/monthPicker.component.d.ts +52 -49
  239. package/src/picker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
  240. package/src/picker/components/monthPicker/monthPicker.component.html +6 -6
  241. package/src/picker/components/monthPicker/monthPicker.interfaces.d.ts +6 -6
  242. package/src/picker/components/picker/picker.component.animations.d.ts +4 -4
  243. package/src/picker/components/picker/picker.component.d.ts +104 -101
  244. package/src/picker/components/picker/picker.component.d.ts.map +1 -1
  245. package/src/picker/components/pickerBase.component.d.ts +169 -166
  246. package/src/picker/components/pickerBase.component.d.ts.map +1 -1
  247. package/src/picker/components/yearPicker/yearPicker.component.d.ts +57 -54
  248. package/src/picker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
  249. package/src/picker/components/yearPicker/yearPicker.component.html +6 -6
  250. package/src/picker/components/yearPicker/yearPicker.interfaces.d.ts +6 -6
  251. package/src/picker/interfaces.d.ts +4 -4
  252. package/src/picker/misc/datetimePicker.interface.d.ts +188 -188
  253. package/src/picker/misc/tokens.d.ts +6 -6
  254. package/src/picker/modules/picker.module.d.ts +16 -5
  255. package/src/picker/modules/picker.module.d.ts.map +1 -1
  256. package/src/picker/types.d.ts +7 -7
  257. package/src/pipes/asRequiredType.d.ts +21 -0
  258. package/src/pipes/asRequiredType.d.ts.map +1 -0
  259. package/src/pipes/dateConvert.pipe.d.ts +18 -15
  260. package/src/pipes/dateConvert.pipe.d.ts.map +1 -1
  261. package/src/pipes/dateFormat.pipe.d.ts +20 -17
  262. package/src/pipes/dateFormat.pipe.d.ts.map +1 -1
  263. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts +187 -184
  264. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
  265. package/src/selector/components/selector/selector.component.animations.d.ts +4 -4
  266. package/src/selector/components/selector/selector.component.d.ts +155 -152
  267. package/src/selector/components/selector/selector.component.d.ts.map +1 -1
  268. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +170 -167
  269. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
  270. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts +22 -19
  271. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts.map +1 -1
  272. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts +22 -19
  273. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts.map +1 -1
  274. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts +21 -18
  275. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts.map +1 -1
  276. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts +53 -50
  277. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts.map +1 -1
  278. package/src/selector/interfaces.d.ts +1 -1
  279. package/src/selector/misc/datetimeSelector.interface.d.ts +82 -82
  280. package/src/selector/misc/tokens.d.ts +6 -6
  281. package/src/selector/modules/basicSelector.module.d.ts +10 -5
  282. package/src/selector/modules/basicSelector.module.d.ts.map +1 -1
  283. package/src/selector/modules/selector.module.d.ts +18 -5
  284. package/src/selector/modules/selector.module.d.ts.map +1 -1
  285. package/src/selector/types.d.ts +9 -9
  286. package/src/services/dateApi.interface.d.ts +275 -275
  287. package/src/services/datePositionParser.interface.d.ts +40 -40
  288. package/src/services/datePositionParser.service.d.ts +60 -57
  289. package/src/services/datePositionParser.service.d.ts.map +1 -1
  290. package/src/services/dateTimeRelativeParser.service.d.ts +21 -18
  291. package/src/services/dateTimeRelativeParser.service.d.ts.map +1 -1
  292. package/src/services/dateValueProvider.service.d.ts +18 -15
  293. package/src/services/dateValueProvider.service.d.ts.map +1 -1
  294. package/src/services/formatProvider.interface.d.ts +17 -17
  295. package/src/services/index.d.ts +3 -3
  296. package/tsconfig.karma.json +5 -6
  297. package/version.bak +1 -1
  298. package/appveyor.yml +0 -70
  299. package/date-fns/dist/es2015/date-fns/index.js +0 -10
  300. package/date-fns/dist/es2015/date-fns/public_api.js +0 -7
  301. package/date-fns/dist/es2015/date-fns/src/date-fns.js +0 -9
  302. package/date-fns/dist/es2015/date-fns/src/misc/tokens.js +0 -32
  303. package/date-fns/dist/es2015/date-fns/src/services/dateFnsDateApi.service.js +0 -512
  304. package/date-fns/dist/es2015/date-fns/src/services/dateFnsLocale.service.js +0 -18
  305. package/date-fns/dist/es5/date-fns/index.js +0 -10
  306. package/date-fns/dist/es5/date-fns/public_api.js +0 -7
  307. package/date-fns/dist/es5/date-fns/src/date-fns.js +0 -9
  308. package/date-fns/dist/es5/date-fns/src/misc/tokens.js +0 -32
  309. package/date-fns/dist/es5/date-fns/src/services/dateFnsDateApi.service.js +0 -902
  310. package/date-fns/dist/es5/date-fns/src/services/dateFnsLocale.service.js +0 -18
  311. package/date-fns/index.d.ts +0 -5
  312. package/date-fns/index.d.ts.map +0 -1
  313. package/date-fns/index.metadata.json +0 -1
  314. package/date-fns/public_api.d.ts +0 -2
  315. package/date-fns/public_api.d.ts.map +0 -1
  316. package/date-fns/src/date-fns.d.ts.map +0 -1
  317. package/date-fns/src/services/dateFnsDateApi.service.ngfactory.d.ts.map +0 -1
  318. package/datetime.d.ts +0 -7
  319. package/datetime.d.ts.map +0 -1
  320. package/datetime.metadata.json +0 -1
  321. package/dist/es2015/datetime.js +0 -10
  322. package/dist/es2015/public_api.js +0 -7
  323. package/dist/es2015/src/datetime.js +0 -24
  324. package/dist/es2015/src/misc/constants.js +0 -46
  325. package/dist/es2015/src/misc/datetime.interface.js +0 -52
  326. package/dist/es2015/src/misc/tokens.js +0 -29
  327. package/dist/es2015/src/misc/validators.js +0 -80
  328. package/dist/es2015/src/modules/datePipes.module.js +0 -26
  329. package/dist/es2015/src/picker/components/dayPicker/dayPicker.component.js +0 -215
  330. package/dist/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
  331. package/dist/es2015/src/picker/components/monthPicker/monthPicker.component.js +0 -138
  332. package/dist/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
  333. package/dist/es2015/src/picker/components/picker/picker.component.animations.js +0 -77
  334. package/dist/es2015/src/picker/components/picker/picker.component.js +0 -386
  335. package/dist/es2015/src/picker/components/pickerBase.component.js +0 -406
  336. package/dist/es2015/src/picker/components/yearPicker/yearPicker.component.js +0 -158
  337. package/dist/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
  338. package/dist/es2015/src/picker/interfaces.js +0 -10
  339. package/dist/es2015/src/picker/misc/datetimePicker.interface.js +0 -245
  340. package/dist/es2015/src/picker/misc/tokens.js +0 -12
  341. package/dist/es2015/src/picker/modules/picker.module.js +0 -35
  342. package/dist/es2015/src/picker/types.js +0 -13
  343. package/dist/es2015/src/pipes/dateConvert.pipe.js +0 -50
  344. package/dist/es2015/src/pipes/dateFormat.pipe.js +0 -64
  345. package/dist/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +0 -588
  346. package/dist/es2015/src/selector/components/selector/selector.component.animations.js +0 -21
  347. package/dist/es2015/src/selector/components/selector/selector.component.js +0 -514
  348. package/dist/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -456
  349. package/dist/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -73
  350. package/dist/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -73
  351. package/dist/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -70
  352. package/dist/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -171
  353. package/dist/es2015/src/selector/interfaces.js +0 -7
  354. package/dist/es2015/src/selector/misc/datetimeSelector.interface.js +0 -106
  355. package/dist/es2015/src/selector/misc/tokens.js +0 -12
  356. package/dist/es2015/src/selector/modules/basicSelector.module.js +0 -20
  357. package/dist/es2015/src/selector/modules/selector.module.js +0 -45
  358. package/dist/es2015/src/selector/types.js +0 -15
  359. package/dist/es2015/src/services/dateApi.interface.js +0 -316
  360. package/dist/es2015/src/services/datePositionParser.interface.js +0 -56
  361. package/dist/es2015/src/services/datePositionParser.service.js +0 -297
  362. package/dist/es2015/src/services/dateTimeRelativeParser.service.js +0 -97
  363. package/dist/es2015/src/services/dateValueProvider.service.js +0 -79
  364. package/dist/es2015/src/services/formatProvider.interface.js +0 -28
  365. package/dist/es2015/src/services/index.js +0 -9
  366. package/dist/es5/datetime.js +0 -10
  367. package/dist/es5/public_api.js +0 -7
  368. package/dist/es5/src/datetime.js +0 -24
  369. package/dist/es5/src/misc/constants.js +0 -46
  370. package/dist/es5/src/misc/datetime.interface.js +0 -52
  371. package/dist/es5/src/misc/tokens.js +0 -29
  372. package/dist/es5/src/misc/validators.js +0 -124
  373. package/dist/es5/src/modules/datePipes.module.js +0 -30
  374. package/dist/es5/src/picker/components/dayPicker/dayPicker.component.js +0 -323
  375. package/dist/es5/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
  376. package/dist/es5/src/picker/components/monthPicker/monthPicker.component.js +0 -233
  377. package/dist/es5/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
  378. package/dist/es5/src/picker/components/picker/picker.component.animations.js +0 -77
  379. package/dist/es5/src/picker/components/picker/picker.component.js +0 -460
  380. package/dist/es5/src/picker/components/pickerBase.component.js +0 -561
  381. package/dist/es5/src/picker/components/yearPicker/yearPicker.component.js +0 -253
  382. package/dist/es5/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
  383. package/dist/es5/src/picker/interfaces.js +0 -10
  384. package/dist/es5/src/picker/misc/datetimePicker.interface.js +0 -245
  385. package/dist/es5/src/picker/misc/tokens.js +0 -12
  386. package/dist/es5/src/picker/modules/picker.module.js +0 -39
  387. package/dist/es5/src/picker/types.js +0 -13
  388. package/dist/es5/src/pipes/dateConvert.pipe.js +0 -63
  389. package/dist/es5/src/pipes/dateFormat.pipe.js +0 -79
  390. package/dist/es5/src/selector/components/inputDateTime/inputDateTime.component.js +0 -808
  391. package/dist/es5/src/selector/components/selector/selector.component.animations.js +0 -21
  392. package/dist/es5/src/selector/components/selector/selector.component.js +0 -653
  393. package/dist/es5/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -656
  394. package/dist/es5/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -84
  395. package/dist/es5/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -84
  396. package/dist/es5/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -82
  397. package/dist/es5/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -230
  398. package/dist/es5/src/selector/interfaces.js +0 -7
  399. package/dist/es5/src/selector/misc/datetimeSelector.interface.js +0 -106
  400. package/dist/es5/src/selector/misc/tokens.js +0 -12
  401. package/dist/es5/src/selector/modules/basicSelector.module.js +0 -24
  402. package/dist/es5/src/selector/modules/selector.module.js +0 -49
  403. package/dist/es5/src/selector/types.js +0 -15
  404. package/dist/es5/src/services/dateApi.interface.js +0 -316
  405. package/dist/es5/src/services/datePositionParser.interface.js +0 -56
  406. package/dist/es5/src/services/datePositionParser.service.js +0 -366
  407. package/dist/es5/src/services/dateTimeRelativeParser.service.js +0 -108
  408. package/dist/es5/src/services/dateValueProvider.service.js +0 -92
  409. package/dist/es5/src/services/formatProvider.interface.js +0 -28
  410. package/dist/es5/src/services/index.js +0 -9
  411. package/moment/dist/es2015/moment/index.js +0 -10
  412. package/moment/dist/es2015/moment/public_api.js +0 -7
  413. package/moment/dist/es2015/moment/src/misc/tokens.js +0 -26
  414. package/moment/dist/es2015/moment/src/moment.js +0 -8
  415. package/moment/dist/es2015/moment/src/services/momentDateApi.service.js +0 -466
  416. package/moment/dist/es5/moment/index.js +0 -10
  417. package/moment/dist/es5/moment/public_api.js +0 -7
  418. package/moment/dist/es5/moment/src/misc/tokens.js +0 -26
  419. package/moment/dist/es5/moment/src/moment.js +0 -8
  420. package/moment/dist/es5/moment/src/services/momentDateApi.service.js +0 -858
  421. package/moment/index.d.ts +0 -5
  422. package/moment/index.d.ts.map +0 -1
  423. package/moment/index.metadata.json +0 -1
  424. package/moment/public_api.d.ts +0 -2
  425. package/moment/public_api.d.ts.map +0 -1
  426. package/moment/src/moment.d.ts.map +0 -1
  427. package/moment/src/services/momentDateApi.service.ngfactory.d.ts.map +0 -1
  428. package/public_api.d.ts +0 -2
  429. package/public_api.d.ts.map +0 -1
  430. package/src/datetime.d.ts.map +0 -1
  431. package/src/modules/datePipes.module.ngfactory.d.ts.map +0 -1
  432. package/src/picker/components/dayPicker/dayPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  433. package/src/picker/components/dayPicker/dayPicker.component.ngfactory.d.ts.map +0 -1
  434. package/src/picker/components/monthPicker/monthPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  435. package/src/picker/components/monthPicker/monthPicker.component.ngfactory.d.ts.map +0 -1
  436. package/src/picker/components/picker/picker.component.ngfactory.d.ts.map +0 -1
  437. package/src/picker/components/yearPicker/yearPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  438. package/src/picker/components/yearPicker/yearPicker.component.ngfactory.d.ts.map +0 -1
  439. package/src/picker/modules/picker.module.ngfactory.d.ts.map +0 -1
  440. package/src/pipes/dateConvert.pipe.ngfactory.d.ts.map +0 -1
  441. package/src/pipes/dateFormat.pipe.ngfactory.d.ts.map +0 -1
  442. package/src/selector/components/inputDateTime/inputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
  443. package/src/selector/components/inputDateTime/inputDateTime.component.ngfactory.d.ts.map +0 -1
  444. package/src/selector/components/selector/selector.component.css.shim.ngstyle.d.ts.map +0 -1
  445. package/src/selector/components/selector/selector.component.ngfactory.d.ts.map +0 -1
  446. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
  447. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.ngfactory.d.ts.map +0 -1
  448. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.ngfactory.d.ts.map +0 -1
  449. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.ngfactory.d.ts.map +0 -1
  450. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.ngfactory.d.ts.map +0 -1
  451. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.ngfactory.d.ts.map +0 -1
  452. package/src/selector/modules/basicSelector.module.ngfactory.d.ts.map +0 -1
  453. package/src/selector/modules/selector.module.ngfactory.d.ts.map +0 -1
  454. package/src/services/datePositionParser.service.ngfactory.d.ts.map +0 -1
  455. package/src/services/dateTimeRelativeParser.service.ngfactory.d.ts.map +0 -1
  456. package/src/services/dateValueProvider.service.ngfactory.d.ts.map +0 -1
@@ -1,512 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: date-fns/src/services/dateFnsDateApi.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Inject, Injectable } from '@angular/core';
7
- import { DateTimeRelativeParser } from '@anglr/datetime';
8
- import { isBlank, isPresent, isString } from '@jscrpt/common';
9
- import { toDate, getDate, setDate, isAfter, isBefore, differenceInCalendarDays, format, startOfMonth, endOfMonth, startOfWeek, endOfWeek, startOfDay, endOfDay, addMonths, addWeeks, addDays, subMonths, subWeeks, subDays, getDaysInMonth, isSameDay, isSameWeek, isSameMonth, isValid, parse, parseISO, addYears, subYears, startOfYear, endOfYear, isWeekend, setYear, getYear, isSameYear, startOfDecade, endOfDecade, setMonth, getMonth, setISODay, getISODay } from 'date-fns';
10
- import { DATE_FNS_LOCALE } from '../misc/tokens';
11
- /**
12
- * Instance of object wrapping TDate, allowing manipulation with it
13
- */
14
- class DateFnsDateApiObject {
15
- //######################### constructor #########################
16
- /**
17
- * @param {?} value
18
- * @param {?} _localeSvc
19
- * @param {?=} format
20
- */
21
- constructor(value, _localeSvc, format) {
22
- this._localeSvc = _localeSvc;
23
- if (isString(value)) {
24
- //ISO string
25
- if (/^\d+-\d+-\d+(T\d+:\d+:\d+)?/.test(value)) {
26
- this._value = this._originalValue = parseISO(value);
27
- }
28
- else {
29
- if (isBlank(format)) {
30
- throw new Error(`date-fns requires format parameter to be set for parsing non ISO string date!`);
31
- }
32
- this._value = this._originalValue = parse(value, format, new Date(1970, 0));
33
- }
34
- }
35
- else {
36
- this._value = this._originalValue = toDate(value);
37
- }
38
- }
39
- //######################### public properties - implementation of DateApiObject #########################
40
- /**
41
- * Original value that is not changed unless 'updateOriginal' is called
42
- * @return {?}
43
- */
44
- get originalValue() {
45
- return this._originalValue;
46
- }
47
- /**
48
- * Instance of date
49
- * @return {?}
50
- */
51
- get value() {
52
- return this._value;
53
- }
54
- //######################### public methods - implementation of DateApiObject #########################
55
- /**
56
- * Gets indication whether provided instance of date is valid
57
- * @return {?}
58
- */
59
- isValid() {
60
- return isValid(this._value);
61
- }
62
- /**
63
- * Gets indication whether provided instance of date is weekend day
64
- * @return {?}
65
- */
66
- isWeekend() {
67
- return isWeekend(this._value);
68
- }
69
- /**
70
- * Formats date value
71
- * @param {?} formatString - Format token used for creating formatted string
72
- * @return {?}
73
- */
74
- format(formatString) {
75
- return format(this._value, formatString, { locale: this._localeSvc.locale });
76
- }
77
- /**
78
- * Updates value to start date and time of current decade
79
- * @return {?} Itself for fluent API
80
- */
81
- startOfDecade() {
82
- this._value = startOfDecade(this._value);
83
- return this;
84
- }
85
- /**
86
- * Updates value to end date and time of current decade
87
- * @return {?} Itself for fluent API
88
- */
89
- endOfDecade() {
90
- this._value = endOfDecade(this._value);
91
- return this;
92
- }
93
- /**
94
- * Updates value to start date and time of current year
95
- * @return {?} Itself for fluent API
96
- */
97
- startOfYear() {
98
- this._value = startOfYear(this._value);
99
- return this;
100
- }
101
- /**
102
- * Updates value to end date and time of current year
103
- * @return {?} Itself for fluent API
104
- */
105
- endOfYear() {
106
- this._value = endOfYear(this._value);
107
- return this;
108
- }
109
- /**
110
- * Add years, if count not specified adds 1 year
111
- * @param {?=} count - Number of years count
112
- * @return {?} Itself for fluent API
113
- */
114
- addYears(count) {
115
- this._value = addYears(this._value, count !== null && count !== void 0 ? count : 1);
116
- return this;
117
- }
118
- /**
119
- * Subtract years, if count not specified subtract 1 year
120
- * @param {?=} count - Number of years count
121
- * @return {?} Itself for fluent API
122
- */
123
- subtractYears(count) {
124
- this._value = subYears(this._value, count !== null && count !== void 0 ? count : 1);
125
- return this;
126
- }
127
- /**
128
- * Updates value to start date and time of current month
129
- * @return {?} Itself for fluent API
130
- */
131
- startOfMonth() {
132
- this._value = startOfMonth(this._value);
133
- return this;
134
- }
135
- /**
136
- * Updates value to end date and time of current month
137
- * @return {?} Itself for fluent API
138
- */
139
- endOfMonth() {
140
- this._value = endOfMonth(this._value);
141
- return this;
142
- }
143
- /**
144
- * Add months, if count not specified adds 1 month
145
- * @param {?=} count - Number of months count
146
- * @return {?} Itself for fluent API
147
- */
148
- addMonths(count) {
149
- this._value = addMonths(this._value, count !== null && count !== void 0 ? count : 1);
150
- return this;
151
- }
152
- /**
153
- * Subtract months, if count not specified subtract 1 month
154
- * @param {?=} count - Number of months count
155
- * @return {?} Itself for fluent API
156
- */
157
- subtractMonths(count) {
158
- this._value = subMonths(this._value, count !== null && count !== void 0 ? count : 1);
159
- return this;
160
- }
161
- /**
162
- * Updates value to start date and time of current week
163
- * @return {?} Itself for fluent API
164
- */
165
- startOfWeek() {
166
- this._value = startOfWeek(this._value, { locale: this._localeSvc.locale });
167
- return this;
168
- }
169
- /**
170
- * Updates value to end date and time of current week
171
- * @return {?} Itself for fluent API
172
- */
173
- endOfWeek() {
174
- this._value = endOfWeek(this._value, { locale: this._localeSvc.locale });
175
- return this;
176
- }
177
- /**
178
- * Add weeks, if count not specified adds 1 week
179
- * @param {?=} count - Number of weeks count
180
- * @return {?} Itself for fluent API
181
- */
182
- addWeeks(count) {
183
- this._value = addWeeks(this._value, count !== null && count !== void 0 ? count : 1);
184
- return this;
185
- }
186
- /**
187
- * Subtract weeks, if count not specified subtract 1 week
188
- * @param {?=} count - Number of weeks count
189
- * @return {?} Itself for fluent API
190
- */
191
- subtractWeeks(count) {
192
- this._value = subWeeks(this._value, count !== null && count !== void 0 ? count : 1);
193
- return this;
194
- }
195
- /**
196
- * Updates value to start date and time of current day
197
- * @return {?} Itself for fluent API
198
- */
199
- startOfDay() {
200
- this._value = startOfDay(this._value);
201
- return this;
202
- }
203
- /**
204
- * Updates value to end date and time of current day
205
- * @return {?} Itself for fluent API
206
- */
207
- endOfDay() {
208
- this._value = endOfDay(this._value);
209
- return this;
210
- }
211
- /**
212
- * Add days, if count not specified adds 1 day
213
- * @param {?=} count - Number of days count
214
- * @return {?} Itself for fluent API
215
- */
216
- addDays(count) {
217
- this._value = addDays(this._value, count !== null && count !== void 0 ? count : 1);
218
- return this;
219
- }
220
- /**
221
- * Subtract days, if count not specified subtract 1 day
222
- * @param {?=} count - Number of days count
223
- * @return {?} Itself for fluent API
224
- */
225
- subtractDays(count) {
226
- this._value = subDays(this._value, count !== null && count !== void 0 ? count : 1);
227
- return this;
228
- }
229
- /**
230
- * Gets number of days in month
231
- * @return {?}
232
- */
233
- daysInMonth() {
234
- return getDaysInMonth(this._value);
235
- }
236
- /**
237
- * Gets or sets year
238
- * @param {?=} year - If specified, sets year
239
- * @return {?}
240
- */
241
- year(year) {
242
- if (isPresent(year)) {
243
- this._value = setYear(this._value, (/** @type {?} */ (year)));
244
- return this;
245
- }
246
- return getYear(this._value);
247
- }
248
- /**
249
- * Gets or sets month
250
- * @param {?=} month - If specified, sets month
251
- * @return {?}
252
- */
253
- month(month) {
254
- if (isPresent(month)) {
255
- this._value = setMonth(this._value, (/** @type {?} */ (month)));
256
- return this;
257
- }
258
- return getMonth(this._value);
259
- }
260
- /**
261
- * Gets or sets day of month one based
262
- * @param {?=} day - If specified, sets day of month
263
- * @return {?}
264
- */
265
- dayOfMonth(day) {
266
- if (isPresent(day)) {
267
- this._value = setDate(this._value, (/** @type {?} */ (day)));
268
- return this;
269
- }
270
- return getDate(this._value);
271
- }
272
- /**
273
- * Gets or sets day of week zero based, first is monday
274
- * @param {?=} day - If specified, sets day of week
275
- * @return {?}
276
- */
277
- dayOfWeek(day) {
278
- if (isPresent(day)) {
279
- this._value = setISODay(this._value, day + (/** @type {?} */ (1)));
280
- return this;
281
- }
282
- return getISODay(this._value) - 1;
283
- }
284
- /**
285
- * Gets indication whether current value is before 'date'
286
- * @param {?} date - Date which is this date compared to
287
- * @return {?}
288
- */
289
- isBefore(date) {
290
- return isBefore(this._value, date);
291
- }
292
- /**
293
- * Gets indication whether current value is after 'date'
294
- * @param {?} date - Date which is this date compared to
295
- * @return {?}
296
- */
297
- isAfter(date) {
298
- return isAfter(this._value, date);
299
- }
300
- /**
301
- * Gets number of days between this and provided date
302
- * @param {?} date - Date which is used for computation of diff against
303
- * @return {?}
304
- */
305
- diffDays(date) {
306
- return differenceInCalendarDays(this._value, date);
307
- }
308
- /**
309
- * Compares whether this date is same week as provided date
310
- * @param {?} date - Date which is used for comparison of same week
311
- * @return {?}
312
- */
313
- isSameWeek(date) {
314
- return isSameWeek(this._value, date, { locale: this._localeSvc.locale });
315
- }
316
- /**
317
- * Compares whether this date is same decade as provided date
318
- * @param {?} date - Date which is used for comparison of same decade
319
- * @return {?}
320
- */
321
- isSameDecade(date) {
322
- /** @type {?} */
323
- let year = getYear(this._value);
324
- /** @type {?} */
325
- let start = year - (year % 10);
326
- /** @type {?} */
327
- let end = start + 10;
328
- return getYear(date) >= start && getYear(date) < end;
329
- }
330
- /**
331
- * Compares whether this date is same year as provided date
332
- * @param {?} date - Date which is used for comparison of same year
333
- * @return {?}
334
- */
335
- isSameYear(date) {
336
- return isSameYear(this._value, date);
337
- }
338
- /**
339
- * Compares whether this date is same month as provided date
340
- * @param {?} date - Date which is used for comparison of same month
341
- * @return {?}
342
- */
343
- isSameMonth(date) {
344
- return isSameMonth(this._value, date);
345
- }
346
- /**
347
- * Compares whether this date is same day as provided date
348
- * @param {?} date - Date which is used for comparison of same day
349
- * @return {?}
350
- */
351
- isSameDay(date) {
352
- return isSameDay(this._value, date);
353
- }
354
- /**
355
- * Creates clone of this instance, value and originalValue have same value and are cloned from value
356
- * @return {?}
357
- */
358
- clone() {
359
- return new DateFnsDateApiObject(new Date(this._value), this._localeSvc);
360
- }
361
- /**
362
- * Creates clone of this instance, value and originalValue have same value and are cloned from originalValue
363
- * @return {?}
364
- */
365
- cloneOriginal() {
366
- return new DateFnsDateApiObject(new Date(this._originalValue), this._localeSvc);
367
- }
368
- /**
369
- * Updates originalValue, if value is not provided originalValue is set to value
370
- * @param {?=} value - Value to be set as original, or null (value will be used as value)
371
- * @return {?} Itself for fluent API
372
- */
373
- updateOriginal(value) {
374
- if (isBlank(value)) {
375
- this._originalValue = this._value;
376
- }
377
- else {
378
- this._value = this._originalValue = (/** @type {?} */ (value));
379
- }
380
- return this;
381
- }
382
- /**
383
- * Changes value to same value as originalValue
384
- * @return {?} Itself for fluent API
385
- */
386
- resetOriginal() {
387
- this._value = this._originalValue;
388
- return this;
389
- }
390
- }
391
- if (false) {
392
- /**
393
- * Original value that is not changed unless 'updateOriginal' is called
394
- * @type {?}
395
- * @private
396
- */
397
- DateFnsDateApiObject.prototype._originalValue;
398
- /**
399
- * Instance of date
400
- * @type {?}
401
- * @private
402
- */
403
- DateFnsDateApiObject.prototype._value;
404
- /**
405
- * @type {?}
406
- * @protected
407
- */
408
- DateFnsDateApiObject.prototype._localeSvc;
409
- }
410
- /**
411
- * Date api using DateFnsJS, used for obtaining DateApi wrapper object
412
- */
413
- export class DateFnsDateApi {
414
- //######################### constructor #########################
415
- /**
416
- * @param {?} _localeSvc
417
- * @param {?} _relativeParser
418
- */
419
- constructor(_localeSvc, _relativeParser) {
420
- this._localeSvc = _localeSvc;
421
- this._relativeParser = _relativeParser;
422
- }
423
- //######################### public methods - implementation of DateApi #########################
424
- /**
425
- * Gets wrapping object used for manipulation
426
- * @param {?} value - Value to be converted (parsed) and used for manipulation
427
- * @param {?=} format - Format string used for parsing string value
428
- * @return {?}
429
- */
430
- getValue(value, format) {
431
- return new DateFnsDateApiObject(this._relativeParser.parse(value), this._localeSvc, format);
432
- }
433
- /**
434
- * Gets wrapping object used for manipulation instantiated to current date and time
435
- * @return {?}
436
- */
437
- now() {
438
- return new DateFnsDateApiObject(new Date(), this._localeSvc);
439
- }
440
- /**
441
- * Gets format string using pseudo format
442
- * @param {?} pseudoFormat - Pseudo format token, used for obtaining 'date' or 'time' format string
443
- * @return {?}
444
- */
445
- getFormat(pseudoFormat) {
446
- if (/^p+$/i.test(pseudoFormat)) {
447
- /** @type {?} */
448
- let widths = {
449
- 1: 'short',
450
- 2: 'medium',
451
- 3: 'long',
452
- 4: 'full'
453
- };
454
- //date time format
455
- if (pseudoFormat.indexOf('Pp') >= 0 && pseudoFormat.length <= 8) {
456
- return (/** @type {?} */ (this._localeSvc.locale.formatLong)).dateTime({ width: widths[pseudoFormat.length / 2] });
457
- }
458
- //date format
459
- else if (pseudoFormat.indexOf('P') >= 0 && pseudoFormat.length <= 4) {
460
- return (/** @type {?} */ (this._localeSvc.locale.formatLong)).date({ width: widths[pseudoFormat.length] });
461
- }
462
- //time format
463
- else if (pseudoFormat.indexOf('p') >= 0 && pseudoFormat.length <= 4) {
464
- return (/** @type {?} */ (this._localeSvc.locale.formatLong)).time({ width: widths[pseudoFormat.length] });
465
- }
466
- }
467
- return pseudoFormat;
468
- }
469
- /**
470
- * Gets information
471
- * @return {?}
472
- */
473
- weekStartsOnMonday() {
474
- var _a;
475
- return ((_a = this._localeSvc.locale.options) === null || _a === void 0 ? void 0 : _a.weekStartsOn) === 1;
476
- }
477
- /**
478
- * Gets array of weekday names in short format, order of days is dependent on locale
479
- * @return {?}
480
- */
481
- weekdaysShort() {
482
- /** @type {?} */
483
- let startIndex = (/** @type {?} */ ((/** @type {?} */ (this._localeSvc.locale.options)).weekStartsOn));
484
- /** @type {?} */
485
- let weekdays = [];
486
- for (let x = 0; x < 7; x++) {
487
- weekdays.push((/** @type {?} */ (this._localeSvc.locale.localize)).day(startIndex++ % 7, { width: 'short' }));
488
- }
489
- return weekdays;
490
- }
491
- }
492
- DateFnsDateApi.decorators = [
493
- { type: Injectable }
494
- ];
495
- /** @nocollapse */
496
- DateFnsDateApi.ctorParameters = () => [
497
- { type: undefined, decorators: [{ type: Inject, args: [DATE_FNS_LOCALE,] }] },
498
- { type: DateTimeRelativeParser }
499
- ];
500
- if (false) {
501
- /**
502
- * @type {?}
503
- * @protected
504
- */
505
- DateFnsDateApi.prototype._localeSvc;
506
- /**
507
- * @type {?}
508
- * @protected
509
- */
510
- DateFnsDateApi.prototype._relativeParser;
511
- }
512
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUZuc0RhdGVBcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9kYXRlRm5zRGF0ZUFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFvQyxzQkFBc0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFGLE9BQU8sRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVwZCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNL0MsTUFBTSxvQkFBb0I7Ozs7Ozs7SUFpQ3RCLFlBQVksS0FBcUIsRUFDWCxVQUF5QixFQUNuQyxNQUFlO1FBREwsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQUczQyxJQUFHLFFB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Q0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sMENBQUUsWUFBWSxNQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDOzs7OztJQUtNLGFBQWE7O1lBRVosVUFBVSxHQUFHLG1CQUFBLG1CQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBQyxDQUFDLFlBQVksRUFBQzs7WUFDMUQsUUFBUSxHQUFhLEVBQUU7UUFFM0IsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFDekI7WUFDSSxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7O1lBdkZKLFVBQVU7Ozs7NENBSU0sTUFBTSxTQUFDLGVBQWU7WUE3aEJJLHNCQUFzQjs7Ozs7OztJQTZoQmpELG9DQUE0RDs7Ozs7SUFDNUQseUNBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RhdGVBcGksIERhdGVWYWx1ZSwgRGF0ZUFwaU9iamVjdCwgRGF0ZVRpbWVSZWxhdGl2ZVBhcnNlcn0gZnJvbSAnQGFuZ2xyL2RhdGV0aW1lJztcclxuaW1wb3J0IHtpc0JsYW5rLCBpc1ByZXNlbnQsIGlzU3RyaW5nfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7dG9EYXRlLCBnZXREYXRlLCBzZXREYXRlLCBpc0FmdGVyLCBpc0JlZm9yZSwgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLCBmb3JtYXQsIHN0YXJ0T2ZNb250aCwgZW5kT2ZNb250aCwgc3RhcnRPZldlZWssIGVuZE9mV2Vlaywgc3RhcnRPZkRheSwgZW5kT2ZEYXksIGFkZE1vbnRocywgYWRkV2Vla3MsIGFkZERheXMsIHN1Yk1vbnRocywgc3ViV2Vla3MsIHN1YkRheXMsIGdldERheXNJbk1vbnRoLCBpc1NhbWVEYXksIGlzU2FtZVdlZWssIGlzU2FtZU1vbnRoLCBpc1ZhbGlkLCBwYXJzZSwgcGFyc2VJU08sIGFkZFllYXJzLCBzdWJZZWFycywgc3RhcnRPZlllYXIsIGVuZE9mWWVhciwgaXNXZWVrZW5kLCBzZXRZZWFyLCBnZXRZZWFyLCBpc1NhbWVZZWFyLCBzdGFydE9mRGVjYWRlLCBlbmRPZkRlY2FkZSwgc2V0TW9udGgsIGdldE1vbnRoLCBzZXRJU09EYXksIGdldElTT0RheX0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5cclxuaW1wb3J0IHtEQVRFX0ZOU19MT0NBTEV9IGZyb20gJy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlRm5zTG9jYWxlfSBmcm9tICcuL2RhdGVGbnNMb2NhbGUuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogSW5zdGFuY2Ugb2Ygb2JqZWN0IHdyYXBwaW5nIFREYXRlLCBhbGxvd2luZyBtYW5pcHVsYXRpb24gd2l0aCBpdFxyXG4gKi9cclxuY2xhc3MgRGF0ZUZuc0RhdGVBcGlPYmplY3QgaW1wbGVtZW50cyBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcml2YXRlIGZpZWxkcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmlnaW5hbCB2YWx1ZSB0aGF0IGlzIG5vdCBjaGFuZ2VkIHVubGVzcyAndXBkYXRlT3JpZ2luYWwnIGlzIGNhbGxlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9vcmlnaW5hbFZhbHVlOiBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgZGF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF92YWx1ZTogRGF0ZTtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlQXBpT2JqZWN0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9yaWdpbmFsIHZhbHVlIHRoYXQgaXMgbm90IGNoYW5nZWQgdW5sZXNzICd1cGRhdGVPcmlnaW5hbCcgaXMgY2FsbGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxWYWx1ZSgpOiBEYXRlXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBkYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IodmFsdWU6IERhdGVWYWx1ZXxEYXRlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2NhbGVTdmM6IERhdGVGbnNMb2NhbGUsXHJcbiAgICAgICAgICAgICAgICBmb3JtYXQ/OiBzdHJpbmcpXHJcbiAgICB7XHJcbiAgICAgICAgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy9JU08gc3RyaW5nXHJcbiAgICAgICAgICAgIGlmKC9eXFxkKy1cXGQrLVxcZCsoVFxcZCs6XFxkKzpcXGQrKT8vLnRlc3QodmFsdWUpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX29yaWdpbmFsVmFsdWUgPSBwYXJzZUlTTyh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZihpc0JsYW5rKGZvcm1hdCkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkYXRlLWZucyByZXF1aXJlcyBmb3JtYXQgcGFyYW1ldGVyIHRvIGJlIHNldCBmb3IgcGFyc2luZyBub24gSVNPIHN0cmluZyBkYXRlIWApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fb3JpZ2luYWxWYWx1ZSA9IHBhcnNlKHZhbHVlLCBmb3JtYXQsIG5ldyBEYXRlKDE5NzAsIDApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX29yaWdpbmFsVmFsdWUgPSB0b0RhdGUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlQXBpT2JqZWN0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIHByb3ZpZGVkIGluc3RhbmNlIG9mIGRhdGUgaXMgdmFsaWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzVmFsaWQoKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIHByb3ZpZGVkIGluc3RhbmNlIG9mIGRhdGUgaXMgd2Vla2VuZCBkYXlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzV2Vla2VuZCgpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRzIGRhdGUgdmFsdWVcclxuICAgICAqIEBwYXJhbSBmb3JtYXRTdHJpbmcgLSBGb3JtYXQgdG9rZW4gdXNlZCBmb3IgY3JlYXRpbmcgZm9ybWF0dGVkIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9ybWF0KGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdCh0aGlzLl92YWx1ZSwgZm9ybWF0U3RyaW5nLCB7bG9jYWxlOiB0aGlzLl9sb2NhbGVTdmMubG9jYWxlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIHN0YXJ0IGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCBkZWNhZGVcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhcnRPZkRlY2FkZSgpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdGFydE9mRGVjYWRlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gZW5kIGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCBkZWNhZGVcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW5kT2ZEZWNhZGUoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZW5kT2ZEZWNhZGUodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gc3RhcnQgZGF0ZSBhbmQgdGltZSBvZiBjdXJyZW50IHllYXJcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhcnRPZlllYXIoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gc3RhcnRPZlllYXIodGhpcy5fdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gZW5kIGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCB5ZWFyXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZE9mWWVhcigpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBlbmRPZlllYXIodGhpcy5fdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB5ZWFycywgaWYgY291bnQgbm90IHNwZWNpZmllZCBhZGRzIDEgeWVhclxyXG4gICAgICogQHBhcmFtIGNvdW50IC0gTnVtYmVyIG9mIHllYXJzIGNvdW50XHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZFllYXJzKGNvdW50PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gYWRkWWVhcnModGhpcy5fdmFsdWUsIGNvdW50ID8/IDEpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnRyYWN0IHllYXJzLCBpZiBjb3VudCBub3Qgc3BlY2lmaWVkIHN1YnRyYWN0IDEgeWVhclxyXG4gICAgICogQHBhcmFtIGNvdW50IC0gTnVtYmVyIG9mIHllYXJzIGNvdW50XHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN1YnRyYWN0WWVhcnMoY291bnQ/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdWJZZWFycyh0aGlzLl92YWx1ZSwgY291bnQgPz8gMSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB2YWx1ZSB0byBzdGFydCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgbW9udGhcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhcnRPZk1vbnRoKCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHN0YXJ0T2ZNb250aCh0aGlzLl92YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB2YWx1ZSB0byBlbmQgZGF0ZSBhbmQgdGltZSBvZiBjdXJyZW50IG1vbnRoXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZE9mTW9udGgoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZW5kT2ZNb250aCh0aGlzLl92YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIG1vbnRocywgaWYgY291bnQgbm90IHNwZWNpZmllZCBhZGRzIDEgbW9udGhcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiBtb250aHMgY291bnRcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkTW9udGhzKGNvdW50PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gYWRkTW9udGhzKHRoaXMuX3ZhbHVlLCBjb3VudCA/PyAxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJ0cmFjdCBtb250aHMsIGlmIGNvdW50IG5vdCBzcGVjaWZpZWQgc3VidHJhY3QgMSBtb250aFxyXG4gICAgICogQHBhcmFtIGNvdW50IC0gTnVtYmVyIG9mIG1vbnRocyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJ0cmFjdE1vbnRocyhjb3VudD86IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHN1Yk1vbnRocyh0aGlzLl92YWx1ZSwgY291bnQgPz8gMSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB2YWx1ZSB0byBzdGFydCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgd2Vla1xyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGFydE9mV2VlaygpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdGFydE9mV2Vlayh0aGlzLl92YWx1ZSwge2xvY2FsZTogdGhpcy5fbG9jYWxlU3ZjLmxvY2FsZX0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gZW5kIGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCB3ZWVrXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZE9mV2VlaygpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBlbmRPZldlZWsodGhpcy5fdmFsdWUsIHtsb2NhbGU6IHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGV9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgd2Vla3MsIGlmIGNvdW50IG5vdCBzcGVjaWZpZWQgYWRkcyAxIHdlZWtcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiB3ZWVrcyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRXZWVrcyhjb3VudD86IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGFkZFdlZWtzKHRoaXMuX3ZhbHVlLCBjb3VudCA/PyAxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJ0cmFjdCB3ZWVrcywgaWYgY291bnQgbm90IHNwZWNpZmllZCBzdWJ0cmFjdCAxIHdlZWtcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiB3ZWVrcyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJ0cmFjdFdlZWtzKGNvdW50PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gc3ViV2Vla3ModGhpcy5fdmFsdWUsIGNvdW50ID8/IDEpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gc3RhcnQgZGF0ZSBhbmQgdGltZSBvZiBjdXJyZW50IGRheVxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGFydE9mRGF5KCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHN0YXJ0T2ZEYXkodGhpcy5fdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gZW5kIGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCBkYXlcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW5kT2ZEYXkoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZW5kT2ZEYXkodGhpcy5fdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBkYXlzLCBpZiBjb3VudCBub3Qgc3BlY2lmaWVkIGFkZHMgMSBkYXlcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiBkYXlzIGNvdW50XHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZERheXMoY291bnQ/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBhZGREYXlzKHRoaXMuX3ZhbHVlLCBjb3VudCA/PyAxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJ0cmFjdCBkYXlzLCBpZiBjb3VudCBub3Qgc3BlY2lmaWVkIHN1YnRyYWN0IDEgZGF5XHJcbiAgICAgKiBAcGFyYW0gY291bnQgLSBOdW1iZXIgb2YgZGF5cyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJ0cmFjdERheXMoY291bnQ/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdWJEYXlzKHRoaXMuX3ZhbHVlLCBjb3VudCA/PyAxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG51bWJlciBvZiBkYXlzIGluIG1vbnRoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXlzSW5Nb250aCgpOiBudW1iZXJcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZ2V0RGF5c0luTW9udGgodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB5ZWFyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB5ZWFyKCk6IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB5ZWFyXHJcbiAgICAgKiBAcGFyYW0geWVhciAtIFllYXIgdG8gYmUgc2V0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB5ZWFyKHllYXI6IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT47XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB5ZWFyXHJcbiAgICAgKiBAcGFyYW0geWVhciAtIElmIHNwZWNpZmllZCwgc2V0cyB5ZWFyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB5ZWFyKHllYXI/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+fG51bWJlclxyXG4gICAge1xyXG4gICAgICAgIGlmKGlzUHJlc2VudCh5ZWFyKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2V0WWVhcih0aGlzLl92YWx1ZSwgeWVhciEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZ2V0WWVhcih0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG1vbnRoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtb250aCgpOiBudW1iZXJcclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBtb250aFxyXG4gICAgICogQHBhcmFtIG1vbnRoIC0gTW9udGggdG8gYmUgc2V0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtb250aChtb250aDogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgbW9udGhcclxuICAgICAqIEBwYXJhbSBtb250aCAtIElmIHNwZWNpZmllZCwgc2V0cyBtb250aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9udGgobW9udGg/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+fG51bWJlclxyXG4gICAge1xyXG4gICAgICAgIGlmKGlzUHJlc2VudChtb250aCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHNldE1vbnRoKHRoaXMuX3ZhbHVlLCBtb250aCEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZ2V0TW9udGgodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBkYXkgb2YgbW9udGggb25lIGJhc2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXlPZk1vbnRoKCk6IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBkYXkgb2YgbW9udGggb25lIGJhc2VkXHJcbiAgICAgKiBAcGFyYW0gZGF5IC0gRGF5IG9mIG1vbnRoIHRvIGJlIHNldFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF5T2ZNb250aChkYXk6IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT47XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBkYXkgb2YgbW9udGggb25lIGJhc2VkXHJcbiAgICAgKiBAcGFyYW0gZGF5IC0gSWYgc3BlY2lmaWVkLCBzZXRzIGRheSBvZiBtb250aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF5T2ZNb250aChkYXk/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+fG51bWJlclxyXG4gICAge1xyXG4gICAgICAgIGlmKGlzUHJlc2VudChkYXkpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBzZXREYXRlKHRoaXMuX3ZhbHVlLCBkYXkhKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdldERhdGUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBkYXkgb2Ygd2VlayB6ZXJvIGJhc2VkLCBmaXJzdCBpcyBtb25kYXlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRheU9mV2VlaygpOiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqIFNldHMgZGF5IG9mIHdlZWsgemVybyBiYXNlZCwgZmlyc3QgaXMgbW9uZGF5XHJcbiAgICAgKiBAcGFyYW0gZGF5IC0gRGF5IG9mIHdlZWsgdG8gYmUgc2V0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXlPZldlZWsoZGF5OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgZGF5IG9mIHdlZWsgemVybyBiYXNlZCwgZmlyc3QgaXMgbW9uZGF5XHJcbiAgICAgKiBAcGFyYW0gZGF5IC0gSWYgc3BlY2lmaWVkLCBzZXRzIGRheSBvZiB3ZWVrXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXlPZldlZWsoZGF5PzogbnVtYmVyKTogbnVtYmVyfERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICBpZihpc1ByZXNlbnQoZGF5KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2V0SVNPRGF5KHRoaXMuX3ZhbHVlLCBkYXkgKyAxISk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBnZXRJU09EYXkodGhpcy5fdmFsdWUpIC0gMTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIGN1cnJlbnQgdmFsdWUgaXMgYmVmb3JlICdkYXRlJ1xyXG4gICAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHdoaWNoIGlzIHRoaXMgZGF0ZSBjb21wYXJlZCB0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNCZWZvcmUoZGF0ZTogRGF0ZSk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gaXNCZWZvcmUodGhpcy5fdmFsdWUsIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBpbmRpY2F0aW9uIHdoZXRoZXIgY3VycmVudCB2YWx1ZSBpcyBhZnRlciAnZGF0ZSdcclxuICAgICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB3aGljaCBpcyB0aGlzIGRhdGUgY29tcGFyZWQgdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzQWZ0ZXIoZGF0ZTogRGF0ZSk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gaXNBZnRlcih0aGlzLl92YWx1ZSwgZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG51bWJlciBvZiBkYXlzIGJldHdlZW4gdGhpcyBhbmQgcHJvdmlkZWQgZGF0ZVxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXB1dGF0aW9uIG9mIGRpZmYgYWdhaW5zdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlmZkRheXMoZGF0ZTogRGF0ZSk6IG51bWJlclxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXModGhpcy5fdmFsdWUsIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyZXMgd2hldGhlciB0aGlzIGRhdGUgaXMgc2FtZSB3ZWVrIGFzIHByb3ZpZGVkIGRhdGVcclxuICAgICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB3aGljaCBpcyB1c2VkIGZvciBjb21wYXJpc29uIG9mIHNhbWUgd2Vla1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNTYW1lV2VlayhkYXRlOiBEYXRlKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBpc1NhbWVXZWVrKHRoaXMuX3ZhbHVlLCBkYXRlLCB7bG9jYWxlOiB0aGlzLl9sb2NhbGVTdmMubG9jYWxlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB3aGV0aGVyIHRoaXMgZGF0ZSBpcyBzYW1lIGRlY2FkZSBhcyBwcm92aWRlZCBkYXRlXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgd2hpY2ggaXMgdXNlZCBmb3IgY29tcGFyaXNvbiBvZiBzYW1lIGRlY2FkZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNTYW1lRGVjYWRlKGRhdGU6IERhdGUpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgbGV0IHllYXIgPSBnZXRZZWFyKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICBsZXQgc3RhcnQgPSB5ZWFyIC0gKHllYXIgJSAxMCk7XHJcbiAgICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgMTA7XHJcblxyXG4gICAgICAgIHJldHVybiBnZXRZZWFyKGRhdGUpID49IHN0YXJ0ICYmIGdldFllYXIoZGF0ZSkgPCBlbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB3aGV0aGVyIHRoaXMgZGF0ZSBpcyBzYW1lIHllYXIgYXMgcHJvdmlkZWQgZGF0ZVxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gb2Ygc2FtZSB5ZWFyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc1NhbWVZZWFyKGRhdGU6IERhdGUpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGlzU2FtZVllYXIodGhpcy5fdmFsdWUsIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyZXMgd2hldGhlciB0aGlzIGRhdGUgaXMgc2FtZSBtb250aCBhcyBwcm92aWRlZCBkYXRlXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgd2hpY2ggaXMgdXNlZCBmb3IgY29tcGFyaXNvbiBvZiBzYW1lIG1vbnRoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc1NhbWVNb250aChkYXRlOiBEYXRlKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBpc1NhbWVNb250aCh0aGlzLl92YWx1ZSwgZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB3aGV0aGVyIHRoaXMgZGF0ZSBpcyBzYW1lIGRheSBhcyBwcm92aWRlZCBkYXRlXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgd2hpY2ggaXMgdXNlZCBmb3IgY29tcGFyaXNvbiBvZiBzYW1lIGRheVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNTYW1lRGF5KGRhdGU6IERhdGUpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGlzU2FtZURheSh0aGlzLl92YWx1ZSwgZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGNsb25lIG9mIHRoaXMgaW5zdGFuY2UsIHZhbHVlIGFuZCBvcmlnaW5hbFZhbHVlIGhhdmUgc2FtZSB2YWx1ZSBhbmQgYXJlIGNsb25lZCBmcm9tIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbG9uZSgpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm5zRGF0ZUFwaU9iamVjdChuZXcgRGF0ZSh0aGlzLl92YWx1ZSksIHRoaXMuX2xvY2FsZVN2Yyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGNsb25lIG9mIHRoaXMgaW5zdGFuY2UsIHZhbHVlIGFuZCBvcmlnaW5hbFZhbHVlIGhhdmUgc2FtZSB2YWx1ZSBhbmQgYXJlIGNsb25lZCBmcm9tIG9yaWdpbmFsVmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsb25lT3JpZ2luYWwoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZUZuc0RhdGVBcGlPYmplY3QobmV3IERhdGUodGhpcy5fb3JpZ2luYWxWYWx1ZSksIHRoaXMuX2xvY2FsZVN2Yyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIG9yaWdpbmFsVmFsdWUsIGlmIHZhbHVlIGlzIG5vdCBwcm92aWRlZCBvcmlnaW5hbFZhbHVlIGlzIHNldCB0byB2YWx1ZVxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gYmUgc2V0IGFzIG9yaWdpbmFsLCBvciBudWxsICh2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgdmFsdWUpXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZU9yaWdpbmFsKHZhbHVlPzogRGF0ZSk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICBpZihpc0JsYW5rKHZhbHVlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsVmFsdWUgPSB0aGlzLl92YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9vcmlnaW5hbFZhbHVlID0gdmFsdWUhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2VzIHZhbHVlIHRvIHNhbWUgdmFsdWUgYXMgb3JpZ2luYWxWYWx1ZVxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZXNldE9yaWdpbmFsKCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX29yaWdpbmFsVmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogRGF0ZSBhcGkgdXNpbmcgRGF0ZUZuc0pTLCB1c2VkIGZvciBvYnRhaW5pbmcgRGF0ZUFwaSB3cmFwcGVyIG9iamVjdFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF0ZUZuc0RhdGVBcGkgaW1wbGVtZW50cyBEYXRlQXBpPERhdGU+XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERBVEVfRk5TX0xPQ0FMRSkgcHJvdGVjdGVkIF9sb2NhbGVTdmM6IERhdGVGbnNMb2NhbGUsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3JlbGF0aXZlUGFyc2VyOiBEYXRlVGltZVJlbGF0aXZlUGFyc2VyPERhdGU+KVxyXG4gICAge1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIERhdGVBcGkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB3cmFwcGluZyBvYmplY3QgdXNlZCBmb3IgbWFuaXB1bGF0aW9uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQgKHBhcnNlZCkgYW5kIHVzZWQgZm9yIG1hbmlwdWxhdGlvblxyXG4gICAgICogQHBhcmFtIGZvcm1hdCAtIEZvcm1hdCBzdHJpbmcgdXNlZCBmb3IgcGFyc2luZyBzdHJpbmcgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFZhbHVlKHZhbHVlOiBEYXRlVmFsdWV8RGF0ZSwgZm9ybWF0Pzogc3RyaW5nKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZUZuc0RhdGVBcGlPYmplY3QodGhpcy5fcmVsYXRpdmVQYXJzZXIucGFyc2UodmFsdWUpLCB0aGlzLl9sb2NhbGVTdmMsIGZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHdyYXBwaW5nIG9iamVjdCB1c2VkIGZvciBtYW5pcHVsYXRpb24gaW5zdGFudGlhdGVkIHRvIGN1cnJlbnQgZGF0ZSBhbmQgdGltZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbm93KCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGVGbnNEYXRlQXBpT2JqZWN0KG5ldyBEYXRlKCksIHRoaXMuX2xvY2FsZVN2Yyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGZvcm1hdCBzdHJpbmcgdXNpbmcgcHNldWRvIGZvcm1hdFxyXG4gICAgICogQHBhcmFtIHBzZXVkb0Zvcm1hdCAtIFBzZXVkbyBmb3JtYXQgdG9rZW4sIHVzZWQgZm9yIG9idGFpbmluZyAnZGF0ZScgb3IgJ3RpbWUnIGZvcm1hdCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEZvcm1hdChwc2V1ZG9Gb3JtYXQ6IHN0cmluZyk6IHN0cmluZ1xyXG4gICAge1xyXG4gICAgICAgIGlmKC9ecCskL2kudGVzdChwc2V1ZG9Gb3JtYXQpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IHdpZHRoczoge1tpbmRleDogbnVtYmVyXTogc3RyaW5nfSA9XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIDE6ICdzaG9ydCcsXHJcbiAgICAgICAgICAgICAgICAyOiAnbWVkaXVtJyxcclxuICAgICAgICAgICAgICAgIDM6ICdsb25nJyxcclxuICAgICAgICAgICAgICAgIDQ6ICdmdWxsJ1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgLy9kYXRlIHRpbWUgZm9ybWF0XHJcbiAgICAgICAgICAgIGlmKHBzZXVkb0Zvcm1hdC5pbmRleE9mKCdQcCcpID49IDAgJiYgcHNldWRvRm9ybWF0Lmxlbmd0aCA8PSA4KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlU3ZjLmxvY2FsZS5mb3JtYXRMb25nIS5kYXRlVGltZSh7d2lkdGg6IHdpZHRoc1twc2V1ZG9Gb3JtYXQubGVuZ3RoIC8gMl19KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL2RhdGUgZm9ybWF0XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHNldWRvRm9ybWF0LmluZGV4T2YoJ1AnKSA+PSAwICYmIHBzZXVkb0Zvcm1hdC5sZW5ndGggPD0gNClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGUuZm9ybWF0TG9uZyEuZGF0ZSh7d2lkdGg6IHdpZHRoc1twc2V1ZG9Gb3JtYXQubGVuZ3RoXX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vdGltZSBmb3JtYXRcclxuICAgICAgICAgICAgZWxzZSBpZihwc2V1ZG9Gb3JtYXQuaW5kZXhPZigncCcpID49IDAgJiYgcHNldWRvRm9ybWF0Lmxlbmd0aCA8PSA0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlU3ZjLmxvY2FsZS5mb3JtYXRMb25nIS50aW1lKHt3aWR0aDogd2lkdGhzW3BzZXVkb0Zvcm1hdC5sZW5ndGhdfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwc2V1ZG9Gb3JtYXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGluZm9ybWF0aW9uIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd2Vla1N0YXJ0c09uTW9uZGF5KCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlU3ZjLmxvY2FsZS5vcHRpb25zPy53ZWVrU3RhcnRzT24gPT09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFycmF5IG9mIHdlZWtkYXkgbmFtZXMgaW4gc2hvcnQgZm9ybWF0LCBvcmRlciBvZiBkYXlzIGlzIGRlcGVuZGVudCBvbiBsb2NhbGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlZWtkYXlzU2hvcnQoKTogc3RyaW5nW11cclxuICAgIHtcclxuICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGUub3B0aW9ucyEud2Vla1N0YXJ0c09uITtcclxuICAgICAgICBsZXQgd2Vla2RheXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIGZvcihsZXQgeCA9IDA7IHggPCA3OyB4KyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB3ZWVrZGF5cy5wdXNoKHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGUubG9jYWxpemUhLmRheShzdGFydEluZGV4KysgJSA3LCB7d2lkdGg6ICdzaG9ydCd9KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gd2Vla2RheXM7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,18 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: date-fns/src/services/dateFnsLocale.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- /**
7
- * Date FNS locale service, used for obtaining locale
8
- * @record
9
- */
10
- export function DateFnsLocale() { }
11
- if (false) {
12
- /**
13
- * Gets current active locale for date fns
14
- * @type {?}
15
- */
16
- DateFnsLocale.prototype.locale;
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUZuc0xvY2FsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2RhdGVGbnNMb2NhbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxtQ0FNQzs7Ozs7O0lBREcsK0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhbGV9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlIEZOUyBsb2NhbGUgc2VydmljZSwgdXNlZCBmb3Igb2J0YWluaW5nIGxvY2FsZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRlRm5zTG9jYWxlXHJcbntcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBjdXJyZW50IGFjdGl2ZSBsb2NhbGUgZm9yIGRhdGUgZm5zXHJcbiAgICAgKi9cclxuICAgIHJlYWRvbmx5IGxvY2FsZTogTG9jYWxlO1xyXG59Il19
@@ -1,10 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: date-fns/index.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- /**
7
- * Generated bundle index. Do not edit.
8
- */
9
- export { DateFnsDateApi, DATE_FNS_LOCALE, DATEFNS_FORMAT_PROVIDER } from './public_api';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLHlFQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,7 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: date-fns/public_api.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- export { DateFnsDateApi, DATE_FNS_LOCALE, DATEFNS_FORMAT_PROVIDER } from './src/date-fns';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5RUFBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2RhdGUtZm5zJzsiXX0=
@@ -1,9 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: date-fns/src/date-fns.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- export { DateFnsDateApi } from './services/dateFnsDateApi.service';
7
- export {} from './services/dateFnsLocale.service';
8
- export { DATE_FNS_LOCALE, DATEFNS_FORMAT_PROVIDER } from './misc/tokens';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZS1mbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBYyxtQ0FBbUMsQ0FBQztBQUNsRCxlQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHlEQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0ZUZuc0RhdGVBcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0ZUZuc0xvY2FsZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9taXNjL3Rva2Vucyc7Il19
@@ -1,32 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: date-fns/src/misc/tokens.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { InjectionToken } from '@angular/core';
7
- import { FORMAT_PROVIDER } from '@anglr/datetime';
8
- /**
9
- * Injection token used for obtaining Date fns locale service
10
- * @type {?}
11
- */
12
- export var DATE_FNS_LOCALE = new InjectionToken('DATE_FNS_LOCALE');
13
- var ɵ0 = /**
14
- * @return {?}
15
- */
16
- function () {
17
- return (/** @type {?} */ ({
18
- date: 'P',
19
- dateTime: 'Pp',
20
- time: 'p'
21
- }));
22
- };
23
- /**
24
- * Injection token used for obtaining date-fns FormatProvider implementation
25
- * @type {?}
26
- */
27
- export var DATEFNS_FORMAT_PROVIDER = {
28
- provide: FORMAT_PROVIDER,
29
- useFactory: (ɵ0)
30
- };
31
- export { ɵ0 };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21pc2MvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFrQixjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFpQixlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFPaEUsTUFBTSxLQUFPLGVBQWUsR0FBa0MsSUFBSSxjQUFjLENBQWdCLGlCQUFpQixDQUFDOzs7O0FBUWxHO0lBRVIsT0FBTyxtQkFBZ0I7UUFDbkIsSUFBSSxFQUFFLEdBQUc7UUFDVCxRQUFRLEVBQUUsSUFBSTtRQUNkLElBQUksRUFBRSxHQUFHO0tBQ1osRUFBQSxDQUFDO0FBQ04sQ0FBQzs7Ozs7QUFWTCxNQUFNLEtBQU8sdUJBQXVCLEdBQ3BDO0lBQ0ksT0FBTyxFQUFFLGVBQWU7SUFDeEIsVUFBVSxNQU9UO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZhY3RvcnlQcm92aWRlciwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1hdFByb3ZpZGVyLCBGT1JNQVRfUFJPVklERVJ9IGZyb20gJ0Bhbmdsci9kYXRldGltZSc7XHJcblxyXG5pbXBvcnQge0RhdGVGbnNMb2NhbGV9IGZyb20gJy4uL3NlcnZpY2VzL2RhdGVGbnNMb2NhbGUuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogSW5qZWN0aW9uIHRva2VuIHVzZWQgZm9yIG9idGFpbmluZyBEYXRlIGZucyBsb2NhbGUgc2VydmljZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IERBVEVfRk5TX0xPQ0FMRTogSW5qZWN0aW9uVG9rZW48RGF0ZUZuc0xvY2FsZT4gPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0ZUZuc0xvY2FsZT4oJ0RBVEVfRk5TX0xPQ0FMRScpO1xyXG5cclxuLyoqXHJcbiAqIEluamVjdGlvbiB0b2tlbiB1c2VkIGZvciBvYnRhaW5pbmcgZGF0ZS1mbnMgRm9ybWF0UHJvdmlkZXIgaW1wbGVtZW50YXRpb25cclxuICovXHJcbmV4cG9ydCBjb25zdCBEQVRFRk5TX0ZPUk1BVF9QUk9WSURFUjogRmFjdG9yeVByb3ZpZGVyID1cclxue1xyXG4gICAgcHJvdmlkZTogRk9STUFUX1BST1ZJREVSLFxyXG4gICAgdXNlRmFjdG9yeTogKCkgPT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gPEZvcm1hdFByb3ZpZGVyPntcclxuICAgICAgICAgICAgZGF0ZTogJ1AnLFxyXG4gICAgICAgICAgICBkYXRlVGltZTogJ1BwJyxcclxuICAgICAgICAgICAgdGltZTogJ3AnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufTsiXX0=