@anglr/datetime 1.0.0-beta.20210804101324 → 2.0.0-beta.20220221120606

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 +13 -1
  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,653 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: src/selector/components/selector/selector.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, ChangeDetectionStrategy, Input, Inject, Optional, ChangeDetectorRef } from '@angular/core';
7
- import { extend, isBlank, isString, nameof } from '@jscrpt/common';
8
- import { Subject, Subscription } from 'rxjs';
9
- import { DATE_API, FORMAT_PROVIDER } from '../../../misc/tokens';
10
- import { DateTimeDayPickerComponent } from '../../../picker/components/dayPicker/dayPicker.component';
11
- import { DateTimeMonthPickerComponent } from '../../../picker/components/monthPicker/monthPicker.component';
12
- import { DateTimeYearPickerComponent } from '../../../picker/components/yearPicker/yearPicker.component';
13
- import { DateValueProvider } from '../../../services/dateValueProvider.service';
14
- import { DATE_TIME_SELECTOR_CONFIGURATION } from '../../misc/tokens';
15
- import { InputDateTimeSelectorComponent } from '../inputDateTime/inputDateTime.component';
16
- import { enterLeaveAnimateChildTrigger } from './selector.component.animations';
17
- //TODO - add support for body absolute picker
18
- /**
19
- * Default configuration for selector
20
- * @type {?}
21
- */
22
- var defaultConfiguration = {
23
- selectorComponent: InputDateTimeSelectorComponent,
24
- pickerCloseOnValueSelect: false,
25
- pickerDisabled: false,
26
- defaultPeriod: 'day',
27
- pickerPeriodsDefinition: {
28
- "day": DateTimeDayPickerComponent,
29
- "month": DateTimeMonthPickerComponent,
30
- "year": DateTimeYearPickerComponent
31
- },
32
- cssClasses: {}
33
- };
34
- /**
35
- * Component used for displaying and selecting date time
36
- * @template TDate
37
- */
38
- var DateTimeSelectorComponent = /** @class */ (function () {
39
- //######################### constructor #########################
40
- function DateTimeSelectorComponent(configuration, _valueProvider, _changeDetector, _dateApi, formatProvider) {
41
- this._valueProvider = _valueProvider;
42
- this._changeDetector = _changeDetector;
43
- this._dateApi = _dateApi;
44
- //######################### protected fields #########################
45
- /**
46
- * Current value of datetime
47
- */
48
- this._value = null;
49
- /**
50
- * Occurs when selector is touched by user
51
- */
52
- this._touched = new Subject();
53
- /**
54
- * Occurs when value changes
55
- */
56
- this._valueChange = new Subject();
57
- /**
58
- * Indication whether is control disabled
59
- */
60
- this._disabled = false;
61
- /**
62
- * All subscriptions for active selector
63
- */
64
- this._activeSelectorSubscriptions = new Subscription();
65
- /**
66
- * Subscription for changes of min value selector
67
- */
68
- this._minValueChangeSubscription = null;
69
- /**
70
- * Subscription for changes of max value selector
71
- */
72
- this._maxValueChangeSubscription = null;
73
- /**
74
- * Indication whether is picker visible or not
75
- * \@internal
76
- */
77
- this.pickerVisible = false;
78
- /**
79
- * Gets or sets minimal possible value for picker, that can be picked
80
- */
81
- this.min = null;
82
- /**
83
- * Gets or sets maximal possible value for picker, that can be picked
84
- */
85
- this.max = null;
86
- this.format = formatProvider.date;
87
- this._options = extend(true, {}, defaultConfiguration, configuration);
88
- // without deep-copy for this attribute
89
- if (configuration === null || configuration === void 0 ? void 0 : configuration.pickerPeriodsDefinition) {
90
- this._options.pickerPeriodsDefinition = configuration.pickerPeriodsDefinition;
91
- }
92
- }
93
- Object.defineProperty(DateTimeSelectorComponent.prototype, "value", {
94
- //######################### public properties #########################
95
- /**
96
- * Gets or sets current value of datetime
97
- */
98
- get:
99
- //######################### public properties #########################
100
- /**
101
- * Gets or sets current value of datetime
102
- * @return {?}
103
- */
104
- function () {
105
- return this._value;
106
- },
107
- set: /**
108
- * @param {?} value
109
- * @return {?}
110
- */
111
- function (value) {
112
- var _a;
113
- this._value = value;
114
- (_a = this._activeSelector) === null || _a === void 0 ? void 0 : _a.setValue(this._value);
115
- },
116
- enumerable: false,
117
- configurable: true
118
- });
119
- Object.defineProperty(DateTimeSelectorComponent.prototype, "valid", {
120
- /**
121
- * Gets indication whether is current value valid
122
- */
123
- get: /**
124
- * Gets indication whether is current value valid
125
- * @return {?}
126
- */
127
- function () {
128
- var _a, _b;
129
- return (_b = (_a = this._activeSelector) === null || _a === void 0 ? void 0 : _a.valid) !== null && _b !== void 0 ? _b : true;
130
- },
131
- enumerable: false,
132
- configurable: true
133
- });
134
- Object.defineProperty(DateTimeSelectorComponent.prototype, "formattedValue", {
135
- /**
136
- * Gets or sets formatted value
137
- */
138
- get: /**
139
- * Gets or sets formatted value
140
- * @return {?}
141
- */
142
- function () {
143
- var _a, _b;
144
- return (_b = (_a = this._activeSelector) === null || _a === void 0 ? void 0 : _a.formattedValue) !== null && _b !== void 0 ? _b : null;
145
- },
146
- set: /**
147
- * @param {?} value
148
- * @return {?}
149
- */
150
- function (value) {
151
- if (value) {
152
- /** @type {?} */
153
- var val = this._dateApi.getValue(value, this.format);
154
- this.value = this._valueProvider.getValue(val.value, this.format);
155
- }
156
- else {
157
- this.value = null;
158
- }
159
- },
160
- enumerable: false,
161
- configurable: true
162
- });
163
- Object.defineProperty(DateTimeSelectorComponent.prototype, "touched", {
164
- /**
165
- * Occurs when selector is touched by user
166
- */
167
- get: /**
168
- * Occurs when selector is touched by user
169
- * @return {?}
170
- */
171
- function () {
172
- return this._touched.asObservable();
173
- },
174
- enumerable: false,
175
- configurable: true
176
- });
177
- Object.defineProperty(DateTimeSelectorComponent.prototype, "valueChange", {
178
- /**
179
- * Occurs when value changes
180
- */
181
- get: /**
182
- * Occurs when value changes
183
- * @return {?}
184
- */
185
- function () {
186
- return this._valueChange.asObservable();
187
- },
188
- enumerable: false,
189
- configurable: true
190
- });
191
- Object.defineProperty(DateTimeSelectorComponent.prototype, "placeholder", {
192
- /**
193
- * Gets or sets placeholder that is displayed when there is no value selected
194
- */
195
- get: /**
196
- * Gets or sets placeholder that is displayed when there is no value selected
197
- * @return {?}
198
- */
199
- function () {
200
- return this._placeholder;
201
- },
202
- set: /**
203
- * @param {?} value
204
- * @return {?}
205
- */
206
- function (value) {
207
- this._placeholder = value;
208
- if (this._activeSelector) {
209
- this._activeSelector.placeholder = this._placeholder;
210
- this._activeSelector.invalidateVisuals();
211
- }
212
- },
213
- enumerable: false,
214
- configurable: true
215
- });
216
- Object.defineProperty(DateTimeSelectorComponent.prototype, "options", {
217
- /**
218
- * Current options used by selector
219
- */
220
- get: /**
221
- * Current options used by selector
222
- * @return {?}
223
- */
224
- function () {
225
- return this._options;
226
- },
227
- set: /**
228
- * @param {?} value
229
- * @return {?}
230
- */
231
- function (value) {
232
- this._options = extend(true, this._options, value);
233
- // without deep-copy for this attribute
234
- if (value === null || value === void 0 ? void 0 : value.pickerPeriodsDefinition) {
235
- this._options.pickerPeriodsDefinition = value.pickerPeriodsDefinition;
236
- }
237
- },
238
- enumerable: false,
239
- configurable: true
240
- });
241
- Object.defineProperty(DateTimeSelectorComponent.prototype, "minValue", {
242
- /**
243
- * Gets or sets minimal possible value for picker, that can be picked
244
- */
245
- get: /**
246
- * Gets or sets minimal possible value for picker, that can be picked
247
- * @return {?}
248
- */
249
- function () {
250
- return this.min;
251
- },
252
- set: /**
253
- * @param {?} value
254
- * @return {?}
255
- */
256
- function (value) {
257
- var _this = this;
258
- var _a, _b;
259
- (_a = this._minValueChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
260
- this._minValueChangeSubscription = null;
261
- if (isBlank(value)) {
262
- this.min = null;
263
- }
264
- else if (isString(value)) {
265
- /** @type {?} */
266
- var date = this._dateApi.getValue(value);
267
- if (date.isValid()) {
268
- this.min = date.value;
269
- }
270
- }
271
- else if (value instanceof DateTimeSelectorComponent) {
272
- this.min = value.valueOf();
273
- this._minValueChangeSubscription = value.valueChange.subscribe((/**
274
- * @return {?}
275
- */
276
- function () {
277
- var _a;
278
- _this.min = value.valueOf();
279
- (_a = _this._activeSelector) === null || _a === void 0 ? void 0 : _a.setMinValue(_this.min);
280
- _this._changeDetector.detectChanges();
281
- }));
282
- }
283
- else {
284
- this.min = value;
285
- }
286
- (_b = this._activeSelector) === null || _b === void 0 ? void 0 : _b.setMinValue(this.min);
287
- },
288
- enumerable: false,
289
- configurable: true
290
- });
291
- Object.defineProperty(DateTimeSelectorComponent.prototype, "maxValue", {
292
- /**
293
- * Gets or sets maximal possible value for picker, that can be picked
294
- */
295
- get: /**
296
- * Gets or sets maximal possible value for picker, that can be picked
297
- * @return {?}
298
- */
299
- function () {
300
- return this.max;
301
- },
302
- set: /**
303
- * @param {?} value
304
- * @return {?}
305
- */
306
- function (value) {
307
- var _this = this;
308
- var _a, _b;
309
- (_a = this._maxValueChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
310
- this._maxValueChangeSubscription = null;
311
- if (isBlank(value)) {
312
- this.max = null;
313
- }
314
- else if (isString(value)) {
315
- /** @type {?} */
316
- var date = this._dateApi.getValue(value);
317
- if (date.isValid()) {
318
- this.max = date.value;
319
- }
320
- }
321
- else if (value instanceof DateTimeSelectorComponent) {
322
- this.max = value.valueOf();
323
- this._maxValueChangeSubscription = value.valueChange.subscribe((/**
324
- * @return {?}
325
- */
326
- function () {
327
- var _a;
328
- _this.max = value.valueOf();
329
- (_a = _this._activeSelector) === null || _a === void 0 ? void 0 : _a.setMaxValue(_this.max);
330
- _this._changeDetector.detectChanges();
331
- }));
332
- }
333
- else {
334
- this.max = value;
335
- }
336
- (_b = this._activeSelector) === null || _b === void 0 ? void 0 : _b.setMaxValue(this.max);
337
- },
338
- enumerable: false,
339
- configurable: true
340
- });
341
- //######################### public methods - implementation of OnInit #########################
342
- /**
343
- * Initialize component
344
- */
345
- //######################### public methods - implementation of OnInit #########################
346
- /**
347
- * Initialize component
348
- * @return {?}
349
- */
350
- DateTimeSelectorComponent.prototype.ngOnInit =
351
- //######################### public methods - implementation of OnInit #########################
352
- /**
353
- * Initialize component
354
- * @return {?}
355
- */
356
- function () {
357
- this.activeSelectorComponent = this._options.selectorComponent;
358
- };
359
- //######################### public methods - implementation of OnChanges #########################
360
- /**
361
- * Called when input value changes
362
- */
363
- //######################### public methods - implementation of OnChanges #########################
364
- /**
365
- * Called when input value changes
366
- * @param {?} changes
367
- * @return {?}
368
- */
369
- DateTimeSelectorComponent.prototype.ngOnChanges =
370
- //######################### public methods - implementation of OnChanges #########################
371
- /**
372
- * Called when input value changes
373
- * @param {?} changes
374
- * @return {?}
375
- */
376
- function (changes) {
377
- if (nameof('format') in changes && this._activeSelector) {
378
- this._activeSelector.format = this.format;
379
- this._activeSelector.invalidateVisuals();
380
- }
381
- };
382
- //######################### public methods - implementation of OnDestroy #########################
383
- /**
384
- * Called when component is destroyed
385
- */
386
- //######################### public methods - implementation of OnDestroy #########################
387
- /**
388
- * Called when component is destroyed
389
- * @return {?}
390
- */
391
- DateTimeSelectorComponent.prototype.ngOnDestroy =
392
- //######################### public methods - implementation of OnDestroy #########################
393
- /**
394
- * Called when component is destroyed
395
- * @return {?}
396
- */
397
- function () {
398
- var _a, _b;
399
- this._activeSelectorSubscriptions.unsubscribe();
400
- (_a = this._minValueChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
401
- this._minValueChangeSubscription = null;
402
- (_b = this._maxValueChangeSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
403
- this._maxValueChangeSubscription = null;
404
- };
405
- //######################### public methods - template bindings #########################
406
- /**
407
- * Handles created or destroyed date time selector instance
408
- * @param selector - Instance of selector or null
409
- * @internal
410
- */
411
- //######################### public methods - template bindings #########################
412
- /**
413
- * Handles created or destroyed date time selector instance
414
- * \@internal
415
- * @param {?} selector - Instance of selector or null
416
- * @return {?}
417
- */
418
- DateTimeSelectorComponent.prototype.selectorCreated =
419
- //######################### public methods - template bindings #########################
420
- /**
421
- * Handles created or destroyed date time selector instance
422
- * \@internal
423
- * @param {?} selector - Instance of selector or null
424
- * @return {?}
425
- */
426
- function (selector) {
427
- var _this = this;
428
- this._activeSelector = selector;
429
- this._activeSelectorSubscriptions.unsubscribe();
430
- this._activeSelectorSubscriptions = new Subscription();
431
- this._activeSelectorSubscriptions.add(selector.touched.subscribe((/**
432
- * @return {?}
433
- */
434
- function () { return _this._touched.next(); })));
435
- this._activeSelectorSubscriptions.add(selector.pickerRequest.subscribe((/**
436
- * @param {?} visible
437
- * @return {?}
438
- */
439
- function (visible) { return _this.pickerVisible = visible; })));
440
- this._activeSelectorSubscriptions.add(selector.valueChange.subscribe((/**
441
- * @return {?}
442
- */
443
- function () {
444
- _this._value = selector.value;
445
- _this._valueChange.next();
446
- })));
447
- selector.format = this.format;
448
- selector.setMaxValue(this.max);
449
- selector.setMinValue(this.min);
450
- selector.setValue(this._value);
451
- selector.setDisabled(this._disabled);
452
- selector.placeholder = this._placeholder;
453
- selector.invalidateVisuals();
454
- };
455
- /**
456
- * Handles changed value by picker
457
- * @param value - Value that was changed
458
- * @intenral
459
- */
460
- /**
461
- * Handles changed value by picker
462
- * \@intenral
463
- * @param {?} value - Value that was changed
464
- * @return {?}
465
- */
466
- DateTimeSelectorComponent.prototype.pickerChangedValue = /**
467
- * Handles changed value by picker
468
- * \@intenral
469
- * @param {?} value - Value that was changed
470
- * @return {?}
471
- */
472
- function (value) {
473
- var _a;
474
- (_a = this._activeSelector) === null || _a === void 0 ? void 0 : _a.setValue(value);
475
- this._value = value;
476
- this._valueChange.next();
477
- if (this._options.pickerCloseOnValueSelect) {
478
- this.pickerVisible = false;
479
- }
480
- };
481
- //######################### public methods #########################
482
- /**
483
- * Sets as 'control' disabled
484
- * @param disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
485
- */
486
- //######################### public methods #########################
487
- /**
488
- * Sets as 'control' disabled
489
- * @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
490
- * @return {?}
491
- */
492
- DateTimeSelectorComponent.prototype.setDisabled =
493
- //######################### public methods #########################
494
- /**
495
- * Sets as 'control' disabled
496
- * @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
497
- * @return {?}
498
- */
499
- function (disabled) {
500
- var _a;
501
- if (disabled === void 0) { disabled = true; }
502
- this._disabled = disabled;
503
- (_a = this._activeSelector) === null || _a === void 0 ? void 0 : _a.setDisabled(disabled);
504
- };
505
- /**
506
- * Gets simple value of selector
507
- */
508
- /**
509
- * Gets simple value of selector
510
- * @return {?}
511
- */
512
- DateTimeSelectorComponent.prototype.valueOf = /**
513
- * Gets simple value of selector
514
- * @return {?}
515
- */
516
- function () {
517
- if (!this._value) {
518
- return null;
519
- }
520
- return this._value.from;
521
- };
522
- DateTimeSelectorComponent.decorators = [
523
- { type: Component, args: [{
524
- selector: 'date-time-selector',
525
- template: "<ng-template [ngComponentOutletEx]=\"activeSelectorComponent\" (ngComponentOutletExCreated)=\"selectorCreated($event)\"></ng-template>\r\n\r\n<ng-template [ngIf]=\"!options?.pickerDisabled && pickerVisible\">\r\n <date-time-picker [value]=\"value\"\r\n [minValue]=\"min\"\r\n [maxValue]=\"max\"\r\n [options]=\"options\"\r\n (valueChange)=\"pickerChangedValue($event)\"></date-time-picker>\r\n</ng-template>",
526
- animations: [enterLeaveAnimateChildTrigger],
527
- changeDetection: ChangeDetectionStrategy.OnPush,
528
- styles: [":host\r\n{\r\n display: block;\r\n position: relative;\r\n}\r\n\r\ndate-time-picker\r\n{\r\n position: absolute;\r\n top: 100%;\r\n}"]
529
- },] }
530
- ];
531
- /** @nocollapse */
532
- DateTimeSelectorComponent.ctorParameters = function () { return [
533
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DATE_TIME_SELECTOR_CONFIGURATION,] }] },
534
- { type: DateValueProvider },
535
- { type: ChangeDetectorRef },
536
- { type: undefined, decorators: [{ type: Inject, args: [DATE_API,] }] },
537
- { type: undefined, decorators: [{ type: Inject, args: [FORMAT_PROVIDER,] }] }
538
- ]; };
539
- DateTimeSelectorComponent.propDecorators = {
540
- format: [{ type: Input }],
541
- placeholder: [{ type: Input }],
542
- options: [{ type: Input }],
543
- minValue: [{ type: Input }],
544
- maxValue: [{ type: Input }]
545
- };
546
- return DateTimeSelectorComponent;
547
- }());
548
- export { DateTimeSelectorComponent };
549
- if (false) {
550
- /**
551
- * Current value of datetime
552
- * @type {?}
553
- * @protected
554
- */
555
- DateTimeSelectorComponent.prototype._value;
556
- /**
557
- * Occurs when selector is touched by user
558
- * @type {?}
559
- * @protected
560
- */
561
- DateTimeSelectorComponent.prototype._touched;
562
- /**
563
- * Occurs when value changes
564
- * @type {?}
565
- * @protected
566
- */
567
- DateTimeSelectorComponent.prototype._valueChange;
568
- /**
569
- * Indication whether is control disabled
570
- * @type {?}
571
- * @protected
572
- */
573
- DateTimeSelectorComponent.prototype._disabled;
574
- /**
575
- * Instance of active date time selector
576
- * @type {?}
577
- * @protected
578
- */
579
- DateTimeSelectorComponent.prototype._activeSelector;
580
- /**
581
- * All subscriptions for active selector
582
- * @type {?}
583
- * @protected
584
- */
585
- DateTimeSelectorComponent.prototype._activeSelectorSubscriptions;
586
- /**
587
- * Subscription for changes of min value selector
588
- * @type {?}
589
- * @protected
590
- */
591
- DateTimeSelectorComponent.prototype._minValueChangeSubscription;
592
- /**
593
- * Subscription for changes of max value selector
594
- * @type {?}
595
- * @protected
596
- */
597
- DateTimeSelectorComponent.prototype._maxValueChangeSubscription;
598
- /**
599
- * Current options used by selector
600
- * @type {?}
601
- * @protected
602
- */
603
- DateTimeSelectorComponent.prototype._options;
604
- /**
605
- * Placeholder that is displayed when there is no value selected
606
- * @type {?}
607
- * @protected
608
- */
609
- DateTimeSelectorComponent.prototype._placeholder;
610
- /**
611
- * Currently active date time selector component type
612
- * \@internal
613
- * @type {?}
614
- */
615
- DateTimeSelectorComponent.prototype.activeSelectorComponent;
616
- /**
617
- * Indication whether is picker visible or not
618
- * \@internal
619
- * @type {?}
620
- */
621
- DateTimeSelectorComponent.prototype.pickerVisible;
622
- /**
623
- * Gets or sets minimal possible value for picker, that can be picked
624
- * @type {?}
625
- */
626
- DateTimeSelectorComponent.prototype.min;
627
- /**
628
- * Gets or sets maximal possible value for picker, that can be picked
629
- * @type {?}
630
- */
631
- DateTimeSelectorComponent.prototype.max;
632
- /**
633
- * Format of displayed
634
- * @type {?}
635
- */
636
- DateTimeSelectorComponent.prototype.format;
637
- /**
638
- * @type {?}
639
- * @protected
640
- */
641
- DateTimeSelectorComponent.prototype._valueProvider;
642
- /**
643
- * @type {?}
644
- * @protected
645
- */
646
- DateTimeSelectorComponent.prototype._changeDetector;
647
- /**
648
- * @type {?}
649
- * @protected
650
- */
651
- DateTimeSelectorComponent.prototype._dateApi;
652
- }
653
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlbGVjdG9yL2NvbXBvbmVudHMvc2VsZWN0b3Ivc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUQsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFFdkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFOUUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7OztJQU94RSxvQkFBb0IsR0FDMUI7SUFDSSxpQkFBaUIsRUFBRSw4QkFBOEI7SUFDakQsd0JBQXdCLEVBQUUsS0FBSztJQUMvQixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsS0FBSztJQUNwQix1QkFBdUIsRUFDdkI7UUFDSSxLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLE9BQU8sRUFBRSw0QkFBNEI7UUFDckMsTUFBTSxFQUFFLDJCQUEyQjtLQUN0QztJQUNELFVBQVUsRUFDVixFQUNDO0NBQ0o7Ozs7O0FBS0Q7SUE0UkksaUVBQWlFO0lBQ2pFLG1DQUFrRSxhQUErRCxFQUMzRyxjQUF3QyxFQUN4QyxlQUFrQyxFQUNoQixRQUF3QixFQUMzQixjQUE4QjtRQUg3QyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWdCOzs7OztRQWpSdEQsV0FBTSxHQUE4QixJQUFJLENBQUM7Ozs7UUFLekMsYUFBUSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDOzs7O1FBSzlDLGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7Ozs7UUFLbEQsY0FBUyxHQUFZLEtBQUssQ0FBQzs7OztRQVUzQixpQ0FBNEIsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7OztRQUtoRSxnQ0FBMkIsR0FBc0IsSUFBSSxDQUFDOzs7O1FBS3RELGdDQUEyQixHQUFzQixJQUFJLENBQUM7Ozs7O1FBb0Z6RCxrQkFBYSxHQUFZLEtBQUssQ0FBQzs7OztRQUsvQixRQUFHLEdBQWUsSUFBSSxDQUFDOzs7O1FBS3ZCLFFBQUcsR0FBZSxJQUFJLENBQUM7UUFtSjFCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLHVDQUF1QztRQUN2QyxJQUFJLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSx1QkFBdUIsRUFDMUM7WUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixHQUFHLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQTtTQUNoRjtJQUNMLENBQUM7SUF2T0Qsc0JBQVcsNENBQUs7UUFMaEIsdUVBQXVFO1FBRXZFOztXQUVHOzs7Ozs7O1FBQ0g7WUFFSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzs7Ozs7UUFDRCxVQUFpQixLQUFnQzs7WUFFN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFFcEIsTUFBQSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNoRCxDQUFDOzs7T0FOQTtJQVdELHNCQUFXLDRDQUFLO1FBSGhCOztXQUVHOzs7OztRQUNIOztZQUVJLG1CQUFPLElBQUksQ0FBQyxlQUFlLDBDQUFFLEtBQUssbUNBQUksSUFBSSxDQUFDO1FBQy9DLENBQUM7OztPQUFBO0lBS0Qsc0JBQVcscURBQWM7UUFIekI7O1dBRUc7Ozs7O1FBQ0g7O1lBRUksbUJBQU8sSUFBSSxDQUFDLGVBQWUsMENBQUUsY0FBYyxtQ0FBSSxJQUFJLENBQUM7UUFDeEQsQ0FBQzs7Ozs7UUFDRCxVQUEwQixLQUFrQjtZQUV4QyxJQUFHLEtBQUssRUFDUjs7b0JBQ1EsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3JFO2lCQUVEO2dCQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ3JCO1FBQ0wsQ0FBQzs7O09BWkE7SUFpQkQsc0JBQVcsOENBQU87UUFIbEI7O1dBRUc7Ozs7O1FBQ0g7WUFFSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBVyxrREFBVztRQUh0Qjs7V0FFRzs7Ozs7UUFDSDtZQUVJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxDQUFDOzs7T0FBQTtJQXFDRCxzQkFDVyxrREFBVztRQUp0Qjs7V0FFRzs7Ozs7UUFDSDtZQUdJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7OztRQUNELFVBQXVCLEtBQXVCO1lBRTFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRTFCLElBQUcsSUFBSSxDQUFDLGVBQWUsRUFDdkI7Z0JBQ0ksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFFckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzVDO1FBQ0wsQ0FBQzs7O09BWEE7SUFnQkQsc0JBQ1csOENBQU87UUFKbEI7O1dBRUc7Ozs7O1FBQ0g7WUFHSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzs7Ozs7UUFDRCxVQUFtQixLQUF1RDtZQUV0RSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCx1Q0FBdUM7WUFDdkMsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsdUJBQXVCLEVBQ2xDO2dCQUNJLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFBO2FBQ3hFO1FBQ0wsQ0FBQzs7O09BVEE7SUFjRCxzQkFDVywrQ0FBUTtRQUpuQjs7V0FFRzs7Ozs7UUFDSDtZQUdJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixDQUFDOzs7OztRQUNELFVBQW9CLEtBQXlEO1lBQTdFLGlCQW9DQzs7WUFsQ0csTUFBQSxJQUFJLENBQUMsMkJBQTJCLDBDQUFFLFdBQVcsR0FBRztZQUNoRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDO1lBRXhDLElBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNqQjtnQkFDSSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQzthQUNuQjtpQkFDSSxJQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDdkI7O29CQUNRLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBRXhDLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUNqQjtvQkFDSSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQ3pCO2FBQ0o7aUJBQ0ksSUFBRyxLQUFLLFlBQVkseUJBQXlCLEVBQ2xEO2dCQUNJLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUUzQixJQUFJLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7Z0JBQUM7O29CQUUzRCxLQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDM0IsTUFBQSxLQUFJLENBQUMsZUFBZSwwQ0FBRSxXQUFXLENBQUMsS0FBSSxDQUFDLEdBQUcsRUFBRTtvQkFFNUMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekMsQ0FBQyxFQUFDLENBQUM7YUFDTjtpQkFFRDtnQkFDSSxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQzthQUNwQjtZQUVELE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDaEQsQ0FBQzs7O09BckNBO0lBMENELHNCQUNXLCtDQUFRO1FBSm5COztXQUVHOzs7OztRQUNIO1lBR0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3BCLENBQUM7Ozs7O1FBQ0QsVUFBb0IsS0FBeUQ7WUFBN0UsaUJBb0NDOztZQWxDRyxNQUFBLElBQUksQ0FBQywyQkFBMkIsMENBQUUsV0FBVyxHQUFHO1lBQ2hELElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7WUFFeEMsSUFBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQ2pCO2dCQUNJLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO2FBQ25CO2lCQUNJLElBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUN2Qjs7b0JBQ1EsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFFeEMsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQ2pCO29CQUNJLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDekI7YUFDSjtpQkFDSSxJQUFHLEtBQUssWUFBWSx5QkFBeUIsRUFDbEQ7Z0JBQ0ksSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRTNCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVM7OztnQkFBQzs7b0JBRTNELEtBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUMzQixNQUFBLEtBQUksQ0FBQyxlQUFlLDBDQUFFLFdBQVcsQ0FBQyxLQUFJLENBQUMsR0FBRyxFQUFFO29CQUU1QyxLQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QyxDQUFDLEVBQUMsQ0FBQzthQUNOO2lCQUVEO2dCQUNJLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO1lBRUQsTUFBQSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNoRCxDQUFDOzs7T0FyQ0E7SUF1REQsK0ZBQStGO0lBRS9GOztPQUVHOzs7Ozs7SUFDSSw0Q0FBUTs7Ozs7O0lBQWY7UUFFSSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRSxDQUFDO0lBRUQsa0dBQWtHO0lBRWxHOztPQUVHOzs7Ozs7O0lBQ0ksK0NBQVc7Ozs7Ozs7SUFBbEIsVUFBbUIsT0FBc0I7UUFFckMsSUFBRyxNQUFNLENBQTRCLFFBQVEsQ0FBQyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUNqRjtZQUNJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVELGtHQUFrRztJQUVsRzs7T0FFRzs7Ozs7O0lBQ0ksK0NBQVc7Ozs7OztJQUFsQjs7UUFFSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEQsTUFBQSxJQUFJLENBQUMsMkJBQTJCLDBDQUFFLFdBQVcsR0FBRztRQUNoRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDO1FBRXhDLE1BQUEsSUFBSSxDQUFDLDJCQUEyQiwwQ0FBRSxXQUFXLEdBQUc7UUFDaEQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsd0ZBQXdGO0lBRXhGOzs7O09BSUc7Ozs7Ozs7O0lBQ0ksbURBQWU7Ozs7Ozs7O0lBQXRCLFVBQXVCLFFBQWlDO1FBQXhELGlCQXdCQztRQXRCRyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztRQUVoQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVM7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFwQixDQUFvQixFQUFDLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsT0FBTyxJQUFJLE9BQUEsS0FBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQTVCLENBQTRCLEVBQUMsQ0FBQyxDQUFDO1FBRWpILElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7UUFBQztZQUVqRSxLQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDN0IsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBRUosUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV6QyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRzs7Ozs7OztJQUNJLHNEQUFrQjs7Ozs7O0lBQXpCLFVBQTBCLEtBQTJCOztRQUVqRCxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUU7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV6QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQ3pDO1lBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsb0VBQW9FO0lBRXBFOzs7T0FHRzs7Ozs7OztJQUNJLCtDQUFXOzs7Ozs7O0lBQWxCLFVBQW1CLFFBQXdCOztRQUF4Qix5QkFBQSxFQUFBLGVBQXdCO1FBRXZDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUNoRCxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksMkNBQU87Ozs7SUFBZDtRQUVJLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUNmO1lBQ0ksT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQzs7Z0JBN1pKLFNBQVMsU0FDVjtvQkFDSSxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QiwwZkFBc0M7b0JBRXRDLFVBQVUsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7aUJBQ2xEOzs7O2dEQXNSZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxnQ0FBZ0M7Z0JBNVQ1RCxpQkFBaUI7Z0JBVitGLGlCQUFpQjtnREF5VXhILE1BQU0sU0FBQyxRQUFRO2dEQUNmLE1BQU0sU0FBQyxlQUFlOzs7eUJBMUlsQyxLQUFLOzhCQU1MLEtBQUs7MEJBb0JMLEtBQUs7MkJBa0JMLEtBQUs7MkJBOENMLEtBQUs7O0lBNktWLGdDQUFDO0NBQUEsQUE5WkQsSUE4WkM7U0F0WlkseUJBQXlCOzs7Ozs7O0lBT2xDLDJDQUFtRDs7Ozs7O0lBS25ELDZDQUF3RDs7Ozs7O0lBS3hELGlEQUE0RDs7Ozs7O0lBSzVELDhDQUFxQzs7Ozs7O0lBS3JDLG9EQUFvRDs7Ozs7O0lBS3BELGlFQUEwRTs7Ozs7O0lBSzFFLGdFQUFnRTs7Ozs7O0lBS2hFLGdFQUFnRTs7Ozs7O0lBS2hFLDZDQUFxRTs7Ozs7O0lBS3JFLGlEQUFnQzs7Ozs7O0lBb0VoQyw0REFBK0Q7Ozs7OztJQU0vRCxrREFBc0M7Ozs7O0lBS3RDLHdDQUE4Qjs7Ozs7SUFLOUIsd0NBQThCOzs7OztJQU85QiwyQ0FDc0I7Ozs7O0lBc0lWLG1EQUFrRDs7Ozs7SUFDbEQsb0RBQTRDOzs7OztJQUM1Qyw2Q0FBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBJbmplY3QsIE9wdGlvbmFsLCBUeXBlLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kLCBpc0JsYW5rLCBpc1N0cmluZywgbmFtZW9mfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7RGF0ZVRpbWVWYWx1ZX0gZnJvbSAnLi4vLi4vLi4vbWlzYy9kYXRldGltZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RBVEVfQVBJLCBGT1JNQVRfUFJPVklERVJ9IGZyb20gJy4uLy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlVGltZURheVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vcGlja2VyL2NvbXBvbmVudHMvZGF5UGlja2VyL2RheVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3BpY2tlci9jb21wb25lbnRzL21vbnRoUGlja2VyL21vbnRoUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9waWNrZXIvY29tcG9uZW50cy95ZWFyUGlja2VyL3llYXJQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtEYXRlQXBpLCBGb3JtYXRQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge0RhdGVWYWx1ZVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kYXRlVmFsdWVQcm92aWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtEYXRlVGltZVNlbGVjdG9yLCBEYXRlVGltZVNlbGVjdG9yT3B0aW9uc30gZnJvbSAnLi4vLi4vbWlzYy9kYXRldGltZVNlbGVjdG9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9USU1FX1NFTEVDVE9SX0NPTkZJR1VSQVRJT059IGZyb20gJy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnR9IGZyb20gJy4uL2lucHV0RGF0ZVRpbWUvaW5wdXREYXRlVGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge2VudGVyTGVhdmVBbmltYXRlQ2hpbGRUcmlnZ2VyfSBmcm9tICcuL3NlbGVjdG9yLmNvbXBvbmVudC5hbmltYXRpb25zJztcclxuXHJcbi8vVE9ETyAtIGFkZCBzdXBwb3J0IGZvciBib2R5IGFic29sdXRlIHBpY2tlclxyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3Igc2VsZWN0b3JcclxuICovXHJcbmNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPiA9XHJcbntcclxuICAgIHNlbGVjdG9yQ29tcG9uZW50OiBJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBwaWNrZXJDbG9zZU9uVmFsdWVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgcGlja2VyRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGVmYXVsdFBlcmlvZDogJ2RheScsXHJcbiAgICBwaWNrZXJQZXJpb2RzRGVmaW5pdGlvbjpcclxuICAgIHtcclxuICAgICAgICBcImRheVwiOiBEYXRlVGltZURheVBpY2tlckNvbXBvbmVudCxcclxuICAgICAgICBcIm1vbnRoXCI6IERhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgXCJ5ZWFyXCI6IERhdGVUaW1lWWVhclBpY2tlckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIGNzc0NsYXNzZXM6XHJcbiAgICB7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHVzZWQgZm9yIGRpc3BsYXlpbmcgYW5kIHNlbGVjdGluZyBkYXRlIHRpbWVcclxuICovXHJcbkBDb21wb25lbnQoXHJcbntcclxuICAgIHNlbGVjdG9yOiAnZGF0ZS10aW1lLXNlbGVjdG9yJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ3NlbGVjdG9yLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IFtlbnRlckxlYXZlQW5pbWF0ZUNoaWxkVHJpZ2dlcl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudDxURGF0ZSA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyAsT25EZXN0cm95XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgZmllbGRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUNoYW5nZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgY29udHJvbCBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBhY3RpdmUgZGF0ZSB0aW1lIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZlU2VsZWN0b3I/OiBEYXRlVGltZVNlbGVjdG9yPFREYXRlPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbCBzdWJzY3JpcHRpb25zIGZvciBhY3RpdmUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBvZiBtaW4gdmFsdWUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9taW5WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9ufG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIG1heCB2YWx1ZSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb258bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IG9wdGlvbnMgdXNlZCBieSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnM6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBsYWNlaG9sZGVyIHRoYXQgaXMgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIGN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBpbmRpY2F0aW9uIHdoZXRoZXIgaXMgY3VycmVudCB2YWx1ZSB2YWxpZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnZhbGlkID8/IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgZm9ybWF0dGVkIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nfG51bGxcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0b3I/LmZvcm1hdHRlZFZhbHVlID8/IG51bGw7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGZvcm1hdHRlZFZhbHVlKHZhbHVlOiBzdHJpbmd8bnVsbClcclxuICAgIHtcclxuICAgICAgICBpZih2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCB2YWwgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlLCB0aGlzLmZvcm1hdCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZVByb3ZpZGVyLmdldFZhbHVlKHZhbC52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IE9ic2VydmFibGU8dm9pZD5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPHZvaWQ+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnRseSBhY3RpdmUgZGF0ZSB0aW1lIHNlbGVjdG9yIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZVNlbGVjdG9yQ29tcG9uZW50PzogVHlwZTxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgcGlja2VyIHZpc2libGUgb3Igbm90XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4OiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbnB1dHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0IG9mIGRpc3BsYXllZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHBsYWNlaG9sZGVyIHRoYXQgaXMgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nfHVuZGVmaW5lZFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZ3x1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuaW52YWxpZGF0ZVZpc3VhbHMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IG9wdGlvbnMgdXNlZCBieSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBvcHRpb25zKHZhbHVlOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGV4dGVuZCh0cnVlLCB0aGlzLl9vcHRpb25zLCB2YWx1ZSk7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKHZhbHVlPy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc0RlZmluaXRpb24gPSB2YWx1ZS5waWNrZXJQZXJpb2RzRGVmaW5pdGlvblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1pbjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWluVmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1pbiA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1heDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWF4VmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1heCA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4ID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEQVRFX1RJTUVfU0VMRUNUT1JfQ09ORklHVVJBVElPTikgY29uZmlndXJhdGlvbjogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoREFURV9BUEkpIHByb3RlY3RlZCBfZGF0ZUFwaTogRGF0ZUFwaTxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEZPUk1BVF9QUk9WSURFUikgZm9ybWF0UHJvdmlkZXI6IEZvcm1hdFByb3ZpZGVyKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0UHJvdmlkZXIuZGF0ZTtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24/LnBpY2tlclBlcmlvZHNEZWZpbml0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiA9IGNvbmZpZ3VyYXRpb24ucGlja2VyUGVyaW9kc0RlZmluaXRpb25cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25Jbml0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTZWxlY3RvckNvbXBvbmVudCA9IHRoaXMuX29wdGlvbnMuc2VsZWN0b3JDb21wb25lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25DaGFuZ2VzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGlucHV0IHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYobmFtZW9mPERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ+KCdmb3JtYXQnKSBpbiBjaGFuZ2VzICYmIHRoaXMuX2FjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuZm9ybWF0ID0gdGhpcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIE9uRGVzdHJveSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY3JlYXRlZCBvciBkZXN0cm95ZWQgZGF0ZSB0aW1lIHNlbGVjdG9yIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBJbnN0YW5jZSBvZiBzZWxlY3RvciBvciBudWxsXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdG9yQ3JlYXRlZChzZWxlY3RvcjogRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IgPSBzZWxlY3RvcjtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMuYWRkKHNlbGVjdG9yLnRvdWNoZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3RvdWNoZWQubmV4dCgpKSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci5waWNrZXJSZXF1ZXN0LnN1YnNjcmliZSh2aXNpYmxlID0+IHRoaXMucGlja2VyVmlzaWJsZSA9IHZpc2libGUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0b3IudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHNlbGVjdG9yLmZvcm1hdCA9IHRoaXMuZm9ybWF0O1xyXG4gICAgICAgIHNlbGVjdG9yLnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgICAgICBzZWxlY3Rvci5zZXRNaW5WYWx1ZSh0aGlzLm1pbik7XHJcbiAgICAgICAgc2VsZWN0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHNlbGVjdG9yLnNldERpc2FibGVkKHRoaXMuX2Rpc2FibGVkKTtcclxuICAgICAgICBzZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICBzZWxlY3Rvci5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBjaGFuZ2VkIHZhbHVlIGJ5IHBpY2tlclxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdGhhdCB3YXMgY2hhbmdlZFxyXG4gICAgICogQGludGVucmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJDaGFuZ2VkVmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5uZXh0KCk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnMucGlja2VyQ2xvc2VPblZhbHVlU2VsZWN0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGFzICdjb250cm9sJyBkaXNhYmxlZFxyXG4gICAgICogQHBhcmFtIGRpc2FibGVkIC0gSW5kaWNhdGlvbiB3aGV0aGVyIHNldHMgdmFsdWUgYXMgZGlzYWJsZWQsIGlmIG9taXR0ZWQgaXQgaXMgc2FtZSBhcyBkaXNhYmxlZCBzZXQgdG8gdHJ1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldERpc2FibGVkKGRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgc2ltcGxlIHZhbHVlIG9mIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWx1ZU9mKCk6IFREYXRlfG51bGxcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fdmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZS5mcm9tO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==